---
updatedAt: 2026-09-18T10:31:00.000Z
agentTools:
  projectIndex: https://docs.getorbital.com/llms.txt
---

# Generate Deposit Link (HPP)

Use this endpoint to generate an Orbital-hosted Payment Page (HPP) link that you can share with your payer to complete a cryptocurrency deposit. The page handles wallet selection, deposit instructions, and QR code generation, you don't need to build your own payment flow

<Callout icon="📘" theme="info">
  ### Payer and Entity Types

  Select the appropriate payer and entity type based on your customer's details and compliance requirements.

  #### Payer Types:

  - **Individual Payer:** A single person paying (e.g. John Doe).
  - **Corporate Payer**: A business or organization paying (e.g. Acme Corp).

  #### Entity Types:

  - **PPAS - Pay Perform AS (previously PPOU)** — for virtual currency services and crypto transactions that fall under Estonian/EU Travel Rule compliance.
  - **PPDL - Pay Perform Digital Limited (Gibraltar)** — for Distributed Ledger Technology (DLT) services and digital asset transactions that fall under Gibraltar's Travel Rule compliance framework.

  See <Anchor target="_blank" href="https://docs.getorbital.com/reference/travel-rule-and-entity-types#/">Travel Rule</Anchor> for more information
</Callout>

# OpenAPI definition

