Billing Agreements API

You use billing plans and billing agreements to create subscriptions, or recurring payments, for goods or services.

Note: The terms billing agreement, subscription, and recurring payment mean the same thing.

To create an agreement, you reference an active billing plan from which the agreement inherits information. You also supply customer and payment information and, optionally, can override the referenced plan's merchant preferences and shipping fee and tax information. You can create an agreement for a recurring credit card, bank card, or PayPal payment. To create an agreement, see Billing Plans and Agreements.

Billing agreements (resource group)

Use the /billing-agreements resource to create an agreement, update an agreement, show agreement details, and cancel agreements. You can also set or bill the balance for an agreement. You can re-activate an agreement, suspend an agreement, list agreement transactions, and execute agreements.

Create agreement

POST /v1/payments/billing-agreements
Creates a billing agreement. In the JSON request body, include an agreement object with the name, description, start date, ID of the plan on which to base the agreement, subscriber, and shipping address.

Request

Pass the agreement details in the JSON body of a POST call, including the following agreement object properties. The sample requests are:

  • Sample 1. Creates agreement for a recurring PayPal payment that overrides the merchant preferences and charge models.

  • Sample 2. Creates agreement for a recurring PayPal payment.

  • Sample 3. Creates agreement for a recurring direct credit card payment.

  • name

    string

    required

    The agreement name.

    Maximum length: 128.

  • description

    string

    required

    The agreement description.

    Maximum length: 128.

  • start_date

    string

    required

    The start date of the agreement in Internet date and time format. The start date must be greater than the current date.

    Format: YYYY-MM-DDTHH:MM:SSTimeZone.

  • agreement_details

    object

    The agreement details.
  • payer

    object

    required

    The details for the subscriber. This information is gathered from execution of the approval URL.
  • shipping_address

    object

    The shipping address of the agreement, which must be provided if it differs from the default address.
  • override_merchant_preferences

    object

    Merchant preferences that override the default information in the plan. If you omit this parameter, the agreement uses the default merchant preferences from the plan.
  • override_charge_models

    array (contains the override_shipping_fee_and_tax object)

    required

    Overrides the shipping fee and tax information from the plan on which the agreement is based.
  • plan

    object

    required

    The details for the plan on which this agreement is based.
SDK samples: C#, Node.js, PHP, Python

Sample Request

curl -v -X POST https://api.sandbox.paypal.com/v1/payments/billing-agreements/ \
-H "Content-Type:application/json" \
-H "Authorization: Bearer Access-Token" \
-d '{
  "name": "Override Agreement",
  "description": "PayPal payment agreement that overrides merchant preferences and shipping fee and tax information.",
  "start_date": "2017-12-22T09:13:49Z",
  "payer":
  {
  "payment_method": "paypal",
  "payer_info":
  {
    "email": "kkarunanidhi-per1@paypal.com"
  }
  },
  "plan":
  {
  "id": "P-1WJ68935LL406420PUTENA2I"
  },
  "shipping_address":
  {
  "line1": "Hotel Staybridge",
  "line2": "Crooke Street",
  "city": "San Jose",
  "state": "CA",
  "postal_code": "95112",
  "country_code": "US"
  },
  "override_merchant_preferences":
  {
  "setup_fee":
  {
    "value": "3",
    "currency": "GBP"
  },
  "return_url": "http://indiatimes.com",
  "cancel_url": "http://rediff.com",
  "auto_bill_amount": "YES",
  "initial_fail_amount_action": "CONTINUE",
  "max_fail_attempts": "11"
  },
  "override_charge_models": [
  {
  "charge_id": "CHM-8373958130821962WUTENA2Q",
  "amount":
  {
    "value": "1",
    "currency": "GBP"
  }
  }]
}'
SDK samples: C#, Node.js, PHP, Python

Sample Request

curl -v -X POST https://api.sandbox.paypal.com/v1/payments/billing-agreements/ \
-H "Content-Type:application/json" \
-H "Authorization: Bearer Access-Token" \
-d '{
  "name": "Magazine Subscription",
  "description": "Monthly subscription with a regular monthly payment definition and two-month trial payment definition.",
  "start_date": "2017-12-22T09:13:49Z",
  "plan":
  {
  "id": "{{plan_id}}"
  },
  "payer":
  {
  "payment_method": "paypal"
  },
  "shipping_address":
  {
  "line1": "751235 Stout Drive",
  "line2": "0976249 Elizabeth Court",
  "city": "Quimby",
  "state": "IA",
  "postal_code": "51049",
  "country_code": "US"
  }
}'
SDK samples: C#, Node.js, PHP, Python

Sample Request

curl -v -X POST https://api.sandbox.paypal.com/v1/payments/billing-agreements/ \
-H "Content-Type:application/json" \
-H "Authorization: Bearer Access-Token" \
-d '{
  "name": "Direct Credit Card Payment",
  "description": "Recurring credit card payment.",
  "start_date": "2017-12-22T09:13:49Z",
  "plan":
  {
  "id": "P-2PL786081D358645F6NWEKFQ"
  },
  "payer":
  {
  "payment_method": "credit_card",
  "payer_info":
  {
    "email": "johndoe@example.com"
  },
  "funding_instruments": [
  {
    "credit_card":
    {
    "type": "visa",
    "number": "4417119664863864",
    "expire_month": "12",
    "expire_year": "2021",
    "cvv2": "111",
    "start_month": "11",
    "start_year": "2016",
    "billing_address":
    {
      "line1": "065769 Holcomb Bridge Road #141",
      "line2": "5713 E Dimond Boulevard #B9",
      "city": "Wichita",
      "state": "KS",
      "postal_code": "67202",
      "country_code": "US",
      "phone": "+1 6202311026"
    }
    }
  }]
  }
}'

Response

The response includes a billing agreement id and redirect links to get the buyer's approval. The sample responses are:

  • Sample 1. Agreement for a recurring PayPal payment that overrides the merchant preferences and charge models.

  • Sample 2. Agreement for a recurring PayPal payment.

  • Sample 3. Agreement for a recurring direct credit card payment.

  • name

    string

    The agreement name.

    Maximum length: 128.

  • description

    string

    The agreement description.

    Maximum length: 128.

  • start_date

    string

    The start date of the agreement in Internet date and time format. The start date must be greater than the current date.

    Format: YYYY-MM-DDTHH:MM:SSTimeZone.

  • agreement_details

    object

    The agreement details.
  • payer

    object

    The details for the subscriber. This information is gathered from execution of the approval URL.
  • shipping_address

    object

    The shipping address of the agreement, which must be provided if it differs from the default address.
  • override_merchant_preferences

    object

    Merchant preferences that override the default information in the plan. If you omit this parameter, the agreement uses the default merchant preferences from the plan.
  • override_charge_models

    array (contains the override_shipping_fee_and_tax object)

    Overrides the shipping fee and tax information from the plan on which the agreement is based.
  • plan

    object

    The details for the plan on which this agreement is based.
  • links

    array (contains the link object)

    HATEOAS links related to this call.

    Read only.

Sample Response

{
  "name": "Override Agreement",
  "description": "PayPal payment agreement that overrides merchant preferences and shipping fee and tax information.",
  "plan": {
    "id": "P-1WJ68935LL406420PUTENA2I",
    "state": "ACTIVE",
    "name": "Fast Speed Plan",
    "description": "Vanilla plan",
    "type": "INFINITE",
    "payment_definitions": [
      {
        "id": "PD-9WG6983719571780GUTENA2I",
        "name": "Regular payment definition",
        "type": "REGULAR",
        "frequency": "Day",
        "amount": {
          "currency": "GBP",
          "value": "10"
        },
        "charge_models": [
          {
            "id": "CHM-8373958130821962WUTENA2Q",
            "type": "SHIPPING",
            "amount": {
              "currency": "GBP",
              "value": "1"
            }
          },
          {
            "id": "CHM-2937144979861454NUTENA2Q",
            "type": "TAX",
            "amount": {
              "currency": "GBP",
              "value": "2"
            }
          }
        ],
        "cycles": "0",
        "frequency_interval": "1"
      },
      {
        "id": "PD-89M493313S710490TUTENA2Q",
        "name": "Trial payment definition",
        "type": "TRIAL",
        "frequency": "Month",
        "amount": {
          "currency": "GBP",
          "value": "100"
        },
        "charge_models": [
          {
            "id": "CHM-78K47820SS4923826UTENA2Q",
            "type": "SHIPPING",
            "amount": {
              "currency": "GBP",
              "value": "10"
            }
          },
          {
            "id": "CHM-9M366179U7339472RUTENA2Q",
            "type": "TAX",
            "amount": {
              "currency": "GBP",
              "value": "12"
            }
          }
        ],
        "cycles": "5",
        "frequency_interval": "2"
      }
    ],
    "merchant_preferences": {
      "setup_fee": {
        "currency": "GBP",
        "value": "3"
      },
      "max_fail_attempts": "11",
      "return_url": "http://indiatimes.com",
      "cancel_url": "http://rediff.com",
      "auto_bill_amount": "YES",
      "initial_fail_amount_action": "CONTINUE"
    }
  },
  "links": [
    {
      "href": "https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-83C745436S346813F",
      "rel": "approval_url",
      "method": "REDIRECT"
    },
    {
      "href": "https://api.sandbox.paypal.com/v1/payments/billing-agreements/EC-83C745436S346813F/agreement-execute",
      "rel": "execute",
      "method": "POST"
    }
  ],
  "start_date": "2017-12-22T09:13:49Z"
}

Sample Response

{
  "name": "Magazine Subscription",
  "description": "Monthly subscription with a regular monthly payment definition and two-month trial payment definition.",
  "plan": {
    "id": "P-3NL67884YE672133CEXBTJTA",
    "state": "ACTIVE",
    "name": "Magazine Subscription",
    "description": "Monthly subscription with a regular monthly payment definition and two-month trial payment definition.",
    "type": "FIXED",
    "payment_definitions": [
      {
        "id": "PD-7AP59297JL233383BEXBTJTA",
        "name": "Regular monthly payment definition",
        "type": "REGULAR",
        "frequency": "Month",
        "amount": {
          "currency": "USD",
          "value": "5.99"
        },
        "cycles": "10",
        "charge_models": [
          {
            "id": "CHM-0808282002866834SEXBTJTA",
            "type": "TAX",
            "amount": {
              "currency": "USD",
              "value": "0.29"
            }
          },
          {
            "id": "CHM-86952323Y27891226EXBTJTA",
            "type": "SHIPPING",
            "amount": {
              "currency": "USD",
              "value": "0.2"
            }
          }
        ],
        "frequency_interval": "1"
      },
      {
        "id": "PD-3F67327340580952AEXBTJTA",
        "name": "Free trial payment definition",
        "type": "TRIAL",
        "frequency": "Month",
        "amount": {
          "currency": "USD",
          "value": "0"
        },
        "cycles": "2",
        "charge_models": [],
        "frequency_interval": "1"
      }
    ],
    "merchant_preferences": {
      "setup_fee": {
        "currency": "USD",
        "value": "0.4"
      },
      "max_fail_attempts": "2",
      "return_url": "http://www.example.com/success",
      "cancel_url": "http://www.example.com/cancel",
      "auto_bill_amount": "YES",
      "initial_fail_amount_action": "CONTINUE"
    }
  },
  "start_date": "2017-12-22T09:13:49Z",
  "links": [
    {
      "href": "https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-7WN97463LN263864T",
      "rel": "approval_url",
      "method": "REDIRECT"
    },
    {
      "href": "https://api.sandbox.paypal.com/v1/payments/billing-agreements/EC-7WN97463LN263864T/agreement-execute",
      "rel": "execute",
      "method": "POST"
    }
  ]
}

Sample Response

{
  "id": "I-Y6TL8T5KT95R",
  "state": "Active",
  "description": "Recurring credit card payment.",
  "payer": {
    "payment_method": "credit_card",
    "payer_info": {
      "email": "johndoe@example.com"
    },
    "funding_instruments": [
      {
        "credit_card": {
          "type": "visa",
          "number": "3864",
          "expire_month": "12",
          "expire_year": "2021",
          "start_month": "11",
          "start_year": "2016",
          "billing_address": {
            "line1": "065769 Holcomb Bridge Road #141",
            "line2": "5713 E Dimond Boulevard #B9",
            "city": "Wichita",
            "state": "KS",
            "postal_code": "67202",
            "country_code": "US"
          }
        }
      }
    ]
  },
  "plan": {
    "payment_definitions": [
      {
        "type": "TRIAL",
        "frequency": "Month",
        "amount": {
          "value": "0",
          "currency": "USD"
        },
        "cycles": "2",
        "charge_models": [
          {
            "type": "TAX",
            "amount": {
              "value": "0",
              "currency": "USD"
            }
          },
          {
            "type": "SHIPPING",
            "amount": {
              "value": "0",
              "currency": "USD"
            }
          }
        ],
        "frequency_interval": "1"
      },
      {
        "type": "REGULAR",
        "frequency": "Month",
        "amount": {
          "value": "5.99",
          "currency": "USD"
        },
        "cycles": "10",
        "charge_models": [
          {
            "type": "TAX",
            "amount": {
              "value": "0.29",
              "currency": "USD"
            }
          },
          {
            "type": "SHIPPING",
            "amount": {
              "value": "0.20",
              "currency": "USD"
            }
          }
        ],
        "frequency_interval": "1"
      }
    ],
    "merchant_preferences": {
      "setup_fee": {
        "value": "0.40",
        "currency": "USD"
      },
      "max_fail_attempts": "3",
      "auto_bill_amount": "YES"
    },
    "links": [],
    "currency_code": "USD"
  },
  "links": [
    {
      "href": "https://api.sandbox.paypal.com/v1/payments/billing-agreements/I-Y6TL8T5KT95R",
      "rel": "self",
      "method": "GET"
    }
  ],
  "start_date": "2017-12-22T09:13:49Z",
  "agreement_details": {
    "outstanding_balance": {
      "value": "0.00",
      "currency": "USD"
    },
    "cycles_remaining": "12",
    "cycles_completed": "0",
    "next_billing_date": "2017-12-22T09:13:49Z",
    "last_payment_date": "2017-01-02T09:13:49Z",
    "last_payment_amount": {
      "value": "0.40",
      "currency": "USD"
    },
    "final_payment_date": "2017-12-03T00:00:00Z",
    "failed_payment_count": "0"
  }
}

Update agreement

PATCH /v1/payments/billing-agreements/agreement_id
Updates details of a billing agreement, by ID. Details include the description, shipping address, start date, and so on.

Parameters

  • agreement_id

    path string

    The ID of the agreement to update.

Request

  • items

    array (contains the json-patch object)

    A JSON patch object used for applying partial updates to resources.
SDK samples: Node.js, PHP, Python

Sample Request

curl -v -X PATCH https://api.sandbox.paypal.com/v1/payments/billing-agreements/I-1TJ3GAGG82Y9 \
-H "Content-Type:application/json" \
-H "Authorization: Bearer Access-Token" \
-d '[
  {
  "op": "replace",
  "path": "/",
  "value": {
    "description": "Updated description.",
    "start_date": "2017-12-22T09:13:49Z",
    "shipping_address": {
    "line1": "Hotel Blue Diamond",
    "line2": "Church Street",
    "city": "San Jose",
    "state": "CA",
    "postal_code": "95112",
    "country_code": "US"
    }
  }
  }
]'

Sample Response

200 OK

Show agreement details

GET /v1/payments/billing-agreements/agreement_id
Shows details for a billing agreement, by ID.

Parameters

  • agreement_id

    path string

    The ID of the agreement for which to show details.
SDK samples: C#, Node.js, PHP, Python

Sample Request

curl -v -X GET https://api.sandbox.paypal.com/v1/payments/billing-agreements/I-5D3XDN2D5FH1 \
-H "Content-Type:application/json" \
-H "Authorization: Bearer Access-Token"

Response

  • name

    string

    The agreement name.

    Maximum length: 128.

  • description

    string

    The agreement description.

    Maximum length: 128.

  • start_date

    string

    The start date of the agreement in Internet date and time format. The start date must be greater than the current date.

    Format: YYYY-MM-DDTHH:MM:SSTimeZone.

  • agreement_details

    object

    The agreement details.
  • payer

    object

    The details for the subscriber. This information is gathered from execution of the approval URL.
  • shipping_address

    object

    The shipping address of the agreement, which must be provided if it differs from the default address.
  • override_merchant_preferences

    object

    Merchant preferences that override the default information in the plan. If you omit this parameter, the agreement uses the default merchant preferences from the plan.
  • override_charge_models

    array (contains the override_shipping_fee_and_tax object)

    Overrides the shipping fee and tax information from the plan on which the agreement is based.
  • plan

    object

    The details for the plan on which this agreement is based.
  • links

    array (contains the link object)

    HATEOAS links related to this call.

    Read only.

Sample Response

{
  "id": "I-1TJ3GAGG82Y9",
  "state": "Active",
  "description": "Monthly subscription with free trial payment definition.",
  "payer": {
    "payment_method": "paypal",
    "status": "unverified",
    "payer_info": {
      "email": "johndoe@example.com",
      "first_name": "John",
      "last_name": "Doe",
      "payer_id": "NEW8A85AK4ET4",
      "shipping_address": {
        "recipient_name": "John Doe",
        "line1": "751235 Stout Drive",
        "line2": "0976249 Elizabeth Court",
        "city": "Quimby",
        "state": "IA",
        "postal_code": "51049",
        "country_code": "US"
      }
    }
  },
  "plan": {
    "payment_definitions": [
      {
        "type": "TRIAL",
        "frequency": "Month",
        "amount": {
          "currency": "USD",
          "value": "0.00"
        },
        "cycles": "2",
        "charge_models": [
          {
            "type": "TAX",
            "amount": {
              "currency": "USD",
              "value": "0.00"
            }
          },
          {
            "type": "SHIPPING",
            "amount": {
              "currency": "USD",
              "value": "0.00"
            }
          }
        ],
        "frequency_interval": "1"
      },
      {
        "type": "REGULAR",
        "frequency": "Month",
        "amount": {
          "currency": "USD",
          "value": "5.99"
        },
        "cycles": "10",
        "charge_models": [
          {
            "type": "TAX",
            "amount": {
              "currency": "USD",
              "value": "0.29"
            }
          },
          {
            "type": "SHIPPING",
            "amount": {
              "currency": "USD",
              "value": "0.20"
            }
          }
        ],
        "frequency_interval": "1"
      }
    ],
    "merchant_preferences": {
      "setup_fee": {
        "currency": "USD",
        "value": "0.40"
      },
      "max_fail_attempts": "2",
      "auto_bill_amount": "YES"
    }
  },
  "start_date": "2017-12-22T09:13:49Z",
  "shipping_address": {
    "recipient_name": "John Doe",
    "line1": "751235 Stout Drive",
    "line2": "0976249 Elizabeth Court",
    "city": "Quimby",
    "state": "IA",
    "postal_code": "51049",
    "country_code": "US"
  },
  "agreement_details": {
    "outstanding_balance": {
      "currency": "USD",
      "value": "0.00"
    },
    "cycles_remaining": "2",
    "cycles_completed": "0",
    "next_billing_date": "2016-12-23T10:00:00Z",
    "last_payment_date": "2017-12-22T09:13:49Z",
    "last_payment_amount": {
      "currency": "USD",
      "value": "0.40"
    },
    "final_payment_date": "2017-11-23T10:00:00Z",
    "failed_payment_count": "0"
  },
  "links": [
    {
      "href": "https://api.sandbox.paypal.com/v1/payments/billing-agreements/I-1TJ3GAGG82Y9/suspend",
      "rel": "suspend",
      "method": "POST"
    },
    {
      "href": "https://api.sandbox.paypal.com/v1/payments/billing-agreements/I-1TJ3GAGG82Y9/re-activate",
      "rel": "re_activate",
      "method": "POST"
    },
    {
      "href": "https://api.sandbox.paypal.com/v1/payments/billing-agreements/I-1TJ3GAGG82Y9/cancel",
      "rel": "cancel",
      "method": "POST"
    },
    {
      "href": "https://api.sandbox.paypal.com/v1/payments/billing-agreements/I-1TJ3GAGG82Y9/bill-balance",
      "rel": "self",
      "method": "POST"
    },
    {
      "href": "https://api.sandbox.paypal.com/v1/payments/billing-agreements/I-1TJ3GAGG82Y9/set-balance",
      "rel": "self",
      "method": "POST"
    }
  ]
}

Bill agreement balance

POST /v1/payments/billing-agreements/agreement_id/bill-balance
Bills the balance for an agreement, by ID. In the JSON request body, include an optional note that describes the reason for the billing action and the agreement amount and currency.

Parameters

  • agreement_id

    path string

    The ID of the agreement for which to bill the balance.

Request

  • note

    string

    The reason for the change in the agreement state.

    Maximum length: 128.

  • amount

    object

    The amount and currency for the agreement. Required to bill outstanding amounts. Not required to suspend, cancel, or re-activate an agreement.
SDK samples: Node.js, Python

Sample Request

curl -v -X POST https://api.sandbox.paypal.com/v1/payments/billing-agreements/I-1TJ3GAGG82Y9/bill-balance \
-H "Content-Type:application/json" \
-H "Authorization: Bearer Access-Token" \
-d '{
  "note": "Billing balance amount.",
  "amount": {
  "value": "100",
  "currency": "USD"
  }
}'

Sample Response

204 No Content

Cancel agreement

POST /v1/payments/billing-agreements/agreement_id/cancel
Cancels a billing agreement, by ID. In the JSON request body, include an agreement_state_descriptor object with an optional note that describes the reason for the cancellation and the agreement amount and currency.

Parameters

  • agreement_id

    path string

    The ID of the agreement to cancel.

Request

  • note

    string

    The reason for the change in the agreement state.

    Maximum length: 128.

  • amount

    object

    The amount and currency for the agreement. Required to bill outstanding amounts. Not required to suspend, cancel, or re-activate an agreement.
SDK samples: Node.js, Python

Sample Request

curl -v -X POST https://api.sandbox.paypal.com/v1/payments/billing-agreements/I-1TJ3GAGG82Y9/cancel \
-H "Content-Type:application/json" \
-H "Authorization: Bearer Access-Token" \
-d '{
  "note": "Canceling the profile"
}'

Sample Response

204 No Content

Re-activate agreement

POST /v1/payments/billing-agreements/agreement_id/re-activate
Re-activates a suspended billing agreement, by ID. In the JSON request body, include an agreement_state_descriptor object with with a note that describes the reason for the re-activation and the agreement amount and currency.

Parameters

  • agreement_id

    path string

    The ID of the agreement to re-activate.

Request

  • note

    string

    The reason for the change in the agreement state.

    Maximum length: 128.

  • amount

    object

    The amount and currency for the agreement. Required to bill outstanding amounts. Not required to suspend, cancel, or re-activate an agreement.
SDK samples: Node.js, PHP, Python

Sample Request

curl -v -X POST https://api.sandbox.paypal.com/v1/payments/billing-agreements/I-1TJ3GAGG82Y9/re-activate \
-H "Content-Type:application/json" \
-H "Authorization: Bearer Access-Token" \
-d '{
  "note": "Re-activating the profile."
}'

Sample Response

204 No Content

Set agreement balance

POST /v1/payments/billing-agreements/agreement_id/set-balance
Sets the balance for an agreement, by ID. In the JSON request body, specify the balance currency type and value.

Parameters

  • agreement_id

    path string

    The ID of the agreement for which to set a balance.

Request

  • currency

    string

    required

    3 letter currency code as defined by ISO 4217.
  • value

    string

    required

    amount up to N digit after the decimals separator as defined in ISO 4217 for the appropriate currency code.
SDK samples: Node.js, Python

Sample Request

curl -v -X POST https://api.sandbox.paypal.com/v1/payments/billing-agreements/I-1TJ3GAGG82Y9/set-balance \
-H "Content-Type:application/json" \
-H "Authorization: Bearer Access-Token" \
-d '{
  "value": "100",
  "currency": "USD"
}'

Sample Response

204 No Content

Suspend agreement

POST /v1/payments/billing-agreements/agreement_id/suspend
Suspends a billing agreement, by ID.

Parameters

  • agreement_id

    path string

    The ID of the agreement to suspend.

Request

  • note

    string

    The reason for the change in the agreement state.

    Maximum length: 128.

  • amount

    object

    The amount and currency for the agreement. Required to bill outstanding amounts. Not required to suspend, cancel, or re-activate an agreement.
SDK samples: Node.js, PHP, Python

Sample Request

curl -v -X POST https://api.sandbox.paypal.com/v1/payments/billing-agreements/I-1TJ3GAGG82Y9/suspend \
-H "Content-Type:application/json" \
-H "Authorization: Bearer Access-Token" \
-d '{
  "note": "Suspending the profile."
}'

Sample Response

204 No Content

List agreement transactions

GET /v1/payments/billing-agreements/agreement_id/transactions
Lists transactions for an agreement, by ID. To filter the transactions that appear in the response, specify the optional start and end date query parameters.

Parameters

  • agreement_id

    path string

    The ID of the agreement for which to list transactions.
  • start_date

    query_string date

    The start date of the range of transactions to list.
  • end_date

    query_string date

    The end date of the range of transactions to list.
SDK samples: C#, Node.js, PHP, Python

Sample Request

curl -v -X GET https://api.sandbox.paypal.com/v1/payments/billing-agreements/I-1TJ3GAGG82Y9/transaction?start-date=2017-06-15&end-date=2017-06-17 \
-H "Content-Type:application/json" \
-H "Authorization: Bearer Access-Token"

Response

  • agreement_transaction_list

    array (contains the agreement_transaction object)

    An agreement transaction. Returned for a transaction search.

Sample Response

{
  "agreement_transaction_list": [
    {
      "transaction_id": "I-V8SSE9WLJGY6",
      "status": "Created",
      "transaction_type": "Recurring Payment",
      "payer_email": "",
      "payer_name": " ",
      "time_stamp": "2017-06-16T13:46:53Z",
      "time_zone": "GMT"
    },
    {
      "transaction_id": "I-V8SSE9WLJGY6",
      "status": "Suspended",
      "transaction_type": "Recurring Payment",
      "payer_email": "",
      "payer_name": " ",
      "time_stamp": "2017-06-16T13:52:26Z",
      "time_zone": "GMT"
    },
    {
      "transaction_id": "I-V8SSE9WLJGY6",
      "status": "Reactivated",
      "transaction_type": "Recurring Payment",
      "payer_email": "",
      "payer_name": " ",
      "time_stamp": "2017-06-16T14:00:23Z",
      "time_zone": "GMT"
    },
    {
      "transaction_id": "I-V8SSE9WLJGY6",
      "status": "Canceled",
      "transaction_type": "Recurring Payment",
      "payer_email": "",
      "payer_name": " ",
      "time_stamp": "2017-06-16T14:02:54Z",
      "time_zone": "GMT"
    }
  ]
}

Execute agreement

POST /v1/payments/billing-agreements/payment_token/agreement-execute
Executes a billing agreement, by ID, after customer approval.

Parameters

  • payment_token

    path string

    The ID of the agreement to execute.
SDK samples: C#, Node.js, PHP, Python

Sample Request

curl -v -X POST https://api.sandbox.paypal.com/v1/payments/billing-agreements/EC-7WN97463LN263864T/agreement-execute \
-H "Content-Type:application/json" \
-H "Authorization: Bearer Access-Token"

Response

  • name

    string

    The agreement name.

    Maximum length: 128.

  • description

    string

    The agreement description.

    Maximum length: 128.

  • start_date

    string

    The start date of the agreement in Internet date and time format. The start date must be greater than the current date.

    Format: YYYY-MM-DDTHH:MM:SSTimeZone.

  • agreement_details

    object

    The agreement details.
  • payer

    object

    The details for the subscriber. This information is gathered from execution of the approval URL.
  • shipping_address

    object

    The shipping address of the agreement, which must be provided if it differs from the default address.
  • override_merchant_preferences

    object

    Merchant preferences that override the default information in the plan. If you omit this parameter, the agreement uses the default merchant preferences from the plan.
  • override_charge_models

    array (contains the override_shipping_fee_and_tax object)

    Overrides the shipping fee and tax information from the plan on which the agreement is based.
  • plan

    object

    The details for the plan on which this agreement is based.
  • links

    array (contains the link object)

    HATEOAS links related to this call.

    Read only.

Sample Response

{
  "id": "I-1TJ3GAGG82Y9",
  "state": "Active",
  "description": "Monthly subscription with free trial payment definition.",
  "payer": {
    "payment_method": "paypal",
    "status": "unverified",
    "payer_info": {
      "email": "johndoe@example.com",
      "first_name": "John",
      "last_name": "Doe",
      "payer_id": "NEW8A85AK4ET4",
      "shipping_address": {
        "recipient_name": "John Doe",
        "line1": "751235 Stout Drive",
        "line2": "0976249 Elizabeth Court",
        "city": "Quimby",
        "state": "IA",
        "postal_code": "51049",
        "country_code": "US"
      }
    }
  },
  "plan": {
    "payment_definitions": [
      {
        "type": "TRIAL",
        "frequency": "Month",
        "amount": {
          "value": "0.00",
          "currency": "USD"
        },
        "cycles": "2",
        "charge_models": [
          {
            "type": "TAX",
            "amount": {
              "value": "0.00",
              "currency": "USD"
            }
          },
          {
            "type": "SHIPPING",
            "amount": {
              "value": "0.00",
              "currency": "USD"
            }
          }
        ],
        "frequency_interval": "1"
      },
      {
        "type": "REGULAR",
        "frequency": "Month",
        "amount": {
          "value": "5.99",
          "currency": "USD"
        },
        "cycles": "10",
        "charge_models": [
          {
            "type": "TAX",
            "amount": {
              "value": "0.29",
              "currency": "USD"
            }
          },
          {
            "type": "SHIPPING",
            "amount": {
              "value": "0.20",
              "currency": "USD"
            }
          }
        ],
        "frequency_interval": "1"
      }
    ],
    "merchant_preferences": {
      "setup_fee": {
        "value": "0.40",
        "currency": "USD"
      },
      "max_fail_attempts": "2",
      "auto_bill_amount": "YES"
    },
    "links": [],
    "currency_code": "USD"
  },
  "start_date": "2017-12-22T09:13:49Z",
  "shipping_address": {
    "recipient_name": "John Doe",
    "line1": "751235 Stout Drive",
    "line2": "0976249 Elizabeth Court",
    "city": "Quimby",
    "state": "IA",
    "postal_code": "51049",
    "country_code": "US"
  },
  "agreement_details": {
    "outstanding_balance": {
      "value": "0.00",
      "currency": "USD"
    },
    "cycles_remaining": "2",
    "cycles_completed": "0",
    "next_billing_date": "2017-11-22T09:13:49Z",
    "last_payment_date": "2017-10-22T09:13:49Z",
    "last_payment_amount": {
      "value": "0.40",
      "currency": "USD"
    },
    "final_payment_date": "2017-12-22T09:13:49Z",
    "failed_payment_count": "0"
  },
  "links": [
    {
      "href": "https://api.sandbox.paypal.com/v1/payments/billing-agreements/I-1TJ3GAGG82Y9",
      "rel": "self",
      "method": "GET"
    }
  ]
}

Common object definitions

