---
name: "Business::PayPal::API::DirectPayments"
section: "3pm"
platform: "linux"
package: "libbusiness-paypal-api-perl"
version: "0.77-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Business::PayPal::API::DirectPayments"
---

# Business::PayPal::API::DirectPayments(3pm)

PayPal DirectPayments API

## NAME

Business::PayPal::API::DirectPayments - PayPal DirectPayments API

## VERSION

version 0.77

## SYNOPSIS

```
    use Business::PayPal::API qw(DirectPayments);
    ## see Business::PayPal::API documentation for parameters
    my $pp = Business::PayPal::API->new(
                        Username => 'name_api1.example.org',
                        Password => 'somepass',
                        CertFile => '/path/to/tester1.cert_key_pem.txt',
                        KeyFile  => '/path/to/tester1.cert_key_pem.txt',
                        sandbox  => 1,
                        );
    my %response = $pp->DoDirectPaymentRequest (
                        PaymentAction      => 'Sale',
                        OrderTotal         => 13.59,
                        TaxTotal           => 0.0,
                        ShippingTotal      => 0.0,
                        ItemTotal          => 0.0,
                        HandlingTotal      => 0.0,
                        InvoiceID          => 'your-tracking-number',
                        CreditCardType     => 'Visa',
                        CreditCardNumber   => '4561435600988217',
                        ExpMonth           => '01',
                        ExpYear            => '2007',
                        CVV2               => '123',
                        FirstName          => 'James',
                        LastName           => 'PuffDaddy',
                        Street1            => '1st Street LaCausa',
                        Street2            => '',
                        CityName           => 'La',
                        StateOrProvince    => 'Ca',
                        PostalCode         => '90210',
                        Country            => 'US',
                        Payer              => 'Joe@Example.org',
                        ShipToName         => 'Jane Doe',
                        ShipToStreet1      => '1234 S. Pleasant St.',
                        ShipToStreet2      => 'Suite #992',
                        ShipToCityName     => 'Vacation Town',
                        ShipToStateOrProvince => 'FL',
                        ShipToCountry      => 'US',
                        ShipToPostalCode   => '12345',
                        CurrencyID         => 'USD',
                        IPAddress          => '10.0.0.1',
                        MerchantSessionID  => '10113301',
                        );
```

## DESCRIPTION

**Business::PayPal::API::DirectPayments** implements PayPal's **DirectPayments** API using SOAP::Lite to make direct API calls to PayPal's SOAP API server. It also implements support for testing via PayPal's *sandbox*. Please see Business::PayPal::API for details on using the PayPal sandbox.

### DoDirectPaymentRequest

Implements PayPal's **DoDirectPaymentRequest** API call. Supported parameters include:

```
        PaymentAction           ( Sale|Authorize, Sale is default )
        OrderTotal
        TaxTotal
        ShippingTotal
        ItemTotal
        HandlingTotal
        InvoiceID
        CreditCardType
        CreditCardNumber
        ExpMonth                ( two digits, leading zero )
        ExpYear                 ( four digits, 20XX )
        CVV2
        FirstName
        LastName
        Street1
        Street2
        CityName
        StateOrProvince
        PostalCode
        Country
        Payer
        ShipToName
        ShipToStreet1
        ShipToStreet2
        ShipToCityName
        ShipToStateOrProvince
        ShipToCountry
        ShipToPostalCode
        CurrencyID              (USD is default)
        IPAddress
        MerchantSessionID
```

as described in the PayPal "Web Services API Reference" document.

Returns a hash containing the results of the transaction. The **Ack** element and TransactionID are the most useful return values.

Example:

```
  my %resp = $pp->DoDirectPaymentRequest(
                    PaymentAction => 'Sale',
                    OrderTotal    => '10.99',
                    ...
             );
  unless( $resp{Ack} !~ /Success/ ) {
      for my $error ( @{$response{Errors}} ) {
          warn "Error: " . $error->{LongMessage} . "\n";
      }
  }
```

### ERROR HANDLING

See the **ERROR HANDLING** section of **Business::PayPal::API** for information on handling errors.

### EXPORT

None by default.

## SEE ALSO

\<https://developer.paypal.com/en\_US/pdf/PP\_APIReference.pdf\>

## AUTHORS

- •

  Scott Wiersdorf \<scott@perlcode.org\>

- •

  Danny Hembree \<danny@dynamical.org\>

- •

  Bradley M. Kuhn \<bkuhn@ebb.org\>

## COPYRIGHT AND LICENSE

This software is copyright (c) 2006-2017 by Scott Wiersdorf, Danny Hembree, Bradley M. Kuhn.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