```json
{
  "openapi": "3.0.0",
  "info": {
    "title": "Travel Rule API",
    "version": "1.0.0",
    "description": "API for creating **deposit invoices** that facilitate end-user crypto deposits, while also ensuring adherence to **Travel Rule compliance**.\n\nThis API allows merchants to generate a hosted payment page for their users to deposit cryptocurrency, incorporating the necessary Travel Rule data for compliant transactions. Merchants can redirect their customers to this URL to complete the deposit.",
    "contact": {
      "name": "Orbital",
      "url": "https://getorbital.io/support"
    }
  },
  "servers": [
    {
      "url": "https://hpp.getorbital.io",
      "description": "Production Server"
    }
  ],
  "paths": {
    "/invoice/deposit": {
      "post": {
        "summary": "Generate Deposit Link (HPP)",
        "description": "Use this endpoint to generate an Orbital-hosted Payment Page (HPP) link that you can share with your payer to complete a cryptocurrency deposit. The page handles wallet selection, deposit instructions, and QR code generation, you don't need to build your own payment flow",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/naturalPersonPPAS"
                  },
                  {
                    "$ref": "#/components/schemas/legalPersonPPAS"
                  },
                  {
                    "$ref": "#/components/schemas/naturalPersonPPDL"
                  },
                  {
                    "$ref": "#/components/schemas/legalPersonPPDL"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Deposit Invoice creation",
            "content": {
              "application/json": {
                "example": {
                  "hppUrl": "https://hpp.getorbital.io/invoice/xxxxxx"
                }
              }
            }
          },
          "400": {
            "description": "Validation error - missing or invalid request parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "List of validation errors.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "field": {
                        "type": "array",
                        "description": "List of field(s) that failed validation.",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "externalId"
                        ]
                      },
                      "message": {
                        "type": "string",
                        "description": "Error message explaining why the validation failed.",
                        "example": "Required"
                      }
                    }
                  }
                },
                "example": [
                  {
                    "field": [
                      "externalId"
                    ],
                    "message": "Required"
                  }
                ]
              }
            }
          },
          "401": {
            "description": "Unauthorized – API key is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Error message describing the authentication failure.",
                      "example": "Unauthorized."
                    }
                  }
                },
                "example": {
                  "message": "Unauthorized."
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "naturalPersonPPAS": {
        "type": "object",
        "title": "INDIVIDUAL PAYER (PPAS)",
        "description": "Data fields for an **Individual Payer** associated with **Pay Perform AS (Estonia)**, including data required for Travel Rule compliance.",
        "properties": {
          "externalId": {
            "type": "string",
            "description": "`Unique ID` for the transaction generated by the merchant. Each request requires a **new** externalId; reusing one is not allowed.",
            "example": "ExternalID37478580"
          },
          "notifyUrl": {
            "type": "string",
            "description": "Merchant webhook URL to receive payment notifications.",
            "example": "http://notify.com"
          },
          "returnUrl": {
            "type": "string",
            "description": "URL to redirect payer after completing the deposit.",
            "example": "https://return.url"
          },
          "currency": {
            "type": "string",
            "description": "The cryptocurrency to be transferred by the payer.",
            "enum": [
              "USDT",
              "USDC",
              "ETH",
              "BTC",
              "LTC",
              "BCH"
            ],
            "example": "USDT"
          },
          "currencyFilter": {
            "type": "string",
            "description": "Filters and displays only stablecoins (e.g., USDT, USDC). If omitted, all supported cryptocurrencies are shown.\n\n**Note**: Do not use with the `currency` or `mainCurrency` field.",
            "enum": [
              "stablecoin"
            ]
          },
          "mainCurrency": {
            "type": "string",
            "description": "The blockchain network required for stablecoin deposits (USDT or USDC).\n\nFor e.g, if `USDT` is specified in the `currency` field and `TON` here, it signifies USDT on TON `USDT-TON`.\n\n**Allowed networks for USDT**: `TRX`, `ETH`, `MATIC`, `TON`, `BNB`.\n\n**Allowed networks for USDC**: `SOL`, `ETH`, `MATIC`, `TRX`, `BNB`.",
            "example": "ETH"
          },
          "sourceAmount": {
            "type": "string",
            "description": "The amount of cryptocurrency being sent.",
            "example": "1000"
          },
          "targetCurrency": {
            "type": "string",
            "description": "The fiat currency in which the merchant will be credited.\n\n* If `targetCurrency` is set, a **crypto-fiat conversion** occurs.\n* If omitted, no conversion occurs, and the deposit is made in the cryptocurrency specified in the `currency` field.",
            "enum": [
              "USD",
              "GBP",
              "EUR"
            ],
            "example": "USD"
          },
          "targetAmount": {
            "type": "string",
            "description": "Amount in `targetCurrency` that the merchant will receive after conversion.",
            "example": "950"
          },
          "cashierCurrency": {
            "type": "string",
            "enum": [
              "AED",
              "AUD",
              "BRL",
              "CAD",
              "CHF",
              "CNY",
              "EUR",
              "GBP",
              "HKD",
              "IDR",
              "INR",
              "JPY",
              "KRW",
              "MMK",
              "MYR",
              "PLN",
              "SGD",
              "THB",
              "USD",
              "VND",
              "SOL",
              "ARS",
              "PEN",
              "MXN",
              "CAD",
              "NZD",
              "KES",
              "COP",
              "BDT",
              "GHS",
              "PHP",
              "PYG"
            ],
            "description": "The currency in which the payer's balance is displayed on the merchant platform.",
            "example": "USD"
          },
          "cashierAmount": {
            "type": "string",
            "description": "Amount in `cashierCurrency` that is reflected on the payer's balance in the merchant platform.",
            "example": "1000"
          },
          "logoImage": {
            "type": "string",
            "description": "Merchant's logo image in `PNG` or `SVG` format.",
            "example": "https://hpp.coinflow.co/example.png"
          },
          "productImage": {
            "type": "string",
            "description": "Product image in `JPG` format to display on the deposit screen.",
            "example": "https://hpp.coinflow.co/banner.jpg"
          },
          "primaryColor": {
            "type": "string",
            "description": "Primary button color in `HEX`, `RGB`, or `RGBA` format.",
            "example": "#FF5733"
          },
          "secondaryColor": {
            "type": "string",
            "description": "Secondary button color in `HEX`, `RGB`, or `RGBA` format.",
            "example": "#C70039"
          },
          "refundAddress": {
            "type": "string",
            "description": "Optional refund wallet address provided by the payer.",
            "example": "1FfmbHfnpaZjKFvyi1okTjJJusN455paPH"
          },
          "locale": {
            "type": "string",
            "description": "Default language for the user interface.",
            "example": "en-US",
            "enum": [
              "en-GB",
              "ar-AA",
              "zh-CN",
              "cs-CZ",
              "fr-FR",
              "de-DE",
              "hu-HU",
              "id-ID",
              "it-IT",
              "ja-JP",
              "ko-KR",
              "ms-MY",
              "mn-MN",
              "pl-PL",
              "pt-BR",
              "pt-PT",
              "ru-RU",
              "es-ES",
              "es-LA",
              "es-AR",
              "es-BO",
              "es-CL",
              "es-CO",
              "es-CR",
              "es-DO",
              "es-EC",
              "es-GT",
              "es-HN",
              "es-MX",
              "es-NI",
              "es-PA",
              "es-PE",
              "es-PR",
              "es-PY",
              "es-SV",
              "es-US",
              "es-UY",
              "es-VE",
              "th-TH",
              "tr-TR",
              "vn-VN",
              "vi-VN",
              "bn-BD",
              "bn-IN",
              "zh-HK",
              "zh-TW",
              "tl-PH",
              "el-GR",
              "hi-IN",
              "ur-PK",
              "bg-BG",
              "hr-HR",
              "da-DK",
              "nl-BE",
              "nl-NL",
              "et-EE",
              "km-KH",
              "lo-LA",
              "lv-LV",
              "lt-LT",
              "ro-RO",
              "sl-SL",
              "sv-SE"
            ]
          },
          "firstName": {
            "type": "string",
            "description": "Payer's first name.",
            "example": "John",
            "maxLength": 100
          },
          "lastName": {
            "type": "string",
            "description": "Payer's last name. \n\n **Note**: For customers in countries where last names are not available, pass `LNU` (Last Name Unavailable) in this field.",
            "example": "Doe",
            "maxLength": 100
          },
          "dateOfBirth": {
            "type": "string",
            "description": "Payer's date of birth (`YYYY-MM-DD`).",
            "example": "1998-10-30"
          },
          "email": {
            "type": "string",
            "description": "Payer's email address.",
            "example": "john.doe@example.com"
          },
          "streetName": {
            "type": "string",
            "description": "Street name of the payer's address.",
            "example": "hogwarts",
            "maxLength": 70
          },
          "buildingNumber": {
            "type": "string",
            "description": "Building number of the payer's address.",
            "example": "012211",
            "maxLength": 16
          },
          "townName": {
            "type": "string",
            "description": "Town of the payer's address.",
            "example": "London",
            "maxLength": 35
          },
          "postcode": {
            "type": "string",
            "description": "Postal code of the payer's address.",
            "example": "40122",
            "maxLength": 16
          },
          "countryOfResidence": {
            "type": "string",
            "description": "The country where the payer's resides (`ISO-3166-1 alpha-2`).",
            "example": "GB"
          },
          "identificationType": {
            "type": "string",
            "enum": [
              "nationalRegistration",
              "placeOfBirth"
            ],
            "description": "The type of identification used for the payer."
          },
          "placeOfBirth": {
            "type": "string",
            "description": "Payer's place of birth.\n\n**Required** if `identificationType` is `placeOfBirth`.",
            "example": "London",
            "maxLength": 70
          },
          "documentNumber": {
            "type": "string",
            "description": "Identification document number.\n\n**Required** if `identificationType` is `nationalRegistration`.",
            "example": "1234567890",
            "maxLength": 35
          },
          "documentType": {
            "type": "string",
            "enum": [
              "ARNU",
              "CCPT",
              "RAID",
              "DRLC",
              "FIIN",
              "TXID",
              "SOCS",
              "IDCD",
              "LEIX"
            ],
            "description": "Identification document type code.\n\n**Required** if `identificationType` is `nationalRegistration`.\n\n| Code | Description |\n|------|-------------|\n| `ARNU` | Alien registration number |\n| `CCPT` | Passport number |\n| `RAID` | Registration authority identifier |\n| `DRLC` | Driver's license number |\n| `FIIN` | Foreign investment identity number |\n| `TXID` | Tax identification number |\n| `SOCS` | Social security number |\n| `IDCD` | Identity card number |\n| `LEIX` | Legal Entity Identifier (LEI) |",
            "example": "CCPT",
            "x-enumDescriptions": {
              "ARNU": "Alien registration number",
              "CCPT": "Passport number",
              "RAID": "Registration authority identifier",
              "DRLC": "Driver's license number",
              "FIIN": "Foreign investment identity number",
              "TXID": "Tax identification number",
              "SOCS": "Social security number",
              "IDCD": "Identity card number",
              "LEIX": "Legal Entity Identifier (LEI)"
            }
          },
          "documentCountryOfIssue": {
            "type": "string",
            "description": "The country that issued the identification document (ISO-3166-1 alpha-2 code).\n\n**Required** if `identificationType` is `nationalRegistration`.",
            "example": "GB"
          },
          "customerId": {
            "type": "string",
            "description": "The internal ID for the payer.",
            "example": "CUST-12345",
            "maxLength": 50
          },
          "format": {
            "type": "string",
            "description": "Indicates if the response should be in JSON format and respond with only the URL.",
            "example": "json"
          },
          "personType": {
            "type": "string",
            "description": "Indicates the type of payer. Can be `naturalPerson` or `legalPerson`.",
            "default": "naturalPerson",
            "example": "naturalPerson"
          }
        },
        "required": [
          "externalId",
          "notifyUrl",
          "returnUrl",
          "firstName",
          "lastName",
          "dateOfBirth",
          "streetName",
          "buildingNumber",
          "countryOfResidence",
          "identificationType"
        ]
      },
      "legalPersonPPAS": {
        "type": "object",
        "title": "CORPORATE PAYER (PPAS)",
        "description": "Data fields for a **Corporate Payer** associated with **Pay Perform AS (Estonia)**, including data required for Travel Rule compliance.",
        "properties": {
          "externalId": {
            "type": "string",
            "description": "`Unique ID` for the transaction generated by the merchant. Each request requires a **new** externalId; reusing one is not allowed.",
            "example": "ExternalID37478580"
          },
          "returnUrl": {
            "type": "string",
            "description": "URL to redirect the payer after the deposit is made.",
            "example": "https://return.url"
          },
          "notifyUrl": {
            "type": "string",
            "description": "Merchant webhook URL to receive payment notifications.",
            "example": "http://notify.com"
          },
          "currency": {
            "type": "string",
            "description": "The cryptocurrency to be transferred by the payer.",
            "enum": [
              "USDT",
              "USDC",
              "ETH",
              "BTC",
              "LTC",
              "BCH"
            ],
            "example": "USDT"
          },
          "currencyFilter": {
            "type": "string",
            "description": "Filters and displays only stablecoins (e.g., USDT, USDC). If omitted, all supported cryptocurrencies are shown.\n\n**Note**: Do not use with the `currency` or `mainCurrency` field.",
            "enum": [
              "stablecoin"
            ]
          },
          "mainCurrency": {
            "type": "string",
            "description": "The blockchain network required for stablecoin deposits (USDT or USDC).\n\nFor e.g, if `USDT` is specified in the `currency` field and `TON` here, it signifies USDT on TON `USDT-TON`.\n\n**Allowed networks for USDT**: `TRX`, `ETH`, `MATIC`, `TON`, `BNB`.\n\n**Allowed networks for USDC**: `SOL`, `ETH`, `MATIC`, `TRX`, `BNB`.",
            "example": "ETH"
          },
          "sourceAmount": {
            "type": "string",
            "description": "The amount of cryptocurrency being sent.",
            "example": "1000"
          },
          "targetCurrency": {
            "type": "string",
            "description": "The fiat currency in which the merchant will be credited.\n\n* If `targetCurrency` is set, a **crypto-fiat conversion** occurs.\n* If omitted, no conversion occurs, and the deposit is made in the cryptocurrency specified in the `currency` field.",
            "enum": [
              "USD",
              "GBP",
              "EUR"
            ],
            "example": "USD"
          },
          "targetAmount": {
            "type": "string",
            "description": "Amount in `targetCurrency` that the merchant will receive after conversion.",
            "example": "950"
          },
          "cashierCurrency": {
            "type": "string",
            "enum": [
              "AED",
              "AUD",
              "BRL",
              "CAD",
              "CHF",
              "CNY",
              "EUR",
              "GBP",
              "HKD",
              "IDR",
              "INR",
              "JPY",
              "KRW",
              "MMK",
              "MYR",
              "PLN",
              "SGD",
              "THB",
              "USD",
              "VND",
              "SOL",
              "ARS",
              "PEN",
              "MXN",
              "CAD",
              "NZD",
              "KES",
              "COP",
              "BDT",
              "GHS",
              "PHP",
              "PYG"
            ],
            "description": "The currency in which the payer's balance is displayed on the merchant platform.",
            "example": "USD"
          },
          "cashierAmount": {
            "type": "string",
            "description": "Amount in `cashierCurrency` that is reflected on the payer's balance in the merchant platform.",
            "example": "1000"
          },
          "logoImage": {
            "type": "string",
            "description": "Merchant's logo image in `PNG` or `SVG` format.",
            "example": "https://hpp.coinflow.co/example.png"
          },
          "productImage": {
            "type": "string",
            "description": "Product image in `JPG` format to display on the deposit screen.",
            "example": "https://hpp.coinflow.co/banner.jpg"
          },
          "primaryColor": {
            "type": "string",
            "description": "Primary button color in `HEX`, `RGB`, or `RGBA` format.",
            "example": "#FF5733"
          },
          "secondaryColor": {
            "type": "string",
            "description": "Secondary button color in `HEX`, `RGB`, or `RGBA` format.",
            "example": "#C70039"
          },
          "refundAddress": {
            "type": "string",
            "description": "Optional refund wallet address provided by the buisness.",
            "example": "1FfmbHfnpaZjKFvyi1okTjJJusN455paPH"
          },
          "locale": {
            "type": "string",
            "description": "Default language for the user interface.",
            "example": "en-US",
            "enum": [
              "en-GB",
              "ar-AA",
              "zh-CN",
              "cs-CZ",
              "fr-FR",
              "de-DE",
              "hu-HU",
              "id-ID",
              "it-IT",
              "ja-JP",
              "ko-KR",
              "ms-MY",
              "mn-MN",
              "pl-PL",
              "pt-BR",
              "pt-PT",
              "ru-RU",
              "es-ES",
              "es-LA",
              "es-AR",
              "es-BO",
              "es-CL",
              "es-CO",
              "es-CR",
              "es-DO",
              "es-EC",
              "es-GT",
              "es-HN",
              "es-MX",
              "es-NI",
              "es-PA",
              "es-PE",
              "es-PR",
              "es-PY",
              "es-SV",
              "es-US",
              "es-UY",
              "es-VE",
              "th-TH",
              "tr-TR",
              "vn-VN",
              "vi-VN",
              "bn-BD",
              "bn-IN",
              "zh-HK",
              "zh-TW",
              "tl-PH",
              "el-GR",
              "hi-IN",
              "ur-PK",
              "bg-BG",
              "hr-HR",
              "da-DK",
              "nl-BE",
              "nl-NL",
              "et-EE",
              "km-KH",
              "lo-LA",
              "lv-LV",
              "lt-LT",
              "ro-RO",
              "sl-SL",
              "sv-SE"
            ]
          },
          "email": {
            "type": "string",
            "description": "Business contact email address.",
            "example": "contact@business.com"
          },
          "registeredName": {
            "type": "string",
            "description": "The official registered name of the business.",
            "example": "Demo Corporation",
            "maxLength": 100
          },
          "countryOfResidence": {
            "type": "string",
            "description": "The country where the business is registered. Must be `ISO-3166-1 alpha-2 code`.",
            "example": "GB"
          },
          "streetName": {
            "type": "string",
            "description": "Street name of the business address.",
            "example": "Main Street",
            "maxLength": 70
          },
          "buildingNumber": {
            "type": "string",
            "description": "Building number of the business address.",
            "example": "101",
            "maxLength": 16
          },
          "townName": {
            "type": "string",
            "description": "Town of the business address.",
            "example": "London",
            "maxLength": 35
          },
          "postcode": {
            "type": "string",
            "description": "Postal code of the business address.",
            "example": "EC1A 1BB",
            "maxLength": 16
          },
          "identificationType": {
            "type": "string",
            "enum": [
              "lei",
              "companyRegistrationNumber"
            ],
            "description": "The type of identification used."
          },
          "lei": {
            "type": "string",
            "description": "Legal Entity Identifier (LEI) for the business.\n\n**Required** if `identificationType` is `lei`.",
            "example": "1234567890LEI",
            "maxLength": 100
          },
          "companyRegistrationNumber": {
            "type": "string",
            "description": "Company registration number for the business.\n\n**Required** if `identificationType` is `companyRegistrationNumber`.",
            "example": "REG-12345",
            "maxLength": 100
          },
          "format": {
            "type": "string",
            "description": "Indicates if the response should be in JSON format and respond with only the URL.",
            "example": "json"
          },
          "personType": {
            "type": "string",
            "description": "Indicates the type of payer. Can be `naturalPerson` or `legalPerson`.",
            "example": "legalPerson"
          }
        },
        "required": [
          "externalId",
          "notifyUrl",
          "returnUrl",
          "registeredName",
          "countryOfResidence",
          "streetName",
          "buildingNumber",
          "identificationType"
        ]
      },
      "naturalPersonPPDL": {
        "type": "object",
        "title": "INDIVIDUAL PAYER (PPDL)",
        "description": "Data fields for an **Individual Payer** associated with **PPDL (Gibraltar)**, including data required for Travel Rule compliance.",
        "properties": {
          "externalId": {
            "type": "string",
            "description": "`Unique ID` for the transaction generated by the merchant. Each request requires a **new** externalId; reusing one is not allowed.",
            "example": "ExternalID37478580"
          },
          "notifyUrl": {
            "type": "string",
            "description": "Merchant webhook URL to receive payment notifications.",
            "example": "http://notify.com"
          },
          "returnUrl": {
            "type": "string",
            "description": "URL to redirect payer after completing the deposit.",
            "example": "https://return.url"
          },
          "currency": {
            "type": "string",
            "description": "The cryptocurrency to be transferred by the payer.",
            "enum": [
              "USDT",
              "USDC",
              "ETH",
              "BTC",
              "LTC",
              "BCH"
            ],
            "example": "USDT"
          },
          "currencyFilter": {
            "type": "string",
            "description": "Filters and displays only stablecoins (e.g., USDT, USDC). If omitted, all supported cryptocurrencies are shown.\n\n**Note**: Do not use with the `currency` field.",
            "enum": [
              "stablecoin"
            ]
          },
          "mainCurrency": {
            "type": "string",
            "description": "The blockchain network required for stablecoin deposits (USDT or USDC).\n\nFor e.g, if `USDT` is specified in the `currency` field and `TON` here, it signifies USDT on TON `USDT-TON`.\n\n**Allowed networks for USDT**: `TRX`, `ETH`, `MATIC`, `TON`, `BNB`.\n\n**Allowed networks for USDC**: `SOL`, `ETH`, `MATIC`, `TRX`, `BNB`.",
            "example": "ETH"
          },
          "sourceAmount": {
            "type": "string",
            "description": "The amount of cryptocurrency being sent.",
            "example": "1000"
          },
          "targetCurrency": {
            "type": "string",
            "description": "The fiat currency in which the merchant will be credited.\n\n* If `targetCurrency` is set, a **crypto-fiat conversion** occurs.\n* If omitted, no conversion occurs, and the deposit is made in the cryptocurrency specified in the `currency` field.",
            "enum": [
              "USD",
              "GBP",
              "EUR"
            ],
            "example": "USD"
          },
          "targetAmount": {
            "type": "string",
            "description": "Amount in `targetCurrency` that the merchant will receive after conversion.",
            "example": "950"
          },
          "cashierCurrency": {
            "type": "string",
            "enum": [
              "AED",
              "AUD",
              "BRL",
              "CAD",
              "CHF",
              "CNY",
              "EUR",
              "GBP",
              "HKD",
              "IDR",
              "INR",
              "JPY",
              "KRW",
              "MMK",
              "MYR",
              "PLN",
              "SGD",
              "THB",
              "USD",
              "VND",
              "SOL",
              "ARS",
              "PEN",
              "MXN",
              "CAD",
              "NZD",
              "KES",
              "COP",
              "BDT",
              "GHS",
              "PHP",
              "PYG"
            ],
            "description": "The currency in which the payer's balance is displayed on the merchant platform.",
            "example": "USD"
          },
          "cashierAmount": {
            "type": "string",
            "description": "Amount in `cashierCurrency` that is reflected on the payer's balance in the merchant platform.",
            "example": "1000"
          },
          "logoImage": {
            "type": "string",
            "description": "Merchant's logo image in `PNG` or `SVG` format.",
            "example": "https://hpp.coinflow.co/example.png"
          },
          "productImage": {
            "type": "string",
            "description": "Product image in `JPG` format to display on the deposit screen.",
            "example": "https://hpp.coinflow.co/banner.jpg"
          },
          "primaryColor": {
            "type": "string",
            "description": "Primary button color in `HEX`, `RGB`, or `RGBA` format.",
            "example": "#FF5733"
          },
          "secondaryColor": {
            "type": "string",
            "description": "Secondary button color in `HEX`, `RGB`, or `RGBA` format.",
            "example": "#C70039"
          },
          "refundAddress": {
            "type": "string",
            "description": "Optional refund wallet address provided by the end-user.",
            "example": "1FfmbHfnpaZjKFvyi1okTjJJusN455paPH"
          },
          "locale": {
            "type": "string",
            "description": "Default language for the user interface.",
            "example": "en-US",
            "enum": [
              "en-GB",
              "ar-AA",
              "zh-CN",
              "cs-CZ",
              "fr-FR",
              "de-DE",
              "hu-HU",
              "id-ID",
              "it-IT",
              "ja-JP",
              "ko-KR",
              "ms-MY",
              "mn-MN",
              "pl-PL",
              "pt-BR",
              "pt-PT",
              "ru-RU",
              "es-ES",
              "es-LA",
              "es-AR",
              "es-BO",
              "es-CL",
              "es-CO",
              "es-CR",
              "es-DO",
              "es-EC",
              "es-GT",
              "es-HN",
              "es-MX",
              "es-NI",
              "es-PA",
              "es-PE",
              "es-PR",
              "es-PY",
              "es-SV",
              "es-US",
              "es-UY",
              "es-VE",
              "th-TH",
              "tr-TR",
              "vn-VN",
              "vi-VN",
              "bn-BD",
              "bn-IN",
              "zh-HK",
              "zh-TW",
              "tl-PH",
              "el-GR",
              "hi-IN",
              "ur-PK",
              "bg-BG",
              "hr-HR",
              "da-DK",
              "nl-BE",
              "nl-NL",
              "et-EE",
              "km-KH",
              "lo-LA",
              "lv-LV",
              "lt-LT",
              "ro-RO",
              "sl-SL",
              "sv-SE"
            ]
          },
          "firstName": {
            "type": "string",
            "description": "Payer's first name.",
            "example": "John",
            "maxLength": 100
          },
          "lastName": {
            "type": "string",
            "description": "Payer's last name. \n\n **Note**: For customers in countries where last names are not available, pass `LNU` (Last Name Unavailable) in this field.",
            "example": "Doe",
            "maxLength": 100
          },
          "dateOfBirth": {
            "type": "string",
            "description": "Payer's date of birth (`YYYY-MM-DD`).",
            "example": "1998-10-30"
          },
          "email": {
            "type": "string",
            "description": "Payer's email address.",
            "example": "john.doe@example.com"
          },
          "townName": {
            "type": "string",
            "description": "Town of the payer's address.",
            "example": "London",
            "maxLength": 35
          },
          "postcode": {
            "type": "string",
            "description": "Postal code of the payer's address.",
            "example": "40122",
            "maxLength": 16
          },
          "identificationType": {
            "type": "string",
            "enum": [
              "personalDocument",
              "placeOfBirth",
              "fullAddress",
              "customerId"
            ],
            "description": "The type of identification used for the payer."
          },
          "placeOfBirth": {
            "type": "string",
            "description": "Payer's place of birth.\n\n**Required** if `identificationType` is `placeOfBirth`.",
            "example": "London",
            "maxLength": 70
          },
          "countryOfResidence": {
            "type": "string",
            "description": "The country where the payer's resides (`ISO-3166-1 alha-2`).\n\n**Required** if `identificationType` is `fullAddress`.",
            "example": "GB"
          },
          "streetName": {
            "type": "string",
            "description": "Street name of the payer's address.\n\n**Required** if `identificationType` is `fullAddress`.",
            "example": "Hogwarts",
            "maxLength": 70
          },
          "buildingNumber": {
            "type": "string",
            "description": "Building number of the payer's address.\n\n**Required** if `identificationType` is `fullAddress`.",
            "example": "012211",
            "maxLength": 16
          },
          "documentNumber": {
            "type": "string",
            "description": "Identification document number.\n\n**Required** if `identificationType` is `personalDocument`.",
            "example": "1234567890",
            "maxLength": 35
          },
          "documentType": {
            "type": "string",
            "enum": [
              "ARNU",
              "CCPT",
              "RAID",
              "DRLC",
              "FIIN",
              "TXID",
              "SOCS",
              "IDCD",
              "LEIX"
            ],
            "description": "Identification document type code.\n\n**Required** if `identificationType` is `personalDocument`.\n\n| Code | Description |\n|------|-------------|\n| `ARNU` | Alien registration number |\n| `CCPT` | Passport number |\n| `RAID` | Registration authority identifier |\n| `DRLC` | Driver's license number |\n| `FIIN` | Foreign investment identity number |\n| `TXID` | Tax identification number |\n| `SOCS` | Social security number |\n| `IDCD` | Identity card number |\n| `LEIX` | Legal Entity Identifier (LEI) |",
            "example": "CCPT",
            "x-enumDescriptions": {
              "ARNU": "Alien registration number",
              "CCPT": "Passport number",
              "RAID": "Registration authority identifier",
              "DRLC": "Driver's license number",
              "FIIN": "Foreign investment identity number",
              "TXID": "Tax identification number",
              "SOCS": "Social security number",
              "IDCD": "Identity card number",
              "LEIX": "Legal Entity Identifier (LEI)"
            }
          },
          "documentCountryOfIssue": {
            "type": "string",
            "description": "The country that issued the identification document (ISO-3166-1 alpha-2 code).\n\n**Required** if `identificationType` is `personalDocument`.",
            "example": "GB"
          },
          "customerId": {
            "type": "string",
            "description": "The internal ID for the payer.\n\n**Required** if `identificationType` is `customerId`",
            "example": "CUST-12345",
            "maxLength": 50
          },
          "format": {
            "type": "string",
            "description": "Indicates if the response should be in JSON format and respond with only the URL.",
            "example": "json"
          },
          "personType": {
            "type": "string",
            "description": "Indicates the type of payer. Can be `naturalPerson` or `legalPerson`.",
            "default": "naturalPerson",
            "example": "naturalPerson"
          }
        },
        "required": [
          "externalId",
          "notifyUrl",
          "returnUrl",
          "firstName",
          "lastName",
          "dateOfBirth",
          "identificationType"
        ]
      },
      "legalPersonPPDL": {
        "type": "object",
        "title": "CORPORATE PAYER (PPDL)",
        "description": "Data fields for a **Corporate Payer** associated with **PPDL (Gibraltar)**, including data required for Travel Rule compliance.",
        "properties": {
          "externalId": {
            "type": "string",
            "description": "`Unique ID` for the transaction generated by the merchant. Each request requires a **new** externalId; reusing one is not allowed.",
            "example": "ExternalID37478580"
          },
          "returnUrl": {
            "type": "string",
            "description": "URL to redirect the payer after the deposit is made.",
            "example": "https://return.url"
          },
          "notifyUrl": {
            "type": "string",
            "description": "Merchant webhook URL to receive payment notifications.",
            "example": "http://notify.com"
          },
          "currency": {
            "type": "string",
            "description": "The cryptocurrency to be transferred by the payer.",
            "enum": [
              "USDT",
              "USDC",
              "ETH",
              "BTC",
              "LTC",
              "BCH"
            ],
            "example": "USDT"
          },
          "currencyFilter": {
            "type": "string",
            "description": "Filters and displays only stablecoins (e.g., USDT, USDC). If omitted, all supported cryptocurrencies are shown.\n\n**Note**: Do not use with the `currency` or `mainCurrency` field.",
            "enum": [
              "stablecoin"
            ]
          },
          "mainCurrency": {
            "type": "string",
            "description": "The blockchain network required for stablecoin deposits (USDT or USDC).\n\nFor e.g, if `USDT` is specified in the `currency` field and `TON` here, it signifies USDT on TON `USDT-TON`.\n\n**Allowed networks for USDT**: `TRX`, `ETH`, `MATIC`, `TON`, `BNB`.\n\n**Allowed networks for USDC**: `SOL`, `ETH`, `MATIC`, `TRX`, `BNB`.",
            "example": "ETH"
          },
          "sourceAmount": {
            "type": "string",
            "description": "The amount of cryptocurrency being sent.",
            "example": "1000"
          },
          "targetCurrency": {
            "type": "string",
            "description": "The fiat currency in which the merchant will be credited.\n\n* If `targetCurrency` is set, a **crypto-fiat conversion** occurs.\n* If omitted, no conversion occurs, and the deposit is made in the cryptocurrency specified in the `currency` field.",
            "enum": [
              "USD",
              "GBP",
              "EUR"
            ],
            "example": "USD"
          },
          "targetAmount": {
            "type": "string",
            "description": "Amount in `targetCurrency` that the merchant will receive after conversion.",
            "example": "950"
          },
          "cashierCurrency": {
            "type": "string",
            "enum": [
              "AED",
              "AUD",
              "BRL",
              "CAD",
              "CHF",
              "CNY",
              "EUR",
              "GBP",
              "HKD",
              "IDR",
              "INR",
              "JPY",
              "KRW",
              "MMK",
              "MYR",
              "PLN",
              "SGD",
              "THB",
              "USD",
              "VND",
              "SOL",
              "ARS",
              "PEN",
              "MXN",
              "CAD",
              "NZD",
              "KES",
              "COP",
              "BDT",
              "GHS",
              "PHP",
              "PYG"
            ],
            "description": "The currency in which the payer's balance is displayed on the merchant platform.",
            "example": "USD"
          },
          "cashierAmount": {
            "type": "string",
            "description": "Amount in `cashierCurrency` that is reflected on the payer's balance in the merchant platform.",
            "example": "1000"
          },
          "logoImage": {
            "type": "string",
            "description": "Merchant's logo image in `PNG` or `SVG` format.",
            "example": "https://hpp.coinflow.co/example.png"
          },
          "productImage": {
            "type": "string",
            "description": "Product image in `JPG` format to display on the deposit screen.",
            "example": "https://hpp.coinflow.co/banner.jpg"
          },
          "primaryColor": {
            "type": "string",
            "description": "Primary button color in `HEX`, `RGB`, or `RGBA` format.",
            "example": "#FF5733"
          },
          "secondaryColor": {
            "type": "string",
            "description": "Secondary button color in `HEX`, `RGB`, or `RGBA` format.",
            "example": "#C70039"
          },
          "refundAddress": {
            "type": "string",
            "description": "Optional refund wallet address provided by the buisness.",
            "example": "1FfmbHfnpaZjKFvyi1okTjJJusN455paPH"
          },
          "locale": {
            "type": "string",
            "description": "Default language for the user interface.",
            "example": "en-US",
            "enum": [
              "en-GB",
              "ar-AA",
              "zh-CN",
              "cs-CZ",
              "fr-FR",
              "de-DE",
              "hu-HU",
              "id-ID",
              "it-IT",
              "ja-JP",
              "ko-KR",
              "ms-MY",
              "mn-MN",
              "pl-PL",
              "pt-BR",
              "pt-PT",
              "ru-RU",
              "es-ES",
              "es-LA",
              "es-AR",
              "es-BO",
              "es-CL",
              "es-CO",
              "es-CR",
              "es-DO",
              "es-EC",
              "es-GT",
              "es-HN",
              "es-MX",
              "es-NI",
              "es-PA",
              "es-PE",
              "es-PR",
              "es-PY",
              "es-SV",
              "es-US",
              "es-UY",
              "es-VE",
              "th-TH",
              "tr-TR",
              "vn-VN",
              "vi-VN",
              "bn-BD",
              "bn-IN",
              "zh-HK",
              "zh-TW",
              "tl-PH",
              "el-GR",
              "hi-IN",
              "ur-PK",
              "bg-BG",
              "hr-HR",
              "da-DK",
              "nl-BE",
              "nl-NL",
              "et-EE",
              "km-KH",
              "lo-LA",
              "lv-LV",
              "lt-LT",
              "ro-RO",
              "sl-SL",
              "sv-SE"
            ]
          },
          "email": {
            "type": "string",
            "description": "Business contact email address.",
            "example": "contact@business.com"
          },
          "registeredName": {
            "type": "string",
            "description": "The official registered name of the business.",
            "example": "Demo Corporation",
            "maxLength": 100
          },
          "countryOfResidence": {
            "type": "string",
            "description": "The country where the business is registered. Must be `ISO-3166-1 alpha-2 code`.",
            "example": "GB"
          },
          "streetName": {
            "type": "string",
            "description": "Street name of the business address.",
            "example": "Main Street",
            "maxLength": 70
          },
          "buildingNumber": {
            "type": "string",
            "description": "Building number of the business address.",
            "example": "101",
            "maxLength": 16
          },
          "townName": {
            "type": "string",
            "description": "Town of the business address.",
            "example": "London",
            "maxLength": 35
          },
          "postcode": {
            "type": "string",
            "description": "Postal code of the business address.",
            "example": "EC1A 1BB",
            "maxLength": 16
          },
          "format": {
            "type": "string",
            "description": "Indicates if the response should be in JSON format and respond with only the URL.",
            "example": "json"
          },
          "personType": {
            "type": "string",
            "description": "Indicates the type of payer. Can be `naturalPerson` or `legalPerson`.",
            "example": "legalPerson"
          }
        },
        "required": [
          "externalId",
          "notifyUrl",
          "returnUrl",
          "registeredName",
          "countryOfResidence",
          "streetName",
          "buildingNumber",
          "identificationType"
        ]
      }
    },
    "securitySchemes": {
      "apiKeyAuth": {
        "type": "apiKey",
        "name": "x-api-key",
        "in": "header",
        "description": "API key for authenticating requests."
      }
    }
  },
  "security": [
    {
      "apiKeyAuth": []
    }
  ]
}
```