{
  "openapi": "3.0.3",
  "info": {
    "title": "Partner Referrals",
    "description": "Use the Partner Referrals API to add PayPal seller accounts to PayPal Complete Payments Platform for Marketplaces and Platforms. <blockquote><strong>Important:</strong> This endpoint is available to approved partners only. <a href=\"/docs/multiparty/#link-tellusaboutyourplatform\">Fill out this form</a> to get approved and a PayPal representative will reach out to you shortly.</blockquote> For more information about partner integrations and onboarding sellers, see <a href=\"/docs/multiparty\">PayPal Complete Payments Platform for Marketplaces and Platforms.",
    "version": "2.4",
    "contact": {}
  },
  "servers": [
    {
      "url": "https://api-m.sandbox.paypal.com",
      "description": "PayPal Sandbox Environment"
    },
    {
      "url": "https://api-m.paypal.com",
      "description": "PayPal Live Environment"
    }
  ],
  "tags": [
    {
      "name": "partner-referrals",
      "description": "Enables you to create and get information about shared customer data."
    }
  ],
  "externalDocs": {
    "url": "https://developer.paypal.com/docs/platforms/seller-onboarding/before-payment/"
  },
  "paths": {
    "/v2/customer/partner-referrals": {
      "post": {
        "summary": "Create partner referral",
        "description": "Creates a partner referral that is shared by the partner or API caller. The partner referral is used to onboard the seller, and contains the seller's personal, business, financial and operations.",
        "operationId": "partner-referrals.create",
        "responses": {
          "201": {
            "description": "A successful request returns the HTTP `201 Created` status code and a JSON response body that contains a [HATEOAS link](/docs/api/overview/#hateoas-links) to show the referral data and an `action_url` to which you redirect the customer in a browser to complete the signup process. The `partner_referral_id` token is appended to the URL.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/create_referral_data_response"
                }
              }
            }
          },
          "400": {
            "description": "Request is not well-formed, syntactically incorrect, or violates schema.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/error_400"
                    },
                    {
                      "$ref": "#/components/schemas/400"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "The API call is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/error_401"
                    },
                    {
                      "$ref": "#/components/schemas/401"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Authorization failed due to insufficient permissions or missing scopes on the caller account.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/error_403"
                    },
                    {
                      "$ref": "#/components/schemas/403"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "The caller is not a business account or the account is closed or locked.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/error_422"
                    },
                    {
                      "$ref": "#/components/schemas/422"
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "An internal server error has occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_500"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/referral_data"
              }
            }
          },
          "required": true
        },
        "security": [
          {
            "Oauth2": [
              "https://uri.paypal.com/services/customer/partner-referrals/readwrite"
            ]
          }
        ],
        "tags": [
          "partner-referrals"
        ]
      }
    },
    "/v2/customer/partner-referrals/{partner_referral_id}": {
      "get": {
        "summary": "Show referral data",
        "description": "Shows details by ID for referral data that was shared by the partner or API caller.",
        "operationId": "partner-referrals.read",
        "responses": {
          "200": {
            "description": "A successful request returns the HTTP `200 OK` status code and a JSON response body that shows referral data.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/referral_data_response"
                },
                "examples": {
                  "referral_data": {
                    "value": {
                      "individual_owners": [
                        {
                          "names": [
                            {
                              "prefix": "Mr.",
                              "given_name": "John",
                              "surname": "Doe",
                              "middle_name": "Middle",
                              "suffix": "Jr.",
                              "full_name": "John Middle Doe Jr.",
                              "type": "LEGAL"
                            }
                          ],
                          "citizenship": "US",
                          "addresses": [
                            {
                              "address_line_1": "One Washington Square",
                              "address_line_2": "Apt 123",
                              "admin_area_2": "San Jose",
                              "admin_area_1": "CA",
                              "postal_code": "95112",
                              "country_code": "US",
                              "type": "HOME"
                            }
                          ],
                          "phones": [
                            {
                              "country_code": "1",
                              "national_number": "6692468839",
                              "extension_number": "1234",
                              "type": "MOBILE"
                            }
                          ],
                          "birth_details": {
                            "date_of_birth": "1955-12-29"
                          },
                          "type": "PRIMARY"
                        }
                      ],
                      "business_entity": {
                        "business_type": {
                          "type": "INDIVIDUAL",
                          "subtype": "ASSO_TYPE_INCORPORATED"
                        },
                        "business_industry": {
                          "category": "1004",
                          "mcc_code": "8931",
                          "subcategory": "2025"
                        },
                        "business_incorporation": {
                          "incorporation_country_code": "US",
                          "incorporation_date": "1986-12-29"
                        },
                        "names": [
                          {
                            "business_name": "Test Enterprise",
                            "type": "LEGAL_NAME"
                          }
                        ],
                        "emails": [
                          {
                            "type": "CUSTOMER_SERVICE",
                            "email": "customerservice@example.com"
                          }
                        ],
                        "website": "https://mystore.testenterprises.com",
                        "addresses": [
                          {
                            "address_line_1": "One Washington Square",
                            "address_line_2": "Apt 123",
                            "admin_area_2": "San Jose",
                            "admin_area_1": "CA",
                            "postal_code": "95112",
                            "country_code": "US",
                            "type": "WORK"
                          }
                        ],
                        "phones": [
                          {
                            "country_code": "1",
                            "national_number": "6692478833",
                            "extension_number": "1234",
                            "type": "CUSTOMER_SERVICE"
                          }
                        ],
                        "beneficial_owners": {
                          "individual_beneficial_owners": [
                            {
                              "names": [
                                {
                                  "prefix": "Mr.",
                                  "given_name": "John",
                                  "surname": "Doe",
                                  "middle_name": "Middle",
                                  "suffix": "Jr.",
                                  "full_name": "John Middle Doe Jr.",
                                  "type": "LEGAL"
                                }
                              ],
                              "citizenship": "US",
                              "addresses": [
                                {
                                  "address_line_1": "One Washington Square",
                                  "address_line_2": "Apt 123",
                                  "admin_area_2": "San Jose",
                                  "admin_area_1": "CA",
                                  "postal_code": "95112",
                                  "country_code": "US",
                                  "type": "HOME"
                                }
                              ],
                              "phones": [
                                {
                                  "country_code": "1",
                                  "national_number": "6692468839",
                                  "extension_number": "1234",
                                  "type": "MOBILE"
                                }
                              ],
                              "birth_details": {
                                "date_of_birth": "1955-12-29"
                              },
                              "percentage_of_ownership": "50"
                            }
                          ],
                          "business_beneficial_owners": [
                            {
                              "business_type": {
                                "type": "INDIVIDUAL",
                                "subtype": "ASSO_TYPE_INCORPORATED"
                              },
                              "business_industry": {
                                "category": "1004",
                                "mcc_code": "8931",
                                "subcategory": "2025"
                              },
                              "business_incorporation": {
                                "incorporation_country_code": "US",
                                "incorporation_date": "1986-12-29"
                              },
                              "names": [
                                {
                                  "business_name": "Test Enterprise",
                                  "type": "LEGAL_NAME"
                                }
                              ],
                              "emails": [
                                {
                                  "type": "CUSTOMER_SERVICE",
                                  "email": "customerservice@example.com"
                                }
                              ],
                              "website": "https://mystore.testenterprises.com",
                              "addresses": [
                                {
                                  "address_line_1": "One Washington Square",
                                  "address_line_2": "Apt 123",
                                  "admin_area_2": "San Jose",
                                  "admin_area_1": "CA",
                                  "postal_code": "95112",
                                  "country_code": "US",
                                  "type": "WORK"
                                }
                              ],
                              "phones": [
                                {
                                  "country_code": "1",
                                  "national_number": "6692478833",
                                  "extension_number": "1234",
                                  "type": "CUSTOMER_SERVICE"
                                }
                              ],
                              "percentage_of_ownership": "50"
                            }
                          ]
                        },
                        "office_bearers": [
                          {
                            "names": [
                              {
                                "prefix": "Mr.",
                                "given_name": "John",
                                "surname": "Doe",
                                "middle_name": "Middle",
                                "suffix": "Jr.",
                                "full_name": "John Middle Doe Jr.",
                                "type": "LEGAL"
                              }
                            ],
                            "citizenship": "US",
                            "addresses": [
                              {
                                "address_line_1": "One Washington Square",
                                "address_line_2": "Apt 123",
                                "admin_area_2": "San Jose",
                                "admin_area_1": "CA",
                                "postal_code": "95112",
                                "country_code": "US",
                                "type": "HOME"
                              }
                            ],
                            "phones": [
                              {
                                "country_code": "1",
                                "national_number": "6692468839",
                                "extension_number": "1234",
                                "type": "MOBILE"
                              }
                            ],
                            "birth_details": {
                              "date_of_birth": "1955-12-29"
                            },
                            "role": "DIRECTOR"
                          }
                        ],
                        "annual_sales_volume_range": {
                          "minimum_amount": {
                            "currency_code": "USD",
                            "value": "10000"
                          },
                          "maximum_amount": {
                            "currency_code": "USD",
                            "value": "50000"
                          }
                        },
                        "average_monthly_volume_range": {
                          "minimum_amount": {
                            "currency_code": "USD",
                            "value": "1000"
                          },
                          "maximum_amount": {
                            "currency_code": "USD",
                            "value": "50000"
                          }
                        },
                        "purpose_code": "P0104"
                      },
                      "email": "accountemail@example.com",
                      "preferred_language_code": "en-US",
                      "tracking_id": "testenterprices123122",
                      "partner_config_override": {
                        "partner_logo_url": "https://www.paypalobjects.com/webstatic/mktg/logo/pp_cc_mark_111x69.jpg",
                        "return_url": "https://testenterprises.com/merchantonboarded",
                        "return_url_description": "the url to return the merchant after the paypal onboarding process.",
                        "action_renewal_url": "https://testenterprises.com/renew-exprired-url",
                        "show_add_credit_card": true
                      },
                      "operations": [
                        {
                          "operation": "BANK_ADDITION"
                        }
                      ],
                      "financial_instruments": {
                        "banks": [
                          {
                            "nick_name": "Bank of America",
                            "account_number": "123405668293",
                            "account_type": "CHECKING",
                            "currency_code": "USD",
                            "identifiers": [
                              {
                                "type": "ROUTING_NUMBER_1",
                                "value": "123456789"
                              }
                            ]
                          }
                        ]
                      },
                      "legal_consents": [
                        {
                          "type": "SHARE_DATA_CONSENT",
                          "granted": true
                        }
                      ],
                      "products": [
                        "EXPRESS_CHECKOUT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "The API call is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/error_401"
                    },
                    {
                      "$ref": "#/components/schemas/401"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Authorization failed due to insufficient permissions or missing scopes on the caller Account.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/error_403"
                    },
                    {
                      "$ref": "#/components/schemas/403"
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "An internal server error has occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_500"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/partner_referral_id"
          }
        ],
        "security": [
          {
            "Oauth2": [
              "https://uri.paypal.com/services/customer/partner-referrals/readwrite"
            ]
          },
          {
            "Oauth2": [
              "https://uri.paypal.com/services/customer/partner-referrals"
            ]
          }
        ],
        "tags": [
          "partner-referrals"
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "Oauth2": {
        "type": "oauth2",
        "description": "Oauth 2.0 authentication",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "/v1/oauth2/token",
            "scopes": {
              "https://uri.paypal.com/services/customer/partner": "Manage seller resources.",
              "https://uri.paypal.com/services/customer/partner-referrals/readwrite": "Manage external referral data with PayPal",
              "https://uri.paypal.com/services/customer/partner-referrals": "Manage referral data shared by Partner with PayPal. To be used by only internal apps"
            }
          }
        }
      }
    },
    "responses": {
      "default": {
        "description": "The default response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error_default"
            }
          }
        }
      }
    },
    "schemas": {
      "400": {
        "properties": {
          "details": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "title": "INVALID_STRING_LENGTH",
                  "properties": {
                    "issue": {
                      "type": "string",
                      "enum": [
                        "INVALID_STRING_LENGTH"
                      ]
                    },
                    "description": {
                      "type": "string",
                      "enum": [
                        "the value of a field is either too short or too long"
                      ]
                    }
                  }
                },
                {
                  "title": "INVALID_PARAMETER_SYNTAX",
                  "properties": {
                    "issue": {
                      "type": "string",
                      "enum": [
                        "INVALID_PARAMETER_SYNTAX"
                      ]
                    },
                    "description": {
                      "type": "string",
                      "enum": [
                        "the value of a field does not conform to the expected format"
                      ]
                    }
                  }
                },
                {
                  "title": "INVALID_PARAMETER_VALUE",
                  "properties": {
                    "issue": {
                      "type": "string",
                      "enum": [
                        "INVALID_PARAMETER_VALUE"
                      ]
                    },
                    "description": {
                      "type": "string",
                      "enum": [
                        "the value of a field is invalid"
                      ]
                    }
                  }
                },
                {
                  "title": "INVALID_ARRAY_LENGTH",
                  "properties": {
                    "issue": {
                      "type": "string",
                      "enum": [
                        "INVALID_ARRAY_LENGTH"
                      ]
                    },
                    "description": {
                      "type": "string",
                      "enum": [
                        "the number of items in an array parameter is too small or too large"
                      ]
                    }
                  }
                }
              ]
            }
          }
        }
      },
      "401": {
        "properties": {
          "details": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "title": "AUTHORIZATION_ERROR",
                  "properties": {
                    "issue": {
                      "type": "string",
                      "enum": [
                        "AUTHORIZATION_ERROR"
                      ]
                    },
                    "description": {
                      "type": "string",
                      "enum": [
                        "This API call is not authorized"
                      ]
                    }
                  }
                }
              ]
            }
          }
        }
      },
      "403": {
        "properties": {
          "details": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "title": "PERMISSION_DENIED",
                  "properties": {
                    "issue": {
                      "type": "string",
                      "enum": [
                        "PERMISSION_DENIED"
                      ]
                    },
                    "description": {
                      "type": "string",
                      "enum": [
                        "You do not have permission to access or perform operations on this resource."
                      ]
                    }
                  }
                }
              ]
            }
          }
        }
      },
      "422": {
        "properties": {
          "details": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "title": "USER_NOT_FOUND",
                  "properties": {
                    "issue": {
                      "type": "string",
                      "enum": [
                        "USER_NOT_FOUND"
                      ]
                    },
                    "description": {
                      "type": "string",
                      "enum": [
                        "Account for this Partner ID does not exist."
                      ]
                    }
                  }
                },
                {
                  "title": "ACCOUNT_STATUS_ERROR",
                  "properties": {
                    "issue": {
                      "type": "string",
                      "enum": [
                        "ACCOUNT_STATUS_ERROR"
                      ]
                    },
                    "description": {
                      "type": "string"
                    }
                  }
                },
                {
                  "title": "PRODUCT_PPCP_UNAUTHORIZED",
                  "properties": {
                    "issue": {
                      "type": "string",
                      "enum": [
                        "PRODUCT_PPCP_UNAUTHORIZED"
                      ]
                    },
                    "description": {
                      "type": "string",
                      "enum": [
                        "Account has not been configured to use PayPal Complete Payments"
                      ]
                    }
                  }
                }
              ]
            }
          }
        }
      },
      "error_details": {
        "title": "Error Details",
        "type": "object",
        "description": "The error details. Required for client-side `4XX` errors.",
        "properties": {
          "field": {
            "type": "string",
            "description": "The field that caused the error. If this field is in the body, set this value to the field's JSON pointer value. Required for client-side errors."
          },
          "value": {
            "type": "string",
            "description": "The value of the field that caused the error."
          },
          "location": {
            "$ref": "#/components/schemas/error_location"
          },
          "issue": {
            "type": "string",
            "description": "The unique, fine-grained application-level error code."
          },
          "description": {
            "type": "string",
            "description": "The human-readable description for an issue. The description can change over the lifetime of an API, so clients must not depend on this value."
          }
        },
        "required": [
          "issue"
        ]
      },
      "error_location": {
        "type": "string",
        "description": "The location of the field that caused the error. Value is `body`, `path`, or `query`.",
        "enum": [
          "body",
          "path",
          "query"
        ],
        "default": "body"
      },
      "error_default": {
        "description": "The default error response.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/error_400"
          },
          {
            "$ref": "#/components/schemas/error_401"
          },
          {
            "$ref": "#/components/schemas/error_403"
          },
          {
            "$ref": "#/components/schemas/error_404"
          },
          {
            "$ref": "#/components/schemas/error_409"
          },
          {
            "$ref": "#/components/schemas/error_415"
          },
          {
            "$ref": "#/components/schemas/error_422"
          },
          {
            "$ref": "#/components/schemas/error_500"
          },
          {
            "$ref": "#/components/schemas/error_503"
          }
        ]
      },
      "error_link_description": {
        "title": "Link Description",
        "description": "The request-related [HATEOAS link](/api/rest/responses/#hateoas-links) information.",
        "type": "object",
        "required": [
          "href",
          "rel"
        ],
        "properties": {
          "href": {
            "description": "The complete target URL. To make the related call, combine the method with this [URI Template-formatted](https://tools.ietf.org/html/rfc6570) link. For pre-processing, include the `$`, `(`, and `)` characters. The `href` is the key HATEOAS component that links a completed call with a subsequent call.",
            "type": "string",
            "minLength": 0,
            "maxLength": 20000,
            "pattern": "^.*$"
          },
          "rel": {
            "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which serves as an ID for a link that unambiguously describes the semantics of the link. See [Link Relations](https://www.iana.org/assignments/link-relations/link-relations.xhtml).",
            "type": "string",
            "minLength": 0,
            "maxLength": 100,
            "pattern": "^.*$"
          },
          "method": {
            "description": "The HTTP method required to make the related call.",
            "type": "string",
            "minLength": 3,
            "maxLength": 6,
            "pattern": "^[A-Z]*$",
            "enum": [
              "GET",
              "POST",
              "PUT",
              "DELETE",
              "PATCH"
            ]
          }
        }
      },
      "error_400": {
        "type": "object",
        "title": "Bad Request Error",
        "description": "Request is not well-formed, syntactically incorrect, or violates schema.",
        "properties": {
          "name": {
            "type": "string",
            "enum": [
              "INVALID_REQUEST"
            ]
          },
          "message": {
            "type": "string",
            "enum": [
              "Request is not well-formed, syntactically incorrect, or violates schema."
            ]
          },
          "details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/error_details"
            }
          },
          "debug_id": {
            "type": "string",
            "description": "The PayPal internal ID. Used for correlation purposes."
          },
          "links": {
            "description": "An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS).",
            "type": "array",
            "minItems": 0,
            "maxItems": 10000,
            "items": {
              "$ref": "#/components/schemas/error_link_description"
            }
          }
        }
      },
      "error_401": {
        "type": "object",
        "title": "Unauthorized Error",
        "description": "Authentication failed due to missing Authorization header, or invalid authentication credentials.",
        "properties": {
          "name": {
            "type": "string",
            "enum": [
              "AUTHENTICATION_FAILURE"
            ]
          },
          "message": {
            "type": "string",
            "enum": [
              "Authentication failed due to missing authorization header, or invalid authentication credentials."
            ]
          },
          "details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/error_details"
            }
          },
          "debug_id": {
            "type": "string",
            "description": "The PayPal internal ID. Used for correlation purposes."
          },
          "links": {
            "description": "An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS).",
            "type": "array",
            "minItems": 0,
            "maxItems": 10000,
            "items": {
              "$ref": "#/components/schemas/error_link_description"
            }
          }
        }
      },
      "error_403": {
        "type": "object",
        "title": "Not Authorized Error",
        "description": "The client is not authorized to access this resource, although it may have valid credentials. ",
        "properties": {
          "name": {
            "type": "string",
            "enum": [
              "NOT_AUTHORIZED"
            ]
          },
          "message": {
            "type": "string",
            "enum": [
              "Authorization failed due to insufficient permissions."
            ]
          },
          "details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/error_details"
            }
          },
          "debug_id": {
            "type": "string",
            "description": "The PayPal internal ID. Used for correlation purposes."
          },
          "links": {
            "description": "An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS).",
            "type": "array",
            "minItems": 0,
            "maxItems": 10000,
            "items": {
              "$ref": "#/components/schemas/error_link_description"
            }
          }
        }
      },
      "error_404": {
        "type": "object",
        "title": "Not found Error",
        "description": "The server has not found anything matching the request URI. This either means that the URI is incorrect or the resource is not available.",
        "properties": {
          "name": {
            "type": "string",
            "enum": [
              "RESOURCE_NOT_FOUND"
            ]
          },
          "message": {
            "type": "string",
            "enum": [
              "The specified resource does not exist."
            ]
          },
          "details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/error_details"
            }
          },
          "debug_id": {
            "type": "string",
            "description": "The PayPal internal ID. Used for correlation purposes."
          },
          "links": {
            "description": "An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS).",
            "type": "array",
            "minItems": 0,
            "maxItems": 10000,
            "items": {
              "$ref": "#/components/schemas/error_link_description"
            }
          }
        }
      },
      "error_409": {
        "type": "object",
        "title": "Resource Conflict Error",
        "description": "The server has detected a conflict while processing this request.",
        "properties": {
          "name": {
            "type": "string",
            "enum": [
              "RESOURCE_CONFLICT"
            ]
          },
          "message": {
            "type": "string",
            "enum": [
              "The server has detected a conflict while processing this request."
            ]
          },
          "details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/error_details"
            }
          },
          "debug_id": {
            "type": "string",
            "description": "The PayPal internal ID. Used for correlation purposes."
          },
          "links": {
            "description": "An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS).",
            "type": "array",
            "minItems": 0,
            "maxItems": 10000,
            "items": {
              "$ref": "#/components/schemas/error_link_description"
            }
          }
        }
      },
      "error_415": {
        "type": "object",
        "title": "Unsupported Media Type Error",
        "description": "The server does not support the request payload's media type.",
        "properties": {
          "name": {
            "type": "string",
            "enum": [
              "UNSUPPORTED_MEDIA_TYPE"
            ]
          },
          "message": {
            "type": "string",
            "enum": [
              "The server does not support the request payload's media type."
            ]
          },
          "details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/error_details"
            }
          },
          "debug_id": {
            "type": "string",
            "description": "The PayPal internal ID. Used for correlation purposes."
          },
          "links": {
            "description": "An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS).",
            "type": "array",
            "minItems": 0,
            "maxItems": 10000,
            "items": {
              "$ref": "#/components/schemas/error_link_description"
            }
          }
        }
      },
      "error_422": {
        "type": "object",
        "title": "Unprocessable Entity Error",
        "description": "The requested action cannot be performed and may require interaction with APIs or processes outside of the current request. This is distinct from a 500 response in that there are no systemic problems limiting the API from performing the request.",
        "properties": {
          "name": {
            "type": "string",
            "enum": [
              "UNPROCESSABLE_ENTITY"
            ]
          },
          "message": {
            "type": "string",
            "enum": [
              "The requested action could not be performed, semantically incorrect, or failed business validation."
            ]
          },
          "details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/error_details"
            }
          },
          "debug_id": {
            "type": "string",
            "description": "The PayPal internal ID. Used for correlation purposes."
          },
          "links": {
            "description": "An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS).",
            "type": "array",
            "minItems": 0,
            "maxItems": 10000,
            "items": {
              "$ref": "#/components/schemas/error_link_description"
            }
          }
        }
      },
      "error_500": {
        "type": "object",
        "title": "Internal Server Error",
        "description": "This is either a system or application error, and generally indicates that although the client appeared to provide a correct request, something unexpected has gone wrong on the server.",
        "properties": {
          "name": {
            "type": "string",
            "enum": [
              "INTERNAL_SERVER_ERROR"
            ]
          },
          "message": {
            "type": "string",
            "enum": [
              "An internal server error occurred."
            ]
          },
          "debug_id": {
            "type": "string",
            "description": "The PayPal internal ID. Used for correlation purposes."
          },
          "links": {
            "description": "An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS).",
            "type": "array",
            "minItems": 0,
            "maxItems": 10000,
            "items": {
              "$ref": "#/components/schemas/error_link_description"
            }
          }
        },
        "example": {
          "name": "INTERNAL_SERVER_ERROR",
          "message": "An internal server error occurred.",
          "debug_id": "90957fca61718",
          "links": [
            {
              "href": "https://developer.paypal.com/api/orders/v2/#error-INTERNAL_SERVER_ERROR",
              "rel": "information_link"
            }
          ]
        }
      },
      "error_503": {
        "type": "object",
        "title": "Service Unavailable Error",
        "description": "The server is temporarily unable to handle the request, for example, because of planned maintenance or downtime.",
        "properties": {
          "name": {
            "type": "string",
            "enum": [
              "SERVICE_UNAVAILABLE"
            ]
          },
          "message": {
            "type": "string",
            "enum": [
              "Service Unavailable."
            ]
          },
          "debug_id": {
            "type": "string",
            "description": "The PayPal internal ID. Used for correlation purposes."
          },
          "links": {
            "description": "An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS).",
            "type": "array",
            "minItems": 0,
            "maxItems": 10000,
            "items": {
              "$ref": "#/components/schemas/error_link_description"
            }
          }
        },
        "example": {
          "name": "SERVICE_UNAVAILABLE",
          "message": "Service Unavailable.",
          "debug_id": "90957fca61718",
          "information_link": "https://developer.paypal.com/docs/api/orders/v2/#error-SERVICE_UNAVAILABLE"
        }
      },
      "name": {
        "type": "object",
        "title": "Name",
        "description": "The name of the party.",
        "properties": {
          "prefix": {
            "type": "string",
            "description": "The prefix, or title, to the party's name.",
            "maxLength": 140
          },
          "given_name": {
            "type": "string",
            "description": "When the party is a person, the party's given, or first, name.",
            "maxLength": 140
          },
          "surname": {
            "type": "string",
            "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.",
            "maxLength": 140
          },
          "middle_name": {
            "type": "string",
            "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.",
            "maxLength": 140
          },
          "suffix": {
            "type": "string",
            "description": "The suffix for the party's name.",
            "maxLength": 140
          },
          "full_name": {
            "type": "string",
            "description": "When the party is a person, the party's full name.",
            "maxLength": 300
          }
        }
      },
      "person_name_type": {
        "description": "The person's name type.",
        "title": "Person name type",
        "type": "string",
        "pattern": "^[0-9A-Z_]+$",
        "minLength": 1,
        "maxLength": 255,
        "enum": [
          "LEGAL"
        ]
      },
      "person_name": {
        "type": "object",
        "title": "Person name",
        "description": "The name of the person.",
        "allOf": [
          {
            "$ref": "#/components/schemas/name"
          },
          {
            "properties": {
              "type": {
                "description": "The type of name. Currently supported values are: `LEGAL`.",
                "$ref": "#/components/schemas/person_name_type"
              }
            }
          }
        ],
        "required": [
          "type"
        ]
      },
      "country_code": {
        "type": "string",
        "description": "The [two-character ISO 3166-1 code](/docs/api/reference/country-codes/) 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>",
        "format": "ppaas_common_country_code_v2",
        "maxLength": 2,
        "minLength": 2,
        "pattern": "^([A-Z]{2}|C2)$"
      },
      "address_portable": {
        "type": "object",
        "title": "Portable Postal Address (Medium-Grained)",
        "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).",
        "properties": {
          "address_line_1": {
            "type": "string",
            "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.",
            "maxLength": 300
          },
          "address_line_2": {
            "type": "string",
            "description": "The second line of the address. For example, suite or apartment number.",
            "maxLength": 300
          },
          "address_line_3": {
            "type": "string",
            "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.",
            "maxLength": 100
          },
          "admin_area_4": {
            "type": "string",
            "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>",
            "maxLength": 100
          },
          "admin_area_3": {
            "type": "string",
            "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>",
            "maxLength": 100
          },
          "admin_area_2": {
            "type": "string",
            "description": "A city, town, or village. Smaller than `admin_area_level_1`.",
            "maxLength": 120
          },
          "admin_area_1": {
            "type": "string",
            "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision. 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>",
            "maxLength": 300
          },
          "postal_code": {
            "type": "string",
            "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).",
            "maxLength": 60
          },
          "country_code": {
            "$ref": "#/components/schemas/country_code"
          },
          "address_details": {
            "type": "object",
            "title": "Address Details",
            "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`.",
            "properties": {
              "street_number": {
                "type": "string",
                "description": "The street number.",
                "maxLength": 100
              },
              "street_name": {
                "type": "string",
                "description": "The street name. Just `Drury` in `Drury Lane`.",
                "maxLength": 100
              },
              "street_type": {
                "type": "string",
                "description": "The street type. For example, avenue, boulevard, road, or expressway.",
                "maxLength": 100
              },
              "delivery_service": {
                "type": "string",
                "description": "The delivery service. Post office box, bag number, or post office name.",
                "maxLength": 100
              },
              "building_name": {
                "type": "string",
                "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>.",
                "maxLength": 100
              },
              "sub_building": {
                "type": "string",
                "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.",
                "maxLength": 100
              }
            }
          }
        },
        "required": [
          "country_code"
        ]
      },
      "person_address_type": {
        "description": "The address type under which the provided address is tagged.",
        "title": "Person address type",
        "type": "string",
        "pattern": "^[0-9A-Z_]+$",
        "minLength": 1,
        "maxLength": 255,
        "enum": [
          "HOME"
        ]
      },
      "person_address_detail": {
        "type": "object",
        "title": "Person address detail",
        "description": "A simple postal address with coarse-grained fields.",
        "allOf": [
          {
            "$ref": "#/components/schemas/address_portable"
          },
          {
            "properties": {
              "type": {
                "description": "The address type under which this is classified.",
                "$ref": "#/components/schemas/person_address_type"
              },
              "primary": {
                "type": "boolean",
                "description": "Whether this is the primary address of the user. This cannot be directly set to `false`, but rather it is toggled `false` in the datastore when another address is set to primary."
              },
              "inactive": {
                "type": "boolean",
                "description": "Whether this address has been inactivated.",
                "readOnly": true
              }
            }
          }
        ],
        "required": [
          "type"
        ]
      },
      "phone": {
        "type": "object",
        "title": "Phone",
        "description": "The phone number in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).",
        "properties": {
          "country_code": {
            "type": "string",
            "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).",
            "minLength": 1,
            "maxLength": 3,
            "pattern": "^[0-9]{1,3}?$"
          },
          "national_number": {
            "type": "string",
            "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).",
            "minLength": 1,
            "maxLength": 14,
            "pattern": "^[0-9]{1,14}?$"
          },
          "extension_number": {
            "type": "string",
            "description": "The extension number.",
            "minLength": 1,
            "maxLength": 15,
            "pattern": "^[0-9]{1,15}?$"
          }
        },
        "required": [
          "country_code",
          "national_number"
        ]
      },
      "phone_type": {
        "type": "string",
        "title": "Phone Type",
        "description": "The phone type.",
        "enum": [
          "FAX",
          "HOME",
          "MOBILE",
          "OTHER",
          "PAGER"
        ]
      },
      "phone_number_tag": {
        "description": "Tag associated with the phone number.",
        "title": "Phone number tag",
        "type": "string",
        "pattern": "^[0-9A-Z_]+$",
        "minLength": 1,
        "maxLength": 255,
        "enum": [
          "MOBILE",
          "LANDLINE"
        ]
      },
      "person_phone_detail": {
        "type": "object",
        "title": "Phone details",
        "description": "The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).",
        "allOf": [
          {
            "$ref": "#/components/schemas/phone"
          },
          {
            "properties": {
              "contact_name": {
                "type": "string",
                "description": "The name that the phone number is connected to.",
                "minLength": 1,
                "maxLength": 900
              },
              "inactive": {
                "type": "boolean",
                "description": "Whether this phone number has been inactivated by the user.",
                "readOnly": true
              },
              "primary": {
                "type": "boolean",
                "description": "Whether this is the primary contact phone number of the user."
              },
              "primary_mobile": {
                "type": "boolean",
                "description": "Whether this is the primary mobile phone number of the user."
              },
              "type": {
                "$ref": "#/components/schemas/phone_type",
                "description": "The type of phone number provided. For example, home, work, or mobile."
              },
              "tags": {
                "type": "array",
                "description": "Array of tags for this phone number.",
                "items": {
                  "$ref": "#/components/schemas/phone_number_tag"
                },
                "minItems": 0,
                "maxItems": 20
              }
            }
          }
        ],
        "required": [
          "type"
        ]
      },
      "date_no_time": {
        "type": "string",
        "description": "The stand-alone date, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). To represent special legal values, such as a date of birth, you should use dates with no associated time or time-zone data. Whenever possible, use the standard `date_time` type. This regular expression does not validate all dates. For example, February 31 is valid and nothing is known about leap years.",
        "format": "ppaas_date_notime_v2",
        "minLength": 10,
        "maxLength": 10,
        "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$"
      },
      "birth_details": {
        "title": "Birth details",
        "type": "object",
        "description": "Date of birth data provided by the user",
        "properties": {
          "date_of_birth": {
            "description": "date of birth, fomrat [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6).",
            "$ref": "#/components/schemas/date_no_time"
          }
        },
        "required": [
          "date_of_birth"
        ]
      },
      "date_time": {
        "type": "string",
        "description": "The date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are required while fractional seconds are optional.<blockquote><strong>Note:</strong> The regular expression provides guidance but does not reject all invalid dates.</blockquote>",
        "format": "ppaas_date_time_v3",
        "minLength": 20,
        "maxLength": 64,
        "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$"
      },
      "file_reference": {
        "type": "object",
        "title": "File Reference",
        "description": "The file reference. Can be a file in PayPal MediaServ, PayPal DMS, or another custom store.",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the referenced file.",
            "minLength": 1,
            "maxLength": 255
          },
          "reference_url": {
            "type": "string",
            "description": "The reference URL for the file.",
            "format": "uri",
            "minLength": 1,
            "maxLength": 2000
          },
          "content_type": {
            "type": "string",
            "description": "The [Internet Assigned Numbers Authority (IANA) media type of the file](https://www.iana.org/assignments/media-types/media-types.xhtml)."
          },
          "create_time": {
            "$ref": "#/components/schemas/date_time",
            "description": "The date and time when the file was created, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6)."
          },
          "size": {
            "type": "string",
            "description": "The size of the file, in bytes.",
            "pattern": "^[0-9]+$"
          }
        }
      },
      "link_description": {
        "type": "object",
        "title": "Link Description",
        "description": "The request-related [HATEOAS link](/docs/api/reference/api-responses/#hateoas-links) information.",
        "required": [
          "href",
          "rel"
        ],
        "properties": {
          "href": {
            "type": "string",
            "description": "The complete target URL. To make the related call, combine the method with this [URI Template-formatted](https://tools.ietf.org/html/rfc6570) link. For pre-processing, include the `$`, `(`, and `)` characters. The `href` is the key HATEOAS component that links a completed call with a subsequent call."
          },
          "rel": {
            "type": "string",
            "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which serves as an ID for a link that unambiguously describes the semantics of the link. See [Link Relations](https://www.iana.org/assignments/link-relations/link-relations.xhtml)."
          },
          "method": {
            "type": "string",
            "description": "The HTTP method required to make the related call.",
            "enum": [
              "GET",
              "POST",
              "PUT",
              "DELETE",
              "HEAD",
              "CONNECT",
              "OPTIONS",
              "PATCH"
            ]
          }
        }
      },
      "document": {
        "type": "object",
        "title": "Document",
        "description": "The document object.",
        "properties": {
          "id": {
            "type": "string",
            "description": "The encrypted identifier for the document.",
            "readOnly": true,
            "minLength": 1,
            "maxLength": 20,
            "pattern": "^[0-9A-Z]+$"
          },
          "labels": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "A document label."
            },
            "minItems": 1,
            "maxItems": 50,
            "description": "The document labels. A document could be classfied to multiple categories. For example, a bill document can be classfified as `BILL DOCUMENT` and `UTILITY DOCUMENT`."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[0-9A-Za-z_-]+$",
            "description": "The file name."
          },
          "identification_number": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[a-zA-Z0-9-]+$",
            "description": "The number for the document. It is the ID number if the document is `ID CARD`, the passport number if the document is `PASSPORT`, etc."
          },
          "issue_date": {
            "$ref": "#/components/schemas/date_no_time",
            "description": "The issue date of the document."
          },
          "expiry_date": {
            "$ref": "#/components/schemas/date_no_time",
            "description": "The expire data of the document."
          },
          "issuing_country_code": {
            "$ref": "#/components/schemas/country_code",
            "description": "The country code of the document."
          },
          "files": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/file_reference"
            },
            "minItems": 1,
            "maxItems": 50,
            "description": "The files contained in the document. For example, a document could be represented by a front page file and a back page file, etc."
          },
          "links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/link_description",
              "readOnly": true
            },
            "readOnly": true,
            "minItems": 1,
            "maxItems": 10,
            "description": "The HATEOAS links."
          }
        }
      },
      "person_document_type": {
        "type": "string",
        "title": "Document type",
        "description": "The type of documents.",
        "pattern": "^[0-9A-Z_]+$",
        "minLength": 1,
        "maxLength": 255,
        "enum": [
          "SOCIAL_SECURITY_NUMBER",
          "EMPLOYMENT_IDENTIFICATION_NUMBER",
          "TAX_IDENTIFICATION_NUMBER",
          "PASSPORT_NUMBER",
          "PENSION_FUND_ID",
          "MEDICAL_INSURANCE_ID",
          "CNPJ",
          "CPF",
          "PAN"
        ]
      },
      "person_document": {
        "title": "Person document",
        "description": "The documents associated with the person.",
        "allOf": [
          {
            "$ref": "#/components/schemas/document"
          },
          {
            "properties": {
              "type": {
                "description": "The actual type of the document. It could be `ID_CARD`, `PASSPORT`, etc.",
                "$ref": "#/components/schemas/person_document_type"
              }
            }
          }
        ]
      },
      "person": {
        "title": "Person",
        "description": "Details of the person or party.",
        "properties": {
          "id": {
            "description": "The encrypted party ID.",
            "type": "string",
            "readOnly": true,
            "minLength": 1,
            "maxLength": 20,
            "pattern": "^[0-9A-Z]+$"
          },
          "names": {
            "description": "The name of the person.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/person_name"
            },
            "minItems": 0,
            "maxItems": 5
          },
          "citizenship": {
            "description": "The citizenship country code of the person.",
            "$ref": "#/components/schemas/country_code"
          },
          "addresses": {
            "description": "The list of addresses associated with the person.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/person_address_detail"
            },
            "minItems": 0,
            "maxItems": 5
          },
          "phones": {
            "description": "The list of phone numbers associated with the person.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/person_phone_detail"
            },
            "minItems": 0,
            "maxItems": 5
          },
          "birth_details": {
            "description": "The person's birth details.",
            "$ref": "#/components/schemas/birth_details"
          },
          "documents": {
            "description": "A person's or party's related document data collected from the customer. For example SSN, ITIN, or business registration number collected from the user. <blockquote><strong>Note:</strong> This field is not applicable for POST [/v2/customer/partner-referrals](/docs/api/partner-referrals/v2/#partner-referrals_create) API calls.</blockquote>",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/person_document"
            },
            "minItems": 0,
            "maxItems": 20
          }
        }
      },
      "individual_owner_type": {
        "description": "Role of the person party played in the account.",
        "title": "Individual owner role type",
        "type": "string",
        "pattern": "^[0-9A-Z_]+$",
        "minLength": 1,
        "maxLength": 255,
        "enum": [
          "PRIMARY"
        ]
      },
      "individual_owner": {
        "title": "Individual_owner",
        "description": "The individual owner of the account.",
        "allOf": [
          {
            "$ref": "#/components/schemas/person"
          },
          {
            "properties": {
              "type": {
                "description": "The actual role of this user on the account, PRIMARY/SECONDARY.",
                "$ref": "#/components/schemas/individual_owner_type"
              }
            }
          }
        ]
      },
      "business_type": {
        "description": "The business types classified",
        "title": "Business type",
        "type": "string",
        "pattern": "^[0-9A-Z_]+$",
        "minLength": 1,
        "maxLength": 255,
        "enum": [
          "ANY_OTHER_BUSINESS_ENTITY",
          "ASSOCIATION",
          "CORPORATION",
          "GENERAL_PARTNERSHIP",
          "GOVERNMENT",
          "INDIVIDUAL",
          "LIMITED_LIABILITY_PARTNERSHIP",
          "LIMITED_LIABILITY_PROPRIETORS",
          "LIMITED_LIABILITY_PRIVATE_CORPORATION",
          "LIMITED_PARTNERSHIP",
          "LIMITED_PARTNERSHIP_PRIVATE_CORPORATION",
          "NONPROFIT",
          "ONLY_BUY_OR_SEND_MONEY",
          "OTHER_CORPORATE_BODY",
          "PARTNERSHIP",
          "PRIVATE_PARTNERSHIP",
          "PROPRIETORSHIP",
          "PROPRIETORSHIP_CRAFTSMAN",
          "PROPRIETORY_COMPANY",
          "PRIVATE_CORPORATION",
          "PUBLIC_COMPANY",
          "PUBLIC_CORPORATION",
          "PUBLIC_PARTNERSHIP",
          "REGISTERED_COOPERATIVE"
        ]
      },
      "business_sub_type": {
        "description": "Sub classification of the business type",
        "title": "The business sub type.",
        "type": "string",
        "pattern": "^[0-9A-Z_]+$",
        "minLength": 1,
        "maxLength": 255,
        "enum": [
          "ASSO_TYPE_INCORPORATED",
          "ASSO_TYPE_NON_INCORPORATED",
          "GOVT_TYPE_ENTITY",
          "GOVT_TYPE_EMANATION",
          "GOVT_TYPE_ESTD_COMM",
          "GOVT_TYPE_ESTD_FC",
          "GOVT_TYPE_ESTD_ST_TR"
        ]
      },
      "business_type_info": {
        "title": "Business type information",
        "type": "object",
        "description": "The type and subtype of the business.",
        "properties": {
          "type": {
            "description": "Type of business entity like corporation, sole prop, governmental.",
            "$ref": "#/components/schemas/business_type"
          },
          "subtype": {
            "description": "The sub classification of the business type.",
            "$ref": "#/components/schemas/business_sub_type"
          }
        }
      },
      "business_industry": {
        "title": "Business industry",
        "type": "object",
        "description": "The category, subcategory and MCC code of the business.",
        "properties": {
          "category": {
            "type": "string",
            "description": "The customer's business category code. PayPal uses industry standard seller category codes.",
            "pattern": "^\\d+$",
            "minLength": 1,
            "maxLength": 20
          },
          "mcc_code": {
            "type": "string",
            "description": "The customer's business seller category code. PayPal uses industry standard seller category codes.",
            "pattern": "^\\d+$",
            "minLength": 1,
            "maxLength": 20
          },
          "subcategory": {
            "type": "string",
            "description": "The customer's business subcategory code. PayPal uses industry standard seller subcategory codes.",
            "pattern": "^\\d+$",
            "minLength": 1,
            "maxLength": 20
          }
        },
        "required": [
          "category",
          "mcc_code",
          "subcategory"
        ]
      },
      "business_incorporation": {
        "title": "Business_incorporation",
        "type": "object",
        "description": "Business incorporation information.",
        "properties": {
          "incorporation_country_code": {
            "description": "The incorporation country code.",
            "$ref": "#/components/schemas/country_code"
          },
          "incorporation_date": {
            "description": "date of incorporation",
            "$ref": "#/components/schemas/date_no_time"
          },
          "incorporation_province_code": {
            "description": "The province of incorporation.",
            "type": "string",
            "minLength": 1,
            "maxLength": 50,
            "pattern": "^[A-Z]{2}-([A-Z]{2,3}|[0-9]{2,3})$"
          }
        }
      },
      "business_name": {
        "type": "object",
        "title": "Business Name",
        "description": "The business name of the party.",
        "properties": {
          "business_name": {
            "type": "string",
            "description": "Required. The business name of the party.",
            "maxLength": 300
          }
        }
      },
      "business_name_type": {
        "description": "Business name type",
        "title": "The business name type.",
        "type": "string",
        "pattern": "^[0-9A-Z_]+$",
        "minLength": 1,
        "maxLength": 255,
        "enum": [
          "DOING_BUSINESS_AS",
          "LEGAL_NAME"
        ]
      },
      "business_name_detail": {
        "type": "object",
        "title": "Business name",
        "description": "Name of the business provided.",
        "allOf": [
          {
            "$ref": "#/components/schemas/business_name"
          },
          {
            "properties": {
              "id": {
                "description": "The encrypted ID for the business name.",
                "type": "string",
                "readOnly": true,
                "minLength": 1,
                "maxLength": 20
              },
              "type": {
                "description": "The type of business name. For example, trading name.",
                "$ref": "#/components/schemas/business_name_type"
              }
            }
          }
        ],
        "required": [
          "type"
        ]
      },
      "email_address": {
        "type": "string",
        "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>",
        "format": "ppaas_common_email_address_v2",
        "minLength": 3,
        "maxLength": 254,
        "pattern": "^.+@[^\"\\-].+$"
      },
      "email": {
        "title": "Email of a person orbusiness",
        "description": "An email address at which the person or business can be contacted.",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The role of the email address.",
            "minLength": 1,
            "maxLength": 50,
            "pattern": "^[0-9A-Z_]+$",
            "enum": [
              "CUSTOMER_SERVICE"
            ]
          },
          "email": {
            "$ref": "#/components/schemas/email_address"
          }
        },
        "required": [
          "email",
          "type"
        ]
      },
      "business_address_type": {
        "description": "Address type under which the provided address is tagged",
        "title": "Business address type",
        "type": "string",
        "pattern": "^[0-9A-Z_]+$",
        "minLength": 1,
        "maxLength": 255,
        "enum": [
          "WORK"
        ]
      },
      "business_address_detail": {
        "type": "object",
        "title": "Business_address_detail",
        "description": "A simple postal address with coarse-grained fields.",
        "allOf": [
          {
            "$ref": "#/components/schemas/address_portable"
          },
          {
            "properties": {
              "type": {
                "description": "The address type under which this is classified. For example, shipping or dropoff.",
                "$ref": "#/components/schemas/business_address_type"
              },
              "primary": {
                "type": "boolean",
                "description": "Whether this is the primary address of the user. This cannot be directly set to `false`, but rather it is toggled `false` in the datastore when another address is set to primary."
              },
              "inactive": {
                "type": "boolean",
                "description": "Whether this address has been inactivated.",
                "readOnly": true
              }
            }
          }
        ],
        "required": [
          "type"
        ]
      },
      "business_phone_type": {
        "type": "string",
        "title": "Phone type",
        "description": "The type of phone number provided. For example, home, work, or mobile.",
        "pattern": "^[0-9A-Z_]+$",
        "minLength": 1,
        "maxLength": 255,
        "enum": [
          "CUSTOMER_SERVICE",
          "BUSINESS"
        ]
      },
      "business_phone_detail": {
        "type": "object",
        "title": "Phone details",
        "description": "The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).",
        "allOf": [
          {
            "$ref": "#/components/schemas/phone"
          },
          {
            "properties": {
              "contact_name": {
                "type": "string",
                "description": "The name that the phone number is connected to.",
                "minLength": 1,
                "maxLength": 900
              },
              "inactive": {
                "type": "boolean",
                "description": "Whether this phone number has been inactivated by the user.",
                "readOnly": true
              },
              "primary": {
                "type": "boolean",
                "description": "Whether this is the primary contact phone number of the user."
              },
              "type": {
                "$ref": "#/components/schemas/business_phone_type",
                "description": "The type of phone number provided. For example, home, work, or mobile."
              },
              "tags": {
                "type": "array",
                "description": "Array of tags for this phone number.",
                "items": {
                  "$ref": "#/components/schemas/phone_number_tag"
                },
                "minItems": 0,
                "maxItems": 20
              }
            }
          }
        ],
        "required": [
          "type"
        ]
      },
      "business_document_type": {
        "type": "string",
        "title": "Document type",
        "description": "The type of documents.",
        "pattern": "^[0-9A-Z_]+$",
        "minLength": 1,
        "maxLength": 255,
        "enum": [
          "SOCIAL_SECURITY_NUMBER",
          "EMPLOYMENT_IDENTIFICATION_NUMBER",
          "TAX_IDENTIFICATION_NUMBER",
          "PASSPORT_NUMBER",
          "PENSION_FUND_ID",
          "MEDICAL_INSURANCE_ID",
          "CNPJ",
          "CPF",
          "PAN"
        ]
      },
      "business_document": {
        "title": "Business document",
        "description": "The documents associated with the business.",
        "allOf": [
          {
            "$ref": "#/components/schemas/document"
          },
          {
            "properties": {
              "type": {
                "description": "The actual type of the document.",
                "$ref": "#/components/schemas/business_document_type"
              }
            }
          }
        ]
      },
      "business": {
        "properties": {
          "business_type": {
            "description": "Information related to the business like the nature of business, started date etc.",
            "$ref": "#/components/schemas/business_type_info"
          },
          "business_industry": {
            "description": "Information related to the business like the nature of business, started date etc.",
            "$ref": "#/components/schemas/business_industry"
          },
          "business_incorporation": {
            "description": "Information related to the business like the nature of business, started date etc.",
            "$ref": "#/components/schemas/business_incorporation"
          },
          "names": {
            "description": "Name of the business.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/business_name_detail"
            },
            "minItems": 0,
            "maxItems": 5
          },
          "emails": {
            "description": "Email addresses of the business.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/email"
            },
            "minItems": 0,
            "maxItems": 5
          },
          "website": {
            "description": "Website of the business.",
            "type": "string",
            "minLength": 1,
            "maxLength": 50,
            "format": "uri"
          },
          "addresses": {
            "description": "List of addresses associated with the business entity.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/business_address_detail"
            },
            "minItems": 0,
            "maxItems": 5
          },
          "phones": {
            "description": "List of phone number associated with the business.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/business_phone_detail"
            },
            "minItems": 0,
            "maxItems": 5
          },
          "documents": {
            "description": "Business Party related Document data collected from the customer.. For example SSN, ITIN, Business registration number that were collected from the user.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/business_document"
            },
            "minItems": 0,
            "maxItems": 20
          }
        }
      },
      "percentage": {
        "type": "string",
        "description": "The percentage, as a fixed-point, signed decimal number. For example, define a 19.99% interest rate as `19.99`.",
        "format": "ppaas_common_percentage_v2",
        "pattern": "^((-?[0-9]+)|(-?([0-9]+)?[.][0-9]+))$"
      },
      "individual_beneficial_owner": {
        "title": "Individual_beneficial_owner",
        "description": "The individual owner of the account.",
        "allOf": [
          {
            "$ref": "#/components/schemas/person"
          },
          {
            "properties": {
              "percentage_of_ownership": {
                "description": "The percentage of shares this person owns in the company.",
                "$ref": "#/components/schemas/percentage"
              }
            }
          }
        ]
      },
      "business_beneficial_owner": {
        "title": "Business_beneficial_owner",
        "description": "The business beneficial owner of the account.",
        "allOf": [
          {
            "$ref": "#/components/schemas/business"
          },
          {
            "properties": {
              "percentage_of_ownership": {
                "description": "The percentage of shares this person owns in the company.",
                "$ref": "#/components/schemas/percentage"
              }
            }
          }
        ]
      },
      "beneficial_owners": {
        "title": "Beneficial_owners",
        "type": "object",
        "description": "Beneficial owners of the entity.",
        "properties": {
          "individual_beneficial_owners": {
            "description": "Individual beneficial owners.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/individual_beneficial_owner"
            },
            "minItems": 0,
            "maxItems": 5
          },
          "business_beneficial_owners": {
            "description": "Business beneficial owners.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/business_beneficial_owner"
            },
            "minItems": 0,
            "maxItems": 5
          }
        }
      },
      "office_bearer_role": {
        "description": "Role of the person party played in the business.",
        "title": "Role type",
        "type": "string",
        "pattern": "^[0-9A-Z_]+$",
        "minLength": 1,
        "maxLength": 255,
        "enum": [
          "CEO",
          "CHAIRMAN",
          "DIRECTOR",
          "SECRETARY",
          "TREASURER",
          "TRUSTEE"
        ]
      },
      "office_bearer": {
        "title": "Office Bearers",
        "description": "The office bearer associated to the account.",
        "allOf": [
          {
            "$ref": "#/components/schemas/person"
          },
          {
            "properties": {
              "role": {
                "description": "The role of the office bearer in the company.",
                "$ref": "#/components/schemas/office_bearer_role"
              }
            }
          }
        ]
      },
      "currency_code": {
        "description": "The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.",
        "type": "string",
        "format": "ppaas_common_currency_code_v2",
        "minLength": 3,
        "maxLength": 3
      },
      "money": {
        "type": "object",
        "title": "Money",
        "description": "The currency and amount for a financial transaction, such as a balance or payment due.",
        "properties": {
          "currency_code": {
            "$ref": "#/components/schemas/currency_code"
          },
          "value": {
            "type": "string",
            "description": "The value, which might be:<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](/docs/integration/direct/rest/currency-codes/).",
            "maxLength": 32,
            "pattern": "^((-?[0-9]+)|(-?([0-9]+)?[.][0-9]+))$"
          }
        },
        "required": [
          "currency_code",
          "value"
        ]
      },
      "currency_range": {
        "type": "object",
        "title": "Currency Range",
        "description": "The currency range, from the minimum inclusive amount to the maximum inclusive amount.",
        "additionalProperties": false,
        "properties": {
          "minimum_amount": {
            "description": "The minimum inclusive amount for the range.",
            "$ref": "#/components/schemas/money"
          },
          "maximum_amount": {
            "description": "The maximum inclusive amount for the range.",
            "$ref": "#/components/schemas/money"
          }
        }
      },
      "purpose_code_enum": {
        "type": "string",
        "title": "Purpose Code",
        "description": "The purpose code. Required only for India. For more information, see the Reserve Bank Of India web site. Value is:<ul><li><code>P0104</code>. Cross border delivery of goods and services.</li><li><code>P0301</code>. Business related travel purchase.</li><li><code>P0801</code>. Hardware consulting.</li><li><code>P0802</code>. Software consulting.</li><li><code>P0803</code>. Data processing consulting.</li><li><code>P0805</code>. Freelance journalism.</li><li><code>P0806</code>. Other information services.</li><li><code>P0902</code>. Licensing revenues.</li><li><code>P1004</code>. Legal.</li><li><code>P1005</code>. Accounting and tax.</li><li><code>P1006</code>. Business and management consultancy.</li><li><code>P1007</code>. Advertising and market research.</li><li><code>P1008</code>. Research and development.</li><li><code>P1009</code>. Architectural services.</li></ul>",
        "minLength": 1,
        "maxLength": 50,
        "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9_ ])+$",
        "enum": [
          "P0104",
          "P0301",
          "P0801",
          "P0802",
          "P0803",
          "P0805",
          "P0806",
          "P0902",
          "P1004",
          "P1005",
          "P1006",
          "P1007",
          "P1008",
          "P1009"
        ]
      },
      "business_entity": {
        "title": "Business_entity",
        "description": "The business entity of the account.",
        "allOf": [
          {
            "description": "Common business information section.",
            "$ref": "#/components/schemas/business"
          },
          {
            "description": "Additional business information section.",
            "properties": {
              "beneficial_owners": {
                "description": "List of beneficial owners part of the entity. They can be either a Person or a business entity.",
                "$ref": "#/components/schemas/beneficial_owners"
              },
              "office_bearers": {
                "description": "List of Directors present as part of the business entity.",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/office_bearer"
                },
                "minItems": 0,
                "maxItems": 5
              },
              "annual_sales_volume_range": {
                "description": "The range for the total annual sales volume of the business.",
                "$ref": "#/components/schemas/currency_range"
              },
              "average_monthly_volume_range": {
                "description": "The range for the average monthly volume of the business.",
                "$ref": "#/components/schemas/currency_range"
              },
              "purpose_code": {
                "description": "The account's purpose code.",
                "items": {
                  "$ref": "#/components/schemas/purpose_code_enum"
                }
              },
              "business_description": {
                "type": "string",
                "description": "The business goals description. For example, a mission statement.",
                "minLength": 1,
                "maxLength": 256
              }
            }
          }
        ]
      },
      "account": {
        "title": "Account",
        "type": "object",
        "description": "Common account object to hold the account related details of the customer.",
        "properties": {
          "individual_owners": {
            "description": "List of owners in the account. There should be only one primary account owner which is mentioned in their role_type.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/individual_owner"
            },
            "minItems": 0,
            "maxItems": 2
          },
          "business_entity": {
            "description": "Business entity of the account.",
            "type": "object",
            "$ref": "#/components/schemas/business_entity"
          }
        }
      },
      "language": {
        "type": "string",
        "description": "The [language tag](https://tools.ietf.org/html/bcp47#section-2) for the language in which to localize the error-related strings, such as messages, issues, and suggested actions. The tag is made up of the [ISO 639-2 language code](https://www.loc.gov/standards/iso639-2/php/code_list.php), the optional [ISO-15924 script tag](https://www.unicode.org/iso15924/codelists.html), and the [ISO-3166 alpha-2 country code](/docs/integration/direct/rest/country-codes/).",
        "format": "ppaas_common_language_v3",
        "maxLength": 10,
        "minLength": 2,
        "pattern": "^[a-z]{2}(?:-[A-Z][a-z]{3})?(?:-(?:[A-Z]{2}))?$"
      },
      "partner_config_override": {
        "type": "object",
        "title": "Partner Configuration Override",
        "description": "The preference to customize the web experience of the customer by overriding that is set at the Partner's Account.",
        "additionalProperties": false,
        "properties": {
          "partner_logo_url": {
            "type": "string",
            "format": "uri",
            "description": "The partner logo URL to display in the customer's onboarding flow.",
            "minLength": 1,
            "maxLength": 127
          },
          "return_url": {
            "type": "string",
            "format": "uri",
            "description": "The URL to which to redirect the customer upon completion of the onboarding process.",
            "minLength": 1,
            "maxLength": 127
          },
          "return_url_description": {
            "type": "string",
            "description": "The description of the return URL.",
            "minLength": 1,
            "maxLength": 127,
            "pattern": "^.+$"
          },
          "action_renewal_url": {
            "type": "string",
            "format": "uri",
            "description": "If `renew_action_url` expires, redirect the customer to this URL.",
            "minLength": 1,
            "maxLength": 127
          },
          "show_add_credit_card": {
            "type": "boolean",
            "description": "Indicates whether to show an add credit card page."
          }
        }
      },
      "identifier": {
        "type": "object",
        "title": "Bank Account Identifier",
        "additionalProperties": false,
        "description": "The bank account ID. An ID with `ROUTING_NUMBER_1` is required.",
        "properties": {
          "type": {
            "type": "string",
            "description": "The bank account ID type.",
            "minLength": 1,
            "maxLength": 125,
            "pattern": "^[0-9A-Z_-]+$",
            "enum": [
              "BANK_CODE",
              "BI_CODE",
              "ROUTING_NUMBER_1",
              "ROUTING_NUMBER_2",
              "ROUTING_NUMBER_3",
              "SWIFT_CODE",
              "BRANCH_CODE",
              "INTERMEDIARY_SWIFT_CODE",
              "BBAN",
              "BBAN_ENCRYPTED",
              "BBAN_HMAC",
              "AGGREGATOR_YODLEE"
            ]
          },
          "value": {
            "description": "The value of account identifier.",
            "type": "string",
            "minLength": 1,
            "maxLength": 125,
            "pattern": "^[A-Za-z0-9-_.+/ =]+"
          }
        }
      },
      "country_code-2": {
        "type": "string",
        "description": "The [two-character ISO 3166-1 code](/docs/integration/direct/rest/country-codes/) 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>",
        "format": "ppaas_common_country_code_v2",
        "maxLength": 2,
        "minLength": 2,
        "pattern": "^([A-Z]{2}|C2)$"
      },
      "address_portable-2": {
        "type": "object",
        "title": "Portable Postal Address (Medium-Grained)",
        "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).",
        "properties": {
          "address_line_1": {
            "type": "string",
            "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.",
            "maxLength": 300
          },
          "address_line_2": {
            "type": "string",
            "description": "The second line of the address. For example, suite or apartment number.",
            "maxLength": 300
          },
          "address_line_3": {
            "type": "string",
            "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.",
            "maxLength": 100
          },
          "admin_area_4": {
            "type": "string",
            "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>",
            "maxLength": 100
          },
          "admin_area_3": {
            "type": "string",
            "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>",
            "maxLength": 100
          },
          "admin_area_2": {
            "type": "string",
            "description": "A city, town, or village. Smaller than `admin_area_level_1`.",
            "maxLength": 120
          },
          "admin_area_1": {
            "type": "string",
            "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision. 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>",
            "maxLength": 300
          },
          "postal_code": {
            "type": "string",
            "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).",
            "maxLength": 60
          },
          "country_code": {
            "$ref": "#/components/schemas/country_code-2"
          },
          "address_details": {
            "type": "object",
            "title": "Address Details",
            "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`.",
            "properties": {
              "street_number": {
                "type": "string",
                "description": "The street number.",
                "maxLength": 100
              },
              "street_name": {
                "type": "string",
                "description": "The street name. Just `Drury` in `Drury Lane`.",
                "maxLength": 100
              },
              "street_type": {
                "type": "string",
                "description": "The street type. For example, avenue, boulevard, road, or expressway.",
                "maxLength": 100
              },
              "delivery_service": {
                "type": "string",
                "description": "The delivery service. Post office box, bag number, or post office name.",
                "maxLength": 100
              },
              "building_name": {
                "type": "string",
                "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>.",
                "maxLength": 100
              },
              "sub_building": {
                "type": "string",
                "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.",
                "maxLength": 100
              }
            }
          }
        },
        "required": [
          "country_code"
        ]
      },
      "mandate": {
        "type": "object",
        "title": "Mandate",
        "description": "Seller’s consent to operate on this financial instrument.",
        "additionalProperties": false,
        "properties": {
          "accepted": {
            "type": "boolean",
            "description": "Whether mandate was accepted or not."
          }
        },
        "required": [
          "accepted"
        ]
      },
      "bank": {
        "type": "object",
        "title": "Bank Account",
        "additionalProperties": false,
        "description": "The bank account information.",
        "properties": {
          "nick_name": {
            "type": "string",
            "description": "The user-provided short name for the user's bank account.",
            "minLength": 1,
            "maxLength": 50,
            "pattern": "^[0-9A-Za-z_-]+$"
          },
          "account_number": {
            "type": "string",
            "description": "The bank account number.",
            "pattern": "\\d+",
            "minLength": 1,
            "maxLength": 50
          },
          "account_type": {
            "type": "string",
            "description": "The type of bank account.",
            "minLength": 1,
            "maxLength": 50,
            "pattern": "^[0-9A-Z_]+$",
            "enum": [
              "CHECKING",
              "SAVINGS"
            ]
          },
          "currency_code": {
            "description": "The primary currency code of the bank account.",
            "$ref": "#/components/schemas/currency_code"
          },
          "identifiers": {
            "type": "array",
            "description": "An array of instrument institute attributes. Used with the account number to uniquely identify the instrument. Value is:<ul><li>For banks with IBAN information, the IBAN number.</li><li>For banks with BBAN information, the BBAN number.</li><li>For banks with both IBAN and BBAN information, the IBAN number.</li></ul>",
            "items": {
              "$ref": "#/components/schemas/identifier"
            },
            "minItems": 0,
            "maxItems": 20
          },
          "branch_location": {
            "description": "The branch location, if applicable.",
            "$ref": "#/components/schemas/address_portable-2"
          },
          "mandate": {
            "description": "Mandate for this bank account.",
            "$ref": "#/components/schemas/mandate"
          }
        },
        "required": [
          "account_number",
          "account_type"
        ]
      },
      "financial_instruments": {
        "type": "object",
        "title": "Financial instrument.",
        "description": "Financial instruments attached to this account.",
        "additionalProperties": false,
        "properties": {
          "banks": {
            "type": "array",
            "description": "An array of banks attached to this managed account.",
            "items": {
              "description": "The bank account information.",
              "$ref": "#/components/schemas/bank"
            },
            "minItems": 0,
            "maxItems": 5
          }
        }
      },
      "classic_api_integration": {
        "type": "object",
        "title": "CLASSIC API integration",
        "description": "The integration details for PayPal CLASSIC endpoints.",
        "additionalProperties": false,
        "properties": {}
      },
      "rest_endpoint_features_enum": {
        "type": "string",
        "title": "REST Endpoint Features",
        "description": "The REST endpoint.",
        "minLength": 1,
        "maxLength": 100,
        "pattern": "^[0-9A-Z_-]+$",
        "enum": [
          "PAYOUTS",
          "PAYMENT",
          "REFUND",
          "FUTURE_PAYMENT",
          "DIRECT_PAYMENT",
          "PARTNER_FEE",
          "DELAY_FUNDS_DISBURSEMENT",
          "READ_SELLER_DISPUTE",
          "UPDATE_SELLER_DISPUTE",
          "ADVANCED_TRANSACTIONS_SEARCH",
          "SWEEP_FUNDS_EXTERNAL_SINK",
          "ACCESS_MERCHANT_INFORMATION",
          "TRACKING_SHIPMENT_READWRITE",
          "INVOICE_READ_WRITE",
          "DISPUTE_READ_BUYER",
          "UPDATE_CUSTOMER_DISPUTES",
          "VAULT",
          "BILLING_AGREEMENT"
        ]
      },
      "rest_api_integration": {
        "type": "object",
        "title": "REST API Integration",
        "description": "The integration details for PayPal REST endpoints.",
        "additionalProperties": false,
        "properties": {
          "integration_method": {
            "type": "string",
            "description": "The REST-credential integration method.",
            "default": "PAYPAL",
            "minLength": 1,
            "maxLength": 255,
            "pattern": "^[0-9A-Z_-]+$",
            "enum": [
              "BRAINTREE",
              "PAYPAL"
            ]
          },
          "integration_type": {
            "type": "string",
            "title": "Integration Type",
            "description": "The type of REST-endpoint integration. To integrate with Braintree v.zero for PayPal REST endpoints, specify `third_party_details`.",
            "minLength": 1,
            "maxLength": 255,
            "pattern": "^[0-9A-Z_-]+$",
            "enum": [
              "FIRST_PARTY",
              "THIRD_PARTY"
            ]
          },
          "first_party_details": {
            "type": "object",
            "title": "REST First-Party Details",
            "description": "The integration details for PayPal first party REST endpoints.",
            "additionalProperties": false,
            "properties": {
              "features": {
                "type": "array",
                "description": "An array of features that partner can access, or use, in PayPal on behalf of the seller. The seller grants permission for these features to the partner.",
                "items": {
                  "$ref": "#/components/schemas/rest_endpoint_features_enum"
                }
              },
              "seller_nonce": {
                "type": "string",
                "description": "S256 - The code verifier must be high-entropy cryptographic random string with a byte length of 43-128 range.",
                "minLength": 44,
                "maxLength": 128,
                "pattern": "^[a-zA-Z0-9-_:]+$"
              }
            },
            "required": [
              "features",
              "seller_nonce"
            ]
          },
          "third_party_details": {
            "type": "object",
            "title": "REST Third-Party Details",
            "description": "The integration details for PayPal REST endpoints.",
            "additionalProperties": false,
            "properties": {
              "features": {
                "type": "array",
                "description": "An array of features that partner can access, or use, in PayPal on behalf of the seller. The seller grants permission for these features to the partner.",
                "items": {
                  "$ref": "#/components/schemas/rest_endpoint_features_enum"
                },
                "minItems": 0,
                "maxItems": 20
              }
            },
            "required": [
              "features"
            ]
          }
        }
      },
      "integration_details": {
        "type": "object",
        "title": "Integration Details",
        "description": "The integration details for the partner and customer relationship. Required if `operation` is `API_INTEGRATION`.",
        "additionalProperties": false,
        "properties": {
          "classic_api_integration": {
            "$ref": "#/components/schemas/classic_api_integration"
          },
          "rest_api_integration": {
            "$ref": "#/components/schemas/rest_api_integration"
          }
        }
      },
      "billing_experience_preference": {
        "type": "object",
        "title": "Billing Experience Preference",
        "description": "The preference that customizes the billing experience of the customer.",
        "additionalProperties": false,
        "properties": {
          "experience_id": {
            "type": "string",
            "description": "The ID of the payment web experience profile.",
            "minLength": 1,
            "maxLength": 20,
            "pattern": "^[a-zA-Z0-9-]+$"
          },
          "billing_context_set": {
            "type": "boolean",
            "description": "Indicates whether the partner has already displayed the billing context to the seller."
          }
        }
      },
      "billing_agreement": {
        "type": "object",
        "title": "Billing Agreement",
        "description": "The details of the billing agreement between the partner and a seller.",
        "additionalProperties": false,
        "properties": {
          "description": {
            "type": "string",
            "description": "The billing agreement description.",
            "minLength": 1,
            "maxLength": 125,
            "pattern": "^.+$"
          },
          "billing_experience_preference": {
            "$ref": "#/components/schemas/billing_experience_preference"
          },
          "merchant_custom_data": {
            "type": "string",
            "description": "The custom data for the billing agreement.",
            "minLength": 1,
            "maxLength": 125,
            "pattern": "^[a-zA-Z0-9-]+$"
          },
          "approval_url": {
            "type": "string",
            "format": "uri",
            "description": "The URL to which to redirect seller to accept the billing agreement.",
            "minLength": 1,
            "maxLength": 125
          },
          "ec_token": {
            "type": "string",
            "description": "The billing agreement token for the agreement.",
            "minLength": 1,
            "maxLength": 50,
            "pattern": "^[0-9A-Z_-]+$"
          }
        }
      },
      "operation": {
        "type": "object",
        "title": "Operation",
        "description": "The required operation to share data.",
        "additionalProperties": false,
        "properties": {
          "operation": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "pattern": "^[0-9A-Z_-]+$",
            "description": "The operation to enable for the customer. To enable the collection of the API permissions that you require to integrate with the customer, specify `API_INTEGRATION`. `BANK_ADDITION` is supported only for the US.",
            "enum": [
              "API_INTEGRATION",
              "BANK_ADDITION",
              "BILLING_AGREEMENT",
              "CONTEXTUAL_MARKETING_CONSENT",
              "SALESFORCE_REFERRAL"
            ]
          },
          "api_integration_preference": {
            "$ref": "#/components/schemas/integration_details"
          },
          "billing_agreement": {
            "$ref": "#/components/schemas/billing_agreement"
          }
        }
      },
      "product": {
        "type": "string",
        "description": "The PayPal product for which the customer is onboarded.",
        "title": "Product Name",
        "minLength": 1,
        "maxLength": 127,
        "pattern": "^[0-9A-Z_-]+$",
        "enum": [
          "EXPRESS_CHECKOUT",
          "PAYPAL_COMMERCE_PLATFORM_BUSINESS",
          "PPPLUS",
          "WEBSITE_PAYMENT_PRO",
          "PAYMENT_METHODS",
          "PPCP",
          "ADVANCED_VAULTING",
          "IZETTLE"
        ]
      },
      "capabilities": {
        "type": "string",
        "description": "Optional capabilities of the selected PayPal product for which the customer is being onboarded.",
        "title": "Capability",
        "minLength": 1,
        "maxLength": 127,
        "pattern": "^[A-Z0-9_]+$",
        "enum": [
          "PAYPAL_WALLET_VAULTING_ADVANCED",
          "PAY_UPON_INVOICE",
          "APPLE_PAY"
        ]
      },
      "dependent_process": {},
      "legal_consent": {
        "type": "object",
        "title": "Legal Consent",
        "description": "The customer-provided consent.",
        "additionalProperties": false,
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of consent. `SHARE_DATA_CONSENT` gives consent to you to share your customer's data with PayPal.",
            "pattern": "^[0-9A-Z_-]+$",
            "minLength": 1,
            "maxLength": 127,
            "enum": [
              "SHARE_DATA_CONSENT"
            ]
          },
          "granted": {
            "type": "boolean",
            "description": "Indicates whether the customer agreed to share this type of data. To give consent, specify `true`. To withhold consent, specify `false`."
          }
        },
        "required": [
          "type",
          "granted"
        ]
      },
      "currency_code-2": {
        "description": "The [three-character ISO-4217 currency code](/docs/api/reference/currency-codes/) that identifies the currency.",
        "type": "string",
        "format": "ppaas_common_currency_code_v2",
        "minLength": 3,
        "maxLength": 3
      },
      "transfer_method": {
        "type": "object",
        "title": "Requested transfer method and currency for a country",
        "additionalProperties": false,
        "description": "Requested transfer method and currency for a country.",
        "properties": {
          "transfer_method_type": {
            "type": "string",
            "description": "Transfer Method type.",
            "pattern": "^[0-9A-Z_-]+$",
            "minLength": 1,
            "maxLength": 50,
            "enum": [
              "BANK_ACCOUNT",
              "PAYPAL",
              "VENMO",
              "WIRE_ACCOUNT"
            ]
          },
          "currencies": {
            "type": "array",
            "description": "Requested Currencies for a Transfer Method.",
            "minItems": 1,
            "maxItems": 50,
            "items": {
              "$ref": "#/components/schemas/currency_code-2"
            }
          }
        }
      },
      "country_transfer_method_currency_selection": {
        "type": "object",
        "title": "Requested country, transfer method and currency",
        "additionalProperties": false,
        "description": "Requested country, transfer method and currency.",
        "properties": {
          "country": {
            "description": "Country.",
            "$ref": "#/components/schemas/country_code"
          },
          "transfer_methods": {
            "type": "array",
            "description": "Requested transfer method and currency for a country.",
            "minItems": 1,
            "maxItems": 50,
            "items": {
              "$ref": "#/components/schemas/transfer_method"
            }
          }
        }
      },
      "payout_attributes": {
        "type": "object",
        "title": "Payout Attributes",
        "additionalProperties": false,
        "description": "Payout specific attributes.",
        "properties": {
          "marketplace": {
            "type": "boolean",
            "description": "If `true`, specifies that the merchant or platform is offering goods or services on behalf of 3rd party sellers."
          },
          "kyc_required": {
            "type": "boolean",
            "description": "If `true`, specifies that the Kyc is required for the merchant."
          },
          "country_transfer_method_currency_selection": {
            "type": "array",
            "description": "Requested country, transfer method and currency.",
            "minItems": 1,
            "maxItems": 50,
            "items": {
              "$ref": "#/components/schemas/country_transfer_method_currency_selection"
            }
          }
        }
      },
      "referral_data": {
        "type": "object",
        "title": "Customer Data",
        "description": "The customer's referral data that partners share with PayPal.",
        "allOf": [
          {
            "description": "The common account model representing the basic account structure.",
            "$ref": "#/components/schemas/account"
          },
          {
            "properties": {
              "email": {
                "description": "Email address of the customer used to create the account.",
                "$ref": "#/components/schemas/email_address"
              },
              "preferred_language_code": {
                "description": "The preferred [locale code](/docs/api/reference/locale-codes/) to use in the onboarding flow for the customer.",
                "$ref": "#/components/schemas/language"
              },
              "tracking_id": {
                "type": "string",
                "description": "The partner's unique identifier for this customer in their system which can be used to track user in PayPal.",
                "minLength": 1,
                "maxLength": 127
              },
              "partner_config_override": {
                "description": "The configuration property that the partner intends to override for this onboarding request.",
                "$ref": "#/components/schemas/partner_config_override"
              },
              "financial_instruments": {
                "description": "Array of financial instruments attached to the customer's account.",
                "$ref": "#/components/schemas/financial_instruments"
              },
              "operations": {
                "type": "array",
                "description": "An array of operations to perform for the customer while they share their data.",
                "items": {
                  "$ref": "#/components/schemas/operation"
                },
                "minItems": 1,
                "maxItems": 5
              },
              "products": {
                "type": "array",
                "description": "An array of PayPal products to which the partner wants to onboard the customer.",
                "items": {
                  "$ref": "#/components/schemas/product"
                },
                "minItems": 1,
                "maxItems": 5
              },
              "capabilities": {
                "type": "array",
                "description": "An array of capabilities which the partner wants to enable for the selected products. Supported only when products are specified.",
                "items": {
                  "$ref": "#/components/schemas/capabilities"
                },
                "minItems": 1,
                "maxItems": 5
              },
              "outside_process_dependencies": {
                "type": "array",
                "description": "An array of dependent processes.",
                "items": {
                  "$ref": "#/components/schemas/dependent_process"
                },
                "minItems": 1,
                "maxItems": 5
              },
              "legal_consents": {
                "type": "array",
                "description": "An array of all consents that the partner has received from this seller. If `SHARE_DATA_CONSENT` is not granted, PayPal does not store customer data.",
                "items": {
                  "$ref": "#/components/schemas/legal_consent"
                },
                "minItems": 1,
                "maxItems": 5
              },
              "payout_attributes": {
                "description": "Payout specific attributes.",
                "$ref": "#/components/schemas/payout_attributes"
              }
            }
          }
        ],
        "additionalProperties": true,
        "required": [
          "operations",
          "legal_consents"
        ]
      },
      "create_referral_data_response": {
        "type": "object",
        "title": "Create Referral Data Response",
        "description": "The shared referral data.",
        "properties": {
          "links": {
            "type": "array",
            "title": "Links",
            "description": "An array of request-related [HATEOAS links](/docs/api/overview/#hateoas-links).",
            "readOnly": true,
            "additionalProperties": true,
            "minItems": 2,
            "maxItems": 10,
            "items": {
              "description": "The request-related [HATEOAS link](/docs/api/reference/api-responses/#hateoas-links) information.",
              "$ref": "#/components/schemas/link_description"
            }
          }
        }
      },
      "referral_data_response": {
        "type": "object",
        "title": "Referral Data Response",
        "description": "The share referral data response.",
        "properties": {
          "partner_referral_id": {
            "type": "string",
            "description": "The ID to access the customer's data shared by the partner with PayPal.",
            "readOnly": true,
            "pattern": "^[0-9A-Za-z_-.]+$",
            "minLength": 1,
            "maxLength": 255
          },
          "submitter_payer_id": {
            "type": "string",
            "description": "The payer ID of the partner who shared the referral data.",
            "readOnly": true,
            "minLength": 1,
            "maxLength": 20,
            "pattern": "^[0-9A-Z]+$"
          },
          "referral_data": {
            "$ref": "#/components/schemas/referral_data"
          },
          "links": {
            "title": "Links",
            "type": "array",
            "description": "An array of request-related [HATEOAS links](/docs/api/overview/#hateoas-links).",
            "readOnly": true,
            "additionalProperties": true,
            "items": {
              "$ref": "#/components/schemas/link_description"
            },
            "minItems": 0,
            "maxItems": 2
          }
        }
      }
    },
    "parameters": {
      "partner_referral_id": {
        "name": "partner_referral_id",
        "in": "path",
        "description": "The ID of the partner-referrals data for which to show details.",
        "required": true,
        "schema": {
          "type": "string"
        }
      }
    }
  }
}