{
  "openapi": "3.1.0",
  "info": {
    "title": "Virtual Accounts",
    "version": "2.0"
  },
  "servers": [
    {
      "description": "Production Environment",
      "url": "https://api.moonpay.com"
    },
    {
      "description": "Staging Environment",
      "url": "https://api.moonpay-staging.com"
    }
  ],
  "paths": {
    "/v1/virtual-accounts": {
      "get": {
        "operationId": "VirtualAccountController.getVirtualAccounts",
        "parameters": [
          {
            "in": "query",
            "name": "virtualAccountId",
            "schema": { "format": "uuid", "type": "string" }
          },
          {
            "in": "query",
            "name": "walletAddress",
            "schema": { "type": "string" }
          },
          {
            "in": "query",
            "name": "externalCustomerId",
            "schema": { "type": "string" }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/VirtualAccountResponse"
                  },
                  "type": "array"
                }
              }
            },
            "description": ""
          }
        },
        "security": [{ "ApiKeyInQueryParamsAuth": [] }],
        "summary": "Get virtual accounts",
        "tags": ["Virtual Account"]
      }
    },
    "/v1/virtual-accounts/onramp/{id}": {
      "patch": {
        "operationId": "VirtualAccountOnRampController.updateOnRampVirtualAccount",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": { "pattern": "[^\\/#\\?]+?", "type": "string" }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOnRampVirtualAccountBody"
              }
            }
          },
          "description": "UpdateOnRampVirtualAccountBody",
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VirtualAccountResponse"
                }
              }
            },
            "description": ""
          }
        },
        "security": [{ "ApiKeyInQueryParamsAuth": [] }],
        "summary": "Update on ramp virtual account",
        "tags": ["Virtual Account On Ramp"]
      }
    },
    "/v1/virtual-accounts/transactions/offramp": {
      "get": {
        "operationId": "VirtualAccountTransactionsController.getOffRampTransactions",
        "parameters": [
          {
            "in": "query",
            "name": "virtualAccountId",
            "required": false,
            "schema": { "format": "uuid", "type": "string" }
          },
          {
            "in": "query",
            "name": "externalCustomerId",
            "required": false,
            "schema": { "maxLength": 255, "minLength": 0, "type": "string" }
          },
          {
            "in": "query",
            "name": "pageSize",
            "required": true,
            "schema": {
              "exclusiveMinimum": 0,
              "minLength": 1,
              "not": { "type": "null" },
              "type": "number"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": { "format": "uuid", "type": "string" }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OffRampVirtualAccountTransactionsResponse"
                }
              }
            },
            "description": ""
          }
        },
        "security": [{ "ApiKeyInQueryParamsAuth": [] }],
        "summary": "Get off ramp transactions",
        "tags": ["Virtual Account Transactions"]
      }
    },
    "/v1/virtual-accounts/transactions/offramp/{transactionId}": {
      "get": {
        "operationId": "VirtualAccountTransactionsController.getOffRampTransaction",
        "parameters": [
          {
            "in": "path",
            "name": "transactionId",
            "required": true,
            "schema": { "pattern": "[^\\/#\\?]+?", "type": "string" }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicOffRampVirtualAccountTransaction"
                }
              }
            },
            "description": ""
          }
        },
        "security": [{ "ApiKeyInQueryParamsAuth": [] }],
        "summary": "Get off ramp transaction",
        "tags": ["Virtual Account Transactions"]
      }
    },
    "/v1/virtual-accounts/transactions/onramp": {
      "get": {
        "operationId": "VirtualAccountTransactionsController.getOnRampTransactions",
        "parameters": [
          {
            "in": "query",
            "name": "virtualAccountId",
            "required": false,
            "schema": { "format": "uuid", "type": "string" }
          },
          {
            "in": "query",
            "name": "externalCustomerId",
            "required": false,
            "schema": { "maxLength": 255, "minLength": 0, "type": "string" }
          },
          {
            "in": "query",
            "name": "pageSize",
            "required": true,
            "schema": {
              "exclusiveMinimum": 0,
              "minLength": 1,
              "not": { "type": "null" },
              "type": "number"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": { "format": "uuid", "type": "string" }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OnRampVirtualAccountTransactionsResponse"
                }
              }
            },
            "description": ""
          }
        },
        "security": [{ "ApiKeyInQueryParamsAuth": [] }],
        "summary": "Get on ramp transactions",
        "tags": ["Virtual Account Transactions"]
      }
    },
    "/v1/virtual-accounts/transactions/onramp/{transactionId}": {
      "get": {
        "operationId": "VirtualAccountTransactionsController.getOnRampTransaction",
        "parameters": [
          {
            "in": "path",
            "name": "transactionId",
            "required": true,
            "schema": { "pattern": "[^\\/#\\?]+?", "type": "string" }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicOnRampVirtualAccountTransaction"
                }
              }
            },
            "description": ""
          }
        },
        "security": [{ "ApiKeyInQueryParamsAuth": [] }],
        "summary": "Get on ramp transaction",
        "tags": ["Virtual Account Transactions"]
      }
    }
  },
  "components": {
    "schemas": {
      "BaseRoutingDetails": {
        "properties": {
          "bankCountryCode": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string"
          },
          "bankName": { "maxLength": 255, "minLength": 0, "type": "string" },
          "currencyCode": { "enum": ["usd", "eur", "gbp"], "type": "string" },
          "type": {
            "enum": ["ach", "wire", "sepa", "swift", "rtp", "chaps", "fps"],
            "type": "string"
          }
        },
        "required": ["type", "currencyCode", "bankName", "bankCountryCode"],
        "type": "object"
      },
      "OffRampVirtualAccountTransactionsResponse": {
        "properties": {
          "nextCursor": { "format": "uuid", "type": "string" },
          "transactions": {
            "$ref": "#/components/schemas/PublicOffRampVirtualAccountTransaction",
            "items": {},
            "type": "array"
          }
        },
        "required": ["transactions"],
        "type": "object"
      },
      "OnRampVirtualAccountTransactionsResponse": {
        "properties": {
          "nextCursor": { "format": "uuid", "type": "string" },
          "transactions": {
            "$ref": "#/components/schemas/PublicOnRampVirtualAccountTransaction",
            "items": {},
            "type": "array"
          }
        },
        "required": ["transactions"],
        "type": "object"
      },
      "PublicBankDepositInformation": {
        "properties": {
          "accountAddress": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string"
          },
          "accountName": { "maxLength": 255, "minLength": 0, "type": "string" },
          "accountNumber": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string"
          },
          "bankAddress": { "maxLength": 255, "minLength": 0, "type": "string" },
          "bankName": { "maxLength": 255, "minLength": 0, "type": "string" },
          "bic": { "maxLength": 11, "minLength": 0, "type": "string" },
          "iban": { "maxLength": 34, "minLength": 0, "type": "string" },
          "routingNumber": {},
          "sortCode": {},
          "type": {
            "enum": ["ACH", "Wire", "SEPA", "RTP", "SWIFT"],
            "type": "string"
          }
        },
        "required": ["accountAddress", "accountName", "type"],
        "type": "object"
      },
      "PublicCryptoAmount": {
        "properties": {
          "amount": { "minLength": 1, "type": "string" },
          "currency": {
            "$ref": "#/components/schemas/PublicCryptoCurrency",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": ["currency", "amount"],
        "type": "object"
      },
      "PublicCryptoCurrency": {
        "properties": {
          "network": {
            "$ref": "#/components/schemas/PublicCryptoCurrencyNetwork"
          },
          "notAllowedCountries": { "items": {}, "type": "array" },
          "notAllowedUSStates": { "items": {}, "type": "array" }
        },
        "required": ["notAllowedUSStates", "notAllowedCountries", "network"],
        "type": "object"
      },
      "PublicCryptoCurrencyNetwork": {
        "properties": {
          "code": { "maxLength": 20, "minLength": 0, "type": "string" },
          "icon": { "maxLength": 20, "minLength": 0, "type": "string" },
          "name": { "maxLength": 20, "minLength": 0, "type": "string" }
        },
        "required": ["code", "name", "icon"],
        "type": "object"
      },
      "PublicFiatAmount": {
        "properties": {
          "amount": { "minLength": 1, "type": "string" },
          "currency": {
            "$ref": "#/components/schemas/PublicFiatCurrency",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": ["currency", "amount"],
        "type": "object"
      },
      "PublicFiatCurrency": {
        "properties": {
          "code": { "minLength": 3, "type": "string" },
          "name": { "maxLength": 20, "minLength": 0, "type": "string" },
          "type": { "maxLength": 10, "minLength": 0, "type": "string" }
        },
        "required": ["code", "name", "type"],
        "type": "object"
      },
      "PublicFiatDestinationDetails": {
        "properties": {
          "id": { "format": "uuid", "type": "string" },
          "partyType": {
            "enum": ["first_party", "third_party"],
            "type": "string"
          },
          "recipientDetails": {
            "$ref": "#/components/schemas/RecipientDetails"
          },
          "routingDetails": {
            "$ref": "#/components/schemas/BaseRoutingDetails"
          }
        },
        "required": ["id", "partyType", "routingDetails", "recipientDetails"],
        "type": "object"
      },
      "PublicOffRampFeeWithSettlement": {
        "properties": {
          "amount": { "minLength": 1, "type": "string" },
          "currency": {
            "$ref": "#/components/schemas/PublicCryptoCurrency",
            "minLength": 1,
            "type": "string"
          },
          "settlement": {
            "enum": ["deductedImmediately", "settledLater"],
            "type": "string"
          }
        },
        "required": ["settlement", "amount", "currency"],
        "type": "object"
      },
      "PublicOffRampTransactionFeeBreakdown": {
        "properties": {
          "deductedFee": { "$ref": "#/components/schemas/PublicCryptoAmount" },
          "networkFees": {
            "items": {
              "$ref": "#/components/schemas/PublicOffRampTransactionNetworkFee"
            },
            "type": "array"
          },
          "partnerFees": {
            "items": {
              "$ref": "#/components/schemas/PublicOffRampFeeWithSettlement"
            },
            "type": "array"
          }
        },
        "required": ["networkFees", "partnerFees"],
        "type": "object"
      },
      "PublicOffRampTransactionNetworkFee": {
        "properties": {
          "amount": { "minLength": 1, "type": "string" },
          "currency": {
            "$ref": "#/components/schemas/PublicCryptoCurrency",
            "minLength": 1,
            "type": "string"
          },
          "settlement": {
            "enum": ["deductedImmediately", "settledLater"],
            "type": "string"
          },
          "type": {
            "enum": [
              "SepaIn",
              "SepaOut",
              "EthereumGas",
              "SolanaTransactionFee",
              "RailFee",
              "AchIn",
              "AchOut",
              "WireIn",
              "WireOut",
              "SwiftIn",
              "SwiftOut",
              "FpsIn",
              "FpsOut",
              "ChapsIn",
              "ChapsOut",
              "StellarTransactionFee"
            ],
            "type": "string"
          }
        },
        "required": ["type", "amount", "currency", "settlement"],
        "type": "object"
      },
      "PublicOffRampVirtualAccountTransaction": {
        "properties": {
          "createdAt": {
            "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?",
            "type": "string"
          },
          "destination": {
            "$ref": "#/components/schemas/PublicFiatDestinationDetails"
          },
          "destinationAmount": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string"
          },
          "destinationCurrency": {
            "$ref": "#/components/schemas/PublicFiatCurrency"
          },
          "feeBreakdown": {
            "$ref": "#/components/schemas/PublicOffRampTransactionFeeBreakdown"
          },
          "id": { "format": "uuid", "type": "string" },
          "source": {
            "$ref": "#/components/schemas/PublicVirtualAccountCryptoWallet"
          },
          "sourceAmount": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string"
          },
          "sourceCurrency": {
            "$ref": "#/components/schemas/PublicCryptoCurrency"
          },
          "status": {
            "enum": [
              "FundsReviewInProgress",
              "ConversionInProgress",
              "PayoutInProgress",
              "Completed",
              "Failed",
              "RejectedAml",
              "RejectedFraud",
              "RejectedMinAmount"
            ],
            "type": "string"
          }
        },
        "required": [
          "sourceCurrency",
          "destinationCurrency",
          "source",
          "destination",
          "feeBreakdown",
          "id",
          "status",
          "sourceAmount",
          "destinationAmount",
          "createdAt"
        ],
        "type": "object"
      },
      "PublicOnRampFeeWithSettlement": {
        "properties": {
          "amount": { "minLength": 1, "type": "string" },
          "currency": {
            "$ref": "#/components/schemas/PublicFiatCurrency",
            "minLength": 1,
            "type": "string"
          },
          "settlement": {
            "enum": ["deductedImmediately", "settledLater"],
            "type": "string"
          }
        },
        "required": ["settlement", "amount", "currency"],
        "type": "object"
      },
      "PublicOnRampTransactionFeeBreakdown": {
        "properties": {
          "deductedFee": { "$ref": "#/components/schemas/PublicFiatAmount" },
          "networkFees": {
            "items": {
              "$ref": "#/components/schemas/PublicOnRampTransactionNetworkFee"
            },
            "type": "array"
          },
          "partnerFees": {
            "items": {
              "$ref": "#/components/schemas/PublicOnRampFeeWithSettlement"
            },
            "type": "array"
          }
        },
        "required": ["networkFees", "partnerFees"],
        "type": "object"
      },
      "PublicOnRampTransactionNetworkFee": {
        "properties": {
          "amount": { "minLength": 1, "type": "string" },
          "currency": {
            "$ref": "#/components/schemas/PublicFiatCurrency",
            "minLength": 1,
            "type": "string"
          },
          "settlement": {
            "enum": ["deductedImmediately", "settledLater"],
            "type": "string"
          },
          "type": {
            "enum": [
              "SepaIn",
              "SepaOut",
              "EthereumGas",
              "SolanaTransactionFee",
              "RailFee",
              "AchIn",
              "AchOut",
              "WireIn",
              "WireOut",
              "SwiftIn",
              "SwiftOut",
              "FpsIn",
              "FpsOut",
              "ChapsIn",
              "ChapsOut",
              "StellarTransactionFee"
            ],
            "type": "string"
          }
        },
        "required": ["type", "amount", "currency", "settlement"],
        "type": "object"
      },
      "PublicOnRampVirtualAccountTransaction": {
        "properties": {
          "createdAt": {
            "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?",
            "type": "string"
          },
          "destination": {
            "$ref": "#/components/schemas/PublicVirtualAccountCryptoWallet"
          },
          "destinationAmount": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string"
          },
          "destinationCurrency": {
            "$ref": "#/components/schemas/PublicCryptoCurrency"
          },
          "feeBreakdown": {
            "$ref": "#/components/schemas/PublicOnRampTransactionFeeBreakdown"
          },
          "id": { "format": "uuid", "type": "string" },
          "payoutCryptoTransaction": {
            "$ref": "#/components/schemas/PublicPayoutCryptoTransaction"
          },
          "source": {
            "$ref": "#/components/schemas/PublicBankDepositInformation"
          },
          "sourceAmount": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string"
          },
          "sourceCurrency": {
            "$ref": "#/components/schemas/PublicFiatCurrency"
          },
          "status": {
            "enum": [
              "FundsReviewInProgress",
              "ConversionInProgress",
              "PayoutInProgress",
              "Completed",
              "Failed",
              "RejectedAml",
              "RejectedFraud",
              "RejectedMinAmount"
            ],
            "type": "string"
          }
        },
        "required": [
          "sourceCurrency",
          "destinationCurrency",
          "source",
          "destination",
          "feeBreakdown",
          "id",
          "status",
          "sourceAmount",
          "destinationAmount",
          "createdAt"
        ],
        "type": "object"
      },
      "PublicPayoutCryptoTransaction": {
        "properties": {
          "transactionHash": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string"
          }
        },
        "required": ["transactionHash"],
        "type": "object"
      },
      "PublicVirtualAccountCryptoWallet": {
        "properties": {
          "network": {
            "$ref": "#/components/schemas/PublicVirtualAccountWalletNetwork"
          },
          "wallet": {
            "$ref": "#/components/schemas/PublicVirtualAccountCryptoWalletDetails"
          }
        },
        "required": ["wallet"],
        "type": "object"
      },
      "PublicVirtualAccountCryptoWalletDetails": {
        "properties": {
          "walletAddress": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string"
          },
          "walletAddressTag": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string"
          }
        },
        "required": ["walletAddress"],
        "type": "object"
      },
      "PublicVirtualAccountWalletNetwork": {
        "properties": {
          "code": {
            "enum": [
              "akash",
              "algorand",
              "aptos",
              "arbitrum",
              "avalanche_c_chain",
              "base",
              "berachain",
              "binance",
              "binance_smart_chain",
              "bitcoin",
              "bitcoin_cash",
              "bitcoin_testnet",
              "bnb_chain",
              "cardano",
              "celo",
              "celestia",
              "core",
              "cosmos",
              "chiliz",
              "cronos",
              "dash",
              "deversifi",
              "digibyte",
              "dogecoin",
              "dydx",
              "elrond",
              "eosio",
              "ethereum",
              "ethereum_classic",
              "fantom",
              "filecoin",
              "flow",
              "flow_evm",
              "gala",
              "goerli",
              "hedera",
              "hive",
              "hypercore",
              "icp",
              "immutable",
              "injective",
              "iota",
              "kava",
              "klaytn",
              "kovan",
              "lbry",
              "linea",
              "lisk",
              "litecoin",
              "litecoin_testnet",
              "loopring",
              "mantle",
              "mina",
              "mobilecoin",
              "moca",
              "monad",
              "multiversx",
              "mumbai",
              "nano",
              "near",
              "nem",
              "neo",
              "nimiq",
              "noble",
              "oasis",
              "okc",
              "ontology",
              "optimism",
              "osmosis",
              "palm",
              "plasma",
              "polkadot",
              "polygon",
              "qtum",
              "ravencoin",
              "rinkeby",
              "ripple",
              "ronin",
              "sei",
              "sepolia",
              "simple_ledger_protocol",
              "solana",
              "sonic",
              "sorare",
              "starknet",
              "stacks",
              "stellar",
              "sui",
              "rune",
              "terra",
              "tezos",
              "theta",
              "tomochain",
              "ton",
              "tron",
              "unichain",
              "vechain",
              "venom",
              "waves",
              "wax",
              "worldchain",
              "xrpl",
              "zcash",
              "zilliqa",
              "zksync"
            ],
            "type": "string"
          },
          "icon": { "maxLength": 255, "minLength": 0, "type": "string" },
          "name": { "maxLength": 255, "minLength": 0, "type": "string" }
        },
        "type": "object"
      },
      "RecipientDetails": {
        "properties": {
          "city": { "maxLength": 255, "minLength": 0, "type": "string" },
          "country": { "maxLength": 255, "minLength": 0, "type": "string" },
          "emailAddress": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string"
          },
          "entityType": {
            "enum": ["Individual", "Business"],
            "type": "string"
          },
          "familyName": { "maxLength": 255, "minLength": 0, "type": "string" },
          "givenName": { "maxLength": 255, "minLength": 1, "type": "string" },
          "name": { "maxLength": 255, "minLength": 1, "type": "string" },
          "phoneNumber": { "maxLength": 255, "minLength": 0, "type": "string" },
          "postalCode": { "maxLength": 255, "minLength": 0, "type": "string" },
          "state": { "maxLength": 255, "minLength": 0, "type": "string" },
          "street": { "maxLength": 255, "minLength": 0, "type": "string" }
        },
        "required": ["entityType"],
        "type": "object"
      },
      "UpdateOnRampVirtualAccountBody": {
        "properties": {
          "destination": {
            "$ref": "#/components/schemas/VirtualAccountCryptoWalletBody"
          },
          "destinationCurrencyCode": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string"
          }
        },
        "type": "object"
      },
      "VirtualAccountCryptoWalletBody": {
        "properties": {
          "networkCode": {
            "enum": [
              "akash",
              "algorand",
              "aptos",
              "arbitrum",
              "avalanche_c_chain",
              "base",
              "berachain",
              "binance",
              "binance_smart_chain",
              "bitcoin",
              "bitcoin_cash",
              "bitcoin_testnet",
              "bnb_chain",
              "cardano",
              "celo",
              "celestia",
              "core",
              "cosmos",
              "chiliz",
              "cronos",
              "dash",
              "deversifi",
              "digibyte",
              "dogecoin",
              "dydx",
              "elrond",
              "eosio",
              "ethereum",
              "ethereum_classic",
              "fantom",
              "filecoin",
              "flow",
              "flow_evm",
              "gala",
              "goerli",
              "hedera",
              "hive",
              "hypercore",
              "icp",
              "immutable",
              "injective",
              "iota",
              "kava",
              "klaytn",
              "kovan",
              "lbry",
              "linea",
              "lisk",
              "litecoin",
              "litecoin_testnet",
              "loopring",
              "mantle",
              "mina",
              "mobilecoin",
              "moca",
              "monad",
              "multiversx",
              "mumbai",
              "nano",
              "near",
              "nem",
              "neo",
              "nimiq",
              "noble",
              "oasis",
              "okc",
              "ontology",
              "optimism",
              "osmosis",
              "palm",
              "plasma",
              "polkadot",
              "polygon",
              "qtum",
              "ravencoin",
              "rinkeby",
              "ripple",
              "ronin",
              "sei",
              "sepolia",
              "simple_ledger_protocol",
              "solana",
              "sonic",
              "sorare",
              "starknet",
              "stacks",
              "stellar",
              "sui",
              "rune",
              "terra",
              "tezos",
              "theta",
              "tomochain",
              "ton",
              "tron",
              "unichain",
              "vechain",
              "venom",
              "waves",
              "wax",
              "worldchain",
              "xrpl",
              "zcash",
              "zilliqa",
              "zksync"
            ],
            "not": { "type": "null" },
            "type": "string"
          },
          "walletAddress": {
            "maxLength": 255,
            "minLength": 0,
            "not": { "type": "null" },
            "type": "string"
          }
        },
        "required": ["walletAddress", "networkCode"],
        "type": "object"
      },
      "VirtualAccountResponse": {
        "properties": {
          "createdAt": {
            "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?",
            "type": "string"
          },
          "customerId": { "type": "string" },
          "destination": { "type": "object" },
          "destinationCurrency": { "type": "object" },
          "destinations": { "items": {}, "type": "array" },
          "externalCustomerId": { "type": "string" },
          "id": { "type": "string" },
          "organizationId": { "type": "string" },
          "source": {},
          "sourceCurrency": { "type": "object" },
          "sources": { "items": {}, "type": "array" },
          "status": {
            "enum": ["pending", "completed", "failed", "manual_review"],
            "type": "string"
          },
          "type": {
            "enum": ["auto_on_ramp", "auto_off_ramp"],
            "type": "string"
          },
          "updatedAt": {
            "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?",
            "type": "string"
          }
        },
        "required": [
          "id",
          "type",
          "destination",
          "sourceCurrency",
          "destinationCurrency",
          "customerId",
          "organizationId",
          "createdAt",
          "updatedAt",
          "status"
        ],
        "type": "object"
      }
    },
    "securitySchemes": {
      "ApiKeyInQueryParamsAuth": {
        "description": "API Key authentication using a publishable API key in the query string.\nThe key is passed as the `apiKey` query parameter.\nPublishable keys are safe to expose in client-side code.",
        "in": "query",
        "name": "apiKey",
        "type": "apiKey"
      },
      "ClientTokenAuth": {
        "description": "Client token (SCT) authentication via the X-Client-Token header.\n\nUsed for authenticating dev-platform requests with a signed client token (SCT).\n\nExample: `X-Client-Token: <sctJwt>`",
        "in": "header",
        "name": "X-Client-Token",
        "type": "apiKey"
      },
      "CustomerTokenAuth": {
        "description": "Bearer authentication using a customer token.\n\nUsed for authenticating requests with a user's access token.\n\nExample: `Authorization: Bearer <clientToken>`",
        "scheme": "bearer",
        "type": "http"
      },
      "PublishableApiKeyInHeaderAuth": {
        "description": "API Key authentication using a publishable API key.\nThe key is passed in the 'Api-Key' header.\nPublishable keys are safe to expose in client-side code.",
        "in": "header",
        "name": "Api-Key",
        "type": "apiKey"
      }
    }
  }
}