address

  • line1

    string

    Line 1 of the Address (eg. number, street, etc).
  • line2

    string

    Optional line 2 of the Address (eg. suite, apt #, etc.).
  • city

    string

    City name.
  • country_code

    string

    2 letter country code.
  • postal_code

    string

    Zip code or equivalent is usually required for countries that have them. For list of countries that do not have postal codes please refer to http://en.wikipedia.org/wiki/Postal_code.
  • state

    string

    2 letter code for US states, and the equivalent for other countries.
  • phone

    string

    Phone number in E.123 format.

    Format: phone.

agreement

  • name

    string

    The agreement name.

    Maximum length: 128.

  • description

    string

    The agreement description.

    Maximum length: 128.

  • start_date

    string

    The start date of the agreement in Internet date and time format. The start date must be greater than the current date.

    Format: YYYY-MM-DDTHH:MM:SSTimeZone.

  • agreement_details

    object

    The agreement details.
  • payer

    object

    The details for the subscriber. This information is gathered from execution of the approval URL.
  • shipping_address

    object

    The shipping address of the agreement, which must be provided if it differs from the default address.
  • override_merchant_preferences

    object

    Merchant preferences that override the default information in the plan. If you omit this parameter, the agreement uses the default merchant preferences from the plan.
  • override_charge_models

    array (contains the override_shipping_fee_and_tax object)

    Overrides the shipping fee and tax information from the plan on which the agreement is based.
  • plan

    object

    The details for the plan on which this agreement is based.
  • links

    array (contains the link object)

    HATEOAS links related to this call.

    Read only.

agreement_details

  • outstanding_balance

    object

    The outstanding balance for this agreement.
  • cycles_remaining

    string

    The number of payment cycles remaining for this agreement.
  • cycles_completed

    string

    The number of payment cycles completed for this agreement.
  • next_billing_date

    string

    The next billing date for this agreement in Internet date and time format. For example, 2017-02-19T10:00:00Z.
  • last_payment_date

    string

    The last payment date for this agreement in Internet date and time format. For example, 2017-02-19T10:00:00Z.
  • last_payment_amount

    object

    The last payment amount for this agreement.
  • final_payment_date

    string

    The last payment date for this agreement in Internet date and time format. For example, 2017-02-19T10:00:00Z.
  • failed_payment_count

    string

    The total number of failed payments for this agreement.

agreement_state_descriptor

  • note

    string

    The reason for the change in the agreement state.

    Maximum length: 128.

  • amount

    object

    The amount and currency for the agreement. Required to bill outstanding amounts. Not required to suspend, cancel, or re-activate an agreement.

agreement_transaction

  • transaction_id

    string

    The ID of the transaction.

    Read only.

  • status

    enum

    The subscription state.

    Read only.

    Possible values: Active, Cancelled, Completed, Created, Pending, Reactivated, Suspended.

  • transaction_type

    string

    The type of transaction. Typically, Recurring Payment.

    Read only.

  • amount

    object

    The transaction amount.
  • fee_amount

    object

    The transaction fee.
  • net_amount

    object

    The transaction net amount.
  • payer_email

    string

    The email ID of the subscriber.

    Read only.

  • payer_name

    string

    The business name of the subscriber.

    Read only.

  • time_stamp

    string

    The date and time when this transaction occurred.

    Read only.

  • time_zone

    string

    The time zone of the update_time field.

    Read only.

agreement_transactions

  • agreement_transaction_list

    array (contains the agreement_transaction object)

    An agreement transaction. Returned for a transaction search.

bank_token

  • bank_id

    string

    The ID of the vaulted bank card.
  • external_customer_id

    string

    The ID of the customer who owns the bank card.
  • mandate_reference_number

    string

    The ID of the direct debit mandate to validate. Supported for only Single Euro Payments Area (SEPA) bank accounts in the European Union (EU).

credit_card

  • id

    string

    The ID of the credit card to save for later use.

    Read only.

  • number

    string

    The card number.
  • type

    string

    The card type. For example, Visa, MasterCard, and so on.
  • expire_month

    see description

    The two-digit card expiry month, in MM format. Value is from 01 to 12.
    Possible types: integer
  • expire_year

    see description

    The four-digit card expiry year, in YYYY format.
    Possible types: integer
  • cvv2

    see description

    The card validation code. Supported only when making a payment but not when saving a credit card for future use.
    Possible types: integer
  • first_name

    string

    The first name of the card holder.
  • last_name

    string

    The last name of the card holder.
  • billing_address

    object

    The billing address associated with this card.
  • external_customer_id

    string

    The facilitator-provided ID of the customer who owns this bank account. Required when storing a funding instrument or using a stored funding instrument in the PayPal vault.

    Maximum length: 256.

  • state

    enum

    The funding instrument state.

    Read only.

    Possible values: expired, ok.

  • valid_until

    string

    The date and time when the credit card becomes unusable from the vault, in Internet date and time format. The valid_until parameter is not the same as the expiration month and year. The expiration month and year might be later than the valid_until date. For example, the card expires in November 2019 but the valid_until date is October 17th, 2019.

    Read only.

  • links

    array (contains the link object)

    HATEOAS links related to this call.

    Read only.

credit_card_token

  • credit_card_id

    string

    The ID of the vaulted credit card.
  • payer_id

    string

    The ID of the customer who owns the Credit card.
  • last4

    string

    The last four digits of the card number from the vaulted credit card.

    Read only.

  • type

    string

    The card type of the vaulted credit card. For example, visa, mastercard, and so on. Note that the values are always lowercase and are not meant for display.

    Read only.

  • expire_month

    see description

    The expiry month from the vaulted card. Value is from 1 to 12.
    Possible types: integer

    Read only.

  • expire_year

    see description

    The expiry year from the vaulted card, in YYYY format.
    Possible types: integer

    Read only.

credit_instrument

  • id

    string

    The ID of the credit instrument.

    Read only.

  • type

    enum

    The credit instrument type.

    Read only.

    Possible values: BILL_ME_LATER, PAYPAL_EXTRAS_MASTERCARD, EBAY_MASTERCARD, PAYPAL_SMART_CONNECT.

  • terms

    string

    The URI to the associated terms for the credit instrument.

    Read only.

    Format: uri.

currency

  • currency

    string

    3 letter currency code as defined by ISO 4217.
  • value

    string

    amount up to N digit after the decimals separator as defined in ISO 4217 for the appropriate currency code.

extended_bank_account

  • mandate_reference_number

    string

    The ID of the direct debit mandate to validate. Currently supported for only Single Euro Payments Area (SEPA) bank accounts in the European Union (EU).

funding_instrument

  • funding_instrument

    [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

    Information about a subscriber's funding instrument.

json_patch

  • op

    enum

    The operation to perform.

    Possible values: add, remove, replace, move, copy, test.

  • path

    string

    String containing a JSON-Pointer value that references a location within the target document where the operation is performed.
  • value

    see description

    New value to apply based on the operation. op=remove does not require value.
    Possible types: number, integer, string, boolean, null, array, object
  • from

    string

    A string containing a JSON Pointer value that references the location in the target document from which to move the value. Required for use where op=move.

json_patch_request

  • items

    (contains the json-patch object)

    A JSON patch object used for applying partial updates to resources.

merchant_preferences

  • id

    string

    The ID of the merchant preferences.

    Read only.

    Maximum length: 128.

  • setup_fee

    object

    The fee to set up the subscription. Default is 0.
  • cancel_url

    string

    The URL where subscribers can cancel the subscription.

    Maximum length: 1000.

  • return_url

    string

    The URL where customers can approve subscription.

    Maximum length: 1000.

  • notify_url

    string

    The notify URL on agreement creation. Maximum length is 1000 characters. Read-only and reserved for future use.

    Read only.

    Maximum length: 1000.

  • max_fail_attempts

    string

    The maximum number of allowed failed payment attempts. Default is 0, for an infinite number of failed attempts.
  • auto_bill_amount

    enum

    Indicates whether auto-billing is allowed for the outstanding balance of the agreement in the next payment cycle. Default is NO.

    Possible values: YES, NO.

  • initial_fail_amount_action

    enum

    The action if the subscriber's initial payment fails. Default is CONTINUE.

    Possible values: CONTINUE, CANCEL.

  • accepted_payment_type

    string

    The payment types that are accepted for this plan. Read-only and reserved for future use.

    Read only.

  • char_set

    string

    The character set for this plan. Read-only and reserved for future use.

    Read only.

override_shipping_fee_and_tax

  • charge_id

    string

    The ID of the model to override.
  • amount

    object

    The updated amount.

payer

  • payment_method

    enum

    The payment method.

    Possible values: credit_card, bank, paypal.

  • funding_instruments

    array (contains the funding_instrument object)

    Information about a subscriber's funding instrument.
  • funding_option_id

    string

    The ID of the subscriber-selected funding option for the payment. Value is OneOf funding_instruments or funding_option_id.

    Read only.

  • payer_info

    object

    The subscriber information.

payer_info

  • email

    string

    The subscriber's email address.

    Format: email.

  • first_name

    string

    The subscriber's first name.

    Read only.

  • last_name

    string

    The subscriber's last name.

    Read only.

  • payer_id

    string

    The PayPal-assigned ID for the subscriber.

    Read only.

  • phone

    string

    The subscriber's phone number. For future use.
  • billing_address

    object

    The subscriber's billing address.

payment_card

  • id

    string

    The ID of the vaulted payment card.

    Read only.

  • number

    string

    The card number.
  • type

    enum

    The card type.

    Possible values: VISA, AMEX, SOLO, JCB, STAR, DELTA, DISCOVER, SWITCH, MAESTRO, CB_NATIONALE, CONFINOGA, COFIDIS, ELECTRON, CETELEM, CHINA_UNION_PAY, MASTERCARD.

  • expire_month

    see description

    The two-digit card expiry month.
    Possible types: integer
  • expire_year

    see description

    The four-digit card expiry year.
    Possible types: integer
  • start_month

    see description

    The two-digit card start month.
    Possible types: integer
  • start_year

    see description

    The four-digit card start year.
    Possible types: integer
  • cvv2

    see description

    The card validation code. Supported only when making a payment but not when saving a payment card for future use.
    Possible types: integer
  • first_name

    string

    The card holder's first name.
  • last_name

    string

    The card holder's last name.
  • billing_address

    object

    The card holder's billing address.
  • external_customer_id

    string

    The facilitator-provided ID of the card holder. Required when storing a funding instrument or using a stored funding instrument in the PayPal vault.

    Maximum length: 256.

  • status

    enum

    The funding instrument state.

    Read only.

    Possible values: EXPIRED, ACTIVE.

  • valid_until

    string

    The date and time when the card becomes unusable from the vault, in Internet date and time format. The valid_until parameter is not the same as the expiration month and year. The expiration month and year might be later than the valid_until date. For example, the card expires in November 2019 but the valid_until date is October 17th, 2019.

    Read only.

  • links

    array (contains the link object)

    HATEOAS links related to this call.

    Read only.

payment_card_token

  • payment_card_id

    string

    The ID of the vaulted payment card.
  • external_customer_id

    string

    The ID of the subscriber who owns this payment card.
  • last4

    string

    The last four digits of the card number from the vaulted card.

    Read only.

  • type

    enum

    The card type.

    Read only.

    Possible values: VISA, AMEX, SOLO, JCB, STAR, DELTA, DISCOVER, SWITCH, MAESTRO, CB_NATIONALE, CONFINOGA, COFIDIS, ELECTRON, CETELEM, CHINA_UNION_PAY, MASTERCARD.

  • expire_month

    see description

    The expiry month from the vaulted card. Value is from 1 to 12.
    Possible types: integer

    Read only.

  • expire_year

    see description

    The four-digit expiry year from the vaulted card, in YYYY format.
    Possible types: integer

    Read only.

payment_definition

  • id

    string

    The ID of the payment definition. A payment definition defines a regular or trial payment definition.

    Read only.

    Maximum length: 128.

  • name

    string

    The payment definition name.

    Maximum length: 128.

  • type

    enum

    The payment definition type.

    Possible values: TRIAL, REGULAR.

  • frequency_interval

    string

    The interval at which the subscriber is charged. Value cannot be greater than 12 months.
  • frequency

    enum

    The frequency of the payment in this definition.

    Possible values: WEEK, DAY, YEAR, MONTH.

  • cycles

    string

    The number of payment cycles in this definition. For infinite plans with a regular payment definition, set cycles to 0.
  • amount

    object

    The amount to charge at the end of each payment cycle for this definition.
  • charge_models

    array (contains the shipping_fee_and_tax object)

    The shipping fee and tax information for a payment definition.

plan

  • id

    string

    The ID of the plan.

    Read only.

    Maximum length: 128.

  • name

    string

    The plan name.

    Maximum length: 128.

  • description

    string

    The plan description.

    Maximum length: 128.

  • type

    enum

    The plan type.

    Possible values: FIXED, INFINITE.

    Maximum length: 20.

  • state

    enum

    The plan status.

    Read only.

    Possible values: CREATED, ACTIVE, INACTIVE, DELETED.

  • create_time

    string

    The date and time when the plan was created, in Internet date and time format.

    Read only.

  • update_time

    string

    The date and time when this plan was updated, in Internet date and time format.

    Read only.

  • payment_definitions

    array (contains the payment_definition object)

    A regular or trial payment definition.
  • terms

    array (contains the terms object)

    The plan terms.

    Read only.

  • merchant_preferences

    object

    The merchant preferences for this plan. Defines how much it costs to set up the subscription, the URLs where customers can approve and cancel the subscription, the action to take when the customer's initial payment fails, and other information.
  • links

    array (contains the link object)

    HATEOAS links related to this call.

    Read only.

shipping_fee_and_tax

  • id

    string

    The ID of the charge object.

    Read only.

    Maximum length: 128.

  • type

    enum

    The type of charge.

    Possible values: TAX, SHIPPING.

    Maximum length: 20.

  • amount

    object

    The amount of the charge.

terms

  • id

    string

    The ID of the terms.

    Read only.

    Maximum length: 128.

  • type

    enum

    The term type.

    Possible values: MONTHLY, WEEKLY, YEARLY.

  • max_billing_amount

    object

    The maximum amount associated with this term.
  • occurrences

    string

    The number of times that money can be pulled during this term.
  • amount_range

    object

    The amount range for this term.
  • buyer_editable

    string

    Indicates whether the subscriber can edit the amount in this term.

Additional API information

Error messages

In addition to common REST API errors, the Billing Agreements API can return the following errors. Corrective action is provided where possible.

  • ACCOUNT_RESTRICTED

    This transaction cannot be processed. Please contact PayPal Customer Service. Transaction cannot be processed. Contact PayPal Customer Service.

  • ADDRESS_INVALID

    Provided user address is invalid. The user address is not valid.

  • BILL_AMOUNT_GREATER_THAN_OUTSTANDING_BALANCE

    Bill amount is greater than outstanding balance. Bill amount should be less than outstanding balance.

  • BUSADD_STATE_UNSUPPORTED

    This transaction cannot be processed. The country listed for your business address is not currently supported. The country listed for your business address is not currently supported.

  • CALL_FAILED_PAYMENT

    Payment is failing. Payment is failing.

  • CANNOT_FIND_PROFILE_DESC

    Profile description is invalid. Provide a valid agreement description.

  • CANNOT_MIX_CURRENCIES

    Invalid currency code, all currency codes much match. Use same currency for all the amount objects.

  • CANT_INCREASE_OUTSTANDING_AMOUNT

    Cannot increase delinquent amount. Bill outstanding amount cannot be increased.

  • CC_STATUS_INVALID

    Profile is not active. Profile is not in active state.

  • CC_TYPE_NOT_SUPPORTED

    The credit card type is not supported. Use another type of credit card.

  • DPRP_DISABLED

    DPRP is disabled for this merchant. To enable Direct Payment Recurring Payments (DPRP), enable Pro mode for your merchant sandbox account. Go to Sandbox accounts and click the Business account in the Type column. Click Profile and enable Pro features on this business sandbox account.

  • DUPLICATE_REQUEST_ID

    The value of PayPal-Request-Id header has already been used Resend the request by using a unique PayPal-Request-Id header value.

  • FEATURE_DISABLED

    This transaction cannot be processed. This feature is disabled.

  • FEATURE_NOT_AVAILABLE

    Recurring payments feature is not currently available; try again later. Recurring payments feature is not currently available. Try again later.

  • GATEWAY_DECLINE_CVV2

    This transaction cannot be processed. Please enter a valid Credit Card Verification Number. Use a valid credit card.

  • INTERNAL_ERROR

    Internal Error. Resend the request at another time. If this error continues, contact PayPal Merchant Technical Support.

  • INTERNAL_SERVICE_ERROR

    An internal service error has occurred. Resend the request at another time. If this error continues, contact PayPal Merchant Technical Support.

  • INVALID_AMOUNT

    Bill amount must be greater than 0. Specify a valid amount.

  • INVALID_ARGS

    Invalid argument; description field or custom field is empty and the status is active. Pass correct arguments in description field and make sure status is active.

  • INVALID_CC_NUMBER

    This transaction cannot be processed. Please enter a valid credit card number and type. Enter a valid credit card number and type.

  • INVALID_CURRENCY

    This transaction cannot be processed due to an unsupported currency. This currency is not supported.

  • INVALID_PROFILE_ACTION

    Invalid action value provided. Provide a valid action value.

  • INVALID_PROFILE_ID

    The profile ID is invalid. Provide a valid agreement ID.

  • INVALID_STATUS_TO_CANCEL

    Invalid profile status for suspend action; profile should be active. Agreement should be active before suspending it.

  • INVALID_STATUS_TO_REACTIVATE

    The activation type is invalid. Please pass a valid activate type.

  • INVALID_PROFILE_STATUS

    The profile status must be one of (A)ctive, (C)ancelled, or e(X)pired. Enter a valid profile status.

  • INVALID_STATUS_TO_SUSPEND

    Invalid profile status for reactivate action; profile should be suspended. Agreement should be suspended to perform this action.

  • INVALID_TOKEN

    The token is missing or is invalid. Use a valid token.

  • MERCHANT_ACCOUNT_DENIED

    Merchant account is denied. Merchant account is denied.

  • MERCHANT_COUNTRY_NOT_SUPPORTED

    The merchant country is not supported. You cannot create agreement for this country.

  • MISSING_CVV2

    This transaction cannot be processed without a Credit Card Verification number. Enter CVV2 for the credit card.

  • OUTSTANDING_PAYMENT_ALREADY_SCHEDULED

    Another outstanding payment is scheduled. Another outstanding payment is scheduled.

  • PAYER_ACCOUNT_DENIED

    Payer's account is denied. Payer's account is denied.

  • PAYER_COUNTRY_NOT_SUPPORTED

    The payer's country is currently not supported. The payer's country is currently not supported.

  • PROCESSOR_DECLINE_INVALID_CC_COUNTRY

    This credit card was issued from an unsupported country. This credit card was issued from an unsupported country.

  • RECURRING_PAYMENT_SCHEDULED_WITHIN_24HOURS

    Recurring payment scheduled within 24 hours, so we are not processing the bill outstanding amount. Recurring payment scheduled within 24 hours, so we are not processing the bill outstanding amount.

  • REQUIRED_SCOPE_MISSING

    Access token does not have required scope. Obtain user consent using the correct scope required for this type of request.

  • SET_BALANCE_INVALID_CURRENCY_CODE

    Invalid currency for delinquent amount. Specify a valid currency in bill-balance call.

  • SHIPPING_ADDRESS_NOT_IN_RESIDENCE_COUNTRY

    This transaction cannot be processed. The shipping country is not allowed by the buyer's country of residence. The shipping country is not allowed by the buyer's country of residence.

  • SHP_INVALID_COUNTRY_CODE

    This transaction cannot be processed. Please enter a valid country code in the shipping address. Enter a valid country code in the shipping address.

  • START_DATE_INVALID_FORMAT

    Subscription start date should be valid. Specify a valid start date in Internet date and time format. The start date must be greater than the current date.

  • STATUS_INVALID

    Invalid profile status for reactivate action; profile should be suspended. Specify a valid status for agreement state change.

  • SUBSCRIPTION_UNMAPPED_ERROR

    Some unmapped business/ internal error has occurred. Some unmapped business/ internal error has occurred. Please look into message details for resolution.

  • TIME_TO_UPDATE_CLOSE_TO_BILLING_DATE

    The time of the update is too close to the billing date. The time of the update is too close to the billing date.

  • UNAUTHORIZED_AGREEMENT_REQUEST

    You don't have permission to create such agreement. Obtain the permission to create agreement.

  • USR_BILLING_AGRMNT_NOT_ACTIVE

    This transaction cannot be processed due to an invalid merchant configuration. Occurs when the agreement is disabled or inactive.

  • VALIDATION_ERROR

    Invalid request - see details. There was a validation issue with your request.

  • WALLET_TOO_MANY_ATTEMPTS

    You have exceeded the maximum number of payment attempts for this token. Create a token and use the token to create an agreement.