{
"openapi": "3.0.3",
"info": {
"title": "Payment Method Tokens",
"description": "The Payment Method Tokens API saves payment methods so payers don't have to enter details for future transactions. Payers can check out faster or pay without being present after they agree to save a payment method.
The API associates a payment method with a temporary setup token. Pass the setup token to the API to exchange the setup token for a permanent token.
The permanent token represents a payment method that's saved to the vault. This token can be used repeatedly for checkout or recurring transactions such as subscriptions.",
"version": "3.4",
"contact": {}
},
"servers": [
{
"url": "https://api-m.sandbox.paypal.com",
"description": "PayPal Sandbox Environment"
},
{
"url": "https://api-m.paypal.com",
"description": "PayPal Live Environment"
}
],
"tags": [
{
"name": "payment-tokens",
"description": "Use the `/vault/payment-tokens` resource to create, retrieve, and delete a payment token that may optionally be associated with a customer."
},
{
"name": "setup-tokens",
"description": "Use the `/vault/setup-tokens` resource to create and retrieve temporary vault payment methods."
},
{
"name": "tokens",
"description": "Use the `/vault/tokens` resource to detokenize a vault token to retrieve details associated to the underlying payment source."
},
{
"name": "tokens-session",
"description": "Use the `/vault/tokens/{id}/session` resource to read the token session cache and retrieve details associated to the underlying payment source."
},
{
"name": "customers",
"description": "Use the `/vault/customers` resource to create, update, get and delete a customer."
},
{
"name": "payment-method-credentials",
"description": "Use the `/vault/payment-method-credentials` resource to create payment method credentials"
}
],
"externalDocs": {
"url": "https://developer.paypal.com/docs/api/vault/v3/"
},
"paths": {
"/v3/vault/payment-tokens": {
"post": {
"description": "Creates a Payment Token from the given payment source and adds it to the Vault of the associated customer.",
"summary": "Create payment token for a given payment source",
"operationId": "payment-tokens.create",
"responses": {
"200": {
"description": "Idempotent response for a successful creation of payment token.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/payment_token_response"
},
"examples": {
"payment_token_response": {
"value": {
"id": "8kk8451t",
"customer": {
"id": "customer_4029352050"
},
"payment_source": {
"card": {
"last_digits": "1111",
"expiry": "2027-02",
"brand": "VISA",
"name": "John Doe",
"billing_address": {
"address_line_1": "2211 N First Street",
"address_line_2": "17.3.160",
"admin_area_2": "San Jose",
"admin_area_1": "CA",
"postal_code": "95131",
"country_code": "US"
}
}
},
"links": [
{
"rel": "self",
"href": "https://api-m.paypal.com/v3/vault/payment-tokens/8kk8451t",
"method": "GET",
"encType": "application/json"
},
{
"rel": "delete",
"href": "https://api-m.paypal.com/v3/vault/payment-tokens/8kk8451t",
"method": "DELETE",
"encType": "application/json"
}
]
}
}
}
}
}
},
"201": {
"description": "A successful creation of payment token.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/payment_token_response"
},
"examples": {
"payment_token_response": {
"value": {
"id": "8kk8451t",
"customer": {
"id": "customer_4029352050"
},
"payment_source": {
"card": {
"last_digits": "1111",
"expiry": "2027-02",
"brand": "VISA",
"name": "John Doe",
"billing_address": {
"address_line_1": "2211 N First Street",
"address_line_2": "17.3.160",
"admin_area_2": "San Jose",
"admin_area_1": "CA",
"postal_code": "95131",
"country_code": "US"
}
}
},
"links": [
{
"rel": "self",
"href": "https://api-m.paypal.com/v3/vault/payment-tokens/8kk8451t",
"method": "GET",
"encType": "application/json"
},
{
"rel": "delete",
"href": "https://api-m.paypal.com/v3/vault/payment-tokens/8kk8451t",
"method": "DELETE",
"encType": "application/json"
}
]
}
}
}
}
}
},
"400": {
"description": "Request is not well-formed, syntactically incorrect, or violates schema.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/error"
}
}
}
},
"403": {
"description": "Authorization failed due to insufficient permissions.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/error"
}
}
}
},
"404": {
"description": "Request contains reference to resources that do not exist.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/error"
}
}
}
},
"422": {
"description": "The requested action could not be performed, semantically incorrect, or failed business validation.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/error"
}
}
}
},
"500": {
"description": "An internal server error has occurred.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/error"
}
}
}
}
},
"parameters": [
{
"$ref": "#/components/parameters/paypal_request_id"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/payment_token_request"
},
"examples": {
"payment_token_request": {
"value": {
"payment_source": {
"token": {
"id": "5C991763VB2781612",
"type": "BILLING_AGREEMENT"
}
}
}
}
}
}
},
"description": "Payment Token creation with a financial instrument and an optional customer_id.",
"required": true
},
"security": [
{
"Oauth2": [
"https://uri.paypal.com/services/vault/payment-tokens/readwrite"
]
}
],
"tags": ["payment-tokens"]
},
"get": {
"description": "Returns all payment tokens for a customer.",
"summary": "List all payment tokens",
"operationId": "customer.payment-tokens.get",
"responses": {
"200": {
"description": "Successful execution.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/customer_vault_payment_tokens_response"
},
"examples": {
"customer_vault_payment_tokens_response": {
"value": {
"customer": {
"id": "customer_4029352050"
},
"payment_tokens": [
{
"id": "8kk8451t",
"customer": {
"id": "customer_4029352050"
},
"payment_source": {
"card": {
"brand": "VISA",
"last_digits": "1111",
"expiry": "2027-02",
"name": "John Doe",
"billing_address": {
"address_line_1": "2211 N First Street",
"address_line_2": "17.3.160",
"admin_area_2": "San Jose",
"admin_area_1": "CA",
"postal_code": "95131",
"country_code": "US"
}
}
},
"links": [
{
"rel": "self",
"href": "https://api-m.paypal.com/v3/vault/payment-tokens/8kk8451t",
"method": "GET",
"encType": "application/json"
},
{
"rel": "delete",
"href": "https://api-m.paypal.com/v3/vault/payment-tokens/8kk8451t",
"method": "DELETE",
"encType": "application/json"
}
]
},
{
"id": "fgh6561t",
"customer": {
"id": "customer_4029352050"
},
"payment_source": {
"paypal": {
"description": "Description for PayPal to be shown to PayPal payer",
"email_address": "john.doe@example.com",
"account_id": "VYYFH3WJ4JPJQ",
"shipping": {
"name": {
"full_name": "John Doe"
},
"address": {
"address_line_1": "2211 N First Street",
"address_line_2": "17.3.160",
"admin_area_2": "San Jose",
"admin_area_1": "CA",
"postal_code": "95131",
"country_code": "US"
}
},
"usage_pattern": "IMMEDIATE",
"usage_type": "MERCHANT",
"customer_type": "CONSUMER",
"name": {
"given_name": "John",
"surname": "Doe"
},
"address": {
"address_line_1": "2211 N First Street",
"address_line_2": "17.3.160",
"admin_area_2": "San Jose",
"admin_area_1": "CA",
"postal_code": "95131",
"country_code": "US"
}
}
},
"links": [
{
"rel": "self",
"href": "https://api-m.paypal.com/v3/vault/payment-tokens/fgh6561t",
"method": "GET",
"encType": "application/json"
},
{
"rel": "delete",
"href": "https://api-m.paypal.com/v3/vault/payment-tokens/fgh6561t",
"method": "DELETE",
"encType": "application/json"
}
]
},
{
"id": "hg654s1t",
"customer": {
"id": "customer_4029352050"
},
"payment_source": {
"venmo": {
"description": "Description for Venmo to be shown to Venmo payer",
"shipping": {
"name": {
"full_name": "John Doe"
},
"address": {
"address_line_1": "2211 N First Street",
"address_line_2": "17.3.160",
"admin_area_2": "San Jose",
"admin_area_1": "CA",
"postal_code": "95131",
"country_code": "US"
}
},
"usage_pattern": "IMMEDIATE",
"usage_type": "MERCHANT",
"customer_type": "CONSUMER",
"email_address": "john.doe@example.com",
"user_name": "johndoe",
"name": {
"given_name": "John",
"surname": "Doe"
},
"account_id": "VYYFH3WJ4JPJQ",
"address": {
"address_line_1": "PayPal",
"address_line_2": "2211 North 1st Street",
"admin_area_1": "CA",
"admin_area_2": "San Jose",
"postal_code": "96112",
"country_code": "US"
}
}
},
"links": [
{
"rel": "self",
"href": "https://api-m.paypal.com/v3/vault/payment-tokens/hg654s1t",
"method": "GET",
"encType": "application/json"
},
{
"rel": "delete",
"href": "https://api-m.paypal.com/v3/vault/payment-tokens/hg654s1t",
"method": "DELETE",
"encType": "application/json"
}
]
}
],
"links": [
{
"rel": "self",
"href": "https://api-m.paypal.com/v3/vault/payment-tokens?customer_id=customer_4029352050&page=1&page_size=5&total_required=false",
"method": "GET",
"encType": "application/json"
},
{
"rel": "first",
"href": "https://api-m.paypal.com/v3/vault/payment-tokens?customer_id=customer_4029352050&page=1&page_size=5&total_required=false",
"method": "GET",
"encType": "application/json"
},
{
"rel": "last",
"href": "https://api-m.paypal.com/v3/vault/payment-tokens?customer_id=customer_4029352050&page=1&page_size=5&total_required=false",
"method": "GET",
"encType": "application/json"
}
]
}
}
}
}
}
},
"400": {
"description": "Request is not well-formed, syntactically incorrect, or violates schema.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/error"
}
}
}
},
"403": {
"description": "Authorization failed due to insufficient permissions.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/error"
}
}
}
},
"500": {
"description": "An internal server error has occurred.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/error"
}
}
}
}
},
"parameters": [
{
"$ref": "#/components/parameters/customer_id"
},
{
"$ref": "#/components/parameters/page_size"
},
{
"$ref": "#/components/parameters/page"
},
{
"$ref": "#/components/parameters/total_required"
}
],
"security": [
{
"Oauth2": [
"https://uri.paypal.com/services/vault/payment-tokens/readwrite"
]
}
],
"tags": ["payment-tokens"]
}
},
"/v3/vault/payment-tokens/{id}": {
"get": {
"description": "Returns a readable representation of vaulted payment source associated with the payment token id.",
"summary": "Retrieve a payment token",
"operationId": "payment-tokens.get",
"responses": {
"200": {
"description": "Successful execution.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/payment_token_response"
}
}
}
},
"403": {
"description": "Authorization failed due to insufficient permissions.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/error"
}
}
}
},
"404": {
"description": "The specified resource does not exist.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/error"
}
}
}
},
"422": {
"description": "The requested action could not be performed, semantically incorrect, or failed business validation.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/error"
}
}
}
},
"500": {
"description": "An internal server error has occurred.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/error"
}
}
}
}
},
"parameters": [
{
"$ref": "#/components/parameters/id"
}
],
"security": [
{
"Oauth2": [
"https://uri.paypal.com/services/vault/payment-tokens/readwrite"
]
}
],
"tags": ["payment-tokens"]
},
"delete": {
"description": "Delete the payment token associated with the payment token id.",
"summary": "Delete payment token",
"operationId": "payment-tokens.delete",
"responses": {
"204": {
"description": "The server has successfully executed the method, but there is no entity body to return."
},
"400": {
"description": "Request is not well-formed, syntactically incorrect, or violates schema.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/error"
}
}
}
},
"403": {
"description": "Authorization failed due to insufficient permissions.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/error"
}
}
}
},
"500": {
"description": "An internal server error has occurred.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/error"
}
}
}
}
},
"parameters": [
{
"$ref": "#/components/parameters/id"
}
],
"security": [
{
"Oauth2": [
"https://uri.paypal.com/services/vault/payment-tokens/readwrite"
]
}
],
"tags": ["payment-tokens"]
}
},
"/v3/vault/setup-tokens": {
"post": {
"description": "Creates a Setup Token from the given payment source and adds it to the Vault of the associated customer.",
"summary": "Create a setup token",
"operationId": "setup-tokens.create",
"responses": {
"200": {
"description": "Idempotent response for a successful creation of setup token.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/setup_token_response"
},
"examples": {
"setup_token_response": {
"value": {
"id": "5C991763VB2781612",
"customer": {
"id": "customer_4029352050"
},
"status": "APPROVED",
"payment_source": {
"card": {
"last_digits": "1111",
"expiry": "2027-02",
"name": "John Doe",
"billing_address": {
"address_line_1": "2211 N First Street",
"address_line_2": "17.3.160",
"admin_area_1": "CA",
"admin_area_2": "San Jose",
"postal_code": "95131",
"country_code": "US"
}
}
},
"links": [
{
"rel": "self",
"href": "https://api-m.paypal.com/v3/vault/setup-tokens/5C991763VB2781612",
"method": "GET",
"encType": "application/json"
},
{
"rel": "confirm",
"href": "https://api-m.paypal.com/v3/vault/payment-token",
"method": "POST",
"encType": "application/json"
}
]
}
}
}
}
}
},
"201": {
"description": "A successful creation of setup token.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/setup_token_response"
},
"examples": {
"setup_token_response": {
"value": {
"id": "5C991763VB2781612",
"customer": {
"id": "customer_4029352050"
},
"status": "APPROVED",
"payment_source": {
"card": {
"last_digits": "1111",
"expiry": "2027-02",
"name": "John Doe",
"billing_address": {
"address_line_1": "2211 N First Street",
"address_line_2": "17.3.160",
"admin_area_1": "CA",
"admin_area_2": "San Jose",
"postal_code": "95131",
"country_code": "US"
}
}
},
"links": [
{
"rel": "self",
"href": "https://api-m.paypal.com/v3/vault/setup-tokens/5C991763VB2781612",
"method": "GET",
"encType": "application/json"
},
{
"rel": "confirm",
"href": "https://api-m.paypal.com/v3/vault/payment-token",
"method": "POST",
"encType": "application/json"
}
]
}
}
}
}
}
},
"400": {
"description": "Request is not well-formed, syntactically incorrect, or violates schema.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/error"
}
}
}
},
"403": {
"description": "Authorization failed due to insufficient permissions.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/error"
}
}
}
},
"422": {
"description": "The requested action could not be performed, semantically incorrect, or failed business validation.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/error"
}
}
}
},
"500": {
"description": "An internal server error has occurred.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/error"
}
}
}
}
},
"parameters": [
{
"$ref": "#/components/parameters/paypal_request_id"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/setup_token_request"
},
"examples": {
"setup_token_request": {
"value": {
"payment_source": {
"card": {
"number": "4111111111111111",
"expiry": "2027-02",
"name": "John Doe",
"billing_address": {
"address_line_1": "2211 N First Street",
"address_line_2": "17.3.160",
"admin_area_1": "CA",
"admin_area_2": "San Jose",
"postal_code": "95131",
"country_code": "US"
},
"experience_context": {
"brand_name": "YourBrandName",
"locale": "en-US",
"return_url": "https://example.com/returnUrl",
"cancel_url": "https://example.com/cancelUrl"
}
}
}
}
}
}
}
},
"description": "Setup Token creation with a instrument type optional financial instrument details and customer_id.",
"required": true
},
"security": [
{
"Oauth2": [
"https://uri.paypal.com/services/vault/payment-tokens/read"
]
}
],
"tags": ["setup-tokens"]
}
},
"/v3/vault/setup-tokens/{id}": {
"get": {
"description": "Returns a readable representation of temporarily vaulted payment source associated with the setup token id.",
"summary": "Retrieve a setup token",
"operationId": "setup-tokens.get",
"responses": {
"200": {
"description": "Found requested setup-token, returned a payment method associated with the token.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/setup_token_response"
}
}
}
},
"403": {
"description": "Authorization failed due to insufficient permissions.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/error"
}
}
}
},
"404": {
"description": "The specified resource does not exist.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/error"
}
}
}
},
"422": {
"description": "The requested action could not be performed, semantically incorrect, or failed business validation.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/error"
}
}
}
},
"500": {
"description": "An internal server error has occurred.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/error"
}
}
}
}
},
"parameters": [
{
"$ref": "#/components/parameters/id"
}
],
"security": [
{
"Oauth2": [
"https://uri.paypal.com/services/vault/payment-tokens/read"
]
}
],
"tags": ["setup-tokens"]
}
}
},
"components": {
"securitySchemes": {
"Oauth2": {
"type": "oauth2",
"description": "Oauth 2.0 authentication",
"flows": {
"clientCredentials": {
"tokenUrl": "/v1/oauth2/token",
"scopes": {
"https://uri.paypal.com/services/vault/payment-tokens/readwrite": "Manage payment instruments",
"https://uri.paypal.com/services/vault/payment-tokens/read": "Permission to only read from vault",
"https://uri.paypal.com/services/vault/customers/read": "Permission to read customer information.",
"https://uri.paypal.com/services/vault/customers/readwrite": "Permission to create/update customer information."
}
}
}
}
},
"schemas": {
"account_id": {
"type": "string",
"title": "PayPal Account Identifier",
"description": "The account identifier for a PayPal account.",
"format": "ppaas_payer_id_v3",
"minLength": 13,
"maxLength": 13,
"pattern": "^[2-9A-HJ-NP-Z]{13}$"
},
"apple_pay_payment_token_response": {
"type": "object",
"title": "Apple Pay Response",
"description": "A resource representing a response for Apple Pay.",
"properties": {
"card": {
"type": "object",
"title": "Apple Pay Card",
"description": "The payment card to be used to fund a payment. Can be a credit or debit card.",
"properties": {
"name": {
"type": "string",
"description": "The card holder's name as it appears on the card.",
"maxLength": 300,
"minLength": 1,
"pattern": "^.{1,300}$"
},
"last_digits": {
"type": "string",
"description": "The last digits of the payment card.",
"pattern": "^[0-9]{2,4}$",
"minLength": 2,
"maxLength": 4,
"readOnly": true
},
"type": {
"description": "The payment card type.",
"$ref": "#/components/schemas/card_type"
},
"brand": {
"description": "The card brand or network. Typically used in the response.",
"$ref": "#/components/schemas/card_brand"
},
"billing_address": {
"description": "The portable international postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).",
"type": "object",
"title": "Portable Postal Address (Medium-Grained)",
"properties": {
"address_line_1": {
"type": "string",
"description": "The first line of the address, such as number and street, for example, `173 Drury Lane`. Needed for data entry, and Compliance and Risk checks. This field needs to pass the full address.",
"maxLength": 300
},
"address_line_2": {
"type": "string",
"description": "The second line of the address, for example, a suite or apartment number.",
"maxLength": 300
},
"admin_area_2": {
"type": "string",
"description": "A city, town, or village. Smaller than `admin_area_level_1`.",
"maxLength": 120
},
"admin_area_1": {
"type": "string",
"description": "The highest-level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision. This data is formatted for postal delivery, for example, `CA` and not `California`. Value, by country, is:
1 and 999 for total_cycles). Regular billing cycles can be executed infinite times (value of 0 for total_cycles) or a finite number of times (value between 1 and 999 for total_cycles).",
"minimum": 0,
"maximum": 999,
"default": 1,
"format": "int32"
},
"sequence": {
"type": "integer",
"description": "The order in which this cycle is to run among other billing cycles. For example, a trial billing cycle has a `sequence` of `1` while a regular billing cycle has a `sequence` of `2`, so that trial cycle runs before the regular cycle.",
"minimum": 1,
"maximum": 3,
"default": 1,
"format": "int32"
},
"start_date": {
"description": "The start date for the billing cycle, in YYYY-MM-DD. This field should be not be provided if the billing cycle starts at the time of checkout. When this field is not provided, the billing cycle amount will be included in any data validations confirming that the total provided by the merchant match the sum of individual items due at the time of checkout. Only one billing cycle (with sequence equal to 1) can have a no start date.",
"$ref": "#/components/schemas/date_no_time"
}
},
"required": ["tenure_type"]
},
"billing_cycle_list": {
"type": "array",
"description": "An array of billing cycles for trial billing and regular billing. A plan can have at most two trial cycles and only one regular cycle.",
"minItems": 1,
"maxItems": 3,
"items": {
"$ref": "#/components/schemas/billing_cycle"
}
},
"bin_details": {
"type": "object",
"title": "Bin Details",
"description": "Bank Identification Number (BIN) details used to fund a payment.",
"properties": {
"bin": {
"type": "string",
"description": "The Bank Identification Number (BIN) signifies the number that is being used to identify the granular level details (except the PII information) of the card.",
"pattern": "^[0-9]+$",
"maxLength": 25,
"minLength": 1
},
"issuing_bank": {
"type": "string",
"description": "The issuer of the card instrument.",
"minLength": 1,
"maxLength": 64
},
"bin_country_code": {
"description": "The [two-character ISO-3166-1 country code](/docs/integration/direct/rest/country-codes/) of the bank.",
"$ref": "#/components/schemas/country_code-2"
},
"products": {
"$ref": "#/components/schemas/products_list"
}
}
},
"card_brand": {
"type": "string",
"title": "Card Brand",
"description": "The card network or brand. Applies to credit, debit, gift, and payment cards.",
"minLength": 1,
"maxLength": 255,
"pattern": "^[A-Z_]+$",
"x-enumDescriptions": [
{
"value": "VISA",
"description": "Visa card."
},
{
"value": "MASTERCARD",
"description": "Mastecard card."
},
{
"value": "DISCOVER",
"description": "Discover card."
},
{
"value": "AMEX",
"description": "American Express card."
},
{
"value": "SOLO",
"description": "Solo debit card."
},
{
"value": "JCB",
"description": "Japan Credit Bureau card."
},
{
"value": "STAR",
"description": "Military Star card."
},
{
"value": "DELTA",
"description": "Delta Airlines card."
},
{
"value": "SWITCH",
"description": "Switch credit card."
},
{
"value": "MAESTRO",
"description": "Maestro credit card."
},
{
"value": "CB_NATIONALE",
"description": "Carte Bancaire (CB) credit card."
},
{
"value": "CONFIGOGA",
"description": "Configoga credit card."
},
{
"value": "CONFIDIS",
"description": "Confidis credit card."
},
{
"value": "ELECTRON",
"description": "Visa Electron credit card."
},
{
"value": "CETELEM",
"description": "Cetelem credit card."
},
{
"value": "CHINA_UNION_PAY",
"description": "China union pay credit card."
},
{
"value": "DINERS",
"description": "The Diners Club International banking and payment services capability network owned by Discover Financial Services (DFS), one of the most recognized brands in US financial services."
},
{
"value": "ELO",
"description": "The Brazilian Elo card payment network."
},
{
"value": "HIPER",
"description": "The Hiper - Ingenico ePayment network."
},
{
"value": "HIPERCARD",
"description": "The Brazilian Hipercard payment network that's widely accepted in the retail market."
},
{
"value": "RUPAY",
"description": "The RuPay payment network."
},
{
"value": "GE",
"description": "The GE Credit Union 3Point card payment network."
},
{
"value": "SYNCHRONY",
"description": "The Synchrony Financial (SYF) payment network."
},
{
"value": "EFTPOS",
"description": "The Electronic Fund Transfer At Point of Sale(EFTPOS) Debit card payment network."
},
{
"value": "UNKNOWN",
"description": "UNKNOWN payment network."
}
],
"enum": [
"VISA",
"MASTERCARD",
"DISCOVER",
"AMEX",
"SOLO",
"JCB",
"STAR",
"DELTA",
"SWITCH",
"MAESTRO",
"CB_NATIONALE",
"CONFIGOGA",
"CONFIDIS",
"ELECTRON",
"CETELEM",
"CHINA_UNION_PAY",
"DINERS",
"ELO",
"HIPER",
"HIPERCARD",
"RUPAY",
"GE",
"SYNCHRONY",
"EFTPOS",
"UNKNOWN"
]
},
"card_response": {
"type": "object",
"title": "Card Response",
"description": "Full representation of a Card Payment Token including network token.",
"allOf": [
{
"$ref": "#/components/schemas/card_response_entity"
},
{
"properties": {
"network_token": {
"$ref": "#/components/schemas/network_token_entity"
}
}
}
]
},
"card_response_entity": {
"type": "object",
"title": "Card Response Entity",
"description": "Full representation of a Card Payment Token.",
"properties": {
"name": {
"type": "string",
"description": "The card holder's name as it appears on the card.",
"minLength": 2,
"maxLength": 300,
"pattern": "^[A-Za-z ]+$"
},
"last_digits": {
"type": "string",
"description": "The last digits of the payment card.",
"pattern": "[0-9]{2,}",
"minLength": 2,
"maxLength": 4,
"readOnly": true
},
"brand": {
"description": "The card brand or network. Typically used in the response.",
"readOnly": true,
"$ref": "#/components/schemas/card_brand"
},
"expiry": {
"description": "The card expiration year and month, in [Internet date format](https://tools.ietf.org/html/rfc3339#section-5.6).",
"$ref": "#/components/schemas/date_year_month"
},
"billing_address": {
"type": "object",
"title": "Address request details.",
"description": "Address request details.",
"properties": {
"address_line_1": {
"type": "string",
"description": "The first line of the address, such as number and street, for example, `173 Drury Lane`. Needed for data entry, and Compliance and Risk checks. This field needs to pass the full address.",
"maxLength": 300
},
"address_line_2": {
"type": "string",
"description": "The second line of the address, for example, a suite or apartment number.",
"maxLength": 300
},
"admin_area_2": {
"type": "string",
"description": "A city, town, or village. Smaller than `admin_area_level_1`.",
"maxLength": 120
},
"admin_area_1": {
"type": "string",
"description": "The highest-level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision. This data is formatted for postal delivery, for example, `CA` and not `California`. Value, by country, is:Note: The country code for Great Britain is", "format": "ppaas_common_country_code_v2", "maxLength": 2, "minLength": 2, "pattern": "^([A-Z]{2}|C2)$" }, "country_code-2": { "type": "string", "description": "The [two-character ISO 3166-1 code](/api/rest/reference/country-codes/) that identifies the country or region.GBand notUKas used in the top-level domain names for that country. Use the `C2` country code for China worldwide for comparable uncontrolled price (CUP) method, bank card, and cross-border transactions.
Note: The country code for Great Britain is", "format": "ppaas_common_country_code_v2", "maxLength": 2, "minLength": 2, "pattern": "^([A-Z]{2}|C2)$" }, "currency_code": { "description": "The [three-character ISO-4217 currency code](/api/rest/reference/currency-codes/) that identifies the currency.", "type": "string", "minLength": 3, "maxLength": 3, "x-security-classification": { "data_class": "class4", "data_category": "INTRINSIC" } }, "customer": { "type": "object", "title": "Customer Request", "description": "This object defines a customer in your system. Use it to manage customer profiles, save payment methods and contact details.", "properties": { "id": { "description": "The unique ID for a customer in merchant's or partner's system of records.", "$ref": "#/components/schemas/merchant_partner_customer_id" }, "merchant_customer_id": { "type": "string", "description": "Merchants and partners may already have a data-store where their customer information is persisted. Use merchant_customer_id to associate the PayPal-generated customer.id to your representation of a customer.", "minLength": 1, "maxLength": 64, "pattern": "^[0-9a-zA-Z-_.^*$@#]+$" } } }, "customer_vault_payment_tokens_response": { "title": "Vault of a customer", "description": "Collection of payment tokens saved for a given customer.", "properties": { "total_items": { "type": "integer", "description": "Total number of items.", "minimum": 1, "maximum": 50 }, "total_pages": { "type": "integer", "description": "Total number of pages.", "minimum": 1, "maximum": 10 }, "customer": { "type": "object", "title": "Customer Request", "description": "This object defines a customer in your system. Use it to manage customer profiles, save payment methods and contact details.", "properties": { "id": { "description": "The unique ID for a customer in merchant's or partner's system of records.", "$ref": "#/components/schemas/merchant_partner_customer_id" }, "merchant_customer_id": { "type": "string", "description": "Merchants and partners may already have a data-store where their customer information is persisted. Use merchant_customer_id to associate the PayPal-generated customer.id to your representation of a customer.", "minLength": 1, "maxLength": 64, "pattern": "^[0-9a-zA-Z-_.^*$@#]+$" } } }, "payment_tokens": { "$ref": "#/components/schemas/payment_token_response_list" }, "links": { "$ref": "#/components/schemas/link_description_list" } } }, "date_no_time": { "type": "string", "description": "The stand-alone date, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). To represent special legal values, such as a date of birth, you should use dates with no associated time or time-zone data. Whenever possible, use the standard `date_time` type. This regular expression does not validate all dates. For example, February 31 is valid and nothing is known about leap years.", "format": "ppaas_date_notime_v2", "minLength": 10, "maxLength": 10, "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$" }, "date_time": { "type": "string", "description": "The date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are required while fractional seconds are optional.GBand notUKas used in the top-level domain names for that country. Use the `C2` country code for China worldwide for comparable uncontrolled price (CUP) method, bank card, and cross-border transactions.
Note: The regular expression provides guidance but does not reject all invalid dates.", "format": "ppaas_date_time_v3", "minLength": 20, "maxLength": 64, "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" }, "date_year_month": { "type": "string", "description": "The year and month, in ISO-8601 `YYYY-MM` date format. See [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6).", "minLength": 7, "maxLength": 7, "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])$" }, "definitions-link_description_list": { "type": "array", "description": "An array of request-related [HATEOAS links](/api/rest/responses/#hateoas-links) that are either relevant to the issue by providing additional information or offering potential resolutions.", "readOnly": true, "minItems": 1, "maxItems": 4, "items": { "$ref": "#/components/schemas/link_description" } }, "definitions-payment_source": { "title": "Payment source request", "description": "The payment method to vault with the instrument details.", "type": "object", "properties": { "card": { "type": "object", "title": "Card Request", "description": "A Resource representing a request to vault a Card.", "properties": { "name": { "type": "string", "description": "The card holder's name as it appears on the card.", "maxLength": 300, "minLength": 1, "pattern": "^.{1,300}$" }, "number": { "type": "string", "description": "The primary account number (PAN) for the payment card.", "pattern": "^[0-9]{13,19}$", "minLength": 13, "maxLength": 19 }, "expiry": { "description": "The card expiration year and month, in [Internet date format](https://tools.ietf.org/html/rfc3339#section-5.6).", "$ref": "#/components/schemas/date_year_month" }, "security_code": { "type": "string", "description": "The three- or four-digit security code of the card. Also known as the CVV, CVC, CVN, CVE, or CID. This parameter cannot be present in the request when `payment_initiator=MERCHANT`.", "pattern": "^[0-9]{3,4}$", "minLength": 3, "maxLength": 4 }, "brand": { "description": "The card brand or network. Typically used in the response.", "$ref": "#/components/schemas/card_brand" }, "billing_address": { "description": "The portable international postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", "type": "object", "title": "Portable Postal Address (Medium-Grained)", "properties": { "address_line_1": { "type": "string", "description": "The first line of the address, such as number and street, for example, `173 Drury Lane`. Needed for data entry, and Compliance and Risk checks. This field needs to pass the full address.", "maxLength": 300 }, "address_line_2": { "type": "string", "description": "The second line of the address, for example, a suite or apartment number.", "maxLength": 300 }, "admin_area_2": { "type": "string", "description": "A city, town, or village. Smaller than `admin_area_level_1`.", "maxLength": 120 }, "admin_area_1": { "type": "string", "description": "The highest-level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision. This data is formatted for postal delivery, for example, `CA` and not `California`. Value, by country, is:
Note: Up to 64 characters are allowed before and 255 characters are allowed after the", "format": "merchant_common_email_address_v2", "maxLength": 254, "minLength": 3, "pattern": "(?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*|(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])" }, "enrolled": { "type": "string", "minLength": 1, "maxLength": 255, "pattern": "^[0-9A-Z_]+$", "description": "Status of Authentication eligibility.", "x-enumDescriptions": [ { "value": "Y", "description": "Yes. The bank is participating in 3-D Secure protocol and will return the ACSUrl." }, { "value": "N", "description": "No. The bank is not participating in 3-D Secure protocol." }, { "value": "U", "description": "Unavailable. The DS or ACS is not available for authentication at the time of the request." }, { "value": "B", "description": "Bypass. The merchant authentication rule is triggered to bypass authentication." } ], "enum": ["Y", "N", "U", "B"] }, "error": { "type": "object", "title": "Error", "description": "The error details.", "properties": { "name": { "type": "string", "description": "The human-readable, unique name of the error." }, "message": { "type": "string", "description": "The message that describes the error." }, "debug_id": { "type": "string", "description": "The PayPal internal ID. Used for correlation purposes." }, "details": { "$ref": "#/components/schemas/error_details_list" }, "links": { "$ref": "#/components/schemas/error_definitions-link_description_list" } }, "required": ["name", "message", "debug_id"] }, "error_400": { "type": "object", "title": "Bad Request Error", "description": "Request is not well-formed, syntactically incorrect, or violates schema.", "properties": { "name": { "type": "string", "enum": ["INVALID_REQUEST"] }, "message": { "type": "string", "enum": [ "Request is not well-formed, syntactically incorrect, or violates schema." ] }, "details": { "type": "array", "items": { "$ref": "#/components/schemas/error_details" } }, "debug_id": { "type": "string", "description": "The PayPal internal ID. Used for correlation purposes." }, "links": { "description": "An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS).", "type": "array", "minItems": 0, "maxItems": 10000, "items": { "$ref": "#/components/schemas/error_link_description" } } } }, "error_401": { "type": "object", "title": "Unauthorized Error", "description": "Authentication failed due to missing Authorization header, or invalid authentication credentials.", "properties": { "name": { "type": "string", "enum": ["AUTHENTICATION_FAILURE"] }, "message": { "type": "string", "enum": [ "Authentication failed due to missing authorization header, or invalid authentication credentials." ] }, "details": { "type": "array", "items": { "$ref": "#/components/schemas/error_details" } }, "debug_id": { "type": "string", "description": "The PayPal internal ID. Used for correlation purposes." }, "links": { "description": "An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS).", "type": "array", "minItems": 0, "maxItems": 10000, "items": { "$ref": "#/components/schemas/error_link_description" } } } }, "error_403": { "type": "object", "title": "Not Authorized Error", "description": "The client is not authorized to access this resource, although it may have valid credentials. ", "properties": { "name": { "type": "string", "enum": ["NOT_AUTHORIZED"] }, "message": { "type": "string", "enum": ["Authorization failed due to insufficient permissions."] }, "details": { "type": "array", "items": { "$ref": "#/components/schemas/error_details" } }, "debug_id": { "type": "string", "description": "The PayPal internal ID. Used for correlation purposes." }, "links": { "description": "An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS).", "type": "array", "minItems": 0, "maxItems": 10000, "items": { "$ref": "#/components/schemas/error_link_description" } } } }, "error_404": { "type": "object", "title": "Not found Error", "description": "The server has not found anything matching the request URI. This either means that the URI is incorrect or the resource is not available.", "properties": { "name": { "type": "string", "enum": ["RESOURCE_NOT_FOUND"] }, "message": { "type": "string", "enum": ["The specified resource does not exist."] }, "details": { "type": "array", "items": { "$ref": "#/components/schemas/error_details" } }, "debug_id": { "type": "string", "description": "The PayPal internal ID. Used for correlation purposes." }, "links": { "description": "An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS).", "type": "array", "minItems": 0, "maxItems": 10000, "items": { "$ref": "#/components/schemas/error_link_description" } } } }, "error_409": { "type": "object", "title": "Resource Conflict Error", "description": "The server has detected a conflict while processing this request.", "properties": { "name": { "type": "string", "enum": ["RESOURCE_CONFLICT"] }, "message": { "type": "string", "enum": [ "The server has detected a conflict while processing this request." ] }, "details": { "type": "array", "items": { "$ref": "#/components/schemas/error_details" } }, "debug_id": { "type": "string", "description": "The PayPal internal ID. Used for correlation purposes." }, "links": { "description": "An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS).", "type": "array", "minItems": 0, "maxItems": 10000, "items": { "$ref": "#/components/schemas/error_link_description" } } } }, "error_415": { "type": "object", "title": "Unsupported Media Type Error", "description": "The server does not support the request payload's media type.", "properties": { "name": { "type": "string", "enum": ["UNSUPPORTED_MEDIA_TYPE"] }, "message": { "type": "string", "enum": [ "The server does not support the request payload's media type." ] }, "details": { "type": "array", "items": { "$ref": "#/components/schemas/error_details" } }, "debug_id": { "type": "string", "description": "The PayPal internal ID. Used for correlation purposes." }, "links": { "description": "An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS).", "type": "array", "minItems": 0, "maxItems": 10000, "items": { "$ref": "#/components/schemas/error_link_description" } } } }, "error_422": { "type": "object", "title": "Unprocessable Entity Error", "description": "The requested action cannot be performed and may require interaction with APIs or processes outside of the current request. This is distinct from a 500 response in that there are no systemic problems limiting the API from performing the request.", "properties": { "name": { "type": "string", "enum": ["UNPROCESSABLE_ENTITY"] }, "message": { "type": "string", "enum": [ "The requested action could not be performed, semantically incorrect, or failed business validation." ] }, "details": { "type": "array", "items": { "$ref": "#/components/schemas/error_details" } }, "debug_id": { "type": "string", "description": "The PayPal internal ID. Used for correlation purposes." }, "links": { "description": "An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS).", "type": "array", "minItems": 0, "maxItems": 10000, "items": { "$ref": "#/components/schemas/error_link_description" } } } }, "error_500": { "type": "object", "title": "Internal Server Error", "description": "This is either a system or application error, and generally indicates that although the client appeared to provide a correct request, something unexpected has gone wrong on the server.", "properties": { "name": { "type": "string", "enum": ["INTERNAL_SERVER_ERROR"] }, "message": { "type": "string", "enum": ["An internal server error occurred."] }, "debug_id": { "type": "string", "description": "The PayPal internal ID. Used for correlation purposes." }, "links": { "description": "An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS).", "type": "array", "minItems": 0, "maxItems": 10000, "items": { "$ref": "#/components/schemas/error_link_description" } } }, "example": { "name": "INTERNAL_SERVER_ERROR", "message": "An internal server error occurred.", "debug_id": "90957fca61718", "links": [ { "href": "https://developer.paypal.com/api/orders/v2/#error-INTERNAL_SERVER_ERROR", "rel": "information_link" } ] } }, "error_503": { "type": "object", "title": "Service Unavailable Error", "description": "The server is temporarily unable to handle the request, for example, because of planned maintenance or downtime.", "properties": { "name": { "type": "string", "enum": ["SERVICE_UNAVAILABLE"] }, "message": { "type": "string", "enum": ["Service Unavailable."] }, "debug_id": { "type": "string", "description": "The PayPal internal ID. Used for correlation purposes." }, "links": { "description": "An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS).", "type": "array", "minItems": 0, "maxItems": 10000, "items": { "$ref": "#/components/schemas/error_link_description" } } }, "example": { "name": "SERVICE_UNAVAILABLE", "message": "Service Unavailable.", "debug_id": "90957fca61718", "information_link": "https://developer.paypal.com/docs/api/orders/v2/#error-SERVICE_UNAVAILABLE" } }, "error_default": { "description": "The default error response.", "oneOf": [ { "$ref": "#/components/schemas/error_400" }, { "$ref": "#/components/schemas/error_401" }, { "$ref": "#/components/schemas/error_403" }, { "$ref": "#/components/schemas/error_404" }, { "$ref": "#/components/schemas/error_409" }, { "$ref": "#/components/schemas/error_415" }, { "$ref": "#/components/schemas/error_422" }, { "$ref": "#/components/schemas/error_500" }, { "$ref": "#/components/schemas/error_503" } ] }, "error_definitions-link_description_list": { "type": "array", "description": "An array of request-related [HATEOAS links](/api/rest/responses/#hateoas-links).", "readOnly": true, "items": { "$ref": "#/components/schemas/link_description" } }, "error_details": { "title": "Error Details", "type": "object", "description": "The error details. Required for client-side `4XX` errors.", "properties": { "field": { "type": "string", "description": "The field that caused the error. If this field is in the body, set this value to the field's JSON pointer value. Required for client-side errors." }, "value": { "type": "string", "description": "The value of the field that caused the error." }, "location": { "$ref": "#/components/schemas/error_location" }, "issue": { "type": "string", "description": "The unique, fine-grained application-level error code." }, "description": { "type": "string", "description": "The human-readable description for an issue. The description can change over the lifetime of an API, so clients must not depend on this value." } }, "required": ["issue"] }, "error_details-2": { "title": "Error Details", "type": "object", "description": "The error details. Required for client-side `4XX` errors.", "properties": { "field": { "type": "string", "description": "The field that caused the error. If this field is in the body, set this value to the field's JSON pointer value. Required for client-side errors." }, "value": { "type": "string", "description": "The value of the field that caused the error." }, "location": { "type": "string", "description": "The location of the field that caused the error. Value is `body`, `path`, or `query`.", "default": "body" }, "issue": { "type": "string", "description": "The unique, fine-grained application-level error code." }, "links": { "$ref": "#/components/schemas/definitions-link_description_list" }, "description": { "type": "string", "description": "The human-readable description for an issue. The description can change over the lifetime of an API, so clients must not depend on this value." } }, "required": ["issue"] }, "error_details_list": { "type": "array", "description": "An array of additional details about the error.", "items": { "$ref": "#/components/schemas/error_details-2" } }, "error_link_description": { "title": "Link Description", "description": "The request-related [HATEOAS link](/api/rest/responses/#hateoas-links) information.", "type": "object", "required": ["href", "rel"], "properties": { "href": { "description": "The complete target URL. To make the related call, combine the method with this [URI Template-formatted](https://tools.ietf.org/html/rfc6570) link. For pre-processing, include the `$`, `(`, and `)` characters. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", "type": "string", "minLength": 0, "maxLength": 20000, "pattern": "^.*$" }, "rel": { "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which serves as an ID for a link that unambiguously describes the semantics of the link. See [Link Relations](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", "type": "string", "minLength": 0, "maxLength": 100, "pattern": "^.*$" }, "method": { "description": "The HTTP method required to make the related call.", "type": "string", "minLength": 3, "maxLength": 6, "pattern": "^[A-Z]*$", "enum": ["GET", "POST", "PUT", "DELETE", "PATCH"] } } }, "error_location": { "type": "string", "description": "The location of the field that caused the error. Value is `body`, `path`, or `query`.", "enum": ["body", "path", "query"], "default": "body" }, "experience_context": { "type": "object", "title": "Experience Context", "description": "Customizes the Vault creation flow experience for your customers.", "properties": { "brand_name": { "type": "string", "description": "The label that overrides the business name in the PayPal account on the PayPal site. The pattern is defined by an external party and supports Unicode.", "minLength": 1, "maxLength": 300, "pattern": "^.*$" }, "locale": { "description": "The BCP 47-formatted locale of pages that the PayPal vaulting experience shows. PayPal supports a five-character code. For example, `DA-DK`, `HE-IL`, `ID-ID`, `JA-JP`, `NO-NO`, `PT-BR`, `RU-RU`, `SV-SE`, `TH-TH`, `ZH-CN`, `ZH-HK`, or `ZH-TW`.", "$ref": "#/components/schemas/language" }, "return_url": { "type": "string", "format": "uri", "minLength": 1, "maxLength": 4000, "description": "The URL where the customer is redirected after customer approves leaves the flow. It is a required field for contingency flows like PayPal wallet, 3DS." }, "cancel_url": { "type": "string", "format": "uri", "minLength": 1, "maxLength": 4000, "description": "The URL where the customer is redirected after customer cancels or leaves the flow. It is a required field for contingency flows like PayPal wallet, 3DS." }, "shipping_preference": { "type": "string", "description": "The shipping preference. This only applies to PayPal payment source.", "default": "GET_FROM_FILE", "minLength": 1, "maxLength": 255, "pattern": "^[0-9A-Z_]+$", "x-enumDescriptions": [ { "value": "GET_FROM_FILE", "description": "Use the payer-provided shipping address on the PayPal site." }, { "value": "NO_SHIPPING", "description": "Redact the shipping address from the PayPal site. Recommended for digital goods." }, { "value": "SET_PROVIDED_ADDRESS", "description": "Use the merchant/platform-provided address. The payer cannot change this address on the PayPal site. If the merchant does not pass an address, the customer can choose the address on the PayPal site." } ], "enum": ["GET_FROM_FILE", "NO_SHIPPING", "SET_PROVIDED_ADDRESS"] }, "vault_instruction": { "description": "Vault Instruction on action to be performed after a successful payer approval.", "$ref": "#/components/schemas/vault_instruction" } } }, "frequency": {}, "language": { "type": "string", "description": "The [language tag](https://tools.ietf.org/html/bcp47#section-2) for the language in which to localize the error-related strings, such as messages, issues, and suggested actions. The tag is made up of the [ISO 639-2 language code](https://www.loc.gov/standards/iso639-2/php/code_list.php), the optional [ISO-15924 script tag](https://www.unicode.org/iso15924/codelists.html), and the [ISO-3166 alpha-2 country code](/api/rest/reference/country-codes/) or [M49 region code](https://unstats.un.org/unsd/methodology/m49/).", "format": "ppaas_common_language_v3", "maxLength": 10, "minLength": 2, "pattern": "^[a-z]{2}(?:-[A-Z][a-z]{3})?(?:-(?:[A-Z]{2}|[0-9]{3}))?$" }, "link_description": { "type": "object", "title": "Link Description", "description": "The request-related [HATEOAS link](/api/rest/responses/#hateoas-links) information.", "required": ["href", "rel"], "properties": { "href": { "type": "string", "description": "The complete target URL. To make the related call, combine the method with this [URI Template-formatted](https://tools.ietf.org/html/rfc6570) link. For pre-processing, include the `$`, `(`, and `)` characters. The `href` is the key HATEOAS component that links a completed call with a subsequent call." }, "rel": { "type": "string", "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which serves as an ID for a link that unambiguously describes the semantics of the link. See [Link Relations](https://www.iana.org/assignments/link-relations/link-relations.xhtml)." }, "method": { "type": "string", "description": "The HTTP method required to make the related call.", "enum": [ "GET", "POST", "PUT", "DELETE", "HEAD", "CONNECT", "OPTIONS", "PATCH" ] } } }, "link_description_list": { "description": "An array of related [HATEOAS links](/api/rest/responses/#hateoas).", "readOnly": true, "type": "array", "minItems": 1, "maxItems": 32, "items": { "$ref": "#/components/schemas/link_description" } }, "merchant_partner_customer_id": { "type": "string", "description": "The unique ID for a customer generated by PayPal.", "minLength": 1, "maxLength": 22, "pattern": "^[0-9a-zA-Z_-]+$" }, "money": { "type": "object", "title": "Money", "description": "The currency and amount for a financial transaction, such as a balance or payment due.", "properties": { "currency_code": { "$ref": "#/components/schemas/currency_code" }, "value": { "type": "string", "description": "The value, which might be:@sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted@sign exists.