PayPal Checkout

Online payment processing

developer.paypal.com/api ↗
Version
2.13
OpenAPI
3.0.3
Endpoints
8
Schemas
240
Updated
about 2 hours ago
Payments payments ecommerce finance
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://api-m.sandbox.paypal.com
https://api-m.paypal.com

Authentication

oauth2

Endpoints

Clear filters

Orders 1 endpoints

PATCH /v2/checkout/orders/{id}

Updates an order with a `CREATED` or `APPROVED` status. You cannot update an order with the `COMPLETED` status.<br/><br/>To make an update, you must provide a `reference_id`. If you omit this value with an order that contains only one purchase unit, PayPal sets the value to `default` which enables you to use the path: <code>\"/purchase_units/@reference_id=='default'/{attribute-or-object}\"</code>. Merchants and partners can add Level 2 and 3 data to payments to reduce risk and payment processing costs. For more information about processing payments, see <a href="https://developer.paypal.com/docs/checkout/advanced/processing/">checkout</a> or <a href="https://developer.paypal.com/docs/multiparty/checkout/advanced/processing/">multiparty checkout</a>.<blockquote><strong>Note:</strong> For error handling and troubleshooting, see <a href=\"/api/rest/reference/orders/v2/errors/#patch-order\">Orders v2 errors</a>.</blockquote>Patchable attributes or objects:<br/><br/><table><thead><th>Attribute</th><th>Op</th><th>Notes</th></thead><tbody><tr><td><code>intent</code></td><td>replace</td><td></td></tr><tr><td><code>payer</code></td><td>replace, add</td><td>Using replace op for <code>payer</code> will replace the whole <code>payer</code> object with the value sent in request.</td></tr><tr><td><code>purchase_units</code></td><td>replace, add</td><td></td></tr><tr><td><code>purchase_units[].custom_id</code></td><td>replace, add, remove</td><td></td></tr><tr><td><code>purchase_units[].description</code></td><td>replace, add, remove</td><td></td></tr><tr><td><code>purchase_units[].payee.email</code></td><td>replace</td><td></td></tr><tr><td><code>purchase_units[].shipping.name</code></td><td>replace, add</td><td></td></tr><tr><td><code>purchase_units[].shipping.address</code></td><td>replace, add</td><td></td></tr><tr><td><code>purchase_units[].shipping.type</code></td><td>replace, add</td><td></td></tr><tr><td><code>purchase_units[].soft_descriptor</code></td><td>replace, remove</td><td></td></tr><tr><td><code>purchase_units[].amount</code></td><td>replace</td><td></td></tr><tr><td><code>purchase_units[].items</code></td><td>replace, add, remove</td><td></td></tr><tr><td><code>purchase_units[].invoice_id</code></td><td>replace, add, remove</td><td></td></tr><tr><td><code>purchase_units[].payment_instruction</code></td><td>replace</td><td></td></tr><tr><td><code>purchase_units[].payment_instruction.disbursement_mode</code></td><td>replace</td><td>By default, <code>disbursement_mode</code> is <code>INSTANT</code>.</td></tr><tr><td><code>purchase_units[].payment_instruction.platform_fees</code></td><td>replace, add, remove</td><td></td></tr><tr><td><code>purchase_units[].supplementary_data.airline</code></td><td>replace, add, remove</td><td></td></tr><tr><td><code>purchase_units[].supplementary_data.card</code></td><td>replace, add, remove</td><td></td></tr><tr><td><code>application_context.client_configuration</code></td><td>replace, add</td><td></td></tr></tbody></table>

operationId: Orders_updateOrderStatus

Parameters

Name In Required Type Description
optional

Request Body

{
  "$ref": "#/components/requestBodies/patch_request"
}

Responses

default
204 A successful request returns the HTTP `204 No Content` status code with an empty object in the JSON response body.
400 Request is not well-formed, syntactically incorrect, or violates schema.
401 Authentication failed due to missing authorization header, or invalid authentication credentials.
404 The specified resource does not exist.
422 The requested action could not be performed, semantically incorrect, or failed business validation.
PATCH /v2/checkout/orders/{id}

Trackers 1 endpoints

PATCH /v2/checkout/orders/{id}/trackers/{tracker_id}

Updates or cancels the tracking information for a PayPal order, by ID. Updatable attributes or objects:<br/><br/><table><thead><th>Attribute</th><th>Op</th><th>Notes</th></thead><tbody></tr><tr><td><code>items</code></td><td>replace</td><td>Using replace op for <code>items</code> will replace the entire <code>items</code> object with the value sent in request.</td></tr><tr><td><code>notify_payer</code></td><td>replace, add</td><td></td></tr><tr><td><code>status</code></td><td>replace</td><td>Only patching status to CANCELLED is currently supported.</td></tr></tbody></table>

operationId: Trackers_updateTrackingInfo

Parameters

Name In Required Type Description
optional
optional

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/patch_request"
      },
      "examples": {
        "orders_patch_request": {
          "value": [
            {
              "op": "replace",
              "path": "/purchase_units/@reference_id=='PUHF'/shipping/address",
              "value": {
                "postal_code": "95131",
                "admin_area_1": "CA",
                "admin_area_2": "San Jose",
                "country_code": "US",
                "address_line_1": "2211 N First Street",
                "address_line_2": "Building 17"
              }
            }
          ]
        }
      }
    }
  }
}

Responses

default
204 A successful request returns the HTTP `204 No Content` status code with an empty object in the JSON response body.
400 Request is not well-formed, syntactically incorrect, or violates schema.
403 Authorization failed due to insufficient permissions.
404 The specified resource does not exist.
422 The requested action could not be performed, semantically incorrect, or failed business validation.
500 An internal server error has occurred.
PATCH /v2/checkout/orders/{id}/trackers/{tracker_id}

Schemas

object 400
{
  "properties": {
    "details": {
      "type": "array",
      "items": {
        "anyOf": [
          {
            "title": "INVALID_ARRAY_MAX_ITEMS",
            "properties": {
              "issue": {
                "enum": [
                  "INVALID_ARRAY_MAX_ITEMS"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The number of items in an array parameter is too large."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "INVALID_ARRAY_MIN_ITEMS",
            "properties": {
              "issue": {
                "enum": [
                  "INVALID_ARRAY_MIN_ITEMS"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The number of items in an array parameter is too small."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "INVALID_COUNTRY_CODE",
            "properties": {
              "issue": {
                "enum": [
                  "INVALID_COUNTRY_CODE"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Country code is invalid. Please refer to https://developer.paypal.com/api/rest/reference/country-codes/ for a list of supported country codes."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "INVALID_PARAMETER_SYNTAX",
            "properties": {
              "issue": {
                "enum": [
                  "INVALID_PARAMETER_SYNTAX"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The value of a field does not conform to the expected format."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "INVALID_STRING_LENGTH",
            "properties": {
              "issue": {
                "enum": [
                  "INVALID_STRING_LENGTH"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The value of a field is either too short or too long"
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "INVALID_PARAMETER_VALUE",
            "properties": {
              "issue": {
                "enum": [
                  "INVALID_PARAMETER_VALUE"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "A parameter value is not valid."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "MISSING_REQUIRED_PARAMETER",
            "properties": {
              "issue": {
                "enum": [
                  "MISSING_REQUIRED_PARAMETER"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "A required parameter is missing."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "NOT_SUPPORTED",
            "properties": {
              "issue": {
                "enum": [
                  "NOT_SUPPORTED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "This field is not currently supported."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "PAYPAL_REQUEST_ID_REQUIRED",
            "properties": {
              "issue": {
                "enum": [
                  "PAYPAL_REQUEST_ID_REQUIRED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "A PayPal-Request-Id is required if you are trying to process payment for an Order. Please specify a PayPal-Request-Id or Create the Order without a 'payment_source' specified."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "MALFORMED_REQUEST_JSON",
            "properties": {
              "issue": {
                "enum": [
                  "MALFORMED_REQUEST_JSON"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The request JSON is not well formed."
                ],
                "type": "string"
              }
            }
          }
        ]
      }
    }
  }
}
object 401
{
  "properties": {
    "details": {
      "type": "array",
      "items": {
        "anyOf": [
          {
            "title": "INVALID_ACCOUNT_STATUS",
            "properties": {
              "issue": {
                "enum": [
                  "INVALID_ACCOUNT_STATUS"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Account validations failed for the user."
                ],
                "type": "string"
              }
            }
          }
        ]
      }
    }
  }
}
object 403
{
  "properties": {
    "details": {
      "type": "array",
      "items": {
        "anyOf": [
          {
            "title": "PERMISSION_DENIED",
            "properties": {
              "issue": {
                "enum": [
                  "PERMISSION_DENIED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "You do not have permission to access or perform operations on this resource."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "NOT_ENABLED_FOR_CARD_PROCESSING",
            "properties": {
              "issue": {
                "enum": [
                  "NOT_ENABLED_FOR_CARD_PROCESSING"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The recipient for which the API call is made on behalf of is not enabled for card processing. Please contact PayPal customer support."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "PAYEE_ACCOUNT_NOT_VERIFIED",
            "properties": {
              "issue": {
                "enum": [
                  "PAYEE_ACCOUNT_NOT_VERIFIED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Payee has not verified their account with PayPal. The selected payment method requires the recipient to have a verified PayPal account before transactions can be processed on their behalf."
                ],
                "type": "string"
              }
            }
          }
        ]
      }
    }
  }
}
object 404
{
  "properties": {
    "details": {
      "type": "array",
      "items": {
        "anyOf": [
          {
            "title": "INVALID_RESOURCE_ID",
            "properties": {
              "issue": {
                "enum": [
                  "INVALID_RESOURCE_ID"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Specified resource ID does not exist. Please check the resource ID and try again."
                ],
                "type": "string"
              }
            }
          }
        ]
      }
    }
  }
}
object 422
{
  "properties": {
    "details": {
      "type": "array",
      "items": {
        "anyOf": [
          {
            "title": "AMOUNT_MISMATCH",
            "properties": {
              "issue": {
                "enum": [
                  "AMOUNT_MISMATCH"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Should equal item_total + tax_total + shipping + handling + insurance - shipping_discount - discount."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "CANNOT_BE_NEGATIVE",
            "properties": {
              "issue": {
                "enum": [
                  "CANNOT_BE_NEGATIVE"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Must be greater than or equal to 0. If the currency supports decimals, only two decimal place precision is supported."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "CANNOT_BE_ZERO_OR_NEGATIVE",
            "properties": {
              "issue": {
                "enum": [
                  "CANNOT_BE_ZERO_OR_NEGATIVE"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Must be greater than zero. If the currency supports decimals, only two decimal place precision is supported."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "CARD_EXPIRED",
            "properties": {
              "issue": {
                "enum": [
                  "CARD_EXPIRED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The card is expired"
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "MISSING_PREVIOUS_REFERENCE",
            "properties": {
              "issue": {
                "enum": [
                  "MISSING_PREVIOUS_REFERENCE"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "For Merchant initiated network token transactions, either the payment_source.card.stored_credential.previous_network_transaction_reference or payment_source.card.stored_credential.previous_transaction_reference must be included in the request."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "MISSING_CRYPTOGRAM",
            "properties": {
              "issue": {
                "enum": [
                  "MISSING_CRYPTOGRAM"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Cryptogram is mandatory for any customer initiated network token transactions."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "CITY_REQUIRED",
            "properties": {
              "issue": {
                "enum": [
                  "CITY_REQUIRED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The specified country requires a city (address.admin_area_2)."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "DECIMAL_PRECISION",
            "properties": {
              "issue": {
                "enum": [
                  "DECIMAL_PRECISION"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "If the currency supports decimals, only two decimal place precision is supported."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "DONATION_ITEMS_NOT_SUPPORTED",
            "properties": {
              "issue": {
                "enum": [
                  "DONATION_ITEMS_NOT_SUPPORTED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "If 'purchase_unit' has \"DONATION\" as the 'items.category' then the Order can at most have one purchase_unit. Multiple purchase_units are not supported if either of them have at least one items with category as \"DONATION\"."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "DUPLICATE_REFERENCE_ID",
            "properties": {
              "issue": {
                "enum": [
                  "DUPLICATE_REFERENCE_ID"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "`reference_id` must be unique if multiple `purchase_unit` are provided."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "INVALID_CURRENCY_CODE",
            "properties": {
              "issue": {
                "enum": [
                  "INVALID_CURRENCY_CODE"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Currency code is invalid or is not currently supported. Please refer https://developer.paypal.com/api/rest/reference/currency-codes/ for list of supported currency codes."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "INVALID_PAYER_ID",
            "properties": {
              "issue": {
                "enum": [
                  "INVALID_PAYER_ID"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The payer ID is not valid."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "ITEM_TOTAL_MISMATCH",
            "properties": {
              "issue": {
                "enum": [
                  "ITEM_TOTAL_MISMATCH"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Should equal sum of (unit_amount * quantity) across all items for a given purchase_unit."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "ITEM_TOTAL_REQUIRED",
            "properties": {
              "issue": {
                "enum": [
                  "ITEM_TOTAL_REQUIRED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "If item details are specified (items.unit_amount and items.quantity) corresponding amount.breakdown.item_total is required."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "MAX_VALUE_EXCEEDED",
            "properties": {
              "issue": {
                "enum": [
                  "MAX_VALUE_EXCEEDED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Should be less than or equal to 999999999999999.99."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "MISSING_PICKUP_ADDRESS",
            "properties": {
              "issue": {
                "enum": [
                  "MISSING_PICKUP_ADDRESS"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "A pickup address(`shipping.address`) is required for the provided `shipping.type`."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "MULTI_CURRENCY_ORDER",
            "properties": {
              "issue": {
                "enum": [
                  "MULTI_CURRENCY_ORDER"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Multiple differing values of currency_code are not supported. Entire Order request must have the same currency_code."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "MULTIPLE_ITEM_CATEGORIES",
            "properties": {
              "issue": {
                "enum": [
                  "MULTIPLE_ITEM_CATEGORIES"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "For a given 'purchase_unit' the 'items.category' could be either \"PHYSICAL_GOODS\" and/or \"DIGITAL_GOODS\" or just \"DONATION\".  'items.category' as \"DONATION\" cannot be combined with items with either \"PHYSICAL_GOODS\" or \"DIGITAL_GOODS\"."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "MULTIPLE_SHIPPING_ADDRESS_NOT_SUPPORTED",
            "properties": {
              "issue": {
                "enum": [
                  "MULTIPLE_SHIPPING_ADDRESS_NOT_SUPPORTED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Multiple shipping addresses are not supported."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "MULTIPLE_SHIPPING_TYPE_NOT_SUPPORTED",
            "properties": {
              "issue": {
                "enum": [
                  "MULTIPLE_SHIPPING_TYPE_NOT_SUPPORTED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Different `shipping.type` are not supported across purchase units."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "PAYEE_ACCOUNT_INVALID",
            "properties": {
              "issue": {
                "enum": [
                  "PAYEE_ACCOUNT_INVALID"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Payee account specified is invalid. Please check the `payee.email_address` or `payee.merchant_id` specified and try again. Ensure that either  `payee.merchant_id` or `payee.email_address` is specified."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "PAYEE_ACCOUNT_LOCKED_OR_CLOSED",
            "properties": {
              "issue": {
                "enum": [
                  "PAYEE_ACCOUNT_LOCKED_OR_CLOSED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The merchant account is locked or closed."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "PAYEE_ACCOUNT_RESTRICTED",
            "properties": {
              "issue": {
                "enum": [
                  "PAYEE_ACCOUNT_RESTRICTED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The merchant account is restricted."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "PAYEE_PRICING_TIER_ID_NOT_ENABLED",
            "properties": {
              "issue": {
                "enum": [
                  "PAYEE_PRICING_TIER_ID_NOT_ENABLED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The API Caller is not enabled to process transactions by specifying a 'payee_pricing_tier_id'. Please work with your Account Manager to enable this option for your account."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "INVALID_PAYEE_PRICING_TIER_ID",
            "properties": {
              "issue": {
                "enum": [
                  "INVALID_PAYEE_PRICING_TIER_ID"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Please check the value specified or confirm with your Account Manager that the 'payee_pricing_tier_id' specified has been setup for the account."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "PAYEE_FX_RATE_ID_EXPIRED",
            "properties": {
              "issue": {
                "enum": [
                  "PAYEE_FX_RATE_ID_EXPIRED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The specified FX Rate ID has expired. Please specify a different FX Rate Id and try the request again. Alternately, remove the FX Rate ID to process the request using the default exchange rate."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "PAYEE_FX_RATE_ID_CURRENCY_MISMATCH",
            "properties": {
              "issue": {
                "enum": [
                  "PAYEE_FX_RATE_ID_CURRENCY_MISMATCH"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The specified FX Rate ID is for a currency that does not match with the currency of this request. Please specify a different FX Rate ID and try the request again. Alternately, remove the FX Rate ID to process the request using the default exchange rate."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "INVALID_FX_RATE_ID",
            "properties": {
              "issue": {
                "enum": [
                  "INVALID_FX_RATE_ID"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The specific FX Rate ID is not valid. This could be either because we are not able to look up the FX Rate based on this ID or it could be because the ID belongs to another API Caller."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "PLATFORM_FEES_NOT_SUPPORTED",
            "properties": {
              "issue": {
                "enum": [
                  "PLATFORM_FEES_NOT_SUPPORTED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The API Caller is not enabled to process transactions by specifying 'platform_fees'. Please work with your PayPal Account Manager to enable this option for your account."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "INVALID_PLATFORM_FEES_ACCOUNT",
            "properties": {
              "issue": {
                "enum": [
                  "INVALID_PLATFORM_FEES_ACCOUNT"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The specified platform_fees payee account is either invalid or account setup is incomplete.Please work with your PayPal Account Manager to enable this option for your account."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "INVALID_PLATFORM_FEES_AMOUNT",
            "properties": {
              "issue": {
                "enum": [
                  "INVALID_PLATFORM_FEES_AMOUNT"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The platform_fees amount cannot be greater than order amount."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "POSTAL_CODE_REQUIRED",
            "properties": {
              "issue": {
                "enum": [
                  "POSTAL_CODE_REQUIRED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The specified country requires a postal code."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "REFERENCE_ID_REQUIRED",
            "properties": {
              "issue": {
                "enum": [
                  "REFERENCE_ID_REQUIRED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "'reference_id' is required for each 'purchase_unit' if multiple 'purchase_unit' are provided."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "SHIPPING_OPTIONS_NOT_SUPPORTED",
            "properties": {
              "issue": {
                "enum": [
                  "SHIPPING_OPTIONS_NOT_SUPPORTED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Shipping options are not supported when `shipping.type` is specified or when 'application_context.shipping_preference' is set as 'NO_SHIPPING' or 'SET_PROVIDED_ADDRESS'."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "TAX_TOTAL_MISMATCH",
            "properties": {
              "issue": {
                "enum": [
                  "TAX_TOTAL_MISMATCH"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Should equal sum of (tax * quantity) across all items for a given purchase_unit."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "TAX_TOTAL_REQUIRED",
            "properties": {
              "issue": {
                "enum": [
                  "TAX_TOTAL_REQUIRED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "If item details are specified (items.tax_total and items.quantity) corresponding amount.breakdown.tax_total is required."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "UNSUPPORTED_INTENT",
            "properties": {
              "issue": {
                "enum": [
                  "UNSUPPORTED_INTENT"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "`intent=AUTHORIZE` is not supported for multiple purchase units. Only `intent=CAPTURE` is supported."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "UNSUPPORTED_PAYMENT_INSTRUCTION",
            "properties": {
              "issue": {
                "enum": [
                  "UNSUPPORTED_PAYMENT_INSTRUCTION"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "You must provide the payment instruction when you capture an authorized payment for `intent=AUTHORIZE`. For details, see <a href=\"/docs/api/payments/v2/#authorizations_capture\">Capture authorization</a>. For `intent=CAPTURE`, send the payment instruction when you create the order."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "SHIPPING_TYPE_NOT_SUPPORTED_FOR_CLIENT",
            "properties": {
              "issue": {
                "enum": [
                  "SHIPPING_TYPE_NOT_SUPPORTED_FOR_CLIENT"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The API Caller account is not setup to be able to support a `shipping.type`=`PICKUP_IN_PERSON`. This feature is only supported for <a href=\"https://www.paypal.com/us/business/platforms-and-marketplaces\">PayPal Commerce Platform for Platforms and Marketplaces</a>."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "UNSUPPORTED_SHIPPING_TYPE",
            "properties": {
              "issue": {
                "enum": [
                  "UNSUPPORTED_SHIPPING_TYPE"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The provided `shipping.type` is only supported for `application_context.shipping_preference`=`SET_PROVIDED_ADDRESS` or `NO_SHIPPING`."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "SHIPPING_OPTION_NOT_SELECTED",
            "properties": {
              "issue": {
                "enum": [
                  "SHIPPING_OPTION_NOT_SELECTED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "At least one of the shipping.option should be set to 'selected = true'."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "SHIPPING_OPTIONS_NOT_SUPPORTED",
            "properties": {
              "issue": {
                "enum": [
                  "SHIPPING_OPTIONS_NOT_SUPPORTED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Shipping options are not supported when 'application_context.shipping_preference' is set as 'NO_SHIPPING' or 'SET_PROVIDED_ADDRESS'."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "MULTIPLE_SHIPPING_OPTION_SELECTED",
            "properties": {
              "issue": {
                "enum": [
                  "MULTIPLE_SHIPPING_OPTION_SELECTED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Only one shipping.option can be set to 'selected = true'."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "PREFERRED_SHIPPING_OPTION_AMOUNT_MISMATCH",
            "properties": {
              "issue": {
                "enum": [
                  "PREFERRED_SHIPPING_OPTION_AMOUNT_MISMATCH"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The amount provided in the preferred shipping option should match the amount provided in amount breakdown"
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "AGREEMENT_ALREADY_CANCELLED",
            "properties": {
              "issue": {
                "enum": [
                  "AGREEMENT_ALREADY_CANCELLED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The requested agreement is already canceled."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "BILLING_AGREEMENT_NOT_FOUND",
            "properties": {
              "issue": {
                "enum": [
                  "BILLING_AGREEMENT_NOT_FOUND"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The requested Billing Agreement token was not found."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "COMPLIANCE_VIOLATION",
            "properties": {
              "issue": {
                "enum": [
                  "COMPLIANCE_VIOLATION"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Transaction is declined due to compliance violation."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "DOMESTIC_TRANSACTION_REQUIRED",
            "properties": {
              "issue": {
                "enum": [
                  "DOMESTIC_TRANSACTION_REQUIRED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "This transaction requires the payee and payer to be resident in the same country, a domestic transaction is required to create this payment."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "DUPLICATE_INVOICE_ID",
            "properties": {
              "issue": {
                "enum": [
                  "DUPLICATE_INVOICE_ID"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Duplicate Invoice ID detected. To avoid a potential duplicate transaction your account setting requires that Invoice Id be unique for each transaction."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "INSTRUMENT_DECLINED",
            "properties": {
              "issue": {
                "enum": [
                  "INSTRUMENT_DECLINED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The instrument presented  was either declined by the processor or bank, or it can't be used for this payment."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "MAX_NUMBER_OF_PAYMENT_ATTEMPTS_EXCEEDED",
            "properties": {
              "issue": {
                "enum": [
                  "MAX_NUMBER_OF_PAYMENT_ATTEMPTS_EXCEEDED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "You have exceeded the maximum number of payment attempts."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "NOT_ENABLED_FOR_CARD_PROCESSING",
            "properties": {
              "issue": {
                "enum": [
                  "NOT_ENABLED_FOR_CARD_PROCESSING"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The API Caller account is not setup to be able to process card payments. Please contact PayPal customer support."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "PAYEE_BLOCKED_TRANSACTION",
            "properties": {
              "issue": {
                "enum": [
                  "PAYEE_BLOCKED_TRANSACTION"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The Fraud settings for this seller are such that this payment cannot be executed."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "PAYER_ACCOUNT_LOCKED_OR_CLOSED",
            "properties": {
              "issue": {
                "enum": [
                  "PAYER_ACCOUNT_LOCKED_OR_CLOSED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The payer account cannot be used for this transaction."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "PAYER_ACCOUNT_RESTRICTED",
            "properties": {
              "issue": {
                "enum": [
                  "PAYER_ACCOUNT_RESTRICTED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "PAYER_ACCOUNT_RESTRICTED"
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "PAYER_CANNOT_PAY",
            "properties": {
              "issue": {
                "enum": [
                  "PAYER_CANNOT_PAY"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Combination of payer and payee settings mean that this buyer cannot pay this seller."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "TRANSACTION_BLOCKED_BY_PAYEE",
            "properties": {
              "issue": {
                "enum": [
                  "TRANSACTION_BLOCKED_BY_PAYEE"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Transaction blocked by Payee’s Fraud Protection settings."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "TRANSACTION_LIMIT_EXCEEDED",
            "properties": {
              "issue": {
                "enum": [
                  "TRANSACTION_LIMIT_EXCEEDED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Total payment amount exceeded transaction limit."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "TRANSACTION_RECEIVING_LIMIT_EXCEEDED",
            "properties": {
              "issue": {
                "enum": [
                  "TRANSACTION_RECEIVING_LIMIT_EXCEEDED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The transaction exceeds the receiver's receiving limit."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "TRANSACTION_REFUSED",
            "properties": {
              "issue": {
                "enum": [
                  "TRANSACTION_REFUSED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The request was refused."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "AUTH_CAPTURE_NOT_ENABLED",
            "properties": {
              "issue": {
                "enum": [
                  "AUTH_CAPTURE_NOT_ENABLED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Authorization and Capture feature is not enabled for the merchant. Make sure that the recipient of the funds is a verified business account."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "UNSUPPORTED_PROCESSING_INSTRUCTION",
            "properties": {
              "issue": {
                "enum": [
                  "UNSUPPORTED_PROCESSING_INSTRUCTION"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The specified processing_instruction is not supported for the given payment_source. Please refer to https://developer.paypal.com/api/orders/v2/#definition-processing_instruction for the list of payment_source that can be specified with this value."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "ORDER_COMPLETE_ON_PAYMENT_APPROVAL",
            "properties": {
              "issue": {
                "enum": [
                  "ORDER_COMPLETE_ON_PAYMENT_APPROVAL"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "A processing_instruction of `ORDER_COMPLETE_ON_PAYMENT_APPROVAL` is required for the specified payment_source. Please refer to the integration guide https://developer.paypal.com/docs/limited-release/alternative-payment-methods-with-orders/ for more details"
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "INVALID_EXPIRY_DATE",
            "properties": {
              "issue": {
                "enum": [
                  "INVALID_EXPIRY_DATE"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Expiry date is invalid. Expiry date should be a date in future and within the threshold for the payment source."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "INCOMPATIBLE_PARAMETER_VALUE",
            "properties": {
              "issue": {
                "enum": [
                  "INCOMPATIBLE_PARAMETER_VALUE"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The value of the field is incompatible/redundant with other fields in the order."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "INVALID_PREVIOUS_TRANSACTION_REFERENCE",
            "properties": {
              "issue": {
                "enum": [
                  "INVALID_PREVIOUS_TRANSACTION_REFERENCE"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The authorization or capture referenced by `previous_transaction_reference` is not valid. This could be either because the previous_transaction_reference is not found or doesn't belong to the payee. Please use a valid `previous_transaction_reference`."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "PREVIOUS_TRANSACTION_REFERENCE_HAS_CHARGEBACK",
            "properties": {
              "issue": {
                "enum": [
                  "PREVIOUS_TRANSACTION_REFERENCE_HAS_CHARGEBACK"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The capture referenced by `previous_transaction_reference` has a chargeback and hence cannot be used for this order. Please use a `previous_transaction_reference` which does not have a chargeback."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "PREVIOUS_TRANSACTION_REFERENCE_VOIDED",
            "properties": {
              "issue": {
                "enum": [
                  "PREVIOUS_TRANSACTION_REFERENCE_VOIDED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The status of authorization referenced by `previous_transaction_reference` is `VOIDED` and hence cannot be used for this order. Please use a `previous_transaction_reference` whose status is not `VOIDED`."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "PAYMENT_SOURCE_MISMATCH",
            "properties": {
              "issue": {
                "enum": [
                  "PAYMENT_SOURCE_MISMATCH"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The `payment_source` in the request must match the `payment_source` used for the authorization or capture referenced by `previous_transaction_reference`. Please use `previous_transaction_reference` whose `payment_source` matches with the `payment_source` specified in the order."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "MERCHANT_INITIATED_WITH_SECURITY_CODE",
            "properties": {
              "issue": {
                "enum": [
                  "MERCHANT_INITIATED_WITH_SECURITY_CODE"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "`stored_payment_source.payment_initiator` = `MERCHANT` is not supported if `payment_source.card.security_code` is present in the order. `security_code` can be present in the order only when customer is the payment initiator. It is semantically incorrect to perform a merchant initiated payment with `security_code` is the order."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "MERCHANT_INITIATED_WITH_AUTHENTICATION_RESULTS",
            "properties": {
              "issue": {
                "enum": [
                  "MERCHANT_INITIATED_WITH_AUTHENTICATION_RESULTS"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "`stored_payment_source.payment_initiator` = `MERCHANT` is not supported if 3D-Secure authentication results are present in the order. 3D-Secure authentication results can be present in the order only when customer is the payment initiator. It is semantically incorrect to perform a merchant initiated payment with 3D-Secure authentication results is the order."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "MERCHANT_INITIATED_WITH_MULTIPLE_PURCHASE_UNITS",
            "properties": {
              "issue": {
                "enum": [
                  "MERCHANT_INITIATED_WITH_MULTIPLE_PURCHASE_UNITS"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "`stored_payment_source.payment_initiator` = `MERCHANT` is not supported if more than one purchase_unit is present in the Order. Merchant initiated payments are not supported from orders with more than one purchase_unit. Please retry the request with multiple Order requests (one for each purchase_unit)."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "PAYMENT_SOURCE_INFO_CANNOT_BE_VERIFIED",
            "properties": {
              "issue": {
                "enum": [
                  "PAYMENT_SOURCE_INFO_CANNOT_BE_VERIFIED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The combination of the payment_source name, billing address, shipping name and shipping address could not be verified. Please correct this information and try again by creating a new order."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "PAYMENT_SOURCE_DECLINED_BY_PROCESSOR",
            "properties": {
              "issue": {
                "enum": [
                  "PAYMENT_SOURCE_DECLINED_BY_PROCESSOR"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The provided payment source is declined by the processor. Please try again with a different payment source by creating a new order."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "PAYMENT_SOURCE_CANNOT_BE_USED",
            "properties": {
              "issue": {
                "enum": [
                  "PAYMENT_SOURCE_CANNOT_BE_USED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The provided payment source cannot be used to pay for the order. Please try again with a different payment source by creating a new order."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "NOT_ENABLED_FOR_APPLE_PAY",
            "properties": {
              "issue": {
                "enum": [
                  "NOT_ENABLED_FOR_APPLE_PAY"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The 'API caller' and/or 'payee' is not setup to be able to process apple pay. Please contact your Account Manager."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "NOT_ENABLED_FOR_GOOGLE_PAY",
            "properties": {
              "issue": {
                "enum": [
                  "NOT_ENABLED_FOR_GOOGLE_PAY"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The 'API caller' and/or 'payee' is not setup to be able to process google pay. Please contact your Account Manager."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "APPLE_PAY_AMOUNT_MISMATCH",
            "properties": {
              "issue": {
                "enum": [
                  "APPLE_PAY_AMOUNT_MISMATCH"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The 'amount' specified in the Order should match the amount that was viewed and authorized by the payer/buyer on Apple Pay. If the amount has changed, please redirect the buyer to authorize the order again via Apple Pay."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "BILLING_ADDRESS_INVALID",
            "properties": {
              "issue": {
                "enum": [
                  "BILLING_ADDRESS_INVALID"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Provided billing address is invalid."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "SHIPPING_ADDRESS_INVALID",
            "properties": {
              "issue": {
                "enum": [
                  "SHIPPING_ADDRESS_INVALID"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Provided shipping address is invalid."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "VAULT_INSTRUCTION_DUPLICATED",
            "properties": {
              "issue": {
                "enum": [
                  "VAULT_INSTRUCTION_DUPLICATED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Only one vault instruction is allowed. Please use `vault.store_in_vault` to provide vault instruction."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "VAULT_INSTRUCTION_REQUIRED",
            "properties": {
              "issue": {
                "enum": [
                  "VAULT_INSTRUCTION_REQUIRED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Vault instruction is required. Please use `vault.store_in_vault` to provide vault instruction."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "MISMATCHED_VAULT_ID_TO_PAYMENT_SOURCE",
            "properties": {
              "issue": {
                "enum": [
                  "MISMATCHED_VAULT_ID_TO_PAYMENT_SOURCE"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The vault_id does not match the payment_source provided. Please verify that the vault_id token used refers to the matching payment_source and try again. For example, a PayPal token cannot be passed in the vault_id field in the payment_source.card object."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "CRYPTOGRAM_REQUIRED",
            "properties": {
              "issue": {
                "enum": [
                  "CRYPTOGRAM_REQUIRED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Cryptogram is required if authentication method is CRYPTOGRAM 3DS."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "EMV_DATA_REQUIRED",
            "properties": {
              "issue": {
                "enum": [
                  "EMV_DATA_REQUIRED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "EMV Data is required if authentication method is EMV."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "NOT_ELIGIBLE_FOR_PNREF_PROCESSING",
            "properties": {
              "issue": {
                "enum": [
                  "NOT_ELIGIBLE_FOR_PNREF_PROCESSING"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "API caller is not enabled to process payments with the `pnref`. Please contact customer support to request permissions to process transactions with PNREF."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "NOT_ELIGIBLE_FOR_PAYPAL_TRANSACTION_ID_PROCESSING",
            "properties": {
              "issue": {
                "enum": [
                  "NOT_ELIGIBLE_FOR_PAYPAL_TRANSACTION_ID_PROCESSING"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "API caller is not enable to process payments using `paypal_transaction_id`. Please contact customer support to request permissions to process transactions with PayPal transaction ID."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "PAYPAL_TRANSACTION_ID_NOT_FOUND",
            "properties": {
              "issue": {
                "enum": [
                  "PAYPAL_TRANSACTION_ID_NOT_FOUND"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Specified `paypal_transaction_id` was not found. Verify the value and try the request again."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "PNREF_NOT_FOUND",
            "properties": {
              "issue": {
                "enum": [
                  "PNREF_NOT_FOUND"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Specified `pnref` was not found. Verify the value and try the request again."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "INVALID_SECURITY_CODE_LENGTH",
            "properties": {
              "issue": {
                "enum": [
                  "INVALID_SECURITY_CODE_LENGTH"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The security_code length is invalid for the specified card brand."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "NOT_ENABLED_TO_VAULT_PAYMENT_SOURCE",
            "properties": {
              "issue": {
                "enum": [
                  "NOT_ENABLED_TO_VAULT_PAYMENT_SOURCE"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The API caller or the merchant on whose behalf the API call is initiated is not allowed to vault the given source. Please contact PayPal customer support for assistance."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "REQUIRED_PARAMETER_FOR_CUSTOMER_INITIATED_PAYMENT",
            "properties": {
              "issue": {
                "enum": [
                  "REQUIRED_PARAMETER_FOR_CUSTOMER_INITIATED_PAYMENT"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "This parameter is required when the customer is present. If the customer is not present, indicate so by sending payment_initiator=`MERCHANT`. For details, see <a href=\"https://developer.paypal.com/docs/api/orders/v2/#definition-card_stored_credential\">Stored Credential</a>."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "TOKEN_EXPIRED",
            "properties": {
              "issue": {
                "enum": [
                  "TOKEN_EXPIRED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The token is expired and cannot be used for payment."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "INVALID_GOOGLE_PAY_TOKEN",
            "properties": {
              "issue": {
                "enum": [
                  "INVALID_GOOGLE_PAY_TOKEN"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The google pay token is invalid. PayPal was not able to decrypt the googlepay token or PayPal was not able to find the necessary data in the token after decryption."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "GOOGLE_PAY_GATEWAY_MERCHANT_ID_MISMATCH",
            "properties": {
              "issue": {
                "enum": [
                  "GOOGLE_PAY_GATEWAY_MERCHANT_ID_MISMATCH"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The gateway merchant ID in Google Pay token is not valid. This could be because the gateway merchant Id that was authorized by payer/buyer on Google Pay does not match with the API caller of the order."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "CRYPTOGRAM_REQUIRED",
            "properties": {
              "issue": {
                "enum": [
                  "CRYPTOGRAM_REQUIRED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Cryptogram is required if authentication method is CRYPTOGRAM 3DS."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "ONE_OF_PARAMETERS_REQUIRED",
            "properties": {
              "issue": {
                "enum": [
                  "ONE_OF_PARAMETERS_REQUIRED"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "One or more field is required to continue with this request."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "ALIAS_DECLINED_BY_PROCESSOR",
            "properties": {
              "issue": {
                "enum": [
                  "ALIAS_DECLINED_BY_PROCESSOR"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "The provided alias was declined by the processor. Please create a new order with a different alias_key and/or alias_label and try again."
                ],
                "type": "string"
              }
            }
          },
          {
            "title": "BLIK_ONE_CLICK_MISSING_REQUIRED_PARAMETER",
            "properties": {
              "issue": {
                "enum": [
                  "BLIK_ONE_CLICK_MISSING_REQUIRED_PARAMETER"
                ],
                "type": "string"
              },
              "description": {
                "enum": [
                  "Blik's one_click flow requires one_click.auth_code and one_click.alias_label parameters for the buyer's first transaction. For all subsequent transactions,only the one_click.alias_key parameter is required."
                ],
                "type": "string"
              }
            }
          }
        ]
      }
    }
  }
}
string account_id
{
  "type": "string",
  "title": "PayPal Account Identifier",
  "format": "ppaas_payer_id_v3",
  "pattern": "^[2-9A-HJ-NP-Z]{13}$",
  "maxLength": 13,
  "minLength": 13,
  "description": "The account identifier for a PayPal account."
}
object address_portable
{
  "type": "object",
  "title": "Portable Postal Address (Medium-Grained)",
  "required": [
    "country_code"
  ],
  "properties": {
    "postal_code": {
      "type": "string",
      "maxLength": 60,
      "description": "The postal code, which is the zip code or equivalent. Typically required for countries with a postal code or an equivalent. See [postal code](https://en.wikipedia.org/wiki/Postal_code)."
    },
    "admin_area_1": {
      "type": "string",
      "maxLength": 300,
      "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision. Format for postal delivery. For example, `CA` and not `California`. Value, by country, is:<ul><li>UK. A county.</li><li>US. A state.</li><li>Canada. A province.</li><li>Japan. A prefecture.</li><li>Switzerland. A kanton.</li></ul>"
    },
    "admin_area_2": {
      "type": "string",
      "maxLength": 120,
      "description": "A city, town, or village. Smaller than `admin_area_level_1`."
    },
    "admin_area_3": {
      "type": "string",
      "maxLength": 100,
      "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `admin_area_level_2`. Value is:<ul><li>Brazil. Suburb, bairro, or neighborhood.</li><li>India. Sub-locality or district. Street name information is not always available but a sub-locality or district can be a very small area.</li></ul>"
    },
    "admin_area_4": {
      "type": "string",
      "maxLength": 100,
      "description": "The neighborhood, ward, or district. Smaller than `admin_area_level_3` or `sub_locality`. Value is:<ul><li>The postal sorting code for Guernsey and many French territories, such as French Guiana.</li><li>The fine-grained administrative levels in China.</li></ul>"
    },
    "country_code": {
      "$ref": "#/components/schemas/country_code"
    },
    "address_line_1": {
      "type": "string",
      "maxLength": 300,
      "description": "The first line of the address. For example, number or street. For example, `173 Drury Lane`. Required for data entry and compliance and risk checks. Must contain the full address."
    },
    "address_line_2": {
      "type": "string",
      "maxLength": 300,
      "description": "The second line of the address. For example, suite or apartment number."
    },
    "address_line_3": {
      "type": "string",
      "maxLength": 100,
      "description": "The third line of the address, if needed. For example, a street complement for Brazil, direction text, such as `next to Walmart`, or a landmark in an Indian address."
    },
    "address_details": {
      "type": "object",
      "title": "Address Details",
      "properties": {
        "street_name": {
          "type": "string",
          "maxLength": 100,
          "description": "The street name. Just `Drury` in `Drury Lane`."
        },
        "street_type": {
          "type": "string",
          "maxLength": 100,
          "description": "The street type. For example, avenue, boulevard, road, or expressway."
        },
        "sub_building": {
          "type": "string",
          "maxLength": 100,
          "description": "The first-order entity below a named building or location that represents the sub-premises. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment."
        },
        "building_name": {
          "type": "string",
          "maxLength": 100,
          "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, <code>Craven House</code>."
        },
        "street_number": {
          "type": "string",
          "maxLength": 100,
          "description": "The street number."
        },
        "delivery_service": {
          "type": "string",
          "maxLength": 100,
          "description": "The delivery service. Post office box, bag number, or post office name."
        }
      },
      "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third party and open source. Redundant with core fields.<br/>For example, `address_portable.address_line_1` is usually a combination of `address_details.street_number`, `street_name`, and `street_type`."
    }
  },
  "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)."
}
object address_portable-2
{
  "type": "object",
  "title": "Portable Postal Address (Medium-Grained)",
  "required": [
    "country_code"
  ],
  "properties": {
    "postal_code": {
      "type": "string",
      "maxLength": 60,
      "description": "The postal code, which is the ZIP code or equivalent. Typically required for countries with a postal code or an equivalent. See [postal code](https://en.wikipedia.org/wiki/Postal_code)."
    },
    "admin_area_1": {
      "type": "string",
      "maxLength": 300,
      "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:<ul><li>UK. A county.</li><li>US. A state.</li><li>Canada. A province.</li><li>Japan. A prefecture.</li><li>Switzerland. A *kanton*.</li></ul>"
    },
    "admin_area_2": {
      "type": "string",
      "maxLength": 120,
      "description": "A city, town, or village. Smaller than `admin_area_level_1`."
    },
    "admin_area_3": {
      "type": "string",
      "maxLength": 100,
      "description": "The sub-locality, suburb, neighborhood, or district. This is smaller than `admin_area_level_2`. Value is:<ul><li>Brazil. Suburb, *bairro*, or neighborhood.</li><li>India. Sub-locality or district. Street name information isn't always available, but a sub-locality or district can be a very small area.</li></ul>"
    },
    "admin_area_4": {
      "type": "string",
      "maxLength": 100,
      "description": "The neighborhood, ward, or district. This is smaller than `admin_area_level_3` or `sub_locality`. Value is:<ul><li>The postal sorting code that is used in Guernsey and many French territories, such as French Guiana.</li><li>The fine-grained administrative levels in China.</li></ul>"
    },
    "country_code": {
      "$ref": "#/components/schemas/country_code-2"
    },
    "address_line_1": {
      "type": "string",
      "maxLength": 300,
      "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."
    },
    "address_line_2": {
      "type": "string",
      "maxLength": 300,
      "description": "The second line of the address, for example, a suite or apartment number."
    },
    "address_line_3": {
      "type": "string",
      "maxLength": 100,
      "description": "The third line of the address, if needed. Examples include a street complement for Brazil, direction text, such as `next to Walmart`, or a landmark in an Indian address."
    },
    "address_details": {
      "type": "object",
      "title": "Address Details",
      "properties": {
        "street_name": {
          "type": "string",
          "maxLength": 100,
          "description": "The street name. Just `Drury` in `Drury Lane`."
        },
        "street_type": {
          "type": "string",
          "maxLength": 100,
          "description": "The street type. For example, avenue, boulevard, road, or expressway."
        },
        "sub_building": {
          "type": "string",
          "maxLength": 100,
          "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment."
        },
        "building_name": {
          "type": "string",
          "maxLength": 100,
          "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, <code>Craven House</code>."
        },
        "street_number": {
          "type": "string",
          "maxLength": 100,
          "description": "The street number."
        },
        "delivery_service": {
          "type": "string",
          "maxLength": 100,
          "description": "The delivery service. Post office box, bag number, or post office name."
        }
      },
      "description": "The non-portable additional address details include fine-grain address information for Compliance, Risk, and other scenarios. This isn't portable with common third-party and open source applications. This can include data that is redundant with core fields. For example, `address_portable.address_line_1` is usually a combination of `address_details.street_number`, `street_name`, and `street_type`."
    }
  },
  "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)."
}
object amount_breakdown
{
  "type": "object",
  "title": "Amount Breakdown",
  "properties": {
    "discount": {
      "$ref": "#/components/schemas/money",
      "description": "The discount for all items within a given `purchase_unit`. <code>discount.value</code> can not be a negative number."
    },
    "handling": {
      "$ref": "#/components/schemas/money",
      "description": "The handling fee for all items within a given `purchase_unit`. <code>handling.value</code> can not be a negative number."
    },
    "shipping": {
      "$ref": "#/components/schemas/money",
      "description": "The shipping fee for all items within a given `purchase_unit`. <code>shipping.value</code> can not be a negative number."
    },
    "insurance": {
      "$ref": "#/components/schemas/money",
      "description": "The insurance fee for all items within a given `purchase_unit`. <code>insurance.value</code> can not be a negative number."
    },
    "tax_total": {
      "$ref": "#/components/schemas/money",
      "description": "The total tax for all items. Required if the request includes `purchase_units.items.tax`. Must equal the sum of `(items[].tax * items[].quantity)` for all items. <code>tax_total.value</code> can not be a negative number."
    },
    "item_total": {
      "$ref": "#/components/schemas/money",
      "description": "The subtotal for all items. Required if the request includes `purchase_units[].items[].unit_amount`. Must equal the sum of `(items[].unit_amount * items[].quantity)` for all items. <code>item_total.value</code> can not be a negative number."
    },
    "shipping_discount": {
      "$ref": "#/components/schemas/money",
      "description": "The shipping discount for all items within a given `purchase_unit`. <code>shipping_discount.value</code> can not be a negative number."
    }
  },
  "description": "The breakdown of the amount. Breakdown provides details such as total item amount, total tax amount, shipping, handling, insurance, and discounts, if any."
}
object amount_with_breakdown
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/money"
    },
    {
      "properties": {
        "breakdown": {
          "$ref": "#/components/schemas/amount_breakdown"
        }
      }
    }
  ],
  "title": "Amount with Breakdown",
  "description": "The total order amount with an optional breakdown that provides details, such as the total item amount, total tax amount, shipping, handling, insurance, and discounts, if any.<br/>If you specify `amount.breakdown`, the amount equals `item_total` plus `tax_total` plus `shipping` plus `handling` plus `insurance` minus `shipping_discount` minus discount.<br/>The amount must be a positive number. For listed of supported currencies and decimal precision, see the PayPal REST APIs <a href=\"/docs/integration/direct/rest/currency-codes/\">Currency Codes</a>."
}
object card
{
  "type": "object",
  "title": "Card",
  "properties": {
    "id": {
      "$ref": "#/components/schemas/instrument_id",
      "readOnly": true,
      "description": "The PayPal-generated ID for the card."
    },
    "name": {
      "type": "string",
      "pattern": "^.{1,300}$",
      "maxLength": 300,
      "minLength": 1,
      "description": "The card holder's name as it appears on the card."
    },
    "type": {
      "$ref": "#/components/schemas/card_type",
      "description": "The payment card type."
    },
    "brand": {
      "$ref": "#/components/schemas/card_brand",
      "description": "The card brand or network. Typically used in the response."
    },
    "expiry": {
      "$ref": "#/components/schemas/date_year_month",
      "description": "The card expiration year and month, in [Internet date format](https://tools.ietf.org/html/rfc3339#section-5.6)."
    },
    "number": {
      "type": "string",
      "pattern": "^[0-9]{13,19}$",
      "maxLength": 19,
      "minLength": 13,
      "description": "The primary account number (PAN) for the payment card."
    },
    "card_type": {
      "$ref": "#/components/schemas/card_brand",
      "readOnly": true,
      "deprecated": true,
      "description": "The card brand or network. Typically used in the response."
    },
    "attributes": {
      "$ref": "#/components/schemas/card_attributes",
      "description": "Additional attributes associated with the use of this card."
    },
    "last_digits": {
      "type": "string",
      "pattern": "^[0-9]{2,4}$",
      "readOnly": true,
      "maxLength": 4,
      "minLength": 2,
      "description": "The last digits of the payment card."
    },
    "security_code": {
      "type": "string",
      "pattern": "^[0-9]{3,4}$",
      "maxLength": 4,
      "minLength": 3,
      "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`."
    },
    "billing_address": {
      "$ref": "#/components/schemas/address_portable",
      "description": "The billing address for this card. Supports only the `address_line_1`, `address_line_2`, `admin_area_1`, `admin_area_2`, `postal_code`, and `country_code` properties."
    }
  },
  "description": "The payment card to use to fund a payment. Can be a credit or debit card."
}
object card_attributes
{
  "type": "object",
  "title": "Card Attributes",
  "properties": {
    "vault": {
      "$ref": "#/components/schemas/vault_instruction_base",
      "description": "Instruction to vault the card based on the specified strategy."
    },
    "customer": {
      "$ref": "#/components/schemas/customer"
    }
  },
  "description": "Additional attributes associated with the use of this card."
}
string card_brand
{
  "enum": [
    "VISA",
    "MASTERCARD",
    "DISCOVER",
    "AMEX",
    "SOLO",
    "JCB",
    "STAR",
    "DELTA",
    "SWITCH",
    "MAESTRO",
    "CB_NATIONALE",
    "CONFIGOGA",
    "CONFIDIS",
    "ELECTRON",
    "CETELEM",
    "CHINA_UNION_PAY"
  ],
  "type": "string",
  "title": "Card Brand",
  "pattern": "^[A-Z_]+$",
  "maxLength": 255,
  "minLength": 1,
  "description": "The card network or brand. Applies to credit, debit, gift, and payment cards."
}
object card_experience_context
{
  "type": "object",
  "title": "Card Experience Context",
  "properties": {
    "cancel_url": {
      "$ref": "#/components/schemas/url",
      "type": "string",
      "format": "uri",
      "maxLength": 4000,
      "minLength": 10,
      "description": "The URL where the customer will be redirected upon cancelling the 3DS challenge."
    },
    "return_url": {
      "$ref": "#/components/schemas/url",
      "type": "string",
      "format": "uri",
      "maxLength": 4000,
      "minLength": 10,
      "description": "The URL where the customer will be redirected upon successfully completing the 3DS challenge."
    }
  },
  "description": "Customizes the payer experience during the 3DS Approval for payment."
}
object card_request
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/card"
    },
    {
      "properties": {
        "vault_id": {
          "$ref": "#/components/schemas/vault_id",
          "description": "The PayPal-generated ID for the saved card payment source. Typically stored on the merchant's server."
        },
        "network_token": {
          "$ref": "#/components/schemas/network_token_request",
          "description": "A 3rd party network token refers to a network token that the merchant provisions from and vaults with an external TSP (Token Service Provider) other than PayPal."
        },
        "stored_credential": {
          "$ref": "#/components/schemas/card_stored_credential"
        },
        "experience_context": {
          "$ref": "#/components/schemas/card_experience_context"
        }
      }
    }
  ],
  "title": "Card Request",
  "description": "The payment card to use to fund a payment. Can be a credit or debit card.<blockquote><strong>Note:</strong> Passing card number, cvv and expiry directly via the API requires <a href=\"https://www.pcisecuritystandards.org/pci_security/completing_self_assessment\"> PCI SAQ D compliance</a>. <br>*PayPal offers a mechanism by which you do not have to take on the <strong>PCI SAQ D</strong> burden by using hosted fields - refer to <a href=\"https://developer.paypal.com/docs/checkout/advanced/integrate/\">this Integration Guide</a>*.</blockquote>"
}
object card_stored_credential
{
  "type": "object",
  "title": "Card Stored Credential",
  "required": [
    "payment_initiator",
    "payment_type"
  ],
  "properties": {
    "usage": {
      "$ref": "#/components/schemas/stored_payment_source_usage_type"
    },
    "payment_type": {
      "$ref": "#/components/schemas/stored_payment_source_payment_type"
    },
    "payment_initiator": {
      "$ref": "#/components/schemas/payment_initiator"
    },
    "previous_network_transaction_reference": {
      "$ref": "#/components/schemas/network_transaction_reference"
    }
  },
  "description": "Provides additional details to process a payment using a `card` that has been stored or is intended to be stored (also referred to as stored_credential or card-on-file).<br/>Parameter compatibility:<br/><ul><li>`payment_type=ONE_TIME` is compatible only with `payment_initiator=CUSTOMER`.</li><li>`usage=FIRST` is compatible only with `payment_initiator=CUSTOMER`.</li><li>`previous_transaction_reference` or `previous_network_transaction_reference` is compatible only with `payment_initiator=MERCHANT`.</li><li>Only one of the parameters - `previous_transaction_reference` and `previous_network_transaction_reference` - can be present in the request.</li></ul>"
}
object card_supplementary_data
{
  "type": "object",
  "title": "Card Supplementary Data",
  "properties": {
    "level_2": {
      "$ref": "#/components/schemas/level_2_card_processing_data"
    },
    "level_3": {
      "$ref": "#/components/schemas/level_3_card_processing_data"
    }
  },
  "description": "Merchants and partners can add Level 2 and 3 data to payments to reduce risk and payment processing costs. For more information about processing payments, see <a href=\"https://developer.paypal.com/docs/checkout/advanced/processing/\">checkout</a> or <a href=\"https://developer.paypal.com/docs/multiparty/checkout/advanced/processing/\">multiparty checkout</a>."
}
string card_type
{
  "enum": [
    "CREDIT",
    "DEBIT",
    "PREPAID",
    "STORE",
    "UNKNOWN"
  ],
  "type": "string",
  "title": "Card Type",
  "pattern": "^[A-Z_]+$",
  "maxLength": 255,
  "minLength": 1,
  "description": "Type of card. i.e Credit, Debit and so on."
}
string checkout_payment_intent
{
  "enum": [
    "CAPTURE",
    "AUTHORIZE"
  ],
  "type": "string",
  "title": "Checkout Payment Intent",
  "description": "The intent to either capture payment immediately or authorize a payment for an order after order creation."
}
string country_code
{
  "type": "string",
  "format": "ppaas_common_country_code_v2",
  "pattern": "^([A-Z]{2}|C2)$",
  "maxLength": 2,
  "minLength": 2,
  "description": "The [two-character ISO 3166-1 code](https://raw.githubusercontent.com) that identifies the country or region.<blockquote><strong>Note:</strong> The country code for Great Britain is <code>GB</code> and not <code>UK</code> as 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.</blockquote>"
}
string country_code-2
{
  "type": "string",
  "format": "ppaas_common_country_code_v2",
  "pattern": "^([A-Z]{2}|C2)$",
  "maxLength": 2,
  "minLength": 2,
  "description": "The [2-character ISO 3166-1 code](https://raw.githubusercontent.com) that identifies the country or region.<blockquote><strong>Note:</strong> The country code for Great Britain is <code>GB</code> and not <code>UK</code> as 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.</blockquote>"
}
string currency_code
{
  "type": "string",
  "format": "ppaas_common_currency_code_v2",
  "maxLength": 3,
  "minLength": 3,
  "description": "The [three-character ISO-4217 currency code](https://raw.githubusercontent.com) that identifies the currency."
}
object customer
{
  "type": "object",
  "title": "Customer information based on PayPal's system of record",
  "properties": {
    "id": {
      "$ref": "#/components/schemas/merchant_partner_customer_id"
    },
    "phone": {
      "$ref": "#/components/schemas/phone_with_type",
      "description": "The phone number of the buyer as provided to the merchant or on file with the merchant. The `phone.phone_number` supports only `national_number`."
    },
    "email_address": {
      "$ref": "#/components/schemas/email",
      "description": "Email address of the buyer as provided to the merchant or on file with the merchant. Email Address is required if you are processing the transaction using PayPal Guest Processing which is offered to select partners and merchants. For all other use cases we do not expect partners/merchant to send email_address of their customer."
    }
  },
  "description": "The details about a customer in PayPal's system of record."
}
string date_no_time
{
  "type": "string",
  "format": "ppaas_date_notime_v2",
  "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$",
  "maxLength": 10,
  "minLength": 10,
  "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."
}
string date_year_month
{
  "type": "string",
  "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])$",
  "maxLength": 7,
  "minLength": 7,
  "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)."
}
string disbursement_mode
{
  "enum": [
    "INSTANT",
    "DELAYED"
  ],
  "type": "string",
  "title": "Disbursement Mode",
  "default": "INSTANT",
  "pattern": "^[A-Z_]+$",
  "maxLength": 16,
  "minLength": 1,
  "description": "The funds that are held on behalf of the merchant."
}
string eci_flag
{
  "enum": [
    "MASTERCARD_NON_3D_SECURE_TRANSACTION",
    "MASTERCARD_ATTEMPTED_AUTHENTICATION_TRANSACTION",
    "MASTERCARD_FULLY_AUTHENTICATED_TRANSACTION",
    "FULLY_AUTHENTICATED_TRANSACTION",
    "ATTEMPTED_AUTHENTICATION_TRANSACTION",
    "NON_3D_SECURE_TRANSACTION"
  ],
  "type": "string",
  "pattern": "^[0-9A-Z_]+$",
  "maxLength": 255,
  "minLength": 1,
  "description": "Electronic Commerce Indicator (ECI). The ECI value is part of the 2 data elements that indicate the transaction was processed electronically. This should be passed on the authorization transaction to the Gateway/Processor."
}
string email
{
  "type": "string",
  "format": "merchant_common_email_address_v2",
  "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])+)\\])",
  "maxLength": 254,
  "minLength": 3,
  "description": "The internationalized email address.<blockquote><strong>Note:</strong> Up to 64 characters are allowed before and 255 characters are allowed after the <code>@</code> sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted <code>@</code> sign exists.</blockquote>"
}
object error_400
{
  "type": "object",
  "title": "Bad Request Error",
  "properties": {
    "name": {
      "enum": [
        "INVALID_REQUEST"
      ],
      "type": "string"
    },
    "links": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/error_link_description"
      },
      "maxItems": 10000,
      "minItems": 0,
      "description": "An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS)."
    },
    "details": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/error_details"
      }
    },
    "message": {
      "enum": [
        "Request is not well-formed, syntactically incorrect, or violates schema."
      ],
      "type": "string"
    },
    "debug_id": {
      "type": "string",
      "description": "The PayPal internal ID. Used for correlation purposes."
    }
  },
  "description": "Request is not well-formed, syntactically incorrect, or violates schema."
}
object error_401
{
  "type": "object",
  "title": "Unauthorized Error",
  "properties": {
    "name": {
      "enum": [
        "AUTHENTICATION_FAILURE"
      ],
      "type": "string"
    },
    "links": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/error_link_description"
      },
      "maxItems": 10000,
      "minItems": 0,
      "description": "An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS)."
    },
    "details": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/error_details"
      }
    },
    "message": {
      "enum": [
        "Authentication failed due to missing authorization header, or invalid authentication credentials."
      ],
      "type": "string"
    },
    "debug_id": {
      "type": "string",
      "description": "The PayPal internal ID. Used for correlation purposes."
    }
  },
  "description": "Authentication failed due to missing Authorization header, or invalid authentication credentials."
}
object error_403
{
  "type": "object",
  "title": "Not Authorized Error",
  "properties": {
    "name": {
      "enum": [
        "NOT_AUTHORIZED"
      ],
      "type": "string"
    },
    "links": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/error_link_description"
      },
      "maxItems": 10000,
      "minItems": 0,
      "description": "An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS)."
    },
    "details": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/error_details"
      }
    },
    "message": {
      "enum": [
        "Authorization failed due to insufficient permissions."
      ],
      "type": "string"
    },
    "debug_id": {
      "type": "string",
      "description": "The PayPal internal ID. Used for correlation purposes."
    }
  },
  "description": "The client is not authorized to access this resource, although it may have valid credentials. "
}
object error_404
{
  "type": "object",
  "title": "Not found Error",
  "properties": {
    "name": {
      "enum": [
        "RESOURCE_NOT_FOUND"
      ],
      "type": "string"
    },
    "links": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/error_link_description"
      },
      "maxItems": 10000,
      "minItems": 0,
      "description": "An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS)."
    },
    "details": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/error_details"
      }
    },
    "message": {
      "enum": [
        "The specified resource does not exist."
      ],
      "type": "string"
    },
    "debug_id": {
      "type": "string",
      "description": "The PayPal internal ID. Used for correlation purposes."
    }
  },
  "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."
}
object error_409
{
  "type": "object",
  "title": "Resource Conflict Error",
  "properties": {
    "name": {
      "enum": [
        "RESOURCE_CONFLICT"
      ],
      "type": "string"
    },
    "links": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/error_link_description"
      },
      "maxItems": 10000,
      "minItems": 0,
      "description": "An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS)."
    },
    "details": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/error_details"
      }
    },
    "message": {
      "enum": [
        "The server has detected a conflict while processing this request."
      ],
      "type": "string"
    },
    "debug_id": {
      "type": "string",
      "description": "The PayPal internal ID. Used for correlation purposes."
    }
  },
  "description": "The server has detected a conflict while processing this request."
}
object error_415
{
  "type": "object",
  "title": "Unsupported Media Type Error",
  "properties": {
    "name": {
      "enum": [
        "UNSUPPORTED_MEDIA_TYPE"
      ],
      "type": "string"
    },
    "links": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/error_link_description"
      },
      "maxItems": 10000,
      "minItems": 0,
      "description": "An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS)."
    },
    "details": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/error_details"
      }
    },
    "message": {
      "enum": [
        "The server does not support the request payload's media type."
      ],
      "type": "string"
    },
    "debug_id": {
      "type": "string",
      "description": "The PayPal internal ID. Used for correlation purposes."
    }
  },
  "description": "The server does not support the request payload's media type."
}
object error_422
{
  "type": "object",
  "title": "Unprocessable Entity Error",
  "properties": {
    "name": {
      "enum": [
        "UNPROCESSABLE_ENTITY"
      ],
      "type": "string"
    },
    "links": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/error_link_description"
      },
      "maxItems": 10000,
      "minItems": 0,
      "description": "An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS)."
    },
    "details": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/error_details"
      }
    },
    "message": {
      "enum": [
        "The requested action could not be performed, semantically incorrect, or failed business validation."
      ],
      "type": "string"
    },
    "debug_id": {
      "type": "string",
      "description": "The PayPal internal ID. Used for correlation purposes."
    }
  },
  "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."
}
object error_500
{
  "type": "object",
  "title": "Internal Server Error",
  "example": {
    "name": "INTERNAL_SERVER_ERROR",
    "links": [
      {
        "rel": "information_link",
        "href": "https://developer.paypal.com/api/orders/v2/#error-INTERNAL_SERVER_ERROR"
      }
    ],
    "message": "An internal server error occurred.",
    "debug_id": "90957fca61718"
  },
  "properties": {
    "name": {
      "enum": [
        "INTERNAL_SERVER_ERROR"
      ],
      "type": "string"
    },
    "links": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/error_link_description"
      },
      "maxItems": 10000,
      "minItems": 0,
      "description": "An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS)."
    },
    "message": {
      "enum": [
        "An internal server error occurred."
      ],
      "type": "string"
    },
    "debug_id": {
      "type": "string",
      "description": "The PayPal internal ID. Used for correlation purposes."
    }
  },
  "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."
}
object error_503
{
  "type": "object",
  "title": "Service Unavailable Error",
  "example": {
    "name": "SERVICE_UNAVAILABLE",
    "message": "Service Unavailable.",
    "debug_id": "90957fca61718",
    "information_link": "https://developer.paypal.com/docs/api/orders/v2/#error-SERVICE_UNAVAILABLE"
  },
  "properties": {
    "name": {
      "enum": [
        "SERVICE_UNAVAILABLE"
      ],
      "type": "string"
    },
    "links": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/error_link_description"
      },
      "maxItems": 10000,
      "minItems": 0,
      "description": "An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS)."
    },
    "message": {
      "enum": [
        "Service Unavailable."
      ],
      "type": "string"
    },
    "debug_id": {
      "type": "string",
      "description": "The PayPal internal ID. Used for correlation purposes."
    }
  },
  "description": "The server is temporarily unable to handle the request, for example, because of planned maintenance or downtime."
}
object error_default
{
  "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"
    }
  ],
  "description": "The default error response."
}
object error_details
{
  "type": "object",
  "title": "Error Details",
  "required": [
    "issue"
  ],
  "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."
    },
    "issue": {
      "type": "string",
      "description": "The unique, fine-grained application-level error code."
    },
    "value": {
      "type": "string",
      "description": "The value of the field that caused the error."
    },
    "location": {
      "$ref": "#/components/schemas/error_location"
    },
    "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."
    }
  },
  "description": "The error details. Required for client-side `4XX` errors."
}
object error_link_description
{
  "type": "object",
  "title": "Link Description",
  "required": [
    "href",
    "rel"
  ],
  "properties": {
    "rel": {
      "type": "string",
      "pattern": "^.*$",
      "maxLength": 100,
      "minLength": 0,
      "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)."
    },
    "href": {
      "type": "string",
      "pattern": "^.*$",
      "maxLength": 20000,
      "minLength": 0,
      "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."
    },
    "method": {
      "enum": [
        "GET",
        "POST",
        "PUT",
        "DELETE",
        "PATCH"
      ],
      "type": "string",
      "pattern": "^[A-Z]*$",
      "maxLength": 6,
      "minLength": 3,
      "description": "The HTTP method required to make the related call."
    }
  },
  "description": "The request-related [HATEOAS link](/api/rest/responses/#hateoas-links) information."
}
string error_location
{
  "enum": [
    "body",
    "path",
    "query"
  ],
  "type": "string",
  "default": "body",
  "description": "The location of the field that caused the error. Value is `body`, `path`, or `query`."
}
string instrument_id
{
  "type": "string",
  "pattern": "^[A-Za-z0-9-_.+=]+$",
  "maxLength": 256,
  "minLength": 1,
  "description": "The identifier of the instrument."
}
object item
{
  "type": "object",
  "title": "Item",
  "required": [
    "name",
    "unit_amount",
    "quantity"
  ],
  "properties": {
    "sku": {
      "type": "string",
      "maxLength": 127,
      "description": "The stock keeping unit (SKU) for the item."
    },
    "tax": {
      "$ref": "#/components/schemas/money",
      "description": "The item tax for each unit. If <code>tax</code> is specified, <code>purchase_units[].amount.breakdown.tax_total</code> is required. Must equal <code>tax * quantity</code> for all items. <code>tax.value</code> can not be a negative number."
    },
    "name": {
      "type": "string",
      "maxLength": 127,
      "minLength": 1,
      "description": "The item name or title."
    },
    "category": {
      "enum": [
        "DIGITAL_GOODS",
        "PHYSICAL_GOODS",
        "DONATION"
      ],
      "type": "string",
      "maxLength": 20,
      "minLength": 1,
      "description": "The item category type."
    },
    "quantity": {
      "type": "string",
      "pattern": "^[1-9][0-9]{0,9}$",
      "maxLength": 10,
      "description": "The item quantity. Must be a whole number."
    },
    "description": {
      "type": "string",
      "maxLength": 127,
      "description": "The detailed item description."
    },
    "unit_amount": {
      "$ref": "#/components/schemas/money",
      "description": "The item price or rate per unit. If you specify <code>unit_amount</code>, <code>purchase_units[].amount.breakdown.item_total</code> is required. Must equal <code>unit_amount * quantity</code> for all items. <code>unit_amount.value</code> can not be a negative number."
    }
  },
  "description": "The details for the items to be purchased."
}
object level_2_card_processing_data
{
  "type": "object",
  "title": "Level 2 Card Processing Data",
  "properties": {
    "tax_total": {
      "$ref": "#/components/schemas/money",
      "description": "Use this field to break down the amount of tax included in the total purchase amount. The value provided here will not add to the total purchase amount. The value can't be negative, and in most cases, it must be greater than zero in order to qualify for lower interchange rates. \n Value, by country, is:\n\n    UK. A county.\n    US. A state.\n    Canada. A province.\n    Japan. A prefecture.\n    Switzerland. A kanton.\n"
    },
    "invoice_id": {
      "type": "string",
      "pattern": "^[\\w‘\\-.,\":;\\!?]*$",
      "maxLength": 17,
      "minLength": 1,
      "description": "Use this field to pass a purchase identification value of up to 12 ASCII characters for AIB and 17 ASCII characters for all other processors."
    }
  },
  "description": "The level 2 card processing data collections. If your merchant account has been configured for Level 2 processing this field will be passed to the processor on your behalf. Please contact your PayPal Technical Account Manager to define level 2 data for your business."
}
object level_3_card_processing_data
{
  "type": "object",
  "title": "Level 3 Card Processing Data",
  "properties": {
    "line_items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/line_item"
      },
      "maxItems": 100,
      "minItems": 1,
      "description": "A list of the items that were purchased with this payment. If your merchant account has been configured for Level 3 processing this field will be passed to the processor on your behalf."
    },
    "duty_amount": {
      "$ref": "#/components/schemas/money",
      "description": "Use this field to break down the duty amount included in the total purchase amount. The value provided here will not add to the total purchase amount. The value cannot be negative."
    },
    "discount_amount": {
      "$ref": "#/components/schemas/money",
      "description": "Use this field to break down the discount amount included in the total purchase amount. The value provided here will not add to the total purchase amount. The value cannot be negative."
    },
    "shipping_amount": {
      "$ref": "#/components/schemas/money",
      "description": "Use this field to break down the shipping cost included in the total purchase amount. The value provided here will not add to the total purchase amount. The value cannot be negative."
    },
    "shipping_address": {
      "$ref": "#/components/schemas/address_portable",
      "description": "The address of the person to whom to ship the items. Supports only the `address_line_1`, `address_line_2`, `admin_area_1`, `admin_area_2`, `postal_code`, and `country_code` properties."
    },
    "ships_from_postal_code": {
      "type": "string",
      "pattern": "^[a-zA-Z0-9_'.-]*$",
      "maxLength": 60,
      "minLength": 1,
      "description": "Use this field to specify the postal code of the shipping location."
    }
  },
  "description": "The level 3 card processing data collections, If your merchant account has been configured for Level 3 processing this field will be passed to the processor on your behalf. Please contact your PayPal Technical Account Manager to define level 3 data for your business."
}
object line_item
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/item"
    },
    {
      "properties": {
        "total_amount": {
          "$ref": "#/components/schemas/money",
          "description": "The subtotal for all items. Must equal the sum of (items[].unit_amount * items[].quantity) for all items. item_total.value can not be a negative number."
        },
        "commodity_code": {
          "type": "string",
          "pattern": "^[a-zA-Z0-9_'.-]*$",
          "maxLength": 12,
          "minLength": 1,
          "description": "Code used to classify items purchased and track the total amount spent across various categories of products and services. Different corporate purchasing organizations may use different standards, but the United Nations Standard Products and Services Code (UNSPSC) is frequently used."
        },
        "discount_amount": {
          "$ref": "#/components/schemas/money",
          "description": "Use this field to break down the discount amount included in the total purchase amount. The value provided here will not add to the total purchase amount. The value cannot be negative."
        },
        "unit_of_measure": {
          "type": "string",
          "pattern": "^[a-zA-Z0-9_'.-]*$",
          "maxLength": 12,
          "minLength": 1,
          "description": "Unit of measure is a standard used to express the magnitude of a quantity in international trade. Most commonly used (but not limited to) examples are: Acre (ACR), Ampere (AMP), Centigram (CGM), Centimetre (CMT), Cubic inch (INQ), Cubic metre (MTQ), Fluid ounce (OZA), Foot (FOT), Hour (HUR), Item (ITM), Kilogram (KGM), Kilometre (KMT), Kilowatt (KWT), Liquid gallon (GLL), Liter (LTR), Pounds (LBS), Square foot (FTK)."
        }
      }
    }
  ],
  "title": "Lineitem",
  "description": "The line items for this purchase. If your merchant account has been configured for Level 3 processing this field will be passed to the processor on your behalf."
}
string merchant_partner_customer_id
{
  "type": "string",
  "pattern": "^[0-9a-zA-Z_-]+$",
  "maxLength": 22,
  "minLength": 1,
  "description": "The unique ID for a customer generated by PayPal."
}
object money
{
  "type": "object",
  "title": "Money",
  "required": [
    "currency_code",
    "value"
  ],
  "properties": {
    "value": {
      "type": "string",
      "pattern": "^((-?[0-9]+)|(-?([0-9]+)?[.][0-9]+))$",
      "maxLength": 32,
      "description": "The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](https://raw.githubusercontent.com)."
    },
    "currency_code": {
      "$ref": "#/components/schemas/currency_code"
    }
  },
  "description": "The currency and amount for a financial transaction, such as a balance or payment due."
}
object name
{
  "type": "object",
  "title": "Name",
  "properties": {
    "prefix": {
      "type": "string",
      "maxLength": 140,
      "description": "The prefix, or title, to the party's name."
    },
    "suffix": {
      "type": "string",
      "maxLength": 140,
      "description": "The suffix for the party's name."
    },
    "surname": {
      "type": "string",
      "maxLength": 140,
      "description": "When the party is a person, the party's surname or family name. Also known as the last name. Required when the party is a person. Use also to store multiple surnames including the matronymic, or mother's, surname."
    },
    "full_name": {
      "type": "string",
      "maxLength": 300,
      "description": "When the party is a person, the party's full name."
    },
    "given_name": {
      "type": "string",
      "maxLength": 140,
      "description": "When the party is a person, the party's given, or first, name."
    },
    "middle_name": {
      "type": "string",
      "maxLength": 140,
      "description": "When the party is a person, the party's middle name. Use also to store multiple middle names including the patronymic, or father's, middle name."
    },
    "alternate_full_name": {
      "type": "string",
      "maxLength": 300,
      "description": "DEPRECATED. The party's alternate name. Can be a business name, nickname, or any other name that cannot be split into first, last name. Required when the party is a business."
    }
  },
  "description": "The name of the party."
}
object name-2
{
  "type": "object",
  "title": "Name",
  "properties": {
    "prefix": {
      "type": "string",
      "maxLength": 140,
      "description": "The prefix, or title, to the party's name."
    },
    "suffix": {
      "type": "string",
      "maxLength": 140,
      "description": "The suffix for the party's name."
    },
    "surname": {
      "type": "string",
      "maxLength": 140,
      "description": "When the party is a person, the party's surname or family name. Also known as the last name. Required when the party is a person. Use also to store multiple surnames including the matronymic, or mother's, surname."
    },
    "full_name": {
      "type": "string",
      "maxLength": 300,
      "description": "When the party is a person, the party's full name."
    },
    "given_name": {
      "type": "string",
      "maxLength": 140,
      "description": "When the party is a person, the party's given, or first, name."
    },
    "middle_name": {
      "type": "string",
      "maxLength": 140,
      "description": "When the party is a person, the party's middle name. Use also to store multiple middle names including the patronymic, or father's, middle name."
    }
  },
  "description": "The name of the party."
}
object network_token_request
{
  "type": "object",
  "title": "Network Token",
  "required": [
    "number",
    "expiry"
  ],
  "properties": {
    "expiry": {
      "$ref": "#/components/schemas/date_year_month",
      "description": "The card expiration year and month, in [Internet date format](https://tools.ietf.org/html/rfc3339#section-5.6)."
    },
    "number": {
      "type": "string",
      "pattern": "^[0-9]{13,19}$",
      "maxLength": 19,
      "minLength": 13,
      "description": "Third party network token number."
    },
    "eci_flag": {
      "$ref": "#/components/schemas/eci_flag"
    },
    "cryptogram": {
      "type": "string",
      "pattern": "^.*$",
      "maxLength": 32,
      "minLength": 28,
      "description": "An Encrypted one-time use value that's sent along with Network Token. This field is not required to be present for recurring transactions."
    },
    "token_requestor_id": {
      "type": "string",
      "pattern": "^[0-9A-Z_]+$",
      "maxLength": 11,
      "minLength": 1,
      "description": "A TRID, or a Token Requestor ID, is an identifier used by merchants to request network tokens from card networks. A TRID is a precursor to obtaining a network token for a credit card primary account number (PAN), and will aid in enabling secure card on file (COF) payments and reducing fraud."
    }
  },
  "description": "The Third Party Network token used to fund a payment."
}
object network_transaction_reference
{
  "type": "object",
  "title": "Network Transaction Reference",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[a-zA-Z0-9-_@.:&+=*^'~#!$%()]+$",
      "maxLength": 36,
      "minLength": 9,
      "description": "Transaction reference id returned by the scheme. For Visa and Amex, this is the \"Tran id\" field in response. For MasterCard, this is the \"BankNet reference id\" field in response. For Discover, this is the \"NRID\" field in response. The pattern we expect for this field from Visa/Amex/CB/Discover is numeric, Mastercard/BNPP is alphanumeric and Paysecure is alphanumeric with special character -."
    },
    "date": {
      "type": "string",
      "pattern": "^[0-9]+$",
      "maxLength": 4,
      "minLength": 4,
      "description": "The date that the transaction was authorized by the scheme. This field may not be returned for all networks. MasterCard refers to this field as \"BankNet reference date."
    },
    "network": {
      "$ref": "#/components/schemas/card_brand",
      "description": "Name of the card network through which the transaction was routed."
    },
    "acquirer_reference_number": {
      "type": "string",
      "pattern": "^[a-zA-Z0-9]+$",
      "maxLength": 36,
      "minLength": 1,
      "description": "Reference ID issued for the card transaction. This ID can be used to track the transaction across processors, card brands and issuing banks."
    }
  },
  "description": "Reference values used by the card network to identify a transaction."
}
object payee
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/payee_base"
    },
    {
      "properties": {}
    }
  ],
  "title": "Payee",
  "description": "The merchant who receives the funds and fulfills the order. The merchant is also known as the payee."
}
object payee_base
{
  "type": "object",
  "title": "Merchant Base",
  "properties": {
    "merchant_id": {
      "$ref": "#/components/schemas/account_id",
      "description": "The encrypted PayPal account ID of the merchant."
    },
    "email_address": {
      "$ref": "#/components/schemas/email",
      "description": "The email address of merchant."
    }
  },
  "description": "The details for the merchant who receives the funds and fulfills the order. The merchant is also known as the payee."
}
object payer
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/payer_base"
    },
    {
      "properties": {
        "name": {
          "$ref": "#/components/schemas/name",
          "description": "The name of the payer. Supports only the `given_name` and `surname` properties."
        },
        "phone": {
          "$ref": "#/components/schemas/phone_with_type",
          "description": "The phone number of the customer. Available only when you enable the **Contact Telephone Number** option in the <a href=\"https://www.paypal.com/cgi-bin/customerprofileweb?cmd=_profile-website-payments\">**Profile & Settings**</a> for the merchant's PayPal account. The `phone.phone_number` supports only `national_number`."
        },
        "address": {
          "$ref": "#/components/schemas/address_portable",
          "description": "The address of the payer. Supports only the `address_line_1`, `address_line_2`, `admin_area_1`, `admin_area_2`, `postal_code`, and `country_code` properties. Also referred to as the billing address of the customer."
        },
        "tax_info": {
          "$ref": "#/components/schemas/tax_info",
          "description": "The tax information of the payer. Required only for Brazilian payer's. Both `tax_id` and `tax_id_type` are required."
        },
        "birth_date": {
          "$ref": "#/components/schemas/date_no_time",
          "description": "The birth date of the payer in `YYYY-MM-DD` format."
        }
      }
    }
  ],
  "title": "Customer",
  "format": "payer_v1",
  "description": "The customer who approves and pays for the order. The customer is also known as the payer."
}
object payer_base
{
  "type": "object",
  "title": "Payer Base",
  "properties": {
    "payer_id": {
      "$ref": "#/components/schemas/account_id",
      "readOnly": true,
      "description": "The PayPal-assigned ID for the payer."
    },
    "email_address": {
      "$ref": "#/components/schemas/email",
      "description": "The email address of the payer."
    }
  },
  "description": "The customer who approves and pays for the order. The customer is also known as the payer."
}
string payment_initiator
{
  "enum": [
    "CUSTOMER",
    "MERCHANT"
  ],
  "type": "string",
  "pattern": "^[0-9A-Z_]+$",
  "maxLength": 255,
  "minLength": 1,
  "description": "The person or party who initiated or triggered the payment."
}
object payment_instruction
{
  "type": "object",
  "title": "Payment Instruction",
  "properties": {
    "platform_fees": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/platform_fee"
      },
      "maxItems": 1,
      "minItems": 0,
      "description": "An array of various fees, commissions, tips, or donations. This field is only applicable to merchants that been enabled for PayPal Commerce Platform for Marketplaces and Platforms capability."
    },
    "disbursement_mode": {
      "$ref": "#/components/schemas/disbursement_mode",
      "description": "The funds that are held payee by the marketplace/platform. This field is only applicable to merchants that been enabled for PayPal Commerce Platform for Marketplaces and Platforms capability."
    },
    "payee_pricing_tier_id": {
      "type": "string",
      "pattern": "^.*$",
      "maxLength": 20,
      "minLength": 1,
      "description": "This field is only enabled for selected merchants/partners to use and provides the ability to trigger a specific pricing rate/plan for a payment transaction. The list of eligible 'payee_pricing_tier_id' would be provided to you by your Account Manager. Specifying values other than the one provided to you by your account manager would result in an error."
    },
    "payee_receivable_fx_rate_id": {
      "type": "string",
      "pattern": "^.*$",
      "maxLength": 4000,
      "minLength": 1,
      "description": "FX identifier generated returned by PayPal to be used for payment processing in order to honor FX rate (for eligible integrations) to be used when amount is settled/received into the payee account."
    }
  },
  "description": "Any additional payment instructions to be consider during payment processing. This processing instruction is applicable for Capturing an order or Authorizing an Order."
}
object paypal_wallet_customer
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/customer"
    },
    {
      "properties": {}
    }
  ],
  "title": "Customer information based on PayPal's system of record",
  "description": "The details about a customer in PayPal's system of record."
}
object phone
{
  "type": "object",
  "title": "Phone",
  "required": [
    "country_code",
    "national_number"
  ],
  "properties": {
    "country_code": {
      "type": "string",
      "pattern": "^[0-9]{1,3}?$",
      "maxLength": 3,
      "minLength": 1,
      "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN)."
    },
    "national_number": {
      "type": "string",
      "pattern": "^[0-9]{1,14}?$",
      "maxLength": 14,
      "minLength": 1,
      "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN)."
    },
    "extension_number": {
      "type": "string",
      "pattern": "^[0-9]{1,15}?$",
      "maxLength": 15,
      "minLength": 1,
      "description": "The extension number."
    }
  },
  "description": "The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en)."
}
string phone_type
{
  "enum": [
    "FAX",
    "HOME",
    "MOBILE",
    "OTHER",
    "PAGER"
  ],
  "type": "string",
  "title": "Phone Type",
  "description": "The phone type."
}
object phone_with_type
{
  "type": "object",
  "title": "Phone With Type",
  "required": [
    "phone_number"
  ],
  "properties": {
    "phone_type": {
      "$ref": "#/components/schemas/phone_type"
    },
    "phone_number": {
      "$ref": "#/components/schemas/phone",
      "description": "The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). Supports only the `national_number` property."
    }
  },
  "description": "The phone information."
}
object platform_fee
{
  "type": "object",
  "title": "Platform Fee",
  "required": [
    "amount"
  ],
  "properties": {
    "payee": {
      "$ref": "#/components/schemas/payee_base",
      "description": "The recipient of the fee for this transaction. If you omit this value, the default is the API caller."
    },
    "amount": {
      "$ref": "#/components/schemas/money",
      "description": "The fee for this transaction."
    }
  },
  "description": "The platform or partner fee, commission, or brokerage fee that is associated with the transaction. Not a separate or isolated transaction leg from the external perspective. The platform fee is limited in scope and is always associated with the original payment for the purchase unit."
}
object purchase_unit_request
{
  "type": "object",
  "title": "Purchase Unit Request",
  "required": [
    "amount"
  ],
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/item",
        "description": "The item."
      },
      "description": "An array of items that the customer purchases from the merchant."
    },
    "payee": {
      "$ref": "#/components/schemas/payee",
      "description": "The merchant who receives payment for this transaction."
    },
    "amount": {
      "$ref": "#/components/schemas/amount_with_breakdown",
      "description": "The total order amount with an optional breakdown that provides details, such as the total item amount, total tax amount, shipping, handling, insurance, and discounts, if any.<br/>If you specify `amount.breakdown`, the amount equals `item_total` plus `tax_total` plus `shipping` plus `handling` plus `insurance` minus `shipping_discount` minus discount.<br/>The amount must be a positive number. The `amount.value` field supports up to 15 digits preceding the decimal. For a list of supported currencies, decimal precision, and maximum charge amount, see the PayPal REST APIs <a href=\"https://developer.paypal.com/api/rest/reference/currency-codes/\">Currency Codes</a>."
    },
    "shipping": {
      "$ref": "#/components/schemas/shipping_detail",
      "description": "The name and address of the person to whom to ship the items."
    },
    "custom_id": {
      "type": "string",
      "maxLength": 127,
      "minLength": 1,
      "description": "The API caller-provided external ID. Used to reconcile client transactions with PayPal transactions. Appears in transaction and settlement reports but is not visible to the payer."
    },
    "invoice_id": {
      "type": "string",
      "maxLength": 127,
      "minLength": 1,
      "description": "The API caller-provided external invoice number for this order. Appears in both the payer's transaction history and the emails that the payer receives."
    },
    "description": {
      "type": "string",
      "maxLength": 127,
      "minLength": 1,
      "description": "The purchase description. The maximum length of the character is dependent on the type of characters used. The character length is specified assuming a US ASCII character. Depending on type of character; (e.g. accented character, Japanese characters) the number of characters that that can be specified as input might not equal the permissible max length."
    },
    "reference_id": {
      "type": "string",
      "maxLength": 256,
      "minLength": 1,
      "description": "The API caller-provided external ID for the purchase unit. Required for multiple purchase units when you must update the order through `PATCH`. If you omit this value and the order contains only one purchase unit, PayPal sets this value to `default`."
    },
    "soft_descriptor": {
      "type": "string",
      "maxLength": 22,
      "minLength": 1,
      "description": "The soft descriptor is the dynamic text used to construct the statement descriptor that appears on a payer's card statement.<br><br>If an Order is paid using the \"PayPal Wallet\", the statement descriptor will appear in following format on the payer's card statement: <code><var>PAYPAL_prefix</var>+(space)+<var>merchant_descriptor</var>+(space)+ <var>soft_descriptor</var></code><blockquote><strong>Note:</strong> The merchant descriptor is the descriptor of the merchant’s payment receiving preferences which can be seen by logging into the merchant account https://www.sandbox.paypal.com/businessprofile/settings/info/edit</blockquote>The <code>PAYPAL</code> prefix uses 8 characters. Only the first 22 characters will be displayed in the statement. <br>For example, if:<ul><li>The PayPal prefix toggle is <code>PAYPAL *</code>.</li><li>The merchant descriptor in the profile is <code>Janes Gift</code>.</li><li>The soft descriptor is <code>800-123-1234</code>.</li></ul>Then, the statement descriptor on the card is <code>PAYPAL * Janes Gift 80</code>."
    },
    "supplementary_data": {
      "$ref": "#/components/schemas/supplementary_data",
      "description": "Contains Supplementary Data."
    },
    "payment_instruction": {
      "$ref": "#/components/schemas/payment_instruction"
    }
  },
  "description": "The purchase unit request. Includes required information for the payment contract."
}
object shipping_detail
{
  "type": "object",
  "title": "Shipping Details",
  "properties": {
    "name": {
      "$ref": "#/components/schemas/name",
      "description": "The name of the person to whom to ship the items. Supports only the `full_name` property."
    },
    "type": {
      "enum": [
        "SHIPPING",
        "PICKUP_IN_PERSON",
        "PICKUP_IN_STORE",
        "PICKUP_FROM_PERSON"
      ],
      "type": "string",
      "pattern": "^[0-9A-Z_]+$",
      "maxLength": 255,
      "minLength": 1,
      "description": "A classification for the method of purchase fulfillment (e.g shipping, in-store pickup, etc). Either `type` or `options` may be present, but not both."
    },
    "address": {
      "$ref": "#/components/schemas/address_portable",
      "description": "The address of the person to whom to ship the items. Supports only the `address_line_1`, `address_line_2`, `admin_area_1`, `admin_area_2`, `postal_code`, and `country_code` properties."
    },
    "options": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/shipping_option",
        "description": "The option that the payee or merchant offers to the payer to ship or pick up their items."
      },
      "maxItems": 10,
      "minItems": 0,
      "description": "An array of shipping options that the payee or merchant offers to the payer to ship or pick up their items."
    }
  },
  "description": "The shipping details."
}
object shipping_option
{
  "type": "object",
  "title": "Shipping Option",
  "required": [
    "id",
    "label",
    "selected"
  ],
  "properties": {
    "id": {
      "type": "string",
      "maxLength": 127,
      "description": "A unique ID that identifies a payer-selected shipping option."
    },
    "type": {
      "$ref": "#/components/schemas/shipping_type",
      "description": "A classification for the method of purchase fulfillment."
    },
    "label": {
      "type": "string",
      "maxLength": 127,
      "description": "A description that the payer sees, which helps them choose an appropriate shipping option. For example, `Free Shipping`, `USPS Priority Shipping`, `Expédition prioritaire USPS`, or `USPS yōuxiān fā huò`. Localize this description to the payer's locale."
    },
    "amount": {
      "$ref": "#/components/schemas/money",
      "description": "The shipping cost for the selected option."
    },
    "selected": {
      "type": "boolean",
      "description": "If the API request sets `selected = true`, it represents the shipping option that the payee or merchant expects to be pre-selected for the payer when they first view the `shipping.options` in the PayPal Checkout experience. As part of the response if a `shipping.option` contains `selected=true`, it represents the shipping option that the payer selected during the course of checkout with PayPal. Only one `shipping.option` can be set to `selected=true`."
    }
  },
  "description": "The options that the payee or merchant offers to the payer to ship or pick up their items."
}
string shipping_type
{
  "enum": [
    "SHIPPING",
    "PICKUP",
    "PICKUP_IN_STORE",
    "PICKUP_FROM_PERSON"
  ],
  "type": "string",
  "title": "Shipping Type",
  "description": "A classification for the method of purchase fulfillment."
}
string store_in_vault_instruction
{
  "enum": [
    "ON_SUCCESS"
  ],
  "type": "string",
  "pattern": "^[0-9A-Z_]+$",
  "maxLength": 255,
  "minLength": 1,
  "description": "Defines how and when the payment source gets vaulted."
}
string stored_payment_source_payment_type
{
  "enum": [
    "ONE_TIME",
    "RECURRING",
    "UNSCHEDULED"
  ],
  "type": "string",
  "pattern": "^[0-9A-Z_]+$",
  "maxLength": 255,
  "minLength": 1,
  "description": "Indicates the type of the stored payment_source payment."
}
string stored_payment_source_usage_type
{
  "enum": [
    "FIRST",
    "SUBSEQUENT",
    "DERIVED"
  ],
  "type": "string",
  "default": "DERIVED",
  "pattern": "^[0-9A-Z_]+$",
  "maxLength": 255,
  "minLength": 1,
  "description": "Indicates if this is a `first` or `subsequent` payment using a stored payment source (also referred to as stored credential or card on file)."
}
object supplementary_data
{
  "type": "object",
  "title": "Supplementary Data",
  "properties": {
    "card": {
      "$ref": "#/components/schemas/card_supplementary_data",
      "description": "Merchants and partners can add Level 2 and 3 data to payments to reduce risk and payment processing costs. For more information about processing payments, see <a href=\"https://developer.paypal.com/docs/checkout/advanced/processing/\">checkout</a> or <a href=\"https://developer.paypal.com/docs/multiparty/checkout/advanced/processing/\">multiparty checkout</a>."
    }
  },
  "description": "Supplementary data about a payment. This object passes information that can be used to improve risk assessments and processing costs, for example, by providing Level 2 and Level 3 payment data."
}
object tax_info
{
  "type": "object",
  "title": "Tax Information",
  "required": [
    "tax_id",
    "tax_id_type"
  ],
  "properties": {
    "tax_id": {
      "type": "string",
      "pattern": "([a-zA-Z0-9])",
      "maxLength": 14,
      "minLength": 1,
      "description": "The customer's tax ID value."
    },
    "tax_id_type": {
      "enum": [
        "BR_CPF",
        "BR_CNPJ"
      ],
      "type": "string",
      "pattern": "^[A-Z0-9_]+$",
      "maxLength": 14,
      "minLength": 1,
      "description": "The customer's tax ID type."
    }
  },
  "description": "The tax ID of the customer. The customer is also known as the payer. Both `tax_id` and `tax_id_type` are required."
}
object token
{
  "type": "object",
  "title": "Token",
  "required": [
    "id",
    "type"
  ],
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-zA-Z_-]+$",
      "maxLength": 255,
      "minLength": 1,
      "description": "The PayPal-generated ID for the token."
    },
    "type": {
      "enum": [
        "BILLING_AGREEMENT"
      ],
      "type": "string",
      "pattern": "^[0-9A-Z_-]+$",
      "maxLength": 255,
      "minLength": 1,
      "description": "The tokenization method that generated the ID."
    }
  },
  "description": "The tokenized payment source to fund a payment."
}
string url
{
  "type": "string",
  "format": "uri",
  "description": "Describes the URL."
}
string vault_id
{
  "type": "string",
  "pattern": "^[0-9a-zA-Z_-]+$",
  "maxLength": 255,
  "minLength": 1,
  "description": "The PayPal-generated ID for the vaulted payment source. This ID should be stored on the merchant's server so the saved payment source can be used for future transactions."
}
object vault_instruction_base
{
  "type": "object",
  "title": "Base vault Instruction parameters",
  "properties": {
    "store_in_vault": {
      "$ref": "#/components/schemas/store_in_vault_instruction"
    }
  },
  "description": "Basic vault instruction specification that can be extended by specific payment sources that supports vaulting."
}