{
  "openapi": "3.0.2",
  "info": {
    "title": "Bridge API",
    "description": "APIs to move into, out of, and between any form of a dollar",
    "version": "1"
  },
  "servers": [
    {
      "url": "https://api.bridge.xyz/v0",
      "description": "The base path for all resources"
    }
  ],
  "tags": [
    {
      "name": "Customers"
    },
    {
      "name": "Fiat Payout Configuration"
    },
    {
      "name": "External Accounts"
    },
    {
      "name": "Transfers"
    },
    {
      "name": "Prefunded Accounts"
    },
    {
      "name": "Balances"
    },
    {
      "name": "Liquidation Addresses"
    },
    {
      "name": "Developer Fees"
    },
    {
      "name": "Developers"
    },
    {
      "name": "API Keys"
    },
    {
      "name": "Plaid"
    },
    {
      "name": "Virtual Accounts"
    },
    {
      "name": "Static Memos"
    },
    {
      "name": "Cards"
    },
    {
      "name": "Funds Requests"
    },
    {
      "name": "RFIs"
    },
    {
      "name": "Webhooks"
    },
    {
      "name": "Lists"
    },
    {
      "name": "Crypto Return Policies"
    },
    {
      "name": "Rewards"
    },
    {
      "name": "Associated Persons"
    },
    {
      "name": "Sandbox"
    }
  ],
  "paths": {
    "/wallets": {
      "get": {
        "summary": "Get all Bridge Wallets",
        "description": "List of Bridge Wallets",
        "tags": [
          "Bridge Wallets"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitParameter"
          },
          {
            "$ref": "#/components/parameters/BridgeWalletStartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/BridgeWalletEndingBeforeParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "List of Bridge Wallets",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BridgeWalletsList"
                },
                "examples": {
                  "SuccessfulBridgeWalletListResponse": {
                    "$ref": "#/components/examples/SuccessfulBridgeWalletListResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/wallets/total_balances": {
      "get": {
        "summary": "Get total balances of all Bridge Wallets",
        "tags": [
          "Bridge Wallets"
        ],
        "description": "Get the total balances of all Bridge Wallets",
        "responses": {
          "200": {
            "description": "Total balances of all Bridge Wallets",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BridgeWalletTotalBalance"
                  }
                },
                "examples": {
                  "TotalBalancesFound": {
                    "$ref": "#/components/examples/SuccessfulTotalBalancesResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/wallets/{bridgeWalletID}": {
      "get": {
        "summary": "Get a Bridge Wallet",
        "description": "Retrieve a Bridge Wallet by its ID",
        "tags": [
          "Bridge Wallets"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/BridgeWalletIDParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A Bridge Wallet object response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BridgeWalletWithBalances"
                },
                "examples": {
                  "SuccessfulBridgeWalletGetResponse": {
                    "$ref": "#/components/examples/SuccessfulBridgeWalletGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/wallets/{bridgeWalletID}/history": {
      "parameters": [
        {
          "$ref": "#/components/parameters/BridgeWalletIDParameter"
        },
        {
          "$ref": "#/components/parameters/LimitParameter"
        },
        {
          "$ref": "#/components/parameters/BridgeWalletHistoryStartingAfterParameter"
        },
        {
          "$ref": "#/components/parameters/BridgeWalletHistoryEndingBeforeParameter"
        },
        {
          "$ref": "#/components/parameters/BridgeWalletHistoryStartingTimeParameter"
        },
        {
          "$ref": "#/components/parameters/BridgeWalletHistoryEndingTimeParameter"
        }
      ],
      "get": {
        "summary": "Get transaction history for a Bridge Wallet",
        "tags": [
          "Bridge Wallets"
        ],
        "description": "Get the list of transactions involving this Bridge Wallet",
        "responses": {
          "200": {
            "$ref": "#/components/responses/BridgeWalletHistoryResponse"
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers": {
      "get": {
        "summary": "Get all customers",
        "description": "Get the full list of all customers created on Bridge",
        "tags": [
          "Customers"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerStartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/CustomerEndingBeforeParameter"
          },
          {
            "$ref": "#/components/parameters/LimitParameter"
          },
          {
            "$ref": "#/components/parameters/CustomerEmailParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "List of customers (the returned list is empty if none found)",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Customers",
                  "type": "object",
                  "required": [
                    "count",
                    "data"
                  ],
                  "properties": {
                    "count": {
                      "description": "total number of items in data",
                      "type": "integer"
                    },
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/Customer"
                      }
                    }
                  }
                },
                "examples": {
                  "CustomersFound": {
                    "summary": "A non-empty list of customers",
                    "value": {
                      "data": [
                        {
                          "id": "00000000-0000-0000-0000-000000000000",
                          "first_name": "John",
                          "last_name": "Doe",
                          "email": "johndoe@example.com",
                          "client_reference_id": "your_internal_id_123",
                          "status": "active",
                          "type": "individual",
                          "persona_inquiry_type": "gov_id_db",
                          "created_at": "2025-11-19T21:14:58.328Z",
                          "updated_at": "2025-11-19T21:16:02.894Z",
                          "rejection_reasons": [],
                          "has_accepted_terms_of_service": true,
                          "endorsements": [
                            {
                              "name": "base",
                              "status": "approved",
                              "requirements": {
                                "complete": [
                                  "terms_of_service_v1",
                                  "first_name",
                                  "last_name",
                                  "tax_identification_number",
                                  "email_address",
                                  "address_of_residence",
                                  "date_of_birth",
                                  "proof_of_address",
                                  "sanctions_screen",
                                  "pep_screen",
                                  "blocklist_lookup",
                                  "min_age_18",
                                  "selfie_verification",
                                  "government_id_rejection_checks_passed",
                                  "government_id_review_checks_passed",
                                  "government_id_reliance",
                                  "post_processing"
                                ],
                                "pending": [],
                                "missing": null,
                                "issues": []
                              }
                            },
                            {
                              "name": "sepa",
                              "status": "approved",
                              "requirements": {
                                "complete": [
                                  "terms_of_service_v2",
                                  "first_name",
                                  "last_name",
                                  "tax_identification_number",
                                  "email_address",
                                  "address_of_residence",
                                  "date_of_birth",
                                  "proof_of_address",
                                  "sanctions_screen",
                                  "pep_screen",
                                  "blocklist_lookup",
                                  "min_age_18",
                                  "selfie_verification",
                                  "government_id_rejection_checks_passed",
                                  "government_id_review_checks_passed",
                                  "government_id_reliance"
                                ],
                                "pending": [],
                                "missing": null,
                                "issues": []
                              }
                            }
                          ],
                          "future_requirements_due": [],
                          "requirements_due": [
                            "external_account"
                          ],
                          "capabilities": {
                            "payin_crypto": "active",
                            "payout_crypto": "active",
                            "payin_fiat": "pending",
                            "payout_fiat": "pending"
                          }
                        },
                        {
                          "id": "00000000-0000-0000-0000-000000000000",
                          "first_name": "Acme Corporation",
                          "last_name": null,
                          "email": "business@example.com",
                          "client_reference_id": "your_internal_id_456",
                          "status": "active",
                          "type": "business",
                          "persona_inquiry_type": "business",
                          "created_at": "2025-11-19T04:41:33.296Z",
                          "updated_at": "2025-11-19T19:10:39.393Z",
                          "rejection_reasons": [],
                          "has_accepted_terms_of_service": true,
                          "endorsements": [
                            {
                              "name": "base",
                              "status": "approved",
                              "requirements": {
                                "complete": [
                                  "terms_of_service_v1",
                                  "business_name",
                                  "business_type",
                                  "business_description",
                                  "is_dao",
                                  "email_address",
                                  "address_of_incorporation",
                                  "address_of_operation",
                                  "tax_identification_number",
                                  "business_industry",
                                  "control_person_ownership_attestation",
                                  "minimal_source_of_funds_data",
                                  "proof_of_address",
                                  "adverse_media_screen",
                                  "sanctions_screen",
                                  "manual_business_ein_verification_review",
                                  "manual_business_registry_verification_review",
                                  "business_website",
                                  "manual_business_website_verification_review",
                                  "business_formation_document_verification",
                                  "manual_business_formation_document_verification_review",
                                  "kyb_review",
                                  {
                                    "associated_person": "11111111-1111-1111-1111-111111111111",
                                    "items": [
                                      "has_control",
                                      "first_name",
                                      "last_name",
                                      "email_address",
                                      "address_of_residence",
                                      "associated_person_relationship",
                                      "date_of_birth",
                                      "tax_identification_number",
                                      "manual_government_id_review",
                                      "sanctions_screen",
                                      "adverse_media_screen",
                                      "pep_screen",
                                      "min_age_18",
                                      "selfie_verification",
                                      "has_title"
                                    ]
                                  }
                                ],
                                "pending": [],
                                "missing": null,
                                "issues": []
                              }
                            },
                            {
                              "name": "sepa",
                              "status": "approved",
                              "requirements": {
                                "complete": [
                                  "terms_of_service_v2",
                                  "business_name",
                                  "business_type",
                                  "business_description",
                                  "is_dao",
                                  "email_address",
                                  "address_of_incorporation",
                                  "address_of_operation",
                                  "tax_identification_number",
                                  "business_industry",
                                  "control_person_ownership_attestation",
                                  "minimal_source_of_funds_data",
                                  "proof_of_address",
                                  "adverse_media_screen",
                                  "sanctions_screen",
                                  "manual_business_ein_verification_review",
                                  "manual_business_registry_verification_review",
                                  "business_website",
                                  "manual_business_website_verification_review",
                                  "business_formation_document_verification",
                                  "manual_business_formation_document_verification_review",
                                  "kyb_review",
                                  {
                                    "associated_person": "11111111-1111-1111-1111-111111111111",
                                    "items": [
                                      "has_control",
                                      "first_name",
                                      "last_name",
                                      "email_address",
                                      "address_of_residence",
                                      "associated_person_relationship",
                                      "date_of_birth",
                                      "tax_identification_number",
                                      "manual_government_id_review",
                                      "sanctions_screen",
                                      "adverse_media_screen",
                                      "pep_screen",
                                      "min_age_18",
                                      "selfie_verification",
                                      "has_title"
                                    ]
                                  }
                                ],
                                "pending": [],
                                "missing": null,
                                "issues": []
                              }
                            }
                          ],
                          "future_requirements_due": [],
                          "requirements_due": [
                            "external_account"
                          ],
                          "capabilities": {
                            "payin_crypto": "active",
                            "payout_crypto": "active",
                            "payin_fiat": "pending",
                            "payout_fiat": "pending"
                          },
                          "associated_persons": [
                            {
                              "id": "11111111-1111-1111-1111-111111111111",
                              "email": "person@example.com"
                            }
                          ]
                        }
                      ]
                    }
                  },
                  "NoCustomersFound": {
                    "summary": "An empty list of customers",
                    "value": {
                      "data": []
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      },
      "post": {
        "summary": "Create a customer",
        "tags": [
          "Customers"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          }
        ],
        "requestBody": {
          "description": "Customer object to be created.\n\nNo fields are strictly required by the API. For example, it is valid to create a customer without a first name, last name, or residential address, but this customer will not be granted endorsements required to transact on Bridge until the necessary information is provided, possibly via a PUT request.\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/CreateIndividualCustomerPayload"
                  },
                  {
                    "$ref": "#/components/schemas/CreateBusinessCustomerPayload"
                  }
                ],
                "discriminator": {
                  "propertyName": "type",
                  "mapping": {
                    "individual": "#/components/schemas/CreateIndividualCustomerPayload",
                    "business": "#/components/schemas/CreateBusinessCustomerPayload"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Customer object created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                },
                "examples": {
                  "IndividualCustomerCreated": {
                    "summary": "Customer successfully created",
                    "$ref": "#/components/examples/SuccessfulCustomerResponse"
                  },
                  "BusinessCustomerCreated": {
                    "summary": "Customer successfully created",
                    "$ref": "#/components/examples/SuccessfulCustomerResponse2"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/CustomerIDParameter"
        }
      ],
      "get": {
        "summary": "Get a single customer object",
        "tags": [
          "Customers"
        ],
        "description": "Retrieve a customer object from the passed in customer ID",
        "responses": {
          "200": {
            "description": "Successful customer object response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                },
                "examples": {
                  "SuccessfulCustomerResponse": {
                    "$ref": "#/components/examples/SuccessfulCustomerResponse"
                  },
                  "RejectedCustomerResponse": {
                    "$ref": "#/components/examples/RejectedCustomerResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      },
      "put": {
        "summary": "Update a single customer object",
        "tags": [
          "Customers"
        ],
        "requestBody": {
          "description": "Customer object to update with",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/UpdateIndividualCustomerPayload"
                  },
                  {
                    "$ref": "#/components/schemas/UpdateBusinessCustomerPayload"
                  }
                ],
                "discriminator": {
                  "propertyName": "type",
                  "mapping": {
                    "individual": "#/components/schemas/UpdateIndividualCustomerPayload",
                    "business": "#/components/schemas/UpdateBusinessCustomerPayload"
                  }
                }
              }
            }
          }
        },
        "description": "Updates to be made to the specified customer.\n\nNo fields are strictly required by the API. It is generally valid to provide any subset of data in a PUT request. For business customers, associated persons cannot be updated via PUT, and should instead be managed using v0/associated_persons.\n",
        "responses": {
          "200": {
            "description": "Successful customer object response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                },
                "examples": {
                  "SuccessfulCustomerResponse": {
                    "$ref": "#/components/examples/SuccessfulCustomerResponse"
                  },
                  "RejectedCustomerResponse": {
                    "$ref": "#/components/examples/RejectedCustomerResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      },
      "delete": {
        "summary": "Delete a single customer object",
        "tags": [
          "Customers"
        ],
        "description": "Delete a customer object from the passed in customer ID",
        "responses": {
          "200": {
            "description": "Successfully deleted customer object response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                },
                "examples": {
                  "DeletedCustomerResponse": {
                    "$ref": "#/components/examples/SuccessfulCustomerResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/external_accounts": {
      "parameters": [
        {
          "$ref": "#/components/parameters/CustomerIDParameter"
        }
      ],
      "get": {
        "summary": "Get all External Accounts",
        "tags": [
          "External Accounts"
        ],
        "description": "Get all External Accounts for a passed in customer.",
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitParameter"
          },
          {
            "$ref": "#/components/parameters/ExternalAccountStartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/ExternalAccountEndingBeforeParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "List of External Accounts (the returned list is empty if no External Accounts exist)",
            "content": {
              "application/json": {
                "schema": {
                  "title": "ExternalAccount",
                  "type": "object",
                  "required": [
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/ExternalAccountResponse"
                      }
                    },
                    "count": {
                      "description": "total number of items in data",
                      "type": "integer"
                    }
                  }
                },
                "examples": {
                  "ExternalAccountsFound": {
                    "summary": "A non-empty list of External Accounts",
                    "value": {
                      "data": [
                        {
                          "id": "ea_123",
                          "account_type": "us",
                          "currency": "usd",
                          "customer_id": "cust_123",
                          "account_owner_name": "John Doe",
                          "bank_name": "Wells Fargo",
                          "last_4": "1111",
                          "active": true,
                          "beneficiary_address_valid": true,
                          "account": {
                            "last_4": "1111",
                            "routing_number": "121000248",
                            "checking_or_savings": "checking"
                          },
                          "created_at": "2020-01-01T00:00:00.000Z",
                          "updated_at": "2020-01-02T00:00:00.000Z"
                        }
                      ]
                    }
                  },
                  "ExternalAccountsFoundIban": {
                    "summary": "iban",
                    "value": {
                      "data": [
                        {
                          "id": "ea_123",
                          "customer_id": "cust_123",
                          "account_type": "iban",
                          "currency": "eur",
                          "account_owner_name": "John Doe",
                          "bank_name": "AAC CAPITAL PARTNERS LIMITED",
                          "active": true,
                          "iban": {
                            "last_4": "5981",
                            "bic": "BARBGB2LLEI",
                            "country": "NLD"
                          },
                          "account_owner_type": "individual",
                          "first_name": "John",
                          "last_name": "Doe",
                          "account_verification": {
                            "iban": {
                              "match_level": "match",
                              "reason_code": null,
                              "validated_account_owner_name": "John Doe"
                            },
                            "requested_at": "2020-01-01T00:05:00.000Z",
                            "completed_at": "2020-01-01T00:05:05.000Z"
                          },
                          "created_at": "2020-01-01T00:00:00.000Z",
                          "updated_at": "2020-01-02T00:00:00.000Z"
                        }
                      ]
                    }
                  },
                  "ExternalAccountsFoundPixKey": {
                    "summary": "pix (Pix Key)",
                    "value": {
                      "data": [
                        {
                          "id": "ea_123",
                          "customer_id": "cust_123",
                          "account_type": "pix",
                          "currency": "brl",
                          "account_owner_name": "João Silva",
                          "bank_name": "Banco do Brasil",
                          "active": true,
                          "pix_key": {
                            "account_preview": "jo****ilva****il.c**",
                            "document_number_last4": "8901"
                          },
                          "account_validation": {
                            "validated_account_owner_name": "João Silva",
                            "validated_bank_name": "Banco do Brasil"
                          },
                          "account_owner_type": "individual",
                          "first_name": "João",
                          "last_name": "Silva",
                          "account_verification": {
                            "pix": {
                              "matched": true,
                              "reason_code": null,
                              "validated_account_owner_name": "João Silva",
                              "validated_bank_name": "Banco do Brasil"
                            },
                            "requested_at": "2020-01-01T00:05:00.000Z",
                            "completed_at": "2020-01-01T00:05:05.000Z"
                          },
                          "created_at": "2020-01-01T00:00:00.000Z",
                          "updated_at": "2020-01-02T00:00:00.000Z"
                        }
                      ]
                    }
                  },
                  "ExternalAccountsFoundBrCode": {
                    "summary": "pix (BR Code)",
                    "value": {
                      "data": [
                        {
                          "id": "ea_456",
                          "customer_id": "cust_456",
                          "account_type": "pix",
                          "currency": "brl",
                          "account_owner_name": "Maria Santos",
                          "bank_name": "Itaú Unibanco",
                          "active": true,
                          "br_code": {
                            "account_preview": "11****1111****1111****1111",
                            "document_number_last4": "0131"
                          },
                          "account_validation": {
                            "validated_account_owner_name": "Maria Santos",
                            "validated_bank_name": "Itaú Unibanco"
                          },
                          "account_owner_type": "individual",
                          "first_name": "Maria",
                          "last_name": "Santos",
                          "account_verification": {
                            "pix": {
                              "matched": true,
                              "reason_code": null,
                              "validated_account_owner_name": "Maria Santos",
                              "validated_bank_name": "Itaú Unibanco"
                            },
                            "requested_at": "2020-01-01T00:05:00.000Z",
                            "completed_at": "2020-01-01T00:05:05.000Z"
                          },
                          "created_at": "2020-01-01T00:00:00.000Z",
                          "updated_at": "2020-01-02T00:00:00.000Z"
                        }
                      ]
                    }
                  },
                  "ExternalAccountsFoundClabe": {
                    "summary": "clabe",
                    "value": {
                      "data": [
                        {
                          "id": "ea_567",
                          "customer_id": "cust_567",
                          "account_type": "clabe",
                          "currency": "mxn",
                          "account_owner_name": "Juan García",
                          "bank_name": "Banco Santander México",
                          "active": true,
                          "clabe": {
                            "last_4": "0007"
                          },
                          "account_validation": {
                            "validated_account_owner_name": "Juan García",
                            "validated_bank_name": "Banco Santander México"
                          },
                          "account_owner_type": "individual",
                          "first_name": "Juan",
                          "last_name": "García",
                          "account_verification": {
                            "clabe": {
                              "matched": true,
                              "reason_code": null,
                              "validated_account_owner_name": "Juan García",
                              "validated_bank_name": "Banco Santander México"
                            },
                            "requested_at": "2020-01-01T00:05:00.000Z",
                            "completed_at": "2020-01-01T00:05:05.000Z"
                          },
                          "created_at": "2020-01-01T00:00:00.000Z",
                          "updated_at": "2020-01-02T00:00:00.000Z"
                        }
                      ]
                    }
                  },
                  "ExternalAccountsFoundBreB": {
                    "summary": "bre_b",
                    "value": {
                      "data": [
                        {
                          "id": "ea_789",
                          "customer_id": "cust_789",
                          "account_type": "bre_b",
                          "currency": "cop",
                          "account_owner_name": "Juan Garcia",
                          "bank_name": "Banco de Bogota",
                          "active": true,
                          "account": {
                            "last_4": "0000"
                          },
                          "account_validation": {
                            "validated_account_owner_name": "Juan Garcia",
                            "validated_bank_name": "Banco de Bogota",
                            "validated_document_number_last4": "0000"
                          },
                          "account_owner_type": "individual",
                          "first_name": "Juan",
                          "last_name": "Garcia",
                          "account_verification": {
                            "bre_b": {
                              "matched": true,
                              "reason_code": null,
                              "validated_account_owner_name": "Juan Garcia",
                              "validated_bank_name": "Banco de Bogota",
                              "validated_document_number_last4": "0000"
                            },
                            "requested_at": "2020-01-01T00:05:00.000Z",
                            "completed_at": "2020-01-01T00:05:05.000Z"
                          },
                          "created_at": "2020-01-01T00:00:00.000Z",
                          "updated_at": "2020-01-02T00:00:00.000Z"
                        }
                      ]
                    }
                  },
                  "ExternalAccountsFoundCoBankTransfer": {
                    "summary": "co_bank_transfer",
                    "value": {
                      "data": [
                        {
                          "id": "ea_012",
                          "customer_id": "cust_012",
                          "account_type": "co_bank_transfer",
                          "currency": "cop",
                          "account_owner_name": "Maria Lopez",
                          "bank_name": "Bancolombia",
                          "active": true,
                          "account": {
                            "last_4": "1234",
                            "routing_number": "1007"
                          },
                          "account_owner_type": "individual",
                          "first_name": "Maria",
                          "last_name": "Lopez",
                          "account_verification": {
                            "co_bank_transfer": {
                              "matched": true,
                              "reason_code": null,
                              "validated_account_owner_name": "Maria Lopez",
                              "validated_bank_name": "Bancolombia",
                              "validated_document_number_last4": "9012"
                            },
                            "requested_at": "2020-01-01T00:05:00.000Z",
                            "completed_at": "2020-01-01T00:05:05.000Z"
                          },
                          "created_at": "2020-01-01T00:00:00.000Z",
                          "updated_at": "2020-01-02T00:00:00.000Z"
                        }
                      ]
                    }
                  },
                  "NoExternalAccountsFound": {
                    "summary": "An empty list of External Accounts",
                    "value": {
                      "data": [],
                      "count": 0
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      },
      "post": {
        "summary": "Create a new External Account",
        "tags": [
          "External Accounts"
        ],
        "description": "_Note_: If adding US external accounts, we recommend reading through the US Beneficiary Address Validation doc ([link](https://apidocs.bridge.xyz/docs/us-beneficiary-address-validation)) to avoid issues related to incorrect addresses.\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          }
        ],
        "requestBody": {
          "description": "New External Account object to be created",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateExternalAccountInput"
              },
              "examples": {
                "ACH": {
                  "$ref": "#/components/examples/CreateAchExternalAccountRequest"
                },
                "IBAN": {
                  "$ref": "#/components/examples/CreateIbanExternalAccountRequest"
                },
                "CLABE": {
                  "$ref": "#/components/examples/CreateClabeExternalAccountRequest"
                },
                "Pix_Key": {
                  "$ref": "#/components/examples/CreatePixExternalAccountRequest"
                },
                "Pix_BrCode": {
                  "$ref": "#/components/examples/CreateBrCodeExternalAccountRequest"
                },
                "BreB": {
                  "$ref": "#/components/examples/CreateBreBExternalAccountRequest"
                },
                "CO_Bank_Transfer": {
                  "$ref": "#/components/examples/CreateCoBankTransferExternalAccountRequest"
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "External Account object created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAccountResponse"
                },
                "examples": {
                  "ACH": {
                    "$ref": "#/components/examples/SuccessfulExternalAccountResponse"
                  },
                  "IBAN": {
                    "$ref": "#/components/examples/SuccessfulIbanExternalAccountResponse"
                  },
                  "CLABE": {
                    "$ref": "#/components/examples/SuccessfulClabeExternalAccountResponse"
                  },
                  "Pix_Key": {
                    "$ref": "#/components/examples/SuccessfulPixKeyExternalAccountResponse"
                  },
                  "Pix_BrCode": {
                    "$ref": "#/components/examples/SuccessfulBrCodeExternalAccountResponse"
                  },
                  "BreB": {
                    "$ref": "#/components/examples/SuccessfulBreBExternalAccountResponse"
                  },
                  "CO_Bank_Transfer": {
                    "$ref": "#/components/examples/SuccessfulCoBankTransferExternalAccountResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/external_accounts/{externalAccountID}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/CustomerIDParameter"
        },
        {
          "$ref": "#/components/parameters/ExternalAccountIDParameter"
        }
      ],
      "get": {
        "summary": "Retrieve an External Account object",
        "description": "Retrieve an External Account object (banks, debit cards etc) from the passed in customer ID and External Account ID",
        "tags": [
          "External Accounts"
        ],
        "responses": {
          "200": {
            "description": "Successful External Account object response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAccountResponse"
                },
                "examples": {
                  "SuccessfulExternalAccountResponse": {
                    "$ref": "#/components/examples/SuccessfulExternalAccountResponse"
                  },
                  "SuccessfulIbanExternalAccountResponse": {
                    "$ref": "#/components/examples/SuccessfulIbanExternalAccountResponse"
                  },
                  "SuccessfulPixKeyExternalAccountResponse": {
                    "$ref": "#/components/examples/SuccessfulPixKeyExternalAccountResponse"
                  },
                  "SuccessfulBrCodeExternalAccountResponse": {
                    "$ref": "#/components/examples/SuccessfulBrCodeExternalAccountResponse"
                  },
                  "SuccessfulClabeExternalAccountResponse": {
                    "$ref": "#/components/examples/SuccessfulClabeExternalAccountResponse"
                  },
                  "SuccessfulBreBExternalAccountResponse": {
                    "$ref": "#/components/examples/SuccessfulBreBExternalAccountResponse"
                  },
                  "SuccessfulCoBankTransferExternalAccountResponse": {
                    "$ref": "#/components/examples/SuccessfulCoBankTransferExternalAccountResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      },
      "put": {
        "summary": "Update an External Account",
        "tags": [
          "External Accounts"
        ],
        "requestBody": {
          "description": "External Account details to be updated",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExternalAccountInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "External Account object updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAccountResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadExternalAccountUpdateError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      },
      "delete": {
        "summary": "Delete a single External Account object",
        "tags": [
          "External Accounts"
        ],
        "description": "Delete an External Account object from the passed in External Account ID",
        "responses": {
          "200": {
            "description": "Successfully deleted External Account object response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAccountResponse"
                },
                "examples": {
                  "DeletedExternalAccountResponse": {
                    "$ref": "#/components/examples/SuccessfulExternalAccountResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/associated_persons": {
      "parameters": [
        {
          "$ref": "#/components/parameters/CustomerIDParameter"
        }
      ],
      "get": {
        "summary": "Get associated persons for a business customer",
        "tags": [
          "Customers"
        ],
        "description": "Get all associated persons for a business customer.",
        "responses": {
          "200": {
            "description": "List of associated persons (the returned list is empty if none found)",
            "content": {
              "application/json": {
                "schema": {
                  "title": "AssociatedPersonsList",
                  "type": "object",
                  "required": [
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/AssociatedPersonResponse"
                      }
                    }
                  }
                },
                "examples": {
                  "AssociatedPersonsFound": {
                    "summary": "A non-empty list of associated persons",
                    "value": {
                      "data": [
                        {
                          "id": "associated_person_1234567890",
                          "email": "associated_person@example.com",
                          "first_name": "John",
                          "last_name": "Smith",
                          "has_ownership": true,
                          "has_control": true,
                          "is_signer": true,
                          "title": "Chief Executive Officer",
                          "relationship_established_at": "2025-05-27T17:55:33.308Z",
                          "created_at": "2025-05-27T17:55:33.308Z",
                          "updated_at": "2025-05-27T17:55:33.308Z"
                        }
                      ]
                    }
                  },
                  "NoAssociatedPersonsFound": {
                    "summary": "An empty list of associated persons",
                    "value": {
                      "data": []
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      },
      "post": {
        "summary": "Create a new associated person for a business customer",
        "tags": [
          "Customers"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          }
        ],
        "requestBody": {
          "description": "New associated person to be created",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssociatedPerson"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Associated person created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssociatedPersonResponse"
                },
                "examples": {
                  "SuccessfulAssociatedPersonResponse": {
                    "$ref": "#/components/examples/SuccessfulAssociatedPersonResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/associated_persons/{associatedPersonID}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/CustomerIDParameter"
        },
        {
          "$ref": "#/components/parameters/AssociatedPersonIDParameter"
        }
      ],
      "get": {
        "summary": "Get a single associated person",
        "tags": [
          "Customers"
        ],
        "description": "Retrieve an associated person by ID",
        "responses": {
          "200": {
            "description": "Successful associated person response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssociatedPersonResponse"
                },
                "examples": {
                  "SuccessfulAssociatedPersonResponse": {
                    "$ref": "#/components/examples/SuccessfulAssociatedPersonResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      },
      "put": {
        "summary": "Update a single associated person",
        "tags": [
          "Customers"
        ],
        "requestBody": {
          "description": "Associated person data to update",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssociatedPerson"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated associated person",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssociatedPersonResponse"
                },
                "examples": {
                  "SuccessfulAssociatedPersonResponse": {
                    "$ref": "#/components/examples/SuccessfulAssociatedPersonResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      },
      "delete": {
        "summary": "Delete a single associated person",
        "tags": [
          "Customers"
        ],
        "description": "Delete an associated person by ID",
        "responses": {
          "200": {
            "description": "Successfully deleted associated person",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssociatedPersonResponse"
                },
                "examples": {
                  "SuccessfulAssociatedPersonResponse": {
                    "$ref": "#/components/examples/SuccessfulAssociatedPersonResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/fiat_payout_configuration": {
      "parameters": [
        {
          "$ref": "#/components/parameters/CustomerIDParameter"
        }
      ],
      "get": {
        "summary": "Get the fiat payout configuration for a customer",
        "tags": [
          "Fiat Payout Configuration"
        ],
        "description": "Retrieve the fiat payout configuration for the given customer ID. This configuration determines which payout method (bridge, developer, payment_provider, or customer) is used for each currency and payment rail combination.\n\nThe configuration is a nested hash structure where:\n- Top-level keys are currency codes (e.g., \"usd\", \"eur\", \"brl\", \"mxn\")\n- Second-level keys are payment rail codes (e.g., \"wire\", \"ach\", \"sepa\", \"pix\", \"spei\")\n- Values are payout names: `bridge`, `developer`, `payment_provider`, or `customer`\n\nCurrently, only the following values are supported for the payout method:\n- usd.wire: `developer`, `customer`\n- usd.ach: `bridge`\n- eur.sepa: `bridge`\n- brl.pix: `payment_provider`\n- mxn.spei: `payment_provider`\n",
        "responses": {
          "200": {
            "description": "Successful fiat payout configuration response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FiatPayoutConfigurationResponse"
                },
                "examples": {
                  "SuccessfulFiatPayoutConfigurationResponse": {
                    "$ref": "#/components/examples/SuccessfulFiatPayoutConfigurationResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      },
      "patch": {
        "summary": "Update the fiat payout configuration for a customer",
        "tags": [
          "Fiat Payout Configuration"
        ],
        "description": "Update the fiat payout configuration for the given customer ID. This configuration determines which payout method (bridge, developer, payment_provider, or customer) is used for each currency and payment rail combination.\n\nThe configuration is a nested hash structure where:\n- Top-level keys are currency codes (e.g., \"usd\", \"eur\", \"brl\", \"mxn\")\n- Second-level keys are payment rail codes (e.g., \"wire\", \"ach\", \"sepa\", \"pix\", \"spei\")\n- Values are payout names: `bridge`, `developer`, `payment_provider`, or `customer`\n\nCurrently, only the following values are supported for the payout method:\n- usd.wire: `developer`, `customer`\n- usd.ach: `bridge`\n- eur.sepa: `bridge`\n- brl.pix: `payment_provider`\n- mxn.spei: `payment_provider`\n\nOnly the currency/payment rail combinations provided will be updated. Other existing configurations will remain unchanged.\n",
        "requestBody": {
          "description": "Fiat payout configuration to update",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PatchFiatPayoutConfigurationInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful fiat payout configuration update response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FiatPayoutConfigurationResponse"
                },
                "examples": {
                  "SuccessfulPatchFiatPayoutConfigurationResponse": {
                    "$ref": "#/components/examples/SuccessfulPatchFiatPayoutConfigurationResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "403": {
            "description": "Request not allowed. Contact your account manager to be enabled for this feature. Additional fees apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/external_accounts/{externalAccountID}/deactivate": {
      "post": {
        "summary": "Deactivate an External Account",
        "description": "Deactivate an active External Account. The External Account is preserved and can be reactivated later via the reactivate endpoint.",
        "tags": [
          "External Accounts"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          },
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/ExternalAccountIDParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Deactivated External Account object",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAccountResponse"
                },
                "examples": {
                  "DeactivatedExternalAccountResponse": {
                    "$ref": "#/components/examples/SuccessfulExternalAccountResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/external_accounts/{externalAccountID}/verify": {
      "post": {
        "summary": "Verify an External Account",
        "description": "Trigger a verification check for an external account. Verifies that the `account_owner_name` matches the actual account holder at the receiving bank.\n\nSupported for `iban` (EUR), `gb` (GBP), `pix` (BRL), `clabe` (MXN), `bre_b` (COP), and `co_bank_transfer` (COP, PSE) account types only. Does not require an Idempotency-Key header.\n\nAfter triggering, poll the external account's `account_verification` field until `completed_at` is populated.\n",
        "tags": [
          "External Accounts"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/ExternalAccountIDParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Verification initiated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "account_type": {
                      "type": "string",
                      "enum": [
                        "iban",
                        "gb",
                        "pix",
                        "clabe",
                        "bre_b",
                        "co_bank_transfer"
                      ],
                      "description": "The account type that was verified."
                    },
                    "account_verification": {
                      "$ref": "#/components/schemas/AccountVerification"
                    }
                  }
                },
                "examples": {
                  "PendingIbanVerification": {
                    "summary": "iban",
                    "value": {
                      "account_type": "iban",
                      "account_verification": {
                        "iban": {
                          "match_level": "pending",
                          "reason_code": null,
                          "validated_account_owner_name": null
                        },
                        "requested_at": "2026-01-15T12:00:00.000Z",
                        "completed_at": null
                      }
                    }
                  },
                  "PendingGbVerification": {
                    "summary": "gb",
                    "value": {
                      "account_type": "gb",
                      "account_verification": {
                        "gb": {
                          "match_level": "pending",
                          "reason_code": null,
                          "validated_account_owner_name": null
                        },
                        "requested_at": "2026-01-15T12:00:00.000Z",
                        "completed_at": null
                      }
                    }
                  },
                  "PendingPixVerification": {
                    "summary": "pix",
                    "value": {
                      "account_type": "pix",
                      "account_verification": {
                        "pix": {
                          "matched": null,
                          "reason_code": null,
                          "validated_account_owner_name": null,
                          "validated_bank_name": null
                        },
                        "requested_at": "2026-01-15T12:00:00.000Z",
                        "completed_at": null
                      }
                    }
                  },
                  "PendingClabeVerification": {
                    "summary": "clabe",
                    "value": {
                      "account_type": "clabe",
                      "account_verification": {
                        "clabe": {
                          "matched": null,
                          "reason_code": null,
                          "validated_account_owner_name": null,
                          "validated_bank_name": null
                        },
                        "requested_at": "2026-01-15T12:00:00.000Z",
                        "completed_at": null
                      }
                    }
                  },
                  "PendingBreBVerification": {
                    "summary": "bre_b",
                    "value": {
                      "account_type": "bre_b",
                      "account_verification": {
                        "bre_b": {
                          "matched": null,
                          "reason_code": null,
                          "validated_account_owner_name": null,
                          "validated_bank_name": null,
                          "validated_document_number_last4": null
                        },
                        "requested_at": "2026-01-15T12:00:00.000Z",
                        "completed_at": null
                      }
                    }
                  },
                  "PendingCoBankTransferVerification": {
                    "summary": "co_bank_transfer",
                    "value": {
                      "account_type": "co_bank_transfer",
                      "account_verification": {
                        "co_bank_transfer": {
                          "matched": null,
                          "reason_code": null,
                          "validated_account_owner_name": null,
                          "validated_bank_name": null,
                          "validated_document_number_last4": null
                        },
                        "requested_at": "2026-01-15T12:00:00.000Z",
                        "completed_at": null
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "409": {
            "description": "A verification is already in progress for this external account",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/external_accounts/{externalAccountID}/reactivate": {
      "post": {
        "summary": "Reactivate an External Account",
        "description": "Reactivate a previously deactivated External Account",
        "tags": [
          "External Accounts"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          },
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/ExternalAccountIDParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Reactivated External Account object",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAccountResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadExternalAccountReactivateError"
          }
        }
      }
    },
    "/customers/{customerID}/tos_acceptance_link": {
      "get": {
        "summary": "Retrieve a hosted URL for ToS acceptance for an existing customer",
        "tags": [
          "Customers"
        ],
        "description": "The page at the returned URL will guide the user through the Bridge Terms of Service (ToS) acceptance flow. This can be used by existing customers to accept a new version of the ToS.",
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A Hosted URL for ToS acceptance",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "url"
                  ],
                  "properties": {
                    "url": {
                      "type": "string",
                      "description": "A hosted URL for ToS acceptance"
                    }
                  }
                },
                "examples": {
                  "TosAcceptanceLink": {
                    "summary": "A sample ToS acceptance link",
                    "value": {
                      "url": "https://compliance.bridge.xyz/accept-terms-of-service?email=sage%40blick-mayer.example&t=74ea7c13-2b52-5073-bd12-6879f92b88dd"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/kyc_link": {
      "get": {
        "summary": "Retrieve a hosted KYC Link for an existing customer",
        "tags": [
          "Customers"
        ],
        "description": "The page at the returned URL will guide the user through a Bridge KYC flow. This can be used by existing customers to provide additional KYC information required for certain features or services that Bridge offers.\n\nFor example, to enable an existing customer to use the `SEPA`/`Euro` services, they are required to provide `proof of address`. An additional parameter, `endorsement=sepa`, can be included to request a KYC link specifically for this purpose",
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/EndorsementParameter"
          },
          {
            "$ref": "#/components/parameters/RedirectUriParameter"
          },
          {
            "$ref": "#/components/parameters/DedicatedParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A Hosted URL for KYC",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "url"
                  ],
                  "properties": {
                    "url": {
                      "type": "string",
                      "description": "A hosted KYC link"
                    }
                  }
                },
                "examples": {
                  "KycLink": {
                    "summary": "A sample KYC link",
                    "value": {
                      "url": "https://bridge.withpersona.com/verify?inquiry-template-id=itmpl_NtIXpb9AbEYCPxGo5iRbc9d2&reference-id=75d2f259-6810-4cde-a9b9-83eca42b0ebf"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/transfers": {
      "parameters": [
        {
          "$ref": "#/components/parameters/CustomerIDParameter"
        },
        {
          "$ref": "#/components/parameters/LimitParameter"
        },
        {
          "$ref": "#/components/parameters/TransferStartingAfterParameter"
        },
        {
          "$ref": "#/components/parameters/TransferEndingBeforeParameter"
        },
        {
          "$ref": "#/components/parameters/TxHashParameter"
        },
        {
          "$ref": "#/components/parameters/UpdatedAfterMsParameter"
        },
        {
          "$ref": "#/components/parameters/UpdatedBeforeMsParameter"
        },
        {
          "$ref": "#/components/parameters/TransferStateParameter"
        }
      ],
      "get": {
        "summary": "Get all transfers",
        "tags": [
          "Customers"
        ],
        "description": "Get all active and completed transfers for a customer.",
        "responses": {
          "200": {
            "description": "List of transfers (the returned list is empty if none found)",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Transfers",
                  "type": "object",
                  "required": [
                    "count",
                    "data"
                  ],
                  "properties": {
                    "count": {
                      "type": "integer",
                      "description": "The number of transfers returned"
                    },
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/TransferResponse"
                      }
                    }
                  }
                },
                "examples": {
                  "TransfersFound": {
                    "summary": "A non-empty list of transfers",
                    "value": {
                      "count": 2,
                      "data": [
                        {
                          "id": "00000000-0000-0000-0000-000000000004",
                          "client_reference_id": "client_transfer_id_456",
                          "state": "funds_received",
                          "on_behalf_of": "00000000-0000-0000-0000-000000000001",
                          "amount": "500.25",
                          "developer_fee": "0.0",
                          "source": {
                            "payment_rail": "ach",
                            "currency": "usd",
                            "external_account_id": "00000000-0000-0000-0000-000000000002"
                          },
                          "destination": {
                            "payment_rail": "ethereum",
                            "currency": "usdc",
                            "to_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
                          },
                          "receipt": {
                            "initial_amount": "500.25",
                            "developer_fee": "0.0",
                            "exchange_fee": "0.0",
                            "subtotal_amount": "500.25",
                            "gas_fee": "0.0",
                            "final_amount": "500.25",
                            "destination_tx_hash": "0xdeadbeef",
                            "url": "https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000"
                          },
                          "created_at": "2020-01-02T00:00:00.000Z",
                          "updated_at": "2020-01-03T00:00:00.000Z"
                        },
                        {
                          "id": "00000000-0000-0000-0000-000000000003",
                          "client_reference_id": "client_transfer_id_123",
                          "state": "awaiting_funds",
                          "on_behalf_of": "00000000-0000-0000-0000-000000000001",
                          "amount": "75.0",
                          "developer_fee": "0.0",
                          "source": {
                            "payment_rail": "ethereum",
                            "currency": "usdc",
                            "from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
                          },
                          "destination": {
                            "payment_rail": "ach",
                            "currency": "usd",
                            "external_account_id": "00000000-0000-0000-0000-000000000002"
                          },
                          "source_deposit_instructions": {
                            "payment_rail": "ethereum",
                            "amount": "75.0",
                            "currency": "usdc",
                            "from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
                            "to_address": "0xb794f5ea0ba39494ce839613fffba74279579268"
                          },
                          "receipt": {
                            "initial_amount": "75.0",
                            "developer_fee": "0.0",
                            "exchange_fee": "0.0",
                            "subtotal_amount": "75.0",
                            "gas_fee": "0.0",
                            "final_amount": "75.0",
                            "url": "https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000"
                          },
                          "created_at": "2020-01-01T00:00:00.000Z",
                          "updated_at": "2020-01-02T00:00:00.000Z"
                        }
                      ]
                    }
                  },
                  "ReturnedTransfersFound": {
                    "$ref": "#/components/examples/ReturnedTransfersListResponse"
                  },
                  "NoTransfersFound": {
                    "summary": "An empty list of transfers",
                    "value": {
                      "count": 0,
                      "data": []
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/transfers/static_templates": {
      "parameters": [
        {
          "$ref": "#/components/parameters/CustomerIDParameter"
        },
        {
          "$ref": "#/components/parameters/LimitParameter"
        },
        {
          "$ref": "#/components/parameters/TransferStartingAfterParameter"
        },
        {
          "$ref": "#/components/parameters/TransferEndingBeforeParameter"
        }
      ],
      "get": {
        "summary": "Get all static templates for a customer",
        "tags": [
          "Customers"
        ],
        "description": "Get all static templates for a customer. Static templates are transfers that are used as templates for other transfers and can be created using the static_templates feature flag.",
        "responses": {
          "200": {
            "description": "List of static templates (the returned list is empty if none found)",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Static Templates",
                  "type": "object",
                  "required": [
                    "count",
                    "data"
                  ],
                  "properties": {
                    "count": {
                      "type": "integer",
                      "description": "The number of static templates returned"
                    },
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/TransferResponse"
                      }
                    }
                  }
                },
                "examples": {
                  "StaticTemplatesFound": {
                    "summary": "A non-empty list of static templates",
                    "value": {
                      "count": 2,
                      "data": [
                        {
                          "id": "00000000-0000-0000-0000-000000000004",
                          "client_reference_id": "client_transfer_id_456",
                          "state": "funds_received",
                          "on_behalf_of": "00000000-0000-0000-0000-000000000001",
                          "amount": "500.25",
                          "developer_fee": "0.0",
                          "source": {
                            "payment_rail": "ach",
                            "currency": "usd",
                            "external_account_id": "00000000-0000-0000-0000-000000000002"
                          },
                          "destination": {
                            "payment_rail": "ethereum",
                            "currency": "usdc",
                            "to_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
                          },
                          "created_at": "2020-01-02T00:00:00.000Z",
                          "updated_at": "2020-01-03T00:00:00.000Z"
                        },
                        {
                          "id": "00000000-0000-0000-0000-000000000003",
                          "client_reference_id": "client_transfer_id_123",
                          "state": "awaiting_funds",
                          "on_behalf_of": "00000000-0000-0000-0000-000000000001",
                          "amount": "75.0",
                          "developer_fee": "0.0",
                          "source": {
                            "payment_rail": "ethereum",
                            "currency": "usdc",
                            "from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
                          },
                          "destination": {
                            "payment_rail": "ach",
                            "currency": "usd",
                            "external_account_id": "00000000-0000-0000-0000-000000000002"
                          },
                          "source_deposit_instructions": {
                            "payment_rail": "ethereum",
                            "amount": "75.0",
                            "currency": "usdc",
                            "from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
                            "to_address": "0xb794f5ea0ba39494ce839613fffba74279579268"
                          },
                          "created_at": "2020-01-01T00:00:00.000Z",
                          "updated_at": "2020-01-02T00:00:00.000Z"
                        }
                      ]
                    }
                  },
                  "NoStaticTemplatesFound": {
                    "summary": "An empty list of static templates",
                    "value": {
                      "count": 0,
                      "data": []
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/tos_links": {
      "post": {
        "summary": "Request a hosted URL for ToS acceptance for new customer creation",
        "tags": [
          "Customers"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          }
        ],
        "description": "The URL endpoint returned will guide the user through a Bridge TOS flow. Signing this acceptance flow is a requirement for creating customers.",
        "responses": {
          "201": {
            "description": "A Bridge hosted URL for users to complete terms of service signing.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "url"
                  ],
                  "properties": {
                    "url": {
                      "type": "string",
                      "description": "A Bridge hosted URL for users to complete terms of service signing."
                    }
                  }
                },
                "examples": {
                  "TosUrl": {
                    "summary": "A sample Bridge hosted URL",
                    "value": {
                      "data": {
                        "url": "https://compliance.bridge.xyz/accept-terms-of-service?session_token=4d5d8c45-9feb-422a-bb5e-0fd32e3b3c53&redirect_uri=https%3A%2F%2Fgoogle.com"
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/plaid_link_requests": {
      "post": {
        "summary": "Generate a Plaid Link token for a customer",
        "tags": [
          "Plaid"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          },
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          }
        ],
        "responses": {
          "201": {
            "description": "Plaid Link token generated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlaidLinkRequest"
                },
                "examples": {
                  "PlaidLinkRequestSuccessResponse": {
                    "$ref": "#/components/examples/PlaidLinkRequestSuccessResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/plaid_exchange_public_token/{link_token}": {
      "post": {
        "summary": "Exchange Plaid public token for an access token",
        "tags": [
          "Plaid"
        ],
        "parameters": [
          {
            "name": "link_token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Plaid Link token"
          }
        ],
        "requestBody": {
          "description": "Plaid public token to be exchanged",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type"
                ],
                "$ref": "#/components/schemas/PlaidExchangePublicToken"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Plaid public token exchanged",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Plaid public token exchanged",
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Message indicating the status of the request"
                    }
                  }
                },
                "examples": {
                  "PlaidExchangePublicTokenSuccessResponse": {
                    "$ref": "#/components/examples/PlaidExchangePublicTokenSuccessResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/transfers": {
      "get": {
        "summary": "Get all transfers",
        "tags": [
          "Transfers"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitParameter"
          },
          {
            "$ref": "#/components/parameters/TransferStartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/TransferEndingBeforeParameter"
          },
          {
            "$ref": "#/components/parameters/TxHashParameter"
          },
          {
            "$ref": "#/components/parameters/UpdatedAfterMsParameter"
          },
          {
            "$ref": "#/components/parameters/UpdatedBeforeMsParameter"
          },
          {
            "$ref": "#/components/parameters/TemplateIDParameter"
          },
          {
            "$ref": "#/components/parameters/TransferStateParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "List of transfers (the returned list is empty if none found)",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Transfers",
                  "type": "object",
                  "required": [
                    "count",
                    "data"
                  ],
                  "properties": {
                    "count": {
                      "type": "integer",
                      "description": "The number of transfers returned"
                    },
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/TransferResponse"
                      }
                    }
                  }
                },
                "examples": {
                  "TransfersFound": {
                    "summary": "A non-empty list of transfers",
                    "value": {
                      "count": 2,
                      "data": [
                        {
                          "id": "00000000-0000-0000-0000-000000000004",
                          "client_reference_id": "client_transfer_id_456",
                          "state": "funds_received",
                          "on_behalf_of": "00000000-0000-0000-0000-000000000001",
                          "amount": "500.25",
                          "developer_fee": "0.0",
                          "source": {
                            "payment_rail": "ach",
                            "currency": "usd",
                            "external_account_id": "00000000-0000-0000-0000-000000000002"
                          },
                          "destination": {
                            "payment_rail": "ethereum",
                            "currency": "usdc",
                            "to_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
                          },
                          "receipt": {
                            "initial_amount": "500.25",
                            "developer_fee": "0.0",
                            "exchange_fee": "0.0",
                            "subtotal_amount": "500.25",
                            "gas_fee": "0.0",
                            "final_amount": "500.25",
                            "destination_tx_hash": "0xdeadbeef",
                            "url": "https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000"
                          },
                          "created_at": "2020-01-02T00:00:00.000Z",
                          "updated_at": "2020-01-03T00:00:00.000Z"
                        },
                        {
                          "id": "00000000-0000-0000-0000-000000000003",
                          "client_reference_id": "client_transfer_id_123",
                          "state": "awaiting_funds",
                          "on_behalf_of": "00000000-0000-0000-0000-000000000001",
                          "amount": "75.0",
                          "developer_fee": "0.0",
                          "source": {
                            "payment_rail": "ethereum",
                            "currency": "usdc",
                            "from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
                          },
                          "destination": {
                            "payment_rail": "ach",
                            "currency": "usd",
                            "external_account_id": "00000000-0000-0000-0000-000000000002"
                          },
                          "source_deposit_instructions": {
                            "payment_rail": "ethereum",
                            "amount": "75.0",
                            "currency": "usdc",
                            "from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
                            "to_address": "0xb794f5ea0ba39494ce839613fffba74279579268"
                          },
                          "receipt": {
                            "initial_amount": "75.0",
                            "developer_fee": "0.0",
                            "exchange_fee": "0.0",
                            "subtotal_amount": "75.0",
                            "gas_fee": "0.0",
                            "final_amount": "75.0",
                            "url": "https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000"
                          },
                          "created_at": "2020-01-01T00:00:00.000Z",
                          "updated_at": "2020-01-02T00:00:00.000Z"
                        }
                      ]
                    }
                  },
                  "ReturnedTransfersFound": {
                    "$ref": "#/components/examples/ReturnedTransfersListResponse"
                  },
                  "NoTransfersFound": {
                    "summary": "An empty list of transfers",
                    "value": {
                      "count": 0,
                      "data": []
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      },
      "post": {
        "summary": "Create a transfer",
        "description": "Create a transfer.\n\nIf this transfer cannot be created because the funding source is temporarily busy processing another update, this endpoint may return `409 resource_state_conflict`.\nThis is a transient, retryable response. You may safely retry the same request with the same `Idempotency-Key`.\n",
        "tags": [
          "Transfers"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          }
        ],
        "requestBody": {
          "description": "Transfer object to be created",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransferRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Transfer object created",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/TransferResponse"
                    },
                    {
                      "$ref": "#/components/schemas/TransferRouteResponse"
                    }
                  ]
                },
                "examples": {
                  "AchOnrampTransferResponse": {
                    "$ref": "#/components/examples/AchOnrampTransferResponse"
                  },
                  "AchOfframpTransferResponse": {
                    "$ref": "#/components/examples/AchOfframpTransferResponse"
                  },
                  "AchOfframpWithMemoTransferResponse": {
                    "$ref": "#/components/examples/AchOfframpWithMemoTransferResponse"
                  },
                  "WireOnrampTransferResponse": {
                    "$ref": "#/components/examples/WireOnrampTransferResponse"
                  },
                  "WireOfframpTransferResponse": {
                    "$ref": "#/components/examples/WireOfframpTransferResponse"
                  },
                  "SepaOnrampTransferResponse": {
                    "$ref": "#/components/examples/SepaOnrampTransferResponse"
                  },
                  "SepaOfframpTransferResponse": {
                    "$ref": "#/components/examples/SepaOfframpTransferResponse"
                  },
                  "PixOnrampTransferResponse": {
                    "$ref": "#/components/examples/PixOnrampTransferResponse"
                  },
                  "PixOfframpTransferResponse": {
                    "$ref": "#/components/examples/PixOfframpTransferResponse"
                  },
                  "SpeiOnrampTransferResponse": {
                    "$ref": "#/components/examples/SpeiOnrampTransferResponse"
                  },
                  "SpeiOfframpTransferResponse": {
                    "$ref": "#/components/examples/SpeiOfframpTransferResponse"
                  },
                  "BreBOnrampTransferResponse": {
                    "$ref": "#/components/examples/BreBOnrampTransferResponse"
                  },
                  "BreBOfframpTransferResponse": {
                    "$ref": "#/components/examples/BreBOfframpTransferResponse"
                  },
                  "CoBankTransferOnrampTransferResponse": {
                    "$ref": "#/components/examples/CoBankTransferOnrampTransferResponse"
                  },
                  "CoBankTransferOfframpTransferResponse": {
                    "$ref": "#/components/examples/CoBankTransferOfframpTransferResponse"
                  },
                  "ValidTransferRouteResponse": {
                    "$ref": "#/components/examples/ValidTransferRouteResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "409": {
            "$ref": "#/components/responses/ResourceStateConflictError"
          },
          "403": {
            "$ref": "#/components/responses/TransferAmlError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/transfers/pending": {
      "get": {
        "summary": "List transfers with pending USDT trades",
        "description": "Returns transfers that have a stuck USDT-to-USD trade awaiting execution. Results are sorted by creation time (newest first) and paginated.\n\nUse `POST /transfers/{transferID}/execute` to force-execute a pending trade at the current market rate.\n",
        "tags": [
          "Transfers"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitParameter"
          },
          {
            "$ref": "#/components/parameters/TransferStartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/TransferEndingBeforeParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "List of transfers with pending trades (the returned list is empty if none found)",
            "content": {
              "application/json": {
                "schema": {
                  "title": "PendingTransfers",
                  "type": "object",
                  "required": [
                    "count",
                    "data"
                  ],
                  "properties": {
                    "count": {
                      "type": "integer",
                      "description": "The number of transfers returned"
                    },
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/TransferResponse"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/transfers/{transferID}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/TransferIDParameter"
        }
      ],
      "get": {
        "summary": "Get a transfer",
        "description": "Retrieve a transfer object from the passed in transfer ID",
        "tags": [
          "Transfers"
        ],
        "responses": {
          "200": {
            "description": "Successful transfer object response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransferResponse"
                },
                "examples": {
                  "AchOnrampTransferResponse": {
                    "$ref": "#/components/examples/AchOnrampTransferResponse"
                  },
                  "AchOfframpTransferResponse": {
                    "$ref": "#/components/examples/AchOfframpTransferResponse"
                  },
                  "AchOfframpWithMemoTransferResponse": {
                    "$ref": "#/components/examples/AchOfframpWithMemoTransferResponse"
                  },
                  "WireOnrampTransferResponse": {
                    "$ref": "#/components/examples/WireOnrampTransferResponse"
                  },
                  "WireOfframpTransferResponse": {
                    "$ref": "#/components/examples/WireOfframpTransferResponse"
                  },
                  "SepaOnrampTransferResponse": {
                    "$ref": "#/components/examples/SepaOnrampTransferResponse"
                  },
                  "SepaOfframpTransferResponse": {
                    "$ref": "#/components/examples/SepaOfframpTransferResponse"
                  },
                  "PixOnrampTransferResponse": {
                    "$ref": "#/components/examples/PixOnrampTransferResponse"
                  },
                  "PixOfframpTransferResponse": {
                    "$ref": "#/components/examples/PixOfframpTransferResponse"
                  },
                  "SpeiOnrampTransferResponse": {
                    "$ref": "#/components/examples/SpeiOnrampTransferResponse"
                  },
                  "SpeiOfframpTransferResponse": {
                    "$ref": "#/components/examples/SpeiOfframpTransferResponse"
                  },
                  "BreBOnrampTransferResponse": {
                    "$ref": "#/components/examples/BreBOnrampTransferResponse"
                  },
                  "BreBOfframpTransferResponse": {
                    "$ref": "#/components/examples/BreBOfframpTransferResponse"
                  },
                  "CoBankTransferOnrampTransferResponse": {
                    "$ref": "#/components/examples/CoBankTransferOnrampTransferResponse"
                  },
                  "CoBankTransferOfframpTransferResponse": {
                    "$ref": "#/components/examples/CoBankTransferOfframpTransferResponse"
                  },
                  "ReturnedTransferResponse": {
                    "$ref": "#/components/examples/ReturnedTransferResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      },
      "put": {
        "summary": "Update a transfer",
        "description": "Update a transfer that was previously created. Must be in the awaiting_funds state.",
        "tags": [
          "Transfers"
        ],
        "requestBody": {
          "description": "Transfer object to be updated",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransferUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Transfer object created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransferResponse"
                },
                "examples": {
                  "AchOnrampTransferResponse": {
                    "$ref": "#/components/examples/AchOnrampTransferResponse"
                  },
                  "AchOfframpTransferResponse": {
                    "$ref": "#/components/examples/AchOfframpTransferResponse"
                  },
                  "AchOfframpWithMemoTransferResponse": {
                    "$ref": "#/components/examples/AchOfframpWithMemoTransferResponse"
                  },
                  "WireOnrampTransferResponse": {
                    "$ref": "#/components/examples/WireOnrampTransferResponse"
                  },
                  "WireOfframpTransferResponse": {
                    "$ref": "#/components/examples/WireOfframpTransferResponse"
                  },
                  "SepaOnrampTransferResponse": {
                    "$ref": "#/components/examples/SepaOnrampTransferResponse"
                  },
                  "SepaOfframpTransferResponse": {
                    "$ref": "#/components/examples/SepaOfframpTransferResponse"
                  },
                  "PixOnrampTransferResponse": {
                    "$ref": "#/components/examples/PixOnrampTransferResponse"
                  },
                  "PixOfframpTransferResponse": {
                    "$ref": "#/components/examples/PixOfframpTransferResponse"
                  },
                  "SpeiOnrampTransferResponse": {
                    "$ref": "#/components/examples/SpeiOnrampTransferResponse"
                  },
                  "SpeiOfframpTransferResponse": {
                    "$ref": "#/components/examples/SpeiOfframpTransferResponse"
                  },
                  "BreBOnrampTransferResponse": {
                    "$ref": "#/components/examples/BreBOnrampTransferResponse"
                  },
                  "BreBOfframpTransferResponse": {
                    "$ref": "#/components/examples/BreBOfframpTransferResponse"
                  },
                  "CoBankTransferOnrampTransferResponse": {
                    "$ref": "#/components/examples/CoBankTransferOnrampTransferResponse"
                  },
                  "CoBankTransferOfframpTransferResponse": {
                    "$ref": "#/components/examples/CoBankTransferOfframpTransferResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "403": {
            "$ref": "#/components/responses/TransferAmlError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      },
      "delete": {
        "summary": "Delete a transfer",
        "description": "Delete a transfer that was previously created. Must be in the awaiting_funds state.",
        "tags": [
          "Transfers"
        ],
        "responses": {
          "200": {
            "description": "Successful deletion of transfer"
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/transfers/{transferID}/execute": {
      "parameters": [
        {
          "$ref": "#/components/parameters/TransferIDParameter"
        }
      ],
      "post": {
        "summary": "Execute a pending USDT trade on a transfer",
        "description": "Force-executes a stuck USDT-to-USD trade at the current market rate. The transfer must have a pending trade (i.e. appear in `GET /transfers/pending`).\n\nAfter execution, the transfer will continue processing normally with the executed market rate.\n",
        "tags": [
          "Transfers"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Transfer with trade execute at market rate enabled successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransferResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/transfers/static_templates": {
      "get": {
        "summary": "Get all static templates",
        "tags": [
          "Transfers"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitParameter"
          },
          {
            "$ref": "#/components/parameters/TransferStartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/TransferEndingBeforeParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "List of static templates (the returned list is empty if none found). Static templates are transfers that are used as templates for other transfers and can be created using the static_templates feature flag.",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Static Templates",
                  "type": "object",
                  "required": [
                    "count",
                    "data"
                  ],
                  "properties": {
                    "count": {
                      "type": "integer",
                      "description": "The number of static templates returned"
                    },
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/TransferResponse"
                      }
                    }
                  }
                },
                "examples": {
                  "TransfersFound": {
                    "summary": "A non-empty list of static templates",
                    "value": {
                      "count": 2,
                      "data": [
                        {
                          "id": "00000000-0000-0000-0000-000000000004",
                          "client_reference_id": "client_transfer_id_456",
                          "state": "funds_received",
                          "on_behalf_of": "00000000-0000-0000-0000-000000000001",
                          "amount": "500.25",
                          "developer_fee": "0.0",
                          "source": {
                            "payment_rail": "ach",
                            "currency": "usd",
                            "external_account_id": "00000000-0000-0000-0000-000000000002"
                          },
                          "destination": {
                            "payment_rail": "ethereum",
                            "currency": "usdc",
                            "to_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
                          },
                          "created_at": "2020-01-02T00:00:00.000Z",
                          "updated_at": "2020-01-03T00:00:00.000Z"
                        },
                        {
                          "id": "00000000-0000-0000-0000-000000000003",
                          "client_reference_id": "client_transfer_id_123",
                          "state": "awaiting_funds",
                          "on_behalf_of": "00000000-0000-0000-0000-000000000001",
                          "amount": "75.0",
                          "developer_fee": "0.0",
                          "source": {
                            "payment_rail": "ethereum",
                            "currency": "usdc",
                            "from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
                          },
                          "destination": {
                            "payment_rail": "ach",
                            "currency": "usd",
                            "external_account_id": "00000000-0000-0000-0000-000000000002"
                          },
                          "source_deposit_instructions": {
                            "payment_rail": "ethereum",
                            "amount": "75.0",
                            "currency": "usdc",
                            "from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
                            "to_address": "0xb794f5ea0ba39494ce839613fffba74279579268"
                          },
                          "created_at": "2020-01-01T00:00:00.000Z",
                          "updated_at": "2020-01-02T00:00:00.000Z"
                        }
                      ]
                    }
                  },
                  "NoTransfersFound": {
                    "summary": "An empty list of static templates",
                    "value": {
                      "count": 0,
                      "data": []
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/prefunded_accounts": {
      "get": {
        "summary": "Get a list of all Prefunded Account",
        "tags": [
          "Prefunded Accounts"
        ],
        "description": "Retrieve a all Prefunded Accounts",
        "responses": {
          "200": {
            "description": "List of prefunded accounts.",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Prefunded Accounts",
                  "type": "object",
                  "required": [
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/PrefundedAccount"
                      }
                    }
                  }
                },
                "examples": {
                  "PrefundedAccountsFound": {
                    "summary": "A non-empty list of prefunded accounts",
                    "value": {
                      "data": [
                        {
                          "id": "f15972de-4cdd-460c-9da3-34f7321bfa3f",
                          "currency": "usd",
                          "available_balance": "134.12",
                          "name": "my_account",
                          "created_at": "2020-01-01T00:00:00.000Z",
                          "updated_at": "2020-01-02T00:00:00.000Z"
                        }
                      ]
                    }
                  },
                  "NoPrefundedAccountsFound": {
                    "summary": "An empty list of prefunded accounts",
                    "value": {
                      "data": []
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/prefunded_accounts/{prefundedAccountID}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/PrefundedAccountIDParameter"
        }
      ],
      "get": {
        "summary": "Get details for a specific Prefunded Account",
        "tags": [
          "Prefunded Accounts"
        ],
        "description": "Retrieve a Prefunded Account",
        "responses": {
          "200": {
            "description": "Successful Prefunded Account object response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PrefundedAccount"
                },
                "examples": {
                  "SuccessfulPrefundedAccountResponse": {
                    "$ref": "#/components/examples/SuccessfulPrefundedAccountResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/prefunded_accounts/{prefundedAccountID}/history": {
      "parameters": [
        {
          "$ref": "#/components/parameters/PrefundedAccountIDParameter"
        },
        {
          "$ref": "#/components/parameters/LimitParameter"
        },
        {
          "$ref": "#/components/parameters/PrefundedAccountHistoryStartingAfterParameter"
        },
        {
          "$ref": "#/components/parameters/PrefundedAccountHistoryEndingBeforeParameter"
        }
      ],
      "get": {
        "summary": "Get funding history of a Prefunded Account",
        "tags": [
          "Prefunded Accounts"
        ],
        "description": "Retrieve the funding events and returns for a Prefunded Account",
        "responses": {
          "200": {
            "description": "Successful Prefunded Account object response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PrefundedAccountHistory"
                },
                "examples": {
                  "SuccessfulCustomerResponse": {
                    "$ref": "#/components/examples/SuccessfulPrefundedAccountHistoryResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/wallets": {
      "get": {
        "summary": "Get all Bridge Wallets for a customer",
        "description": "List of Bridge Wallets for the specified Customer ID",
        "tags": [
          "Bridge Wallets"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/LimitParameter"
          },
          {
            "$ref": "#/components/parameters/BridgeWalletStartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/BridgeWalletEndingBeforeParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "List of Bridge Wallets",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BridgeWalletsList"
                },
                "examples": {
                  "SuccessfulBridgeWalletListResponse": {
                    "$ref": "#/components/examples/SuccessfulBridgeWalletListResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      },
      "post": {
        "summary": "Create a Bridge Wallet",
        "tags": [
          "Bridge Wallets"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          }
        ],
        "requestBody": {
          "description": "Bridge Wallet to be created",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBridgeWallet"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Bridge Wallet created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateBridgeWalletResponse"
                },
                "examples": {
                  "SuccessfulLiquidationAddressCreateResponse": {
                    "$ref": "#/components/examples/SuccessfulBridgeWalletCreateResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/wallets/{bridgeWalletID}": {
      "get": {
        "summary": "Get a Bridge Wallet",
        "description": "Retrieve a Bridge Wallet for the specified Bridge Wallet ID",
        "tags": [
          "Bridge Wallets"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/BridgeWalletIDParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A Bridge Wallet object response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BridgeWalletWithBalances"
                },
                "examples": {
                  "SuccessfulLiquidationAddressGetResponse": {
                    "$ref": "#/components/examples/SuccessfulBridgeWalletGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/liquidation_addresses": {
      "post": {
        "summary": "Create a Liquidation Address",
        "tags": [
          "Liquidation Addresses"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          }
        ],
        "requestBody": {
          "description": "Liquidation Address object to be created",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLiquidationAddress"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Liquidation Address object created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateLiquidationAddressResponse"
                },
                "examples": {
                  "SuccessfulLiquidationAddressCreateResponse": {
                    "$ref": "#/components/examples/SuccessfulLiquidationAddressCreateResponse"
                  },
                  "SuccessfulSepaLiquidationAddressCreateResponse": {
                    "$ref": "#/components/examples/SuccessfulSepaLiquidationAddressCreateResponse"
                  },
                  "SuccessfulMultiChainLiquidationAddressCreateResponse": {
                    "$ref": "#/components/examples/SuccessfulMultiChainLiquidationAddressCreateResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      },
      "get": {
        "summary": "Get all Liquidation Addresses for a customer",
        "description": "Get Liquidation Addresses",
        "tags": [
          "Liquidation Addresses"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/LimitParameter"
          },
          {
            "$ref": "#/components/parameters/LiquidationScheduleStartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/LiquidationScheduleEndingBeforeParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "List of Liquidation Addresses (the returned list is empty if none found)",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Liquidation Addresses",
                  "type": "object",
                  "required": [
                    "count",
                    "data"
                  ],
                  "properties": {
                    "count": {
                      "description": "total number of items in data",
                      "type": "integer"
                    },
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/LiquidationAddress"
                      }
                    }
                  }
                },
                "examples": {
                  "SuccessfulGetAllLiquidationAddressResponse": {
                    "$ref": "#/components/examples/SuccessfulGetAllLiquidationAddressResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/liquidation_addresses": {
      "get": {
        "summary": "Get all Liquidation Addresses",
        "description": "Get Liquidation Addresses",
        "tags": [
          "Liquidation Addresses"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitParameter"
          },
          {
            "$ref": "#/components/parameters/LiquidationScheduleStartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/LiquidationScheduleEndingBeforeParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "List of Liquidation Addresses (the returned list is empty if none found)",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Liquidation Addresses",
                  "type": "object",
                  "required": [
                    "count",
                    "data"
                  ],
                  "properties": {
                    "count": {
                      "description": "total number of items in data",
                      "type": "integer"
                    },
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/LiquidationAddress"
                      }
                    }
                  }
                },
                "examples": {
                  "SuccessfulGetAllLiquidationAddressResponse": {
                    "$ref": "#/components/examples/SuccessfulGetAllLiquidationAddressResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/liquidation_addresses/{liquidationAddressID}": {
      "get": {
        "summary": "Get a Liquidation Address",
        "description": "Retrieve a Liquidation Address for the specified Liquidation Address ID",
        "tags": [
          "Liquidation Addresses"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/LiquidationAddressIDParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A Liquidation Address object response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LiquidationAddress"
                },
                "examples": {
                  "SuccessfulLiquidationAddressGetResponse": {
                    "$ref": "#/components/examples/SuccessfulLiquidationAddressGetResponse"
                  },
                  "SuccessfulSepaLiquidationAddressGetResponse": {
                    "$ref": "#/components/examples/SuccessfulSepaLiquidationAddressGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      },
      "put": {
        "summary": "Update a Liquidation Address",
        "description": "Update a Liquidation Address for the specified liquidation address ID. Fields (`external_account_id`, `custom_developer_fee_percent`, `destination`) can be updated independently and are not all required.",
        "tags": [
          "Liquidation Addresses"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/LiquidationAddressIDParameter"
          }
        ],
        "requestBody": {
          "description": "Liquidation Address details to be updated",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLiquidationAddress"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated Liquidation Address object",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LiquidationAddress"
                },
                "examples": {
                  "SuccessfulLiquidationAddressUpdateResponse": {
                    "$ref": "#/components/examples/SuccessfulLiquidationAddressGetResponse"
                  },
                  "SuccessfulSepaLiquidationAddressUpdateResponse": {
                    "$ref": "#/components/examples/SuccessfulSepaLiquidationAddressGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/liquidation_addresses/{liquidationAddressID}/drains": {
      "get": {
        "summary": "Get drain history of a Liquidation Address",
        "description": "Get drain history of a Liquidation Address",
        "tags": [
          "Liquidation Addresses"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/LiquidationAddressIDParameter"
          },
          {
            "$ref": "#/components/parameters/TxHashParameter"
          },
          {
            "$ref": "#/components/parameters/LimitParameter"
          },
          {
            "$ref": "#/components/parameters/DrainStartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/DrainEndingBeforeParameter"
          },
          {
            "$ref": "#/components/parameters/UpdatedAfterMsParameter"
          },
          {
            "$ref": "#/components/parameters/UpdatedBeforeMsParameter"
          },
          {
            "$ref": "#/components/parameters/DrainIDQueryParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "List of drains (the returned list is empty if none found)",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Drain"
                    }
                  }
                },
                "examples": {
                  "DrainsToCryptoFound": {
                    "$ref": "#/components/examples/SuccessfulLiquidationAddressDrainsToCryptoResponse"
                  },
                  "DrainsToFiatFound": {
                    "$ref": "#/components/examples/SuccessfulLiquidationAddressDrainsToFiatResponse"
                  },
                  "ReturnedDrainsFound": {
                    "$ref": "#/components/examples/ReturnedLiquidationAddressDrainsResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/liquidation_addresses/{liquidationAddressID}/drains/{drainID}/execute": {
      "parameters": [
        {
          "$ref": "#/components/parameters/CustomerIDParameter"
        },
        {
          "$ref": "#/components/parameters/LiquidationAddressIDParameter"
        },
        {
          "name": "drainID",
          "in": "path",
          "required": true,
          "schema": {
            "$ref": "#/components/schemas/Id"
          }
        }
      ],
      "post": {
        "summary": "Execute a pending USDT trade on a drain",
        "description": "Force-executes a stuck USDT-to-USD trade at the current market rate. The drain must have a pending trade (i.e. appear in `GET /liquidation_addresses/drains/pending`).\n\nAfter execution, the drain will continue processing normally with the executed market rate.\n",
        "tags": [
          "Liquidation Addresses"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Drain with trade execute at market rate enabled successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Drain"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/liquidation_addresses/{liquidationAddressID}/balances": {
      "get": {
        "summary": "Get the balance of a Liquidation Address (deprecated)",
        "description": "Get the balance of a Liquidation Address. Note that most Liquidation Addresses no longer hold a balance. To check recent activity on a Liquidation Address, use the `/customers/{customerID}/liquidation_addresses/{liquidationAddressID}/drains` endpoint.",
        "deprecated": true,
        "tags": [
          "Liquidation Addresses"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/LiquidationAddressIDParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Get the current balance of a Liquidation Address",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Balance"
                    }
                  }
                },
                "examples": {
                  "DrainsFound": {
                    "$ref": "#/components/examples/SuccessfulLiquidationAddressBalanceResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/virtual_accounts": {
      "post": {
        "summary": "Create a Virtual Account",
        "description": "Create a Virtual Account or Virtual IBAN for the specified customer",
        "tags": [
          "Virtual Accounts"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          },
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          }
        ],
        "requestBody": {
          "description": "Virtual Account object to be created",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateVirtualAccount"
              },
              "examples": {
                "us": {
                  "summary": "Virtual Account",
                  "value": {
                    "developer_fee_percent": "0.1",
                    "source": {
                      "currency": "usd"
                    },
                    "destination": {
                      "currency": "usdc",
                      "payment_rail": "base",
                      "address": "0xdeadbeef"
                    }
                  }
                },
                "us_fee_config_request_only": {
                  "summary": "Virtual Account with fee_config (available by request only)",
                  "value": {
                    "fee_config": {
                      "source": {
                        "ach_push": {
                          "fee_percent": "0.5",
                          "minimum_fee": "1.00"
                        },
                        "wire": {
                          "fee_amount": "10.00",
                          "fee_percent": "1.0"
                        }
                      }
                    },
                    "source": {
                      "currency": "usd"
                    },
                    "destination": {
                      "currency": "usdc",
                      "payment_rail": "base",
                      "address": "0xdeadbeef"
                    }
                  }
                },
                "eu": {
                  "summary": "Virtual IBAN",
                  "value": {
                    "developer_fee_percent": "0.1",
                    "source": {
                      "currency": "eur"
                    },
                    "destination": {
                      "currency": "eurc",
                      "payment_rail": "solana",
                      "address": "DeAdBeEf"
                    }
                  }
                },
                "mx": {
                  "summary": "Virtual Account Mexico",
                  "value": {
                    "developer_fee_percent": "0.1",
                    "source": {
                      "currency": "mxn"
                    },
                    "destination": {
                      "currency": "usdc",
                      "payment_rail": "base",
                      "address": "0xdeadbeef"
                    }
                  }
                },
                "gb": {
                  "summary": "Virtual Account United Kingdom (beta)",
                  "value": {
                    "developer_fee_percent": "0.1",
                    "source": {
                      "currency": "gbp"
                    },
                    "destination": {
                      "currency": "usdc",
                      "payment_rail": "base",
                      "address": "0xdeadbeef"
                    }
                  }
                },
                "co": {
                  "summary": "Virtual Account Colombia (Bre-B)",
                  "value": {
                    "developer_fee_percent": "0.1",
                    "source": {
                      "currency": "cop"
                    },
                    "destination": {
                      "currency": "usdc",
                      "payment_rail": "ethereum",
                      "address": "0xdeadbeef"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Virtual Account object created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VirtualAccountResponse"
                },
                "examples": {
                  "us": {
                    "summary": "Virtual Account",
                    "value": {
                      "id": "59waova4hbt1vhabj3jo7don6j1mj5peq8i8rhc5l1",
                      "status": "activated",
                      "developer_fee_percent": "0.1",
                      "source_deposit_instructions": {
                        "currency": "usd",
                        "payment_rails": [
                          "ach_push",
                          "fednow",
                          "wire"
                        ],
                        "bank_name": "Lead Bank",
                        "bank_address": "1801 Main St., Kansas City, MO 64108",
                        "bank_beneficiary_name": "Customer Name",
                        "bank_beneficiary_address": "1234 Main St., Kansas City, MO 64108",
                        "bank_account_number": "123456789",
                        "bank_routing_number": "87654321"
                      },
                      "destination": {
                        "currency": "usdc",
                        "payment_rail": "polygon",
                        "address": "0xdeadbeef"
                      }
                    }
                  },
                  "us_fee_config_request_only": {
                    "summary": "Virtual Account with fee_config (available by request only)",
                    "value": {
                      "id": "59waova4hbt1vhabj3jo7don6j1mj5peq8i8rhc5l1",
                      "status": "activated",
                      "developer_fee_percent": "0.0",
                      "fee_config": {
                        "source": {
                          "ach_push": {
                            "fee_percent": "0.5",
                            "minimum_fee": "1.00"
                          },
                          "fednow": {
                            "fee_percent": "1.0",
                            "minimum_fee": "1.00"
                          },
                          "wire": {
                            "fee_amount": "10.00",
                            "fee_percent": "1.0"
                          }
                        }
                      },
                      "source_deposit_instructions": {
                        "currency": "usd",
                        "payment_rails": [
                          "ach_push",
                          "fednow",
                          "wire"
                        ],
                        "bank_name": "Lead Bank",
                        "bank_address": "1801 Main St., Kansas City, MO 64108",
                        "bank_beneficiary_name": "Customer Name",
                        "bank_beneficiary_address": "1234 Main St., Kansas City, MO 64108",
                        "bank_account_number": "123456789",
                        "bank_routing_number": "87654321"
                      },
                      "destination": {
                        "currency": "usdc",
                        "payment_rail": "polygon",
                        "address": "0xdeadbeef"
                      }
                    }
                  },
                  "eu": {
                    "summary": "Virtual IBAN",
                    "value": {
                      "id": "59waova4hbt1vhabj3jo7don6j1mj5peq8i8rhc5l1",
                      "status": "activated",
                      "developer_fee_percent": "0.1",
                      "source_deposit_instructions": {
                        "currency": "eur",
                        "payment_rails": [
                          "sepa"
                        ],
                        "iban": "X6099",
                        "bic": "BCIRLULL",
                        "account_holder_name": "Bridge Building Sp. Z.o.o.",
                        "bank_name": "Banking Circle S.A.",
                        "bank_address": "2 Boulevard de la Foire, L-1528 Luxembourg"
                      },
                      "destination": {
                        "currency": "eurc",
                        "payment_rail": "solana",
                        "address": "DeAdBeEf"
                      }
                    }
                  },
                  "mx": {
                    "summary": "Virtual Account Mexico",
                    "value": {
                      "id": "59waova4hbt1vhabj3jo7don6j1mj5peq8i8rhc5l1",
                      "status": "activated",
                      "developer_fee_percent": "0.1",
                      "source_deposit_instructions": {
                        "currency": "mxn",
                        "payment_rails": [
                          "spei"
                        ],
                        "clabe": "127180001234567890",
                        "account_holder_name": "Customer Name"
                      },
                      "destination": {
                        "currency": "usdc",
                        "payment_rail": "solana",
                        "address": "DeAdBeEf"
                      }
                    }
                  },
                  "gb": {
                    "summary": "Virtual Account United Kingdom (beta)",
                    "value": {
                      "id": "2ecad10b-f44b-4ffa-8c53-39a6b63ab9ab",
                      "status": "activated",
                      "developer_fee_percent": "0.1",
                      "source_deposit_instructions": {
                        "currency": "gbp",
                        "payment_rails": [
                          "faster_payments"
                        ],
                        "account_number": "01234567",
                        "sort_code": "987654",
                        "bank_name": "Banking Circle S.A.",
                        "bank_address": "2 Boulevard de la Foire, L-1528 Luxembourg",
                        "bank_beneficiary_name": "Bridge Building Sp. Z.o.o.",
                        "bank_beneficiary_address": "2 Boulevard de la Foire, L-1528 Luxembourg",
                        "account_holder_name": "Bridge Building Sp. Z.o.o."
                      }
                    }
                  },
                  "co": {
                    "summary": "Virtual Account Colombia (Bre-B)",
                    "value": {
                      "id": "59waova4hbt1vhabj3jo7don6j1mj5peq8i8rhc5l1",
                      "status": "activated",
                      "developer_fee_percent": "0.1",
                      "source_deposit_instructions": {
                        "currency": "cop",
                        "payment_rails": [
                          "bre_b"
                        ],
                        "bre_b_key": "12345678901234567890",
                        "account_holder_name": "Bridge Developer Name"
                      },
                      "destination": {
                        "currency": "usdc",
                        "payment_rail": "ethereum",
                        "address": "0xdeadbeef"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "get": {
        "summary": "List Virtual Accounts by Customer",
        "description": "List all Virtual Account objects for a customer",
        "tags": [
          "Virtual Accounts"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/FiatInstructionsActivationStatusParameter"
          },
          {
            "$ref": "#/components/parameters/LimitParameter"
          },
          {
            "$ref": "#/components/parameters/VirtualAccountStartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/VirtualAccountEndingBeforeParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "List of Virtual Accounts",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Virtual Accounts",
                  "type": "object",
                  "required": [
                    "count",
                    "data"
                  ],
                  "properties": {
                    "count": {
                      "description": "total number of items in data",
                      "type": "integer"
                    },
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/VirtualAccountResponse"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/customers/{customerID}/virtual_accounts/{virtualAccountID}": {
      "get": {
        "summary": "Get a Virtual Account",
        "description": "Retrieve the Virtual Account object from the passed ID",
        "tags": [
          "Virtual Accounts"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/VirtualAccountIDParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Virtual Account object response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VirtualAccountResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "summary": "Update a Virtual Account",
        "description": "Update instructions for an existing Virtual Account",
        "tags": [
          "Virtual Accounts"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/VirtualAccountIDParameter"
          }
        ],
        "requestBody": {
          "description": "The Virtual Account details to be updated",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateVirtualAccount"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated Virtual Account object",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VirtualAccountResponse"
                }
              }
            }
          }
        }
      }
    },
    "/customers/{customerID}/virtual_accounts/{virtualAccountID}/deactivate": {
      "post": {
        "summary": "Deactivate a Virtual Account",
        "description": "Deactivate a Virtual Account to prevent it from acceping new incoming transactions",
        "tags": [
          "Virtual Accounts"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          },
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/VirtualAccountIDParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Deactivated Virtual Account object",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/VirtualAccountResponse"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "status": {
                          "example": "deactivated"
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/customers/{customerID}/virtual_accounts/{virtualAccountID}/reactivate": {
      "post": {
        "summary": "Reactivate a Virtual Account",
        "description": "Reactivate a previously deactivated Virtual Account",
        "tags": [
          "Virtual Accounts"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          },
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/VirtualAccountIDParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Reactivated Virtual Account object",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VirtualAccountResponse"
                }
              }
            }
          }
        }
      }
    },
    "/customers/{customerID}/virtual_accounts/{virtualAccountID}/history": {
      "parameters": [
        {
          "$ref": "#/components/parameters/CustomerIDParameter"
        },
        {
          "$ref": "#/components/parameters/VirtualAccountIDParameter"
        },
        {
          "$ref": "#/components/parameters/DepositIDQueryParameter"
        },
        {
          "$ref": "#/components/parameters/DepositIDsQueryParameter"
        },
        {
          "$ref": "#/components/parameters/TxHashParameter"
        },
        {
          "$ref": "#/components/parameters/LimitParameter"
        },
        {
          "$ref": "#/components/parameters/EventStartingAfterParameter"
        },
        {
          "$ref": "#/components/parameters/EventEndingBeforeParameter"
        },
        {
          "$ref": "#/components/parameters/EventTypeParameter"
        }
      ],
      "get": {
        "summary": "Virtual Account Activity",
        "tags": [
          "Virtual Accounts"
        ],
        "description": "History of activity for a Virtual Account",
        "responses": {
          "200": {
            "description": "List of Virtual Account events",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Virtual Account history",
                  "type": "object",
                  "required": [
                    "count",
                    "data"
                  ],
                  "properties": {
                    "count": {
                      "type": "integer",
                      "description": "The number of events returned"
                    },
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/VirtualAccountEvent"
                      }
                    }
                  }
                },
                "examples": {
                  "History": {
                    "$ref": "#/components/examples/VirtualAccountHistoryExample"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/static_memos": {
      "get": {
        "summary": "List Static Memos",
        "description": "List all Static Memo objects",
        "tags": [
          "Static Memos"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/FiatInstructionsActivationStatusParameter"
          },
          {
            "$ref": "#/components/parameters/LimitParameter"
          },
          {
            "$ref": "#/components/parameters/StaticMemoStartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/StaticMemoEndingBeforeParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "List of Static Memos",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Static Memos",
                  "type": "object",
                  "required": [
                    "count",
                    "data"
                  ],
                  "properties": {
                    "count": {
                      "description": "total number of items in data",
                      "type": "integer"
                    },
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/StaticMemoResponse"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/customers/{customerID}/static_memos": {
      "post": {
        "summary": "Create a Static Memo",
        "description": "Create a Static Memo for the specified customer",
        "tags": [
          "Static Memos"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          },
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          }
        ],
        "requestBody": {
          "description": "Static Memo object to be created",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStaticMemo"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Static Memo object created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StaticMemoResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "summary": "List Static Memos for Customer",
        "description": "List all Static Memo objects for a customer",
        "tags": [
          "Static Memos"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/FiatInstructionsActivationStatusParameter"
          },
          {
            "$ref": "#/components/parameters/LimitParameter"
          },
          {
            "$ref": "#/components/parameters/StaticMemoStartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/StaticMemoEndingBeforeParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "List of Static Memos",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Static Memos",
                  "type": "object",
                  "required": [
                    "count",
                    "data"
                  ],
                  "properties": {
                    "count": {
                      "description": "total number of items in data",
                      "type": "integer"
                    },
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/StaticMemoResponse"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/customers/{customerID}/static_memos/{staticMemoID}": {
      "get": {
        "summary": "Get a Static Memo",
        "description": "Retrieve the Static Memo object from the passed ID",
        "tags": [
          "Static Memos"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/StaticMemoIDParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful static memo object response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StaticMemoResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "summary": "Update a Static Memo",
        "description": "Update instructions for an existing Static Memo",
        "tags": [
          "Static Memos"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/StaticMemoIDParameter"
          }
        ],
        "requestBody": {
          "description": "The Static Memo details to be updated",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStaticMemo"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated Static Memo object",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StaticMemoResponse"
                }
              }
            }
          }
        }
      }
    },
    "/customers/{customerID}/card_accounts/{cardAccountID}/pin": {
      "post": {
        "summary": "Create Card PIN Update URL",
        "description": "Generates a URL that can be used to render a secure frame to update the PIN for a card account. The URL is single-use and time-limited.",
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          },
          {
            "name": "cardAccountID",
            "in": "path",
            "required": true,
            "description": "The ID of the card account",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "URL to update the card PIN",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardPinUpdateResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/card_accounts/{cardAccountID}/ephemeral_keys": {
      "post": {
        "summary": "Generate an Ephemeral Key to Reveal Card Details",
        "description": "Generates a one-time ephemeral key that can be used to reveal card details. Please see the integration guide on [safely revealing card details](https://apidocs.bridge.xyz/docs/safely-reveal-card-details-to-customers) for more information.",
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          },
          {
            "name": "cardAccountID",
            "in": "path",
            "required": true,
            "description": "The ID of the card account",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The client-side nonce that will be associated with the ephemeral key",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PostCardAccountEphemeralKeyInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Ephemeral key to reveal card details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardAccountEphemeralKeyResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/static_memos/{staticMemoID}/history": {
      "parameters": [
        {
          "$ref": "#/components/parameters/CustomerIDParameter"
        },
        {
          "$ref": "#/components/parameters/StaticMemoIDParameter"
        },
        {
          "$ref": "#/components/parameters/DepositIDQueryParameter"
        },
        {
          "$ref": "#/components/parameters/DepositIDsQueryParameter"
        },
        {
          "$ref": "#/components/parameters/TxHashParameter"
        },
        {
          "$ref": "#/components/parameters/LimitParameter"
        },
        {
          "$ref": "#/components/parameters/EventStartingAfterParameter"
        },
        {
          "$ref": "#/components/parameters/EventEndingBeforeParameter"
        },
        {
          "$ref": "#/components/parameters/EventTypeParameter"
        }
      ],
      "get": {
        "summary": "Static Memo Activity",
        "tags": [
          "Static Memos"
        ],
        "description": "History of activity for a Static Memo",
        "responses": {
          "200": {
            "description": "List of Static Memo events",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Static Memo history",
                  "type": "object",
                  "required": [
                    "count",
                    "data"
                  ],
                  "properties": {
                    "count": {
                      "type": "integer",
                      "description": "The number of events returned"
                    },
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/StaticMemoEvent"
                      }
                    }
                  }
                },
                "examples": {
                  "History": {
                    "$ref": "#/components/examples/StaticMemoHistoryExample"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/customers/{customerID}/batch_settlement_schedules": {
      "post": {
        "summary": "Create a Batch Settlement Schedule",
        "deprecated": true,
        "description": "Creates a Batch Settlement Schedule that can be used as the destination of a liquidation address.",
        "tags": [
          "Batch Settlements"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBatchSettlementSchedule"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Batch Settlement Schedule object created",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Batch Settlement Schedule",
                  "type": "object",
                  "required": [
                    "id"
                  ],
                  "properties": {
                    "id": {
                      "$ref": "#/components/schemas/Id",
                      "description": "ID of the batch settlement schedule"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/external_accounts": {
      "parameters": [
        {
          "$ref": "#/components/parameters/LimitParameter"
        },
        {
          "$ref": "#/components/parameters/ExternalAccountStartingAfterParameter"
        },
        {
          "$ref": "#/components/parameters/ExternalAccountEndingBeforeParameter"
        }
      ],
      "get": {
        "summary": "Get all External Accounts",
        "tags": [
          "External Accounts"
        ],
        "description": "Get all External Accounts.",
        "responses": {
          "200": {
            "description": "List of External Accounts (the returned list is empty if no External Accounts exist)",
            "content": {
              "application/json": {
                "schema": {
                  "title": "ExternalAccount",
                  "type": "object",
                  "required": [
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/ExternalAccountResponse"
                      }
                    },
                    "count": {
                      "description": "total number of items in data",
                      "type": "integer"
                    }
                  }
                },
                "examples": {
                  "ExternalAccountsFound": {
                    "summary": "A non-empty list of External Accounts",
                    "value": {
                      "data": [
                        {
                          "id": "ea_123",
                          "account_type": "us",
                          "currency": "usd",
                          "customer_id": "cust_123",
                          "account_owner_name": "John Doe",
                          "bank_name": "Wells Fargo",
                          "last_4": "1111",
                          "active": true,
                          "beneficiary_address_valid": true,
                          "account": {
                            "last_4": "1111",
                            "routing_number": "121000248",
                            "checking_or_savings": "checking"
                          },
                          "created_at": "2020-01-01T00:00:00.000Z",
                          "updated_at": "2020-01-02T00:00:00.000Z"
                        }
                      ]
                    }
                  },
                  "ExternalAccountsFoundIban": {
                    "summary": "iban",
                    "value": {
                      "data": [
                        {
                          "id": "ea_123",
                          "customer_id": "cust_123",
                          "account_type": "iban",
                          "currency": "eur",
                          "account_owner_name": "John Doe",
                          "bank_name": "AAC CAPITAL PARTNERS LIMITED",
                          "active": true,
                          "iban": {
                            "last_4": "5981",
                            "bic": "BARBGB2LLEI",
                            "country": "NLD"
                          },
                          "account_owner_type": "individual",
                          "first_name": "John",
                          "last_name": "Doe",
                          "account_verification": {
                            "iban": {
                              "match_level": "match",
                              "reason_code": null,
                              "validated_account_owner_name": "John Doe"
                            },
                            "requested_at": "2020-01-01T00:05:00.000Z",
                            "completed_at": "2020-01-01T00:05:05.000Z"
                          },
                          "created_at": "2020-01-01T00:00:00.000Z",
                          "updated_at": "2020-01-02T00:00:00.000Z"
                        }
                      ]
                    }
                  },
                  "ExternalAccountsFoundPixKey": {
                    "summary": "pix (Pix Key)",
                    "value": {
                      "data": [
                        {
                          "id": "ea_123",
                          "customer_id": "cust_123",
                          "account_type": "pix",
                          "currency": "brl",
                          "account_owner_name": "João Silva",
                          "bank_name": "Banco do Brasil",
                          "active": true,
                          "pix_key": {
                            "account_preview": "jo****ilva****il.c**",
                            "document_number_last4": "8901"
                          },
                          "account_validation": {
                            "validated_account_owner_name": "João Silva",
                            "validated_bank_name": "Banco do Brasil"
                          },
                          "account_owner_type": "individual",
                          "first_name": "João",
                          "last_name": "Silva",
                          "account_verification": {
                            "pix": {
                              "matched": true,
                              "reason_code": null,
                              "validated_account_owner_name": "João Silva",
                              "validated_bank_name": "Banco do Brasil"
                            },
                            "requested_at": "2020-01-01T00:05:00.000Z",
                            "completed_at": "2020-01-01T00:05:05.000Z"
                          },
                          "created_at": "2020-01-01T00:00:00.000Z",
                          "updated_at": "2020-01-02T00:00:00.000Z"
                        }
                      ]
                    }
                  },
                  "ExternalAccountsFoundBrCode": {
                    "summary": "pix (BR Code)",
                    "value": {
                      "data": [
                        {
                          "id": "ea_456",
                          "customer_id": "cust_456",
                          "account_type": "pix",
                          "currency": "brl",
                          "account_owner_name": "Maria Santos",
                          "bank_name": "Itaú Unibanco",
                          "active": true,
                          "br_code": {
                            "account_preview": "11****1111****1111****1111",
                            "document_number_last4": "0131"
                          },
                          "account_validation": {
                            "validated_account_owner_name": "Maria Santos",
                            "validated_bank_name": "Itaú Unibanco"
                          },
                          "account_owner_type": "individual",
                          "first_name": "Maria",
                          "last_name": "Santos",
                          "account_verification": {
                            "pix": {
                              "matched": true,
                              "reason_code": null,
                              "validated_account_owner_name": "Maria Santos",
                              "validated_bank_name": "Itaú Unibanco"
                            },
                            "requested_at": "2020-01-01T00:05:00.000Z",
                            "completed_at": "2020-01-01T00:05:05.000Z"
                          },
                          "created_at": "2020-01-01T00:00:00.000Z",
                          "updated_at": "2020-01-02T00:00:00.000Z"
                        }
                      ]
                    }
                  },
                  "ExternalAccountsFoundClabe": {
                    "summary": "clabe",
                    "value": {
                      "data": [
                        {
                          "id": "ea_567",
                          "customer_id": "cust_567",
                          "account_type": "clabe",
                          "currency": "mxn",
                          "account_owner_name": "Juan García",
                          "bank_name": "Banco Santander México",
                          "active": true,
                          "clabe": {
                            "last_4": "0007"
                          },
                          "account_validation": {
                            "validated_account_owner_name": "Juan García",
                            "validated_bank_name": "Banco Santander México"
                          },
                          "account_owner_type": "individual",
                          "first_name": "Juan",
                          "last_name": "García",
                          "account_verification": {
                            "clabe": {
                              "matched": true,
                              "reason_code": null,
                              "validated_account_owner_name": "Juan García",
                              "validated_bank_name": "Banco Santander México"
                            },
                            "requested_at": "2020-01-01T00:05:00.000Z",
                            "completed_at": "2020-01-01T00:05:05.000Z"
                          },
                          "created_at": "2020-01-01T00:00:00.000Z",
                          "updated_at": "2020-01-02T00:00:00.000Z"
                        }
                      ]
                    }
                  },
                  "ExternalAccountsFoundBreB": {
                    "summary": "bre_b",
                    "value": {
                      "data": [
                        {
                          "id": "ea_789",
                          "customer_id": "cust_789",
                          "account_type": "bre_b",
                          "currency": "cop",
                          "account_owner_name": "Juan Garcia",
                          "bank_name": "Banco de Bogota",
                          "active": true,
                          "account": {
                            "last_4": "0000"
                          },
                          "account_validation": {
                            "validated_account_owner_name": "Juan Garcia",
                            "validated_bank_name": "Banco de Bogota",
                            "validated_document_number_last4": "0000"
                          },
                          "account_owner_type": "individual",
                          "first_name": "Juan",
                          "last_name": "Garcia",
                          "account_verification": {
                            "bre_b": {
                              "matched": true,
                              "reason_code": null,
                              "validated_account_owner_name": "Juan Garcia",
                              "validated_bank_name": "Banco de Bogota",
                              "validated_document_number_last4": "0000"
                            },
                            "requested_at": "2020-01-01T00:05:00.000Z",
                            "completed_at": "2020-01-01T00:05:05.000Z"
                          },
                          "created_at": "2020-01-01T00:00:00.000Z",
                          "updated_at": "2020-01-02T00:00:00.000Z"
                        }
                      ]
                    }
                  },
                  "ExternalAccountsFoundCoBankTransfer": {
                    "summary": "co_bank_transfer",
                    "value": {
                      "data": [
                        {
                          "id": "ea_012",
                          "customer_id": "cust_012",
                          "account_type": "co_bank_transfer",
                          "currency": "cop",
                          "account_owner_name": "Maria Lopez",
                          "bank_name": "Bancolombia",
                          "active": true,
                          "account": {
                            "last_4": "1234",
                            "routing_number": "1007"
                          },
                          "account_owner_type": "individual",
                          "first_name": "Maria",
                          "last_name": "Lopez",
                          "account_verification": {
                            "co_bank_transfer": {
                              "matched": true,
                              "reason_code": null,
                              "validated_account_owner_name": "Maria Lopez",
                              "validated_bank_name": "Bancolombia",
                              "validated_document_number_last4": "9012"
                            },
                            "requested_at": "2020-01-01T00:05:00.000Z",
                            "completed_at": "2020-01-01T00:05:05.000Z"
                          },
                          "created_at": "2020-01-01T00:00:00.000Z",
                          "updated_at": "2020-01-02T00:00:00.000Z"
                        }
                      ]
                    }
                  },
                  "NoExternalAccountsFound": {
                    "summary": "An empty list of External Accounts",
                    "value": {
                      "data": [],
                      "count": 0
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/virtual_accounts": {
      "get": {
        "summary": "List Virtual Accounts",
        "description": "List all Virtual Account objects",
        "tags": [
          "Virtual Accounts"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/FiatInstructionsActivationStatusParameter"
          },
          {
            "$ref": "#/components/parameters/LimitParameter"
          },
          {
            "$ref": "#/components/parameters/VirtualAccountStartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/VirtualAccountEndingBeforeParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "List of Virtual Accounts",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Virtual Accounts",
                  "type": "object",
                  "required": [
                    "count",
                    "data"
                  ],
                  "properties": {
                    "count": {
                      "description": "total number of items in data",
                      "type": "integer"
                    },
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/VirtualAccountResponse"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/virtual_accounts/history": {
      "parameters": [
        {
          "$ref": "#/components/parameters/DepositIDQueryParameter"
        },
        {
          "$ref": "#/components/parameters/DepositIDsQueryParameter"
        },
        {
          "$ref": "#/components/parameters/TxHashParameter"
        },
        {
          "$ref": "#/components/parameters/LimitParameter"
        },
        {
          "$ref": "#/components/parameters/EventStartingAfterParameter"
        },
        {
          "$ref": "#/components/parameters/EventEndingBeforeParameter"
        },
        {
          "$ref": "#/components/parameters/EventTypeParameter"
        },
        {
          "$ref": "#/components/parameters/UpdatedAfterMsParameter"
        },
        {
          "$ref": "#/components/parameters/UpdatedBeforeMsParameter"
        }
      ],
      "get": {
        "summary": "Virtual Account Activity Across All Customers",
        "tags": [
          "Virtual Accounts"
        ],
        "description": "History of activity across all customers and Virtual Accounts",
        "responses": {
          "200": {
            "description": "List of Virtual Account events",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Virtual Account history",
                  "type": "object",
                  "required": [
                    "count",
                    "data"
                  ],
                  "properties": {
                    "count": {
                      "type": "integer",
                      "description": "The number of events returned"
                    },
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/VirtualAccountEvent"
                      }
                    }
                  }
                },
                "examples": {
                  "History": {
                    "$ref": "#/components/examples/VirtualAccountHistoryExample"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/developer/fees": {
      "get": {
        "summary": "Get the configured fees",
        "description": "Get fees that have been configured for supported products.",
        "tags": [
          "Developers"
        ],
        "responses": {
          "200": {
            "description": "The configured fees for your developer account.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeveloperFees"
                },
                "examples": {
                  "SuccessfulResponse": {
                    "summary": "The fees configured for the account.",
                    "value": {
                      "default_liquidation_address_fee_percent": "1.3"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      },
      "post": {
        "summary": "Update the configured fees",
        "description": "Update fees for supported products.",
        "tags": [
          "Developers"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          }
        ],
        "requestBody": {
          "description": "The default fee percent that will be applied to all your Liquidation Addresses. The value is a base 100 percentage, i.e. 10.2% is 10.2 in the API.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeveloperFees"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The configured fees have been updated for your developer account.",
            "content": {
              "application/json": {
                "examples": {
                  "SuccessfulResponse": {
                    "summary": "The fees have been updated.",
                    "value": {
                      "default_liquidation_address_fee_percent": "1.3"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/developer/fee_external_account": {
      "get": {
        "summary": "Get the configured fee External Account",
        "description": "Get the configured fee External Account.",
        "tags": [
          "Developers"
        ],
        "responses": {
          "200": {
            "description": "Get the configured fee External Account.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeeExternalAccount"
                },
                "examples": {
                  "SuccessfulFeeExternalAccountResponse": {
                    "$ref": "#/components/examples/SuccessfulFeeExternalAccountResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      },
      "post": {
        "summary": "Configure a fee External Account",
        "description": "Configure a fee External Account.",
        "tags": [
          "Developers"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          }
        ],
        "requestBody": {
          "description": "New External Account object to be created",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateFeeExternalAccountInput"
              },
              "examples": {
                "ACH": {
                  "$ref": "#/components/examples/CreateAchExternalAccountRequest"
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "External Account object created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeeExternalAccount"
                },
                "examples": {
                  "SuccessfulFeeExternalAccountResponse": {
                    "$ref": "#/components/examples/SuccessfulFeeExternalAccountResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/developer/cards/summary": {
      "get": {
        "summary": "Get a summary of your card program",
        "description": "Get a summary of your card program, optionally for a specific period.",
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CardProgramSummaryPeriodParameter"
          },
          {
            "$ref": "#/components/parameters/CardProgramSummaryPeriodKeyParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The summary of a card program",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardProgramSummary"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/developer/cards/designs": {
      "get": {
        "summary": "Get a listing of your card program's card designs",
        "description": "Get a listing of the designs that you can use to issue a card with.",
        "tags": [
          "Cards"
        ],
        "responses": {
          "200": {
            "description": "A listing of the designs that you can use to issue a card with.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardDesigns"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/api_keys": {
      "post": {
        "summary": "Create a scoped API key",
        "description": "Create a new API key restricted to a subset of scopes. The returned `value` is the only\nopportunity to retrieve the plaintext secret — store it securely. This endpoint does not\naccept an `Idempotency-Key` header; each call creates a new key.\n\nCallers may only grant scopes they themselves hold (scope subsetting). Unrestricted keys\nmay create scoped keys; scoped keys need the `api_key:create` scope. Up to 500 scoped\nkeys may exist per developer.\n",
        "tags": [
          "API Keys"
        ],
        "requestBody": {
          "description": "The scopes to grant the new API key. Must be a non-empty array drawn from `ApiKeyScope`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateApiKeyInput"
              },
              "examples": {
                "ScopedKey": {
                  "$ref": "#/components/examples/CreateApiKeyRequest"
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The API key was created. `value` is returned exactly once.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeyWithSecret"
                },
                "examples": {
                  "SuccessfulCreateApiKeyResponse": {
                    "$ref": "#/components/examples/SuccessfulCreateApiKeyResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/api_keys/whoami": {
      "get": {
        "summary": "Describe the calling API key",
        "description": "Return metadata about the API key authenticating this request, including its scopes. The plaintext secret is never returned.",
        "tags": [
          "API Keys"
        ],
        "responses": {
          "200": {
            "description": "Metadata describing the calling API key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKey"
                },
                "examples": {
                  "SuccessfulWhoAmIResponse": {
                    "$ref": "#/components/examples/SuccessfulWhoAmIResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/kyc_links": {
      "post": {
        "summary": "Generate the Links needs to complete KYC for an individual or business",
        "tags": [
          "KYC Links"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          }
        ],
        "requestBody": {
          "description": "Information about the customer to create KYC Links for",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateKycLinks"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "KYC Links generated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IndividualKycLinkResponse"
                },
                "examples": {
                  "SuccessfulLiquidationAddressCreateResponse": {
                    "summary": "KYC Links generated",
                    "$ref": "#/components/examples/SuccessfulKycLinkCreateResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      },
      "get": {
        "summary": "Get all KYC links.",
        "description": "Retrieve the full list of kyc links.",
        "tags": [
          "KYC Links"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/KycLinksCustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/KycLinksEmailParameter"
          },
          {
            "$ref": "#/components/parameters/CustomerStartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/CustomerEndingBeforeParameter"
          },
          {
            "$ref": "#/components/parameters/LimitParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful KYC links status response",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Kyc Links",
                  "type": "object",
                  "required": [
                    "count",
                    "data"
                  ],
                  "properties": {
                    "count": {
                      "description": "total number of items in data",
                      "type": "integer"
                    },
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/IndividualKycLinkResponse"
                      }
                    }
                  }
                },
                "examples": {
                  "KycLinksGetResponse": {
                    "summary": "KYC link status for multiple customers",
                    "$ref": "#/components/examples/KycLinksGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/kyc_links/{kycLinkID}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/KycLinkIDParameter"
        }
      ],
      "get": {
        "summary": "Check the status of a KYC link",
        "description": "Retrieve the status of a KYC request from the passed in KYC link id",
        "tags": [
          "KYC Links"
        ],
        "responses": {
          "200": {
            "description": "Successful KYC link status response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IndividualKycLinkResponse"
                },
                "examples": {
                  "ApprovedKYCLinkGetResponse": {
                    "summary": "KYC link status for an approved customer",
                    "$ref": "#/components/examples/ApprovedKycLinkGetResponse"
                  },
                  "RejectedKYCLinkGetResponse": {
                    "summary": "KYC link status for a rejected customer",
                    "$ref": "#/components/examples/RejectedKycLinkGetResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/rfis": {
      "get": {
        "summary": "Get all RFIs",
        "description": "Retrieve a list of requests for information (RFIs) raised against your developer or customer accounts",
        "tags": [
          "RFIs"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitParameter"
          },
          {
            "$ref": "#/components/parameters/RfiStartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/RfiEndingBeforeParameter"
          },
          {
            "$ref": "#/components/parameters/CustomerIDQueryParameter"
          },
          {
            "$ref": "#/components/parameters/RfiStateParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "List of RFIs",
            "content": {
              "application/json": {
                "schema": {
                  "title": "List of RFIs",
                  "type": "object",
                  "required": [
                    "count",
                    "data"
                  ],
                  "properties": {
                    "count": {
                      "type": "integer",
                      "description": "The number of items returned"
                    },
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/Rfi"
                      }
                    }
                  }
                },
                "examples": {
                  "RfiListResponse": {
                    "$ref": "#/components/examples/RfiListResponse"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/rfis/{rfiID}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/RfiIDParameter"
        }
      ],
      "get": {
        "summary": "Get an RFI",
        "description": "Retrieve a single request for information (RFI) by id",
        "tags": [
          "RFIs"
        ],
        "responses": {
          "200": {
            "description": "Successful RFI response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Rfi"
                },
                "examples": {
                  "RfiResponse": {
                    "$ref": "#/components/examples/RfiResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/rfis/{rfiID}/responses": {
      "parameters": [
        {
          "$ref": "#/components/parameters/RfiIDParameter"
        },
        {
          "$ref": "#/components/parameters/IdempotencyKeyParameter"
        }
      ],
      "post": {
        "summary": "Submit responses to an RFI",
        "description": "Submits one or more responses to outstanding requested items on an RFI.\nAll responses are applied atomically — any failure rolls back the entire batch.\n\n**Required scope:** `customer:write`\n\nField names encode whether the value is a scalar or a list. Fields ending\nin `_list` accept one or more values; all other fields accept a single value.\n\n| Field | Type | Notes |\n|---|---|---|\n| `text` | string | Single text value (e.g. name, description) |\n| `text_list` | array of strings | Multiple text values (e.g. nationalities, industries) |\n| `date` | string | ISO 8601 date (`YYYY-MM-DD`) |\n| `address` | object | Postal address |\n| `boolean` | boolean | `true` or `false`; `false` is a valid answer |\n| `free_text_explanation` | string | Supplemental explanation; accepted alongside most other fields |\n| `identifying_information_list` | array of objects | ID documents or tax IDs |\n| `document_list` | array of objects | File attachments (base64 data-URI); maximum 24MB total per item |\n\nMost items accept more than one field. You may submit any or all of the\naccepted fields in a single response object; Bridge processes each one you provide.\n\nUse `GET /rfis/{id}` to retrieve the RFI and inspect each item's `response_types`\narray to see which fields are accepted for that item.\n",
        "tags": [
          "RFIs"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PostRfiResponsesInput"
              },
              "examples": {
                "freeText": {
                  "summary": "Free-text prompt response",
                  "value": {
                    "responses": [
                      {
                        "requested_item_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "free_text_explanation": "Personal savings accumulated over several years."
                      }
                    ]
                  }
                },
                "freeTextWithDocument": {
                  "summary": "Free-text prompt response with supporting document",
                  "value": {
                    "responses": [
                      {
                        "requested_item_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "free_text_explanation": "Personal savings accumulated over several years.",
                        "document_list": [
                          {
                            "file": "data:application/pdf;base64,JVBERi0xLjQK...",
                            "description": "bank statement"
                          }
                        ]
                      }
                    ]
                  }
                },
                "singleTextField": {
                  "summary": "Single-value text field (e.g. first name)",
                  "value": {
                    "responses": [
                      {
                        "requested_item_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "text": "Jane"
                      }
                    ]
                  }
                },
                "multiValueTextField": {
                  "summary": "Multi-value text field (e.g. nationalities)",
                  "value": {
                    "responses": [
                      {
                        "requested_item_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "text_list": [
                          "USA",
                          "GBR"
                        ]
                      }
                    ]
                  }
                },
                "address": {
                  "summary": "Address response",
                  "value": {
                    "responses": [
                      {
                        "requested_item_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "address": {
                          "street_line_1": "123 Main St",
                          "street_line_2": "Apt 4B",
                          "city": "San Francisco",
                          "subdivision": "CA",
                          "postal_code": "94105",
                          "country": "USA"
                        }
                      }
                    ]
                  }
                },
                "date": {
                  "summary": "Date response (e.g. date of birth)",
                  "value": {
                    "responses": [
                      {
                        "requested_item_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "date": "1990-06-15"
                      }
                    ]
                  }
                },
                "boolean": {
                  "summary": "Boolean response (e.g. has AML policies)",
                  "value": {
                    "responses": [
                      {
                        "requested_item_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "boolean": true
                      }
                    ]
                  }
                },
                "taxId": {
                  "summary": "Tax identification number response",
                  "value": {
                    "responses": [
                      {
                        "requested_item_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "identifying_information_list": [
                          {
                            "type": "ssn",
                            "issuing_country": "USA",
                            "number": "123-45-6789"
                          }
                        ]
                      }
                    ]
                  }
                },
                "governmentId": {
                  "summary": "Government-issued ID response",
                  "value": {
                    "responses": [
                      {
                        "requested_item_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "identifying_information_list": [
                          {
                            "type": "passport",
                            "issuing_country": "USA",
                            "number": "A12345678",
                            "expiration": "2030-01-01",
                            "image_front": "data:image/jpeg;base64,/9j/4AAQSkZJRgAB...",
                            "image_back": "data:image/jpeg;base64,/9j/4AAQSkZJRgAB..."
                          }
                        ]
                      }
                    ]
                  }
                },
                "document": {
                  "summary": "Document upload response",
                  "value": {
                    "responses": [
                      {
                        "requested_item_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "document_list": [
                          {
                            "file": "data:application/pdf;base64,JVBERi0xLjQK...",
                            "description": "Certificate of incorporation"
                          }
                        ]
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "All responses accepted and applied.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "One of the following:\n- An `identifying_information_list` entry contains a `type` value from the wrong enum\n  (e.g. a government-ID type supplied for a TIN item, or a TIN type supplied for a government-ID item).\n- A response field was supplied that is not accepted for the given item's type.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "422": {
            "description": "One of the following:\n- A `requested_item_id` does not belong to this RFI.\n- The required response field for the item's kind is absent or empty.\n- The RFI is in `closed` or `draft` state.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/static_memos/history": {
      "parameters": [
        {
          "$ref": "#/components/parameters/DepositIDQueryParameter"
        },
        {
          "$ref": "#/components/parameters/DepositIDsQueryParameter"
        },
        {
          "$ref": "#/components/parameters/TxHashParameter"
        },
        {
          "$ref": "#/components/parameters/LimitParameter"
        },
        {
          "$ref": "#/components/parameters/EventStartingAfterParameter"
        },
        {
          "$ref": "#/components/parameters/EventEndingBeforeParameter"
        },
        {
          "$ref": "#/components/parameters/EventTypeParameter"
        }
      ],
      "get": {
        "summary": "Static Memo Activity Across All Customers",
        "tags": [
          "Static Memos"
        ],
        "description": "History of activity across all customers and Virtual Accounts",
        "responses": {
          "200": {
            "description": "List of Static Memo events",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Static Memo history",
                  "type": "object",
                  "required": [
                    "count",
                    "data"
                  ],
                  "properties": {
                    "count": {
                      "type": "integer",
                      "description": "The number of events returned"
                    },
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/StaticMemoEvent"
                      }
                    }
                  }
                },
                "examples": {
                  "History": {
                    "$ref": "#/components/examples/StaticMemoHistoryExample"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/funds_requests": {
      "get": {
        "summary": "Get all funds requests",
        "description": "Retrieve a list of all funds requests submitted by partnered banks and financial institutions",
        "tags": [
          "Funds Requests"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitParameter"
          },
          {
            "$ref": "#/components/parameters/FundsRequestStartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/FundsRequestEndingBeforeParameter"
          },
          {
            "$ref": "#/components/parameters/CustomerIDQueryParameter"
          },
          {
            "$ref": "#/components/parameters/FraudParameter"
          },
          {
            "$ref": "#/components/parameters/NoticeDateStartingOnParameter"
          },
          {
            "$ref": "#/components/parameters/NoticeDateEndingOnParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "List of funds requests",
            "content": {
              "application/json": {
                "schema": {
                  "title": "List of funds requests",
                  "type": "object",
                  "required": [
                    "count",
                    "data"
                  ],
                  "properties": {
                    "count": {
                      "type": "integer",
                      "description": "The number of items returned"
                    },
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/FundsRequest"
                      }
                    }
                  }
                },
                "examples": {
                  "FundsRequestsResponse": {
                    "$ref": "#/components/examples/FundsRequestsResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/webhooks": {
      "get": {
        "summary": "Get all webhook endpoints",
        "description": "Get the full list of active and disabled webhook endpoints configured on Bridge",
        "tags": [
          "Webhooks"
        ],
        "responses": {
          "200": {
            "description": "List of webhook endpoints (the returned list is empty if none found)",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Webhooks",
                  "type": "object",
                  "required": [
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/Webhook"
                      }
                    }
                  }
                },
                "examples": {
                  "WebhooksFound": {
                    "summary": "A non-empty list of webhook endpoints",
                    "value": {
                      "data": [
                        {
                          "id": "wep_123",
                          "url": "https://my_endpoint.xyz/hooks",
                          "status": "active",
                          "public_key": "-----BEGIN PUBLIC KEY-----\\nFAKEhFnaPLmxxG4a5w0BAQEFAAOCAQ8AMIIBCgKCAQEAtYhc6PV2LOs/nqDRHi0B\\nMKTsdMLHtg58a1NDxaYfw4IZJ3hpy1qIFUgt5X0HhCYZE0Y40MyLGIejPyitEjYw\\ni9/aE+9F/PN+btqN7OK6cVuF9s/R9cZCtNc27UdTQXrUO5T8GXNAMmRr0KFh8yPv\\nfIgpoZn5ZhnyRbZpDvrxHzLmcZJFAX8Ca+KZLzgGVybEqJtP6fKAT0zrrUS1z44s\\nRDOLiXl543cRAmBnUyrT6cXiNz/PNbm4zRK5Nx7LGxBFrCWQCao4Yi8hrwWsnHxg\\n0Tcy3UyZhAcgL6ydVJfLD5x58Ri4BN32WPBtgSSO6JxZZwCiX0d1BOgq7+eNgmzN\\nJQIDAQAB\\n-----END PUBLIC KEY-----\\n"
                        },
                        {
                          "id": "wep_456",
                          "url": "https://my_endpoint.xyz/hooks",
                          "status": "active",
                          "public_key": "-----BEGIN PUBLIC KEY-----\\nFAKEc27UdTQxxG4a5w0BAQEFAAOCAQ8AMIIBCgKCAQEAtYhc6PV2LOs/nqDRHi0B\\nMKTsdMLHtg58a1NDxaYfw4IZJ3hpy1qIFUgt5X0HhCYZE0Y40MyLGIejPyitEjYw\\ni9/aE+9F/PN+btqN7OK6cVuF9sxG4a5w0BAQEXrUO5T8GXNAMmRr0KFh8yPv\\nfIgpoZn5ZhnyRbZpDvrxHzLmcZJFAX8Ca+KZLzgGVybEqJtP6fKAT0zrrUS1z44s\\nRDOLiXl543cRAmBnUyrT6cXiNz/PNbm4zRK5Nx7LGxBFrCWQCao4Yi8hrwWsnHxg\\n0Tcy3UyZhAcgL6ydVJfLD5x58Ri4BN32WPBtgSSO6JxZZwCiX0d1BOgq7+eNgmzN\\nJQIDAQAB\\n-----END PUBLIC KEY-----\\n"
                        }
                      ]
                    }
                  },
                  "NoWebhooksFound": {
                    "summary": "An empty list of webhook endpoints",
                    "value": {
                      "data": []
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      },
      "post": {
        "summary": "Create a webhook endpoint",
        "description": "Create a new webhook endpoint to receive events from Bridge. Webhook endpoints begin in a disabled state and can be enabled with a PUT request. A maximum of 5 webhooks can be active or disabled at one time. Webhook endpoints can be created in Sandbox, but no webhook events will be sent.",
        "tags": [
          "Webhooks"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          }
        ],
        "requestBody": {
          "description": "Information about the webhook endpoint to be created",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWebhook"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Webhook endpoint created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Webhook"
                },
                "examples": {
                  "SuccessfulWebhookCreateResponse": {
                    "summary": "Webhook created",
                    "$ref": "#/components/examples/SuccessfulWebhookCreateResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/webhooks/{webhookID}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/WebhookIDParameter"
        }
      ],
      "put": {
        "summary": "Update a webhook",
        "description": "Update the specified webhook object",
        "tags": [
          "Webhooks"
        ],
        "requestBody": {
          "description": "Updated webhook endpoint object",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PutWebhookPayload"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful webhook object response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Webhook"
                },
                "examples": {
                  "SuccessfulWebhookResponse": {
                    "$ref": "#/components/examples/SuccessfulWebhookUpdateResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      },
      "delete": {
        "summary": "Delete a webhook",
        "tags": [
          "Webhooks"
        ],
        "description": "Delete the specified webhook object. This webhook will no longer be accessible via API.",
        "responses": {
          "200": {
            "description": "Successfully deleted webhook response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Webhook"
                },
                "examples": {
                  "DeletedCustomerResponse": {
                    "$ref": "#/components/examples/SuccessfulWebhookDeleteResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/webhooks/{webhookID}/events": {
      "parameters": [
        {
          "$ref": "#/components/parameters/WebhookIDParameter"
        }
      ],
      "get": {
        "summary": "List upcoming events",
        "description": "List the next 10 events that will be delivered to the specified webhook.",
        "tags": [
          "Webhooks"
        ],
        "responses": {
          "200": {
            "description": "List of events (the returned list is empty if none found)",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Webhook Events",
                  "type": "object",
                  "required": [
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/WebhookEvent"
                      }
                    }
                  }
                },
                "examples": {
                  "WebhookEventsFound": {
                    "summary": "A non-empty list of webhook events",
                    "value": {
                      "data": [
                        {
                          "api_version": "v0",
                          "event_id": "wh_tmneA3b1rTv1q4gkvmPU53n",
                          "event_developer_id": "2d127766-02fa-44b0-9fc8-a67665dbf109",
                          "event_sequence": 1,
                          "event_category": "transfer",
                          "event_type": "transfer.deleted",
                          "event_object_id": "cc598628-29ab-448e-851f-7aaffb1a1171",
                          "event_object_status": null,
                          "event_object": {
                            "id": "cc598628-29ab-448e-851f-7aaffb1a1171",
                            "state": "awaiting_funds",
                            "amount": "50.0",
                            "source": {
                              "currency": "usdc",
                              "from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
                              "payment_rail": "ethereum"
                            },
                            "receipt": {
                              "gas_fee": "0.0",
                              "exchange_fee": "0.0",
                              "final_amount": "50.0",
                              "developer_fee": "0.0",
                              "initial_amount": "50.0",
                              "subtotal_amount": "50.0",
                              "url": "https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000"
                            },
                            "currency": "usd",
                            "created_at": "2024-05-02T17:48:19.366Z",
                            "updated_at": "2024-05-02T17:48:19.366Z",
                            "destination": {
                              "currency": "usd",
                              "payment_rail": "ach",
                              "external_account_id": "24fd61e9-80b6-464a-b5ee-9f7a521cb1f0"
                            },
                            "on_behalf_of": "474c32b3-f3d6-43e3-92ce-a7d4e07fa0a4",
                            "developer_fee": "0.0",
                            "source_deposit_instructions": {
                              "amount": "50.0",
                              "currency": "usdc",
                              "to_address": null,
                              "from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
                              "payment_rail": "ethereum"
                            }
                          },
                          "event_object_changes": {
                            "state": [
                              "pending",
                              "canceled"
                            ],
                            "updated_at": [
                              "2024-05-02T15:14:02.842Z",
                              "2024-05-02T15:15:07.163Z"
                            ]
                          },
                          "event_created_at": "2024-05-02T17:48:19.465Z"
                        }
                      ]
                    }
                  },
                  "NoWebhooksFound": {
                    "summary": "An empty list of webhook events",
                    "value": {
                      "data": []
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/webhooks/{webhookID}/logs": {
      "parameters": [
        {
          "$ref": "#/components/parameters/WebhookIDParameter"
        }
      ],
      "get": {
        "summary": "View logs",
        "description": "Display the most recent logs for deliveries to the specified webhook.",
        "tags": [
          "Webhooks"
        ],
        "responses": {
          "200": {
            "description": "Recent delivery looks for the webhook (the returned list is empty if none found)",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Delivery Logs",
                  "type": "object",
                  "required": [
                    "count",
                    "data"
                  ],
                  "properties": {
                    "count": {
                      "type": "integer",
                      "description": "The number of logs returned"
                    },
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/WebhookEventDeliveryLog"
                      }
                    }
                  }
                },
                "examples": {
                  "WebhookEventsFound": {
                    "summary": "A non-empty list of webhook events",
                    "value": {
                      "count": 2,
                      "data": [
                        {
                          "status": 200,
                          "event_id": "wh_event_id_123",
                          "response_body": "{\"message\":\"OK\"}",
                          "created_at": "2024-01-01T00:00:00.000Z"
                        },
                        {
                          "status": 200,
                          "event_id": "wh_event_id_456",
                          "response_body": "{\"message\":\"OK\"}",
                          "created_at": "2024-01-01T00:00:00.000Z"
                        }
                      ]
                    }
                  },
                  "NoWebhookEventsFound": {
                    "summary": "An empty list of webhook events",
                    "value": {
                      "data": []
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/webhooks/{webhookID}/send": {
      "parameters": [
        {
          "$ref": "#/components/parameters/WebhookIDParameter"
        },
        {
          "$ref": "#/components/parameters/IdempotencyKeyParameter"
        }
      ],
      "post": {
        "summary": "Send event",
        "description": "Send an event to the specified webhook endpoint. This will not effect other events in the delivery queue. This operation is possible for both active and disabled webhook endpoints.",
        "tags": [
          "Webhooks"
        ],
        "requestBody": {
          "description": "Specify the event to send to your endpoint.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SendWebhookPayload"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Event sent successfully",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Webhook Event Sent",
                  "type": "object",
                  "required": [
                    "message"
                  ],
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Message indicating the status of the request"
                    }
                  }
                },
                "examples": {
                  "WebhookEventSendSuccessResponse": {
                    "$ref": "#/components/examples/WebhookEventSendSuccessResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/webhook_events": {
      "get": {
        "summary": "List webhook events",
        "description": "List all webhook events for your account. Events are ordered by their event_sequence in ascending order. Results are limited to the events created in last 90 days.",
        "tags": [
          "Webhooks"
        ],
        "parameters": [
          {
            "name": "starting_after",
            "in": "query",
            "description": "Cursor for forward pagination. Returns events after the specified event ID.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "wh_123abc"
          },
          {
            "name": "ending_before",
            "in": "query",
            "description": "Cursor for backward pagination. Returns events before the specified event ID.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of events to return (1-500, default 100).",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 500,
              "default": 100
            }
          },
          {
            "name": "category",
            "in": "query",
            "description": "Filter events by category.",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "customer",
                "external_account",
                "kyc_link",
                "liquidation_address",
                "liquidation_address.drain",
                "static_memo.activity",
                "transfer",
                "virtual_account",
                "virtual_account.activity",
                "bridge_wallet.activity",
                "shift4_base_deposit",
                "indexed_deposit",
                "card_account",
                "posted_card_account_transaction",
                "card_transaction",
                "card_withdrawal"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of webhook events",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data",
                    "count"
                  ],
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/WebhookEvent"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "Number of webhook events returned in this response"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/associated_persons/{associatedPersonID}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/AssociatedPersonIDParameter"
        }
      ],
      "get": {
        "summary": "Get a single associated person",
        "tags": [
          "Associated Persons"
        ],
        "description": "Retrieve an associated person by ID",
        "responses": {
          "200": {
            "description": "Successful associated person response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssociatedPersonResponse"
                },
                "examples": {
                  "SuccessfulAssociatedPersonResponse": {
                    "$ref": "#/components/examples/SuccessfulAssociatedPersonResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      },
      "put": {
        "summary": "Update a single associated person",
        "tags": [
          "Associated Persons"
        ],
        "requestBody": {
          "description": "Associated person data to update",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssociatedPerson"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated associated person",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssociatedPersonResponse"
                },
                "examples": {
                  "SuccessfulAssociatedPersonResponse": {
                    "$ref": "#/components/examples/SuccessfulAssociatedPersonResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      },
      "delete": {
        "summary": "Delete a single associated person",
        "tags": [
          "Associated Persons"
        ],
        "description": "Delete an associated person by ID",
        "responses": {
          "200": {
            "description": "Successfully deleted associated person",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssociatedPersonResponse"
                },
                "examples": {
                  "SuccessfulAssociatedPersonResponse": {
                    "$ref": "#/components/examples/SuccessfulAssociatedPersonResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/travel_rule_data/{id}": {
      "post": {
        "summary": "Submit travel rule data.",
        "tags": [
          "Travel Rule"
        ],
        "description": "Use this endpoint to submit originator, beneficiary, and transfer purpose data for travel rule compliance.\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the resource to associate with this Travel Rule payload. Supported IDs include transfer IDs, virtual account IDs, virtual account event IDs, liquidation address IDs, bridge wallet event IDs, and drain IDs.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The Travel Rule payload to associate with the specified resource.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TravelRuleData"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Travel Rule data processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message"
                  ],
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Message indicating the status of the request."
                    }
                  }
                },
                "examples": {
                  "TravelRuleDataProcessed": {
                    "summary": "A successful Travel Rule submission",
                    "value": {
                      "message": "Travel rule data processed successfully"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/exchange_rates": {
      "get": {
        "summary": "Get current exchange rate between two currencies.",
        "description": "Returns the current exchange rate from the \"from\" currency to the \"to\" currency.\nThe exchange rate is updated roughly every 30s. Note that as of this writing,\nBridge does not offer a \"quote\" by which a user can lock in a rate for a given\namount of time. This is provided only as a courtesy to estimate what you are\nlikely to get in a subsequent transfer request that involves currency exchange.\n\nAs of March 2026, we support:\n  - `USD <> BRL`\n  - `USD <> COP`\n  - `USD <> EUR`\n  - `USD <> GBP`\n  - `USD <> MXN`\n  - `USD <> USDT`\n",
        "tags": [
          "Exchange Rates"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "from",
            "required": true,
            "description": "The currency code to convert from.",
            "example": "usd",
            "schema": {
              "type": "string",
              "enum": [
                "brl",
                "cop",
                "eur",
                "gbp",
                "mxn",
                "usd",
                "usdt"
              ]
            }
          },
          {
            "in": "query",
            "name": "to",
            "required": true,
            "description": "The currency code to convert to.",
            "example": "eur",
            "schema": {
              "type": "string",
              "enum": [
                "brl",
                "cop",
                "eur",
                "gbp",
                "mxn",
                "usd",
                "usdt"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The exchange rate information.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "midmarket_rate": {
                      "type": "string",
                      "example": "0.93425",
                      "description": "The midmarket exchange rate."
                    },
                    "buy_rate": {
                      "type": "string",
                      "example": "0.9389",
                      "description": "The rate for buying the target currency, including Bridge's fee."
                    },
                    "sell_rate": {
                      "type": "string",
                      "example": "0.9296",
                      "description": "The rate for selling the target currency, including Bridge's fee."
                    },
                    "updated_at": {
                      "type": "string",
                      "format": "date-time",
                      "example": "2026-01-15T12:00:00.000Z",
                      "description": "The timestamp when the exchange rate was last collected from the market data provider."
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/lists/occupation_codes": {
      "get": {
        "summary": "Get occupation codes",
        "description": "Provide this list of occupation codes to your users as possible answers to the Source of Funds section in the KYC flow. The returned list will resemble the list of occupation codes found [here](https://apidocs.bridge.xyz/page/sof-eu-most-recent-occupation-list).\n",
        "tags": [
          "Lists"
        ],
        "responses": {
          "200": {
            "description": "The list of occupations that can be used during the KYC flow.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "display_name": {
                        "type": "string",
                        "example": "Accountant and auditor",
                        "description": "Human readable name that customers can select."
                      },
                      "code": {
                        "type": "string",
                        "example": "132011",
                        "description": "The corresponding code that should be sent to the Bridge API representing the customers selection."
                      }
                    }
                  }
                },
                "examples": {
                  "OccupationCodesSuccessResponse": {
                    "$ref": "#/components/examples/OccupationCodesSuccessResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/lists/countries": {
      "get": {
        "summary": "Get countries",
        "description": "Returns a list of countries and subdivisions recognized by Bridge. Inclusion in this list does not guarantee Bridge product support for any country or subdivision.",
        "tags": [
          "Lists"
        ],
        "responses": {
          "200": {
            "description": "List of supported countries",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Countries",
                  "type": "object",
                  "required": [
                    "count",
                    "data"
                  ],
                  "properties": {
                    "count": {
                      "description": "The total number of countries recognized by Bridge",
                      "type": "integer"
                    },
                    "data": {
                      "type": "array",
                      "description": "The list of countries recognized by Bridge",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/Country"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/crypto_return_policies": {
      "get": {
        "summary": "Get all crypto return policies",
        "tags": [
          "Crypto Return Policies"
        ],
        "description": "Retrieve all crypto return policies for the authenticated developer",
        "responses": {
          "200": {
            "description": "List of crypto return policies",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CryptoReturnPolicy"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      },
      "post": {
        "summary": "Create a new crypto return policy",
        "tags": [
          "Crypto Return Policies"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          }
        ],
        "requestBody": {
          "description": "Crypto return policy object to be created",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PostCryptoReturnPoliciesInput"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Crypto return policy created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CryptoReturnPolicy"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/crypto_return_policies/{policyID}": {
      "parameters": [
        {
          "name": "policyID",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "put": {
        "summary": "Update an existing crypto return policy",
        "tags": [
          "Crypto Return Policies"
        ],
        "requestBody": {
          "description": "Crypto return policy object to be updated",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PostCryptoReturnPoliciesInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Crypto return policy updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CryptoReturnPolicy"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      },
      "delete": {
        "summary": "Delete a single crypto return policy object",
        "tags": [
          "Crypto Return Policies"
        ],
        "description": "Delete a crypto return policy object from the passed in crypto return policy ID",
        "responses": {
          "200": {
            "description": "Successfully deleted crypto return policy object response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CryptoReturnPolicy"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/card_accounts/{cardAccountID}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/CustomerIDParameter"
        },
        {
          "$ref": "#/components/parameters/CardAccountIDParameter"
        }
      ],
      "get": {
        "summary": "Retrieve a card account",
        "tags": [
          "Cards"
        ],
        "description": "Retrieve the card account with the specified ID",
        "responses": {
          "200": {
            "description": "The retrieved card account",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardAccount"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      },
      "put": {
        "summary": "Update a card account",
        "description": "Update a card account. Supports changing the settlement currency or closing a card account by setting the status to \"inactive\". Closing permanently cancels all associated cards and is irreversible.",
        "tags": [
          "Cards"
        ],
        "requestBody": {
          "description": "The card account update",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "currency": {
                    "type": "string",
                    "description": "The new settlement currency for the card account."
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "inactive"
                    ],
                    "description": "The desired status for the card account. Currently only \"inactive\" is supported."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The updated card account",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardAccount"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/card_accounts": {
      "get": {
        "summary": "Get all card accounts",
        "tags": [
          "Cards"
        ],
        "description": "Retrieve all card accounts for a customer. Currently, only one account is supported. An empty array will be returned if no card has been provisioned",
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "List of all card accounts owned by the customer",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Array of all card accounts",
                  "type": "object",
                  "required": [
                    "count",
                    "data"
                  ],
                  "properties": {
                    "count": {
                      "type": "integer",
                      "description": "The number of card accounts returned"
                    },
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/CardAccount"
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      },
      "post": {
        "summary": "Provision a card account",
        "description": "Provision a card account. NOTE: the legacy Bridge Cards API is deprecated, and stablecoin card issuing capabilities are now natively integrated into Stripe Issuing. Please see [this guide](https://apidocs.bridge.xyz/platform/cards/overview/stripe-issuing) for more details on how to enable your account for Stripe Issuing.",
        "deprecated": true,
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          },
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          }
        ],
        "requestBody": {
          "description": "The card account to be provisioned",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PostCardAccountsInput"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The successfully created card account",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardAccount"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/card_accounts/{cardAccountID}/freeze": {
      "post": {
        "summary": "Place a freeze on the card account",
        "description": "Place a freeze on the card account",
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          },
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/CardAccountIDParameter"
          }
        ],
        "requestBody": {
          "description": "The freeze to be placed on the card account",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PostCardFreezeInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The successfully placed freeze",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/CardFreeze"
                    }
                  ],
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "The processing status of the freeze request",
                      "readOnly": true,
                      "enum": [
                        "freeze_created",
                        "freeze_replaced"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/card_accounts/{cardAccountID}/unfreeze": {
      "post": {
        "summary": "Unfreeze the card account",
        "description": "Remove the freeze on the card account placed by the specified initiator",
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          },
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/CardAccountIDParameter"
          }
        ],
        "requestBody": {
          "description": "A request to unfreeze the card account",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PostCardUnfreezeInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The successfully removed freeze",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardUnfreezeResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/card_accounts/{cardAccountID}/create_mobile_wallet_provisioning_request": {
      "post": {
        "summary": "Create a mobile wallet push provisioning request",
        "description": "Create a request to push-provision a virtual card to a mobile wallet. This endpoint is part of a multiple-step integration that must be completed with each mobile wallet partner",
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          },
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/CardAccountIDParameter"
          }
        ],
        "requestBody": {
          "description": "A mobile wallet push provisioning request",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PostCardPushProvisioningInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful push provisioning response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardPushProvisioningResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/card_accounts/{cardAccountID}/authorizations": {
      "get": {
        "summary": "Retrieve pending card authorizations",
        "description": "Retrieve pending card authorizations.\nNote: this endpoint is not paginated",
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/CardAccountIDParameter"
          },
          {
            "$ref": "#/components/parameters/CardAuthorizationLimitParameter"
          },
          {
            "$ref": "#/components/parameters/StartingTimeParameter"
          },
          {
            "$ref": "#/components/parameters/EndingTimeParameter"
          },
          {
            "$ref": "#/components/parameters/CardAuthorizationStatusParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Pending card authorizations",
            "content": {
              "application/json": {
                "schema": {
                  "title": "List of pending card authorizations",
                  "type": "object",
                  "required": [
                    "count",
                    "data"
                  ],
                  "properties": {
                    "count": {
                      "type": "integer",
                      "description": "The number of card authorizations returned"
                    },
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/CardAuthorization"
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/card_accounts/{cardAccountID}/transactions": {
      "get": {
        "summary": "Retrieve card transactions",
        "description": "Retrieve completed card transactions and card-related crypto transaction activities",
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/CardAccountIDParameter"
          },
          {
            "$ref": "#/components/parameters/CardTransactionLimitParameter"
          },
          {
            "$ref": "#/components/parameters/StartingTimeParameter"
          },
          {
            "$ref": "#/components/parameters/EndingTimeParameter"
          },
          {
            "$ref": "#/components/parameters/PageSizeParameter"
          },
          {
            "$ref": "#/components/parameters/PageNumberParameter"
          },
          {
            "$ref": "#/components/parameters/CardTransactionStatusParameter"
          },
          {
            "$ref": "#/components/parameters/CardTransactionPaginationTokenParameter"
          },
          {
            "$ref": "#/components/parameters/CardTransactionCategoryFamilyParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Card transactions",
            "content": {
              "application/json": {
                "schema": {
                  "title": "List of card transactions",
                  "type": "object",
                  "required": [
                    "page",
                    "count",
                    "total_pages",
                    "total_count",
                    "data"
                  ],
                  "properties": {
                    "page": {
                      "type": "integer",
                      "description": "The current page number, starting at 1. Note that this will be returned only for navigating posted transactions."
                    },
                    "pagination_token": {
                      "type": "string",
                      "description": "The pagination token to be used to retrieve the next page of transactions. If not provided, use the `page` parameter to navigate by page number."
                    },
                    "count": {
                      "type": "integer",
                      "description": "The number of transactions returned"
                    },
                    "total_pages": {
                      "type": "integer",
                      "description": "The total number of pages"
                    },
                    "total_count": {
                      "type": "integer",
                      "description": "The total number of transactions"
                    },
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/CardTransaction"
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/card_accounts/{cardAccountID}/transactions/{transactionID}": {
      "get": {
        "summary": "Retrieve a card transaction",
        "description": "Retrieve a card transaction with the specified ID",
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/CardAccountIDParameter"
          },
          {
            "$ref": "#/components/parameters/CardTransactionIDParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Card transactions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardTransaction"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/card_accounts/{cardAccountID}/auth_controls": {
      "get": {
        "summary": "Retrieve authorization controls",
        "description": "Retrieve the applicable spend limits for the given card account",
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/CardAccountIDParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The authorization controls",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Authorization controls",
                  "type": "object",
                  "required": [
                    "customer_id",
                    "card_account_id",
                    "spending_limits"
                  ],
                  "properties": {
                    "customer_id": {
                      "type": "string",
                      "description": "The ID of the customer"
                    },
                    "card_account_id": {
                      "type": "string",
                      "description": "The ID of the card account"
                    },
                    "spending_limits": {
                      "type": "array",
                      "description": "The various spending limits for the card account for the current time period",
                      "items": {
                        "$ref": "#/components/schemas/CardSpendingLimit"
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/card_accounts/{cardAccountID}/deposit_addresses": {
      "post": {
        "summary": "Provision an additional top-up deposit address for the card account",
        "description": "Provision an additional deposit address for the card account, to allow topping up the card from multiple chains. This is only applicable to Bridge-custodied top-up card accounts. These additional deposit addresses will also be shown in the `additional_funding_instructions` field when fetching the card account details afterwards.",
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          },
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/CardAccountIDParameter"
          }
        ],
        "requestBody": {
          "description": "The chain to provision the new deposit address on.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PostCardAccountDepositAddressInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Details of the successfully created deposit address",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardAccountFundingInstructions"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/card_accounts/{cardAccountID}/withdrawals": {
      "post": {
        "summary": "Create a funds withdrawal request",
        "description": "Request a funds withdrawal from the card account, applicable to top-up accounts only. For Bridge wallets, create a [transfer](/api-reference/transfers/create-a-transfer) from the Bridge wallet.",
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          },
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/CardAccountIDParameter"
          }
        ],
        "requestBody": {
          "description": "The withdrawal request",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CardWithdrawal"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The successfully created card funds withdrawal",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardWithdrawal"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      },
      "get": {
        "summary": "Retrieve the withdrawal history of funds",
        "description": "Retrieve the withdrawal history of funds, applicable to top-up accounts only",
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/CardAccountIDParameter"
          },
          {
            "$ref": "#/components/parameters/LimitParameter"
          },
          {
            "$ref": "#/components/parameters/WithdrawalStartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/WithdrawalEndingBeforeParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The withdrawal history",
            "content": {
              "application/json": {
                "schema": {
                  "title": "List of withdrawals",
                  "type": "object",
                  "required": [
                    "count",
                    "data"
                  ],
                  "properties": {
                    "count": {
                      "type": "integer",
                      "description": "The number of withdrawals returned"
                    },
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/CardWithdrawal"
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/card_accounts/{cardAccountID}/withdrawals/{cardWithdrawalID}": {
      "get": {
        "summary": "Retrieve a card withdrawal",
        "description": "Retrieve a card withdrawal with the specified ID, applicable to top-up accounts only",
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/CardAccountIDParameter"
          },
          {
            "$ref": "#/components/parameters/CardWithdrawalIDParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The retrieved withdrawal",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardWithdrawal"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/card_accounts/{cardAccountID}/statements/{period}.pdf": {
      "post": {
        "summary": "Generate a card account statement",
        "description": "Generate a card account statement for the specified period",
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          },
          {
            "$ref": "#/components/parameters/CardAccountIDParameter"
          },
          {
            "$ref": "#/components/parameters/CardStatementPeriodParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The HTTP response that includes a PDF file as an attachment, with the `Content-Type` set to `application/pdf` and the `Content-Disposition` header configured to indicate it is a statement PDF attachment",
            "content": {
              "application/pdf": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            },
            "headers": {
              "Content-Disposition": {
                "description": "Indicates the content is an attachment with a statement PDF file",
                "schema": {
                  "type": "string",
                  "example": "inline; filename=\"statement_202412.pdf\"; filename*=UTF-8''statement_202412.pdf"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/cardholders/{cardholderID}/cards/{cardID}/statements/{period}.pdf": {
      "post": {
        "summary": "Generate a card statement using Stripe IDs",
        "description": "Generate a card account statement for the specified period, using Stripe cardholder and card IDs instead of Bridge internal IDs",
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "name": "cardholderID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The Stripe cardholder ID (e.g. `ich_...`)"
          },
          {
            "name": "cardID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The Stripe card ID (e.g. `ic_...`)"
          },
          {
            "$ref": "#/components/parameters/CardStatementPeriodParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The HTTP response that includes a PDF file as an attachment, with the `Content-Type` set to `application/pdf` and the `Content-Disposition` header configured to indicate it is a statement PDF attachment",
            "content": {
              "application/pdf": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            },
            "headers": {
              "Content-Disposition": {
                "description": "Indicates the content is an attachment with a statement PDF file",
                "schema": {
                  "type": "string",
                  "example": "inline; filename=\"statement_202412.pdf\"; filename*=UTF-8''statement_202412.pdf"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/liquidation_addresses/drains": {
      "get": {
        "summary": "Liquidation Address Activity Across All Customers",
        "description": "History of activity across all customers and Liquidation Addresses",
        "tags": [
          "Liquidation Addresses"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/TxHashParameter"
          },
          {
            "$ref": "#/components/parameters/LimitParameter"
          },
          {
            "$ref": "#/components/parameters/DrainStartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/DrainEndingBeforeParameter"
          },
          {
            "$ref": "#/components/parameters/UpdatedAfterMsParameter"
          },
          {
            "$ref": "#/components/parameters/UpdatedBeforeMsParameter"
          },
          {
            "$ref": "#/components/parameters/DrainIDQueryParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "List of drains for all liquidation addresses (the returned list is empty if none found)",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Liquidation Address history",
                  "type": "object",
                  "required": [
                    "count",
                    "data"
                  ],
                  "properties": {
                    "count": {
                      "type": "integer",
                      "description": "The number of events returned"
                    },
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/Drain"
                      }
                    }
                  }
                },
                "examples": {
                  "DrainsToCryptoFound": {
                    "$ref": "#/components/examples/SuccessfulLiquidationAddressDrainsToCryptoResponse"
                  },
                  "DrainsToFiatFound": {
                    "$ref": "#/components/examples/SuccessfulLiquidationAddressDrainsToFiatResponse"
                  },
                  "ReturnedDrainsFound": {
                    "$ref": "#/components/examples/ReturnedLiquidationAddressDrainsResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/liquidation_addresses/drains/pending": {
      "get": {
        "summary": "List drains with pending USDT trades",
        "description": "Returns drains that have a stuck USDT-to-USD trade awaiting execution. Results are sorted by creation time (newest first) and paginated.\n\nUse `POST /customers/{customerID}/liquidation_addresses/{liquidationAddressID}/drains/{drainID}/execute` to force-execute a pending trade at the current market rate.\n",
        "tags": [
          "Liquidation Addresses"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitParameter"
          },
          {
            "$ref": "#/components/parameters/DrainStartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/DrainEndingBeforeParameter"
          },
          {
            "$ref": "#/components/parameters/UpdatedAfterMsParameter"
          },
          {
            "$ref": "#/components/parameters/UpdatedBeforeMsParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "List of drains with pending trades (the returned list is empty if none found)",
            "content": {
              "application/json": {
                "schema": {
                  "title": "PendingDrains",
                  "type": "object",
                  "required": [
                    "count",
                    "data"
                  ],
                  "properties": {
                    "count": {
                      "type": "integer",
                      "description": "The number of drains returned"
                    },
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/Drain"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/fees/configurations": {
      "get": {
        "summary": "Get all Developer Fee Configs",
        "description": "Beta: available by request only. Contact Bridge to enable this feature for your developer account.\n\nList Developer Fee Configs for the current developer.\n",
        "tags": [
          "Developer Fees"
        ],
        "x-hidden": true,
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitParameter"
          },
          {
            "$ref": "#/components/parameters/DeveloperFeeConfigStartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/DeveloperFeeConfigEndingBeforeParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "List of Developer Fee Configs (the returned list is empty if none found)",
            "content": {
              "application/json": {
                "schema": {
                  "title": "DeveloperFeeConfigs",
                  "type": "object",
                  "required": [
                    "count",
                    "data"
                  ],
                  "properties": {
                    "count": {
                      "description": "total number of items in data",
                      "type": "integer"
                    },
                    "data": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/DeveloperFeeConfig"
                      }
                    }
                  }
                },
                "example": {
                  "count": 1,
                  "data": [
                    {
                      "id": "dfc_123",
                      "name": "Standard partner rate",
                      "schema": "v1",
                      "default_fee_percentage": "0.1",
                      "source_asset_fee": {
                        "usdc": "0.05",
                        "usdt": "0.2"
                      },
                      "description": null,
                      "created_at": "2023-11-22T21:31:30.515Z",
                      "updated_at": "2023-11-22T21:31:30.515Z"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/DeveloperFeeConfigAuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      },
      "post": {
        "summary": "Create a Developer Fee Config",
        "description": "Beta: available by request only. Contact Bridge to enable this feature for your developer account.\n\nCreate a Developer Fee Config.\n",
        "tags": [
          "Developer Fees"
        ],
        "x-hidden": true,
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          }
        ],
        "requestBody": {
          "description": "Developer Fee Config details to be created",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDeveloperFeeConfig"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "A Developer Fee Config object response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeveloperFeeConfig"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/DeveloperFeeConfigAuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/DeveloperFeeConfigBadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/fees/configurations/{developerFeeConfigID}": {
      "get": {
        "summary": "Get a Developer Fee Config",
        "description": "Beta: available by request only. Contact Bridge to enable this feature for your developer account.\n\nRetrieve a Developer Fee Config for the specified Developer Fee Config ID.\n",
        "tags": [
          "Developer Fees"
        ],
        "x-hidden": true,
        "parameters": [
          {
            "$ref": "#/components/parameters/DeveloperFeeConfigIDParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A Developer Fee Config object response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeveloperFeeConfig"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/DeveloperFeeConfigAuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "404": {
            "$ref": "#/components/responses/DeveloperFeeConfigNotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      },
      "put": {
        "summary": "Update a Developer Fee Config",
        "description": "Beta: available by request only. Contact Bridge to enable this feature for your developer account.\n\nFully replaces the Developer Fee Config for the specified Developer Fee Config ID.\n",
        "tags": [
          "Developer Fees"
        ],
        "x-hidden": true,
        "parameters": [
          {
            "$ref": "#/components/parameters/DeveloperFeeConfigIDParameter"
          }
        ],
        "requestBody": {
          "description": "Developer Fee Config details to fully replace the existing config",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDeveloperFeeConfig"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A Developer Fee Config object response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeveloperFeeConfig"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/DeveloperFeeConfigAuthenticationError"
          },
          "400": {
            "$ref": "#/components/responses/DeveloperFeeConfigBadRequestError"
          },
          "404": {
            "$ref": "#/components/responses/DeveloperFeeConfigNotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/rewards/{currency}": {
      "get": {
        "summary": "Get a summary of all rewards for a given stablecoin",
        "description": "Get a summary of all rewards for a given stablecoin",
        "tags": [
          "Rewards"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/RewardCurrencyParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The summary of all rewards for a given stablecoin",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeveloperRewardSummary"
                },
                "examples": {
                  "RewardSummary": {
                    "$ref": "#/components/examples/DeveloperRewardSummary"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/rewards/{currency}/history": {
      "get": {
        "summary": "Get daily reward history for a stablecoin",
        "description": "Returns paginated daily reward records with per-provider breakdowns, AUM, fees, and distribution status. Data is calculated with a t-2 business day lag; the most recent available record corresponds to two business days prior to the current date.",
        "tags": [
          "Rewards"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/RewardCurrencyParameter"
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 90,
              "default": 30
            },
            "description": "Number of days to return per page"
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Pagination cursor from a previous response"
          }
        ],
        "responses": {
          "200": {
            "description": "Daily reward history",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeveloperRewardHistory"
                },
                "examples": {
                  "DeveloperRewardHistory": {
                    "$ref": "#/components/examples/DeveloperRewardHistory"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/rewards/{currency}/customer/{customerID}": {
      "get": {
        "summary": "Get a summary of a customer's rewards",
        "description": "Get a summary of a customer's rewards",
        "tags": [
          "Rewards"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/RewardCurrencyParameter"
          },
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The summary of a customer's rewards",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerRewardSummary"
                },
                "examples": {
                  "CustomerRewardSummary": {
                    "$ref": "#/components/examples/CustomerRewardSummary"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/rewards/{currency}/customer/{customerID}/history": {
      "get": {
        "summary": "Get a history of a customer's rewards",
        "description": "Get a history of a customer's rewards. Data is calculated with a t-2 business day lag; the most recent available record corresponds to two business days prior to the current date.",
        "tags": [
          "Rewards"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/RewardCurrencyParameter"
          },
          {
            "$ref": "#/components/parameters/CustomerIDParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The history of a customer's rewards",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerRewardHistory"
                },
                "examples": {
                  "CustomerRewardHistory": {
                    "$ref": "#/components/examples/CustomerRewardHistory"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    },
    "/customers/{customerID}/simulate_kyc_approval": {
      "parameters": [
        {
          "$ref": "#/components/parameters/CustomerIDParameter"
        }
      ],
      "post": {
        "summary": "Simulate KYC approval (sandbox only)",
        "tags": [
          "Sandbox"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKeyParameter"
          }
        ],
        "description": "Simulates a KYC/KYB approval for a customer in the sandbox environment. This endpoint is not available in production.\n\nMimics what happens when a customer completes identity verification through the KYC provider in production:\n- Sets the customer's KYC status to `approved`\n- Populates required entity data (name, address, date of birth) using any data already on the customer, falling back to sandbox defaults\n- Approves any pending endorsements, enabling the customer to initiate transfers\n\nUseful for testing the full customer lifecycle without integrating with a real KYC provider.\n",
        "responses": {
          "200": {
            "description": "KYC approval simulated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimulateKycApprovalResponse"
                },
                "examples": {
                  "SimulateKycApprovalResponse": {
                    "$ref": "#/components/examples/SimulateKycApprovalResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "500": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        }
      }
    }
  },
  "components": {
    "examples": {
      "SimulateKycApprovalResponse": {
        "summary": "Successful KYC simulation response",
        "value": {
          "success": true,
          "customer_id": "00000000-0000-0000-0000-000000000000",
          "kyc_status": "approved",
          "message": "Simulated KYC approval processed. Customer endorsements will be evaluated."
        }
      },
      "SuccessfulAssociatedPersonResponse": {
        "summary": "An associated person object",
        "value": {
          "id": "associated_person_1234567890",
          "email": "associated_person@business.co",
          "first_name": "John",
          "last_name": "Smith",
          "has_ownership": true,
          "has_control": true,
          "is_signer": true,
          "title": "Chief Executive Officer",
          "relationship_established_at": "2025-05-27T17:55:33.308Z",
          "created_at": "2025-05-27T17:55:33.308Z",
          "updated_at": "2025-05-27T17:55:33.308Z"
        }
      },
      "SuccessfulCustomerResponse": {
        "summary": "An individual customer object",
        "value": {
          "id": "00000000-0000-0000-0000-000000000000",
          "first_name": "John",
          "last_name": "Doe",
          "email": "johndoe@example.com",
          "client_reference_id": "your_internal_id_123",
          "status": "active",
          "type": "individual",
          "persona_inquiry_type": "gov_id_db",
          "created_at": "2025-11-19T21:14:58.328Z",
          "updated_at": "2025-11-19T21:16:02.894Z",
          "rejection_reasons": [],
          "has_accepted_terms_of_service": true,
          "endorsements": [
            {
              "name": "base",
              "status": "approved",
              "requirements": {
                "complete": [
                  "terms_of_service_v1",
                  "first_name",
                  "last_name",
                  "tax_identification_number",
                  "email_address",
                  "address_of_residence",
                  "date_of_birth",
                  "proof_of_address",
                  "sanctions_screen",
                  "pep_screen",
                  "blocklist_lookup",
                  "min_age_18",
                  "selfie_verification",
                  "government_id_rejection_checks_passed",
                  "government_id_review_checks_passed",
                  "government_id_reliance",
                  "post_processing"
                ],
                "pending": [],
                "missing": null,
                "issues": []
              }
            },
            {
              "name": "sepa",
              "status": "approved",
              "requirements": {
                "complete": [
                  "terms_of_service_v2",
                  "first_name",
                  "last_name",
                  "tax_identification_number",
                  "email_address",
                  "address_of_residence",
                  "date_of_birth",
                  "proof_of_address",
                  "sanctions_screen",
                  "pep_screen",
                  "blocklist_lookup",
                  "min_age_18",
                  "selfie_verification",
                  "government_id_rejection_checks_passed",
                  "government_id_review_checks_passed",
                  "government_id_reliance"
                ],
                "pending": [],
                "missing": null,
                "issues": []
              }
            }
          ],
          "future_requirements_due": [],
          "requirements_due": [
            "external_account"
          ],
          "capabilities": {
            "payin_crypto": "active",
            "payout_crypto": "active",
            "payin_fiat": "pending",
            "payout_fiat": "pending"
          }
        }
      },
      "SuccessfulCustomerResponse2": {
        "summary": "A business customer object",
        "value": {
          "id": "00000000-0000-0000-0000-000000000000",
          "first_name": "Acme Corporation",
          "last_name": null,
          "email": "business@example.com",
          "client_reference_id": "your_internal_id_456",
          "status": "active",
          "type": "business",
          "persona_inquiry_type": "business",
          "created_at": "2025-11-19T04:41:33.296Z",
          "updated_at": "2025-11-19T19:10:39.393Z",
          "rejection_reasons": [],
          "has_accepted_terms_of_service": true,
          "endorsements": [
            {
              "name": "base",
              "status": "approved",
              "requirements": {
                "complete": [
                  "terms_of_service_v1",
                  "business_name",
                  "business_type",
                  "business_description",
                  "is_dao",
                  "email_address",
                  "address_of_incorporation",
                  "address_of_operation",
                  "tax_identification_number",
                  "business_industry",
                  "control_person_ownership_attestation",
                  "minimal_source_of_funds_data",
                  "proof_of_address",
                  "adverse_media_screen",
                  "sanctions_screen",
                  "manual_business_ein_verification_review",
                  "manual_business_registry_verification_review",
                  "business_website",
                  "manual_business_website_verification_review",
                  "business_formation_document_verification",
                  "manual_business_formation_document_verification_review",
                  "kyb_review",
                  {
                    "associated_person": "11111111-1111-1111-1111-111111111111",
                    "items": [
                      "has_control",
                      "first_name",
                      "last_name",
                      "email_address",
                      "address_of_residence",
                      "associated_person_relationship",
                      "date_of_birth",
                      "tax_identification_number",
                      "manual_government_id_review",
                      "sanctions_screen",
                      "adverse_media_screen",
                      "pep_screen",
                      "min_age_18",
                      "selfie_verification",
                      "has_title"
                    ]
                  }
                ],
                "pending": [],
                "missing": null,
                "issues": []
              }
            },
            {
              "name": "sepa",
              "status": "approved",
              "requirements": {
                "complete": [
                  "terms_of_service_v2",
                  "business_name",
                  "business_type",
                  "business_description",
                  "is_dao",
                  "email_address",
                  "address_of_incorporation",
                  "address_of_operation",
                  "tax_identification_number",
                  "business_industry",
                  "control_person_ownership_attestation",
                  "minimal_source_of_funds_data",
                  "proof_of_address",
                  "adverse_media_screen",
                  "sanctions_screen",
                  "manual_business_ein_verification_review",
                  "manual_business_registry_verification_review",
                  "business_website",
                  "manual_business_website_verification_review",
                  "business_formation_document_verification",
                  "manual_business_formation_document_verification_review",
                  "kyb_review",
                  {
                    "associated_person": "11111111-1111-1111-1111-111111111111",
                    "items": [
                      "has_control",
                      "first_name",
                      "last_name",
                      "email_address",
                      "address_of_residence",
                      "associated_person_relationship",
                      "date_of_birth",
                      "tax_identification_number",
                      "manual_government_id_review",
                      "sanctions_screen",
                      "adverse_media_screen",
                      "pep_screen",
                      "min_age_18",
                      "selfie_verification",
                      "has_title"
                    ]
                  }
                ],
                "pending": [],
                "missing": null,
                "issues": []
              }
            }
          ],
          "future_requirements_due": [],
          "requirements_due": [
            "external_account"
          ],
          "capabilities": {
            "payin_crypto": "active",
            "payout_crypto": "active",
            "payin_fiat": "pending",
            "payout_fiat": "pending"
          },
          "associated_persons": [
            {
              "id": "11111111-1111-1111-1111-111111111111",
              "email": "person@example.com"
            }
          ]
        }
      },
      "SuccessfulFiatPayoutConfigurationResponse": {
        "summary": "A fiat payout configuration response",
        "value": {
          "fiat_payout_configuration": {
            "usd": {
              "wire": "developer",
              "ach": "bridge"
            },
            "eur": {
              "sepa": "bridge"
            },
            "brl": {
              "pix": "payment_provider"
            },
            "mxn": {
              "spei": "payment_provider"
            }
          }
        }
      },
      "SuccessfulPatchFiatPayoutConfigurationResponse": {
        "summary": "A successful fiat payout configuration update response",
        "value": {
          "fiat_payout_configuration": {
            "usd": {
              "wire": "customer",
              "ach": "bridge"
            },
            "eur": {
              "sepa": "bridge"
            },
            "brl": {
              "pix": "payment_provider"
            },
            "mxn": {
              "spei": "payment_provider"
            }
          }
        }
      },
      "RejectedCustomerResponse": {
        "summary": "A rejected customer object",
        "value": {
          "id": "00000000-0000-0000-0000-000000000000",
          "first_name": "John",
          "last_name": "Doe",
          "email": "johndoe@example.com",
          "client_reference_id": "your_internal_id_123",
          "status": "rejected",
          "type": "individual",
          "persona_inquiry_type": "gov_id_db",
          "created_at": "2025-11-19T21:05:11.276Z",
          "updated_at": "2025-11-19T21:06:20.970Z",
          "rejection_reasons": [
            {
              "developer_reason": "Incorrect ID type selected.",
              "reason": "Incorrect ID type selected.",
              "created_at": "2025-11-19T21:05:59.788Z"
            },
            {
              "developer_reason": "ID from disallowed country.",
              "reason": "Cannot accept provided ID",
              "created_at": "2025-11-19T21:05:59.788Z"
            }
          ],
          "has_accepted_terms_of_service": true,
          "endorsements": [
            {
              "name": "base",
              "status": "incomplete",
              "requirements": {
                "complete": [
                  "terms_of_service_v1",
                  "first_name",
                  "last_name",
                  "email_address",
                  "address_of_residence",
                  "date_of_birth",
                  "proof_of_address",
                  "sanctions_screen",
                  "pep_screen",
                  "blocklist_lookup",
                  "min_age_18",
                  "selfie_verification"
                ],
                "pending": [
                  "manual_review"
                ],
                "missing": {
                  "all_of": [
                    "tax_identification_number",
                    "source_of_funds_questionnaire"
                  ]
                },
                "issues": [
                  "government_id_verification_failed"
                ]
              },
              "additional_requirements": [
                "kyc_approval"
              ]
            },
            {
              "name": "sepa",
              "status": "incomplete",
              "requirements": {
                "complete": [
                  "terms_of_service_v2",
                  "first_name",
                  "last_name",
                  "email_address",
                  "address_of_residence",
                  "date_of_birth",
                  "proof_of_address",
                  "sanctions_screen",
                  "pep_screen",
                  "blocklist_lookup",
                  "min_age_18",
                  "selfie_verification"
                ],
                "pending": [
                  "manual_review"
                ],
                "missing": {
                  "all_of": [
                    "tax_identification_number",
                    "source_of_funds_questionnaire"
                  ]
                },
                "issues": [
                  "government_id_verification_failed"
                ]
              },
              "additional_requirements": [
                "kyc_approval",
                "kyc_with_proof_of_address"
              ]
            }
          ],
          "future_requirements_due": [],
          "requirements_due": [
            "external_account"
          ],
          "capabilities": {
            "payin_crypto": "pending",
            "payout_crypto": "pending",
            "payin_fiat": "pending",
            "payout_fiat": "pending"
          }
        }
      },
      "AchOfframpTransferResponse": {
        "summary": "A successful ACH offramp transfer (crypto to ACH)",
        "value": {
          "id": "00000000-0000-0000-0000-000000000003",
          "client_reference_id": "client_transfer_id_123",
          "state": "awaiting_funds",
          "on_behalf_of": "00000000-0000-0000-0000-000000000001",
          "amount": "75.0",
          "developer_fee": "0.0",
          "source": {
            "payment_rail": "ethereum",
            "currency": "usdc",
            "from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
          },
          "destination": {
            "payment_rail": "ach",
            "currency": "usd",
            "external_account_id": "00000000-0000-0000-0000-000000000002"
          },
          "source_deposit_instructions": {
            "payment_rail": "ethereum",
            "amount": "75.0",
            "currency": "usdc",
            "from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
            "to_address": "0xb794f5ea0ba39494ce839613fffba74279579268"
          },
          "receipt": {
            "initial_amount": "75.0",
            "developer_fee": "0.0",
            "exchange_fee": "0.0",
            "subtotal_amount": "75.0",
            "gas_fee": "0.0",
            "final_amount": "75.0",
            "url": "https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000"
          },
          "created_at": "2020-01-01T00:00:00.000Z",
          "updated_at": "2020-01-02T00:00:00.000Z"
        }
      },
      "AchOfframpWithMemoTransferResponse": {
        "summary": "A successful ACH offramp transfer with memo (Tron/Stellar to ACH)",
        "value": {
          "id": "00000000-0000-0000-0000-000000000003",
          "client_reference_id": "client_transfer_id_123",
          "state": "awaiting_funds",
          "on_behalf_of": "00000000-0000-0000-0000-000000000001",
          "amount": "75.0",
          "developer_fee": "0.0",
          "source": {
            "payment_rail": "tron",
            "currency": "usdt",
            "from_address": "TFCVwYhQxMXTeFGmWb45uMk1qsJ4DRMPVS"
          },
          "destination": {
            "payment_rail": "ach",
            "currency": "usd",
            "external_account_id": "00000000-0000-0000-0000-000000000002"
          },
          "source_deposit_instructions": {
            "payment_rail": "tron",
            "amount": "75.0",
            "currency": "usdc",
            "from_address": "TFCVwYhQxMXTeFGmWb45uMk1qsJ4DRMPVS",
            "to_address": "TUEB3vjcMx7mPvc8DmeDLevZU3wEnkZ1zs",
            "blockchain_memo": "BRGEXAMPLEMEMO"
          },
          "receipt": {
            "initial_amount": "75.0",
            "developer_fee": "0.0",
            "exchange_fee": "0.0",
            "subtotal_amount": "75.0",
            "gas_fee": "0.0",
            "final_amount": "75.0",
            "url": "https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000"
          },
          "created_at": "2020-01-01T00:00:00.000Z",
          "updated_at": "2020-01-02T00:00:00.000Z"
        }
      },
      "SepaOfframpTransferResponse": {
        "summary": "A successful SEPA offramp transfer (crypto to SEPA)",
        "value": {
          "id": "00000000-0000-0000-0000-000000000003",
          "client_reference_id": "client_transfer_id_123",
          "state": "awaiting_funds",
          "on_behalf_of": "00000000-0000-0000-0000-000000000001",
          "amount": "75.0",
          "developer_fee": "0.0",
          "source": {
            "payment_rail": "ethereum",
            "currency": "usdc",
            "from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
          },
          "destination": {
            "payment_rail": "sepa",
            "currency": "eur",
            "external_account_id": "00000000-0000-0000-0000-000000000002",
            "sepa_reference": "SEPA reference"
          },
          "source_deposit_instructions": {
            "payment_rail": "ethereum",
            "amount": "75.0",
            "currency": "usdc",
            "from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
            "to_address": "0xb794f5ea0ba39494ce839613fffba74279579268"
          },
          "receipt": {
            "initial_amount": "75.0",
            "developer_fee": "0.0",
            "exchange_fee": "0.0",
            "subtotal_amount": "75.0",
            "gas_fee": "0.0",
            "final_amount": "68.27",
            "url": "https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000"
          },
          "created_at": "2020-01-01T00:00:00.000Z",
          "updated_at": "2020-01-02T00:00:00.000Z"
        }
      },
      "AchOnrampFundsReceivedTransferResponse": {
        "summary": "A successful ACH onramp transfer in funds_received state (ACH to crypto)",
        "value": {
          "id": "00000000-0000-0000-0000-000000000004",
          "client_reference_id": "client_transfer_id_456",
          "state": "funds_received",
          "on_behalf_of": "00000000-0000-0000-0000-000000000001",
          "amount": "500.25",
          "developer_fee": "0.0",
          "source": {
            "payment_rail": "ach",
            "currency": "usd",
            "external_account_id": "00000000-0000-0000-0000-000000000002"
          },
          "destination": {
            "payment_rail": "ethereum",
            "currency": "usdc",
            "to_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
          },
          "receipt": {
            "initial_amount": "500.25",
            "developer_fee": "0.0",
            "exchange_fee": "0.0",
            "subtotal_amount": "500.25",
            "gas_fee": "0.0",
            "final_amount": "500.25",
            "destination_tx_hash": "0xdeadbeef",
            "url": "https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000"
          },
          "created_at": "2020-01-02T00:00:00.000Z",
          "updated_at": "2020-01-03T00:00:00.000Z"
        }
      },
      "WireOnrampTransferResponse": {
        "summary": "A successful Wire onramp transfer (wire to crypto)",
        "value": {
          "id": "00000000-0000-0000-0000-000000000003",
          "client_reference_id": "client_transfer_id_123",
          "state": "awaiting_funds",
          "on_behalf_of": "00000000-0000-0000-0000-000000000001",
          "amount": "75.0",
          "developer_fee": "0.0",
          "source": {
            "payment_rail": "wire",
            "currency": "usd",
            "external_account_id": null,
            "bank_beneficiary_name": "Sender name, if available",
            "bank_beneficiary_address": "Sender address, if available",
            "bank_routing_number": "Sender routing, if available",
            "bank_name": "Sender bank, if available",
            "imad": "IMAD of incoming wire, if available",
            "omad": "OMAD of incoming wire, if available (deprecated)"
          },
          "destination": {
            "payment_rail": "ethereum",
            "currency": "usdc",
            "to_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
          },
          "source_deposit_instructions": {
            "payment_rail": "wire",
            "amount": "75.0",
            "currency": "usd",
            "deposit_message": "BVI7depositmessage",
            "bank_name": "Bank name",
            "bank_address": "Bank address",
            "bank_routing_number": "123456789",
            "bank_account_number": "1234567890",
            "bank_beneficiary_name": "Bank beneficiary",
            "bank_beneficiary_address": "Bank beneficiary address"
          },
          "receipt": {
            "initial_amount": "75.0",
            "developer_fee": "0.0",
            "exchange_fee": "0.0",
            "subtotal_amount": "75.0",
            "gas_fee": "0.0",
            "final_amount": "75.0",
            "url": "https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000"
          },
          "created_at": "2020-01-01T00:00:00.000Z",
          "updated_at": "2020-01-02T00:00:00.000Z"
        }
      },
      "AchOnrampTransferResponse": {
        "summary": "A successful ACH onramp transfer (ACH to crypto)",
        "value": {
          "id": "00000000-0000-0000-0000-000000000003",
          "client_reference_id": "client_transfer_id_123",
          "state": "awaiting_funds",
          "on_behalf_of": "00000000-0000-0000-0000-000000000001",
          "amount": "75.0",
          "developer_fee": "0.0",
          "source": {
            "payment_rail": "ach_push",
            "currency": "usd",
            "external_account_id": null,
            "description": "ACH description, if available"
          },
          "destination": {
            "payment_rail": "ethereum",
            "currency": "usdc",
            "to_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
          },
          "source_deposit_instructions": {
            "payment_rail": "ach_push",
            "amount": "75.0",
            "currency": "usd",
            "deposit_message": "BVI7depositmessage",
            "bank_name": "Bank name",
            "bank_address": "Bank address",
            "bank_routing_number": "123456789",
            "bank_account_number": "1234567890",
            "bank_beneficiary_name": "Bank beneficiary",
            "bank_beneficiary_address": "Bank beneficiary address"
          },
          "receipt": {
            "initial_amount": "75.0",
            "developer_fee": "0.0",
            "exchange_fee": "0.0",
            "subtotal_amount": "75.0",
            "gas_fee": "0.0",
            "final_amount": "75.0",
            "url": "https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000"
          },
          "created_at": "2020-01-01T00:00:00.000Z",
          "updated_at": "2020-01-02T00:00:00.000Z"
        }
      },
      "SepaOnrampTransferResponse": {
        "summary": "A successful SEPA onramp transfer (SEPA to crypto)",
        "value": {
          "id": "00000000-0000-0000-0000-000000000003",
          "client_reference_id": "client_transfer_id_123",
          "state": "awaiting_funds",
          "on_behalf_of": "00000000-0000-0000-0000-000000000001",
          "amount": "75.0",
          "developer_fee": "0.0",
          "source": {
            "payment_rail": "sepa",
            "currency": "eur",
            "external_account_id": null
          },
          "destination": {
            "payment_rail": "ethereum",
            "currency": "usdc",
            "to_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
          },
          "source_deposit_instructions": {
            "payment_rail": "sepa",
            "amount": "75.0",
            "currency": "eur",
            "deposit_message": "BRG7depositmessage",
            "bank_name": "Bank name",
            "bank_address": "Bank address",
            "iban": "123456789",
            "bic": "1234567890",
            "account_holder_name": "Bank account holder name"
          },
          "receipt": {
            "initial_amount": "75.0",
            "developer_fee": "0.0",
            "exchange_fee": "0.0",
            "gas_fee": "0.0",
            "url": "https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000"
          },
          "created_at": "2020-01-01T00:00:00.000Z",
          "updated_at": "2020-01-02T00:00:00.000Z"
        }
      },
      "WireOfframpTransferResponse": {
        "summary": "A successful Wire offramp transfer (crypto to wire)",
        "value": {
          "id": "00000000-0000-0000-0000-000000000003",
          "client_reference_id": "client_transfer_id_123",
          "state": "awaiting_funds",
          "on_behalf_of": "00000000-0000-0000-0000-000000000001",
          "amount": "500.0",
          "developer_fee": "0.0",
          "source": {
            "payment_rail": "ethereum",
            "currency": "usdc",
            "from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
          },
          "destination": {
            "payment_rail": "wire",
            "currency": "usd",
            "external_account_id": "00000000-0000-0000-0000-000000000002"
          },
          "source_deposit_instructions": {
            "payment_rail": "ethereum",
            "amount": "500.0",
            "currency": "usdc",
            "from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
            "to_address": "0xb794f5ea0ba39494ce839613fffba74279579268"
          },
          "receipt": {
            "initial_amount": "500.0",
            "developer_fee": "0.0",
            "exchange_fee": "0.0",
            "subtotal_amount": "500.0",
            "gas_fee": "0.0",
            "final_amount": "500.0",
            "url": "https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000"
          },
          "created_at": "2020-01-01T00:00:00.000Z",
          "updated_at": "2020-01-02T00:00:00.000Z"
        }
      },
      "PixOnrampTransferResponse": {
        "summary": "A successful Pix onramp transfer (Pix to crypto)",
        "value": {
          "id": "00000000-0000-0000-0000-000000000003",
          "client_reference_id": "client_transfer_id_123",
          "state": "awaiting_funds",
          "on_behalf_of": "00000000-0000-0000-0000-000000000001",
          "amount": "75.0",
          "developer_fee": "0.0",
          "source": {
            "payment_rail": "pix",
            "currency": "brl",
            "external_account_id": null,
            "description": "Pix transfer description, if available",
            "sender_name": "Sender name, if available",
            "account_number": "Sender account number, if available",
            "bank_code": "Sender bank ISPB code, if available",
            "bank_name": "Sender bank name, if available"
          },
          "destination": {
            "payment_rail": "ethereum",
            "currency": "usdc",
            "to_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
          },
          "source_deposit_instructions": {
            "payment_rail": "pix",
            "amount": "75.0",
            "currency": "brl",
            "br_code": "00020126580014br.gov.bcb.pix0136123e4567-e12b-12d1-a456-4266554400005204000053039865802BR5913Fulano de Tal6008BRASILIA62070503***63041D3D",
            "account_holder_name": "Bridge Developer Name",
            "bank_name": "Woovi Instituição de Pagamento LTDA"
          },
          "receipt": {
            "initial_amount": "75.0",
            "developer_fee": "0.0",
            "exchange_fee": "0.0",
            "subtotal_amount": "75.0",
            "gas_fee": "0.0",
            "final_amount": "68.50",
            "url": "https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000"
          },
          "created_at": "2020-01-01T00:00:00.000Z",
          "updated_at": "2020-01-02T00:00:00.000Z"
        }
      },
      "PixOfframpTransferResponse": {
        "summary": "A successful Pix offramp transfer (crypto to Pix)",
        "value": {
          "id": "00000000-0000-0000-0000-000000000003",
          "client_reference_id": "client_transfer_id_123",
          "state": "awaiting_funds",
          "on_behalf_of": "00000000-0000-0000-0000-000000000001",
          "amount": "75.0",
          "developer_fee": "0.0",
          "source": {
            "payment_rail": "ethereum",
            "currency": "usdc",
            "from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
          },
          "destination": {
            "payment_rail": "pix",
            "currency": "brl",
            "external_account_id": "00000000-0000-0000-0000-000000000002",
            "reference": "Pix payment reference",
            "transaction_id": "E12345678202501011230ABCDEFGHIJK",
            "sending_institution_name": "Woovi Instituição de Pagamento LTDA"
          },
          "source_deposit_instructions": {
            "payment_rail": "ethereum",
            "amount": "75.0",
            "currency": "usdc",
            "from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
            "to_address": "0xb794f5ea0ba39494ce839613fffba74279579268"
          },
          "receipt": {
            "initial_amount": "75.0",
            "developer_fee": "0.0",
            "exchange_fee": "0.0",
            "subtotal_amount": "75.0",
            "gas_fee": "0.0",
            "final_amount": "68.50",
            "url": "https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000"
          },
          "created_at": "2020-01-01T00:00:00.000Z",
          "updated_at": "2020-01-02T00:00:00.000Z"
        }
      },
      "SpeiOfframpTransferResponse": {
        "summary": "A successful SPEI offramp transfer (crypto to SPEI)",
        "value": {
          "id": "00000000-0000-0000-0000-000000000003",
          "client_reference_id": "client_transfer_id_123",
          "state": "awaiting_funds",
          "on_behalf_of": "00000000-0000-0000-0000-000000000001",
          "amount": "75.0",
          "developer_fee": "0.0",
          "source": {
            "payment_rail": "ethereum",
            "currency": "usdc",
            "from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
          },
          "destination": {
            "payment_rail": "spei",
            "currency": "mxn",
            "external_account_id": "00000000-0000-0000-0000-000000000002",
            "spei_reference": "SPEI reference",
            "tracking_number": "1234567890123456789012345678",
            "sending_institution_name": "Sistema de Transferencias y Pagos STP, S.A. de C.V."
          },
          "source_deposit_instructions": {
            "payment_rail": "ethereum",
            "amount": "75.0",
            "currency": "usdc",
            "from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
            "to_address": "0xb794f5ea0ba39494ce839613fffba74279579268"
          },
          "receipt": {
            "initial_amount": "75.0",
            "developer_fee": "0.0",
            "exchange_fee": "0.0",
            "subtotal_amount": "75.0",
            "gas_fee": "0.0",
            "final_amount": "1492.50",
            "url": "https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000"
          },
          "created_at": "2020-01-01T00:00:00.000Z",
          "updated_at": "2020-01-02T00:00:00.000Z"
        }
      },
      "BreBOnrampTransferResponse": {
        "summary": "A successful Bre-B onramp transfer (COP to crypto)",
        "value": {
          "id": "00000000-0000-0000-0000-000000000005",
          "state": "awaiting_funds",
          "on_behalf_of": "00000000-0000-0000-0000-000000000001",
          "amount": "5000000.0",
          "developer_fee": "0.0",
          "source": {
            "payment_rail": "bre_b",
            "currency": "cop"
          },
          "destination": {
            "payment_rail": "ethereum",
            "currency": "usdc",
            "to_address": "0xdeadbeef"
          },
          "source_deposit_instructions": {
            "payment_rail": "bre_b",
            "amount": "5000000.0",
            "currency": "cop",
            "deposit_message": "COP7depositmessage",
            "bre_b_key": "12345678901234567890",
            "account_holder_name": "Bridge Developer Name"
          },
          "created_at": "2020-01-01T00:00:00.000Z",
          "updated_at": "2020-01-02T00:00:00.000Z"
        }
      },
      "BreBOfframpTransferResponse": {
        "summary": "A successful Bre-B offramp transfer (crypto to COP)",
        "value": {
          "id": "00000000-0000-0000-0000-000000000004",
          "client_reference_id": "client_transfer_id_456",
          "state": "awaiting_funds",
          "on_behalf_of": "00000000-0000-0000-0000-000000000001",
          "amount": "100.0",
          "developer_fee": "0.0",
          "source": {
            "payment_rail": "ethereum",
            "currency": "usdc",
            "from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
          },
          "destination": {
            "payment_rail": "bre_b",
            "currency": "cop",
            "external_account_id": "00000000-0000-0000-0000-000000000002"
          },
          "source_deposit_instructions": {
            "payment_rail": "ethereum",
            "amount": "100.0",
            "currency": "usdc",
            "from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
            "to_address": "0xb794f5ea0ba39494ce839613fffba74279579268"
          },
          "receipt": {
            "initial_amount": "100.0",
            "developer_fee": "0.0",
            "exchange_fee": "0.0",
            "subtotal_amount": "100.0",
            "gas_fee": "0.0",
            "final_amount": "420000.0",
            "url": "https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000"
          },
          "created_at": "2020-01-01T00:00:00.000Z",
          "updated_at": "2020-01-02T00:00:00.000Z"
        }
      },
      "CoBankTransferOnrampTransferResponse": {
        "summary": "A successful Colombian bank transfer onramp (COP to crypto)",
        "value": {
          "id": "00000000-0000-0000-0000-000000000006",
          "state": "awaiting_funds",
          "on_behalf_of": "00000000-0000-0000-0000-000000000001",
          "amount": "5000000.0",
          "developer_fee": "0.0",
          "source": {
            "payment_rail": "co_bank_transfer",
            "currency": "cop",
            "co_bank_transfer": {
              "sender_data": {
                "full_name": "María López",
                "document_type": "cc",
                "document_number": "***7890",
                "email": "maria@example.com",
                "phone_number": "+573001234567"
              }
            }
          },
          "destination": {
            "payment_rail": "ethereum",
            "currency": "usdc",
            "to_address": "0xdeadbeef"
          },
          "source_deposit_instructions": {
            "payment_rail": "co_bank_transfer",
            "amount": "5000000.0",
            "currency": "cop",
            "start_url": "https://example.com/co-bank-transfer/pay/abc123",
            "redirect_url": "https://merchant.example.com/return",
            "expires_at": "2026-05-01T00:30:00.000Z",
            "account_holder_name": "Bridge Developer Name"
          },
          "created_at": "2020-01-01T00:00:00.000Z",
          "updated_at": "2020-01-02T00:00:00.000Z"
        }
      },
      "CoBankTransferOfframpTransferResponse": {
        "summary": "A successful Colombian bank transfer offramp (crypto to COP)",
        "value": {
          "id": "00000000-0000-0000-0000-000000000007",
          "state": "awaiting_funds",
          "on_behalf_of": "00000000-0000-0000-0000-000000000001",
          "amount": "100.0",
          "developer_fee": "0.0",
          "source": {
            "payment_rail": "ethereum",
            "currency": "usdc",
            "from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
          },
          "destination": {
            "payment_rail": "co_bank_transfer",
            "currency": "cop",
            "external_account_id": "00000000-0000-0000-0000-000000000002"
          },
          "source_deposit_instructions": {
            "payment_rail": "ethereum",
            "amount": "100.0",
            "currency": "usdc",
            "from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
            "to_address": "0xb794f5ea0ba39494ce839613fffba74279579268"
          },
          "receipt": {
            "initial_amount": "100.0",
            "developer_fee": "0.0",
            "exchange_fee": "0.0",
            "subtotal_amount": "100.0",
            "gas_fee": "0.0",
            "final_amount": "420000.0",
            "url": "https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000"
          },
          "created_at": "2020-01-01T00:00:00.000Z",
          "updated_at": "2020-01-02T00:00:00.000Z"
        }
      },
      "SpeiOnrampTransferResponse": {
        "summary": "A successful SPEI onramp transfer (SPEI to crypto)",
        "value": {
          "id": "00000000-0000-0000-0000-000000000003",
          "client_reference_id": "client_transfer_id_123",
          "state": "awaiting_funds",
          "on_behalf_of": "00000000-0000-0000-0000-000000000001",
          "amount": "500.0",
          "developer_fee": "0.0",
          "source": {
            "payment_rail": "spei",
            "currency": "mxn",
            "external_account_id": null,
            "clabe": "646180546700000164",
            "tracking_number": "1234567890123456789012345678",
            "sender_name": "Sender Business Name",
            "reference": "Payment reference"
          },
          "destination": {
            "payment_rail": "ethereum",
            "currency": "usdc",
            "to_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
          },
          "source_deposit_instructions": {
            "payment_rail": "spei",
            "amount": "500.0",
            "currency": "mxn",
            "deposit_message": "MXN7depositmessage",
            "clabe": "646180115400000007",
            "account_holder_name": "Bridge Developer Name",
            "bank_name": "STP"
          },
          "receipt": {
            "initial_amount": "500.0",
            "developer_fee": "0.0",
            "exchange_fee": "0.0",
            "subtotal_amount": "500.0",
            "gas_fee": "0.0",
            "final_amount": "24.88",
            "url": "https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000"
          },
          "created_at": "2020-01-01T00:00:00.000Z",
          "updated_at": "2020-01-02T00:00:00.000Z"
        }
      },
      "ReturnedTransferResponse": {
        "summary": "A transfer returned because of a risk-control decision",
        "value": {
          "id": "00000000-0000-0000-0000-000000000005",
          "client_reference_id": "client_transfer_id_789",
          "state": "returned",
          "on_behalf_of": "00000000-0000-0000-0000-000000000001",
          "amount": "75.0",
          "developer_fee": "0.0",
          "source": {
            "payment_rail": "ethereum",
            "currency": "usdc",
            "from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
          },
          "destination": {
            "payment_rail": "ach",
            "currency": "usd",
            "external_account_id": "00000000-0000-0000-0000-000000000002"
          },
          "receipt": {
            "initial_amount": "75.0",
            "developer_fee": "0.0",
            "exchange_fee": "0.0",
            "subtotal_amount": "75.0",
            "gas_fee": "0.0",
            "final_amount": "75.0",
            "url": "https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000"
          },
          "return_details": {
            "refund_reference_id": "0xdeadbeef",
            "risk_rejection_reason": "Exceeds Transaction Limits"
          },
          "created_at": "2020-01-01T00:00:00.000Z",
          "updated_at": "2020-01-02T00:00:00.000Z"
        }
      },
      "ReturnedTransfersListResponse": {
        "summary": "A list containing a transfer returned because of a risk-control decision",
        "value": {
          "count": 1,
          "data": [
            {
              "id": "00000000-0000-0000-0000-000000000005",
              "client_reference_id": "client_transfer_id_789",
              "state": "returned",
              "on_behalf_of": "00000000-0000-0000-0000-000000000001",
              "amount": "75.0",
              "developer_fee": "0.0",
              "source": {
                "payment_rail": "ethereum",
                "currency": "usdc",
                "from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
              },
              "destination": {
                "payment_rail": "ach",
                "currency": "usd",
                "external_account_id": "00000000-0000-0000-0000-000000000002"
              },
              "receipt": {
                "initial_amount": "75.0",
                "developer_fee": "0.0",
                "exchange_fee": "0.0",
                "subtotal_amount": "75.0",
                "gas_fee": "0.0",
                "final_amount": "75.0",
                "url": "https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000"
              },
              "return_details": {
                "refund_reference_id": "0xdeadbeef",
                "risk_rejection_reason": "Exceeds Transaction Limits"
              },
              "created_at": "2020-01-01T00:00:00.000Z",
              "updated_at": "2020-01-02T00:00:00.000Z"
            }
          ]
        }
      },
      "ValidTransferRouteResponse": {
        "summary": "A valid transfer route response",
        "value": {
          "state": "valid",
          "notes": [
            "This is a valid transfer route"
          ]
        }
      },
      "CreateAchExternalAccountRequest": {
        "summary": "Create ACH or Wire External Account (US)",
        "value": {
          "currency": "usd",
          "bank_name": "Wells Fargo",
          "account_owner_name": "John Doe",
          "account_type": "us",
          "account": {
            "account_number": "1210002481111",
            "routing_number": "121000248",
            "checking_or_savings": "checking"
          },
          "address": {
            "street_line_1": "123 Main St",
            "city": "San Francisco",
            "state": "CA",
            "postal_code": "94102",
            "country": "USA"
          }
        }
      },
      "CreateIbanExternalAccountRequest": {
        "summary": "Create IBAN External Account",
        "value": {
          "currency": "eur",
          "bank_name": "AAC CAPITAL PARTNERS LIMITED",
          "account_owner_name": "John Doe",
          "account_type": "iban",
          "iban": {
            "account_number": "NL91ABNA0417164300",
            "bic": "BARBGB2LLEI",
            "country": "NLD"
          },
          "account_owner_type": "individual",
          "first_name": "John",
          "last_name": "Doe",
          "address": {
            "street_line_1": "Dam 1",
            "city": "Amsterdam",
            "postal_code": "1012 JS",
            "country": "NLD"
          }
        }
      },
      "CreateClabeExternalAccountRequest": {
        "summary": "Create CLABE External Account (SPEI for MXN)",
        "value": {
          "currency": "mxn",
          "bank_name": "Banco Santander México",
          "account_owner_name": "Juan García",
          "account_type": "clabe",
          "clabe": {
            "account_number": "014180655500000007"
          },
          "account_owner_type": "individual",
          "first_name": "Juan",
          "last_name": "García",
          "address": {
            "street_line_1": "Avenida Paseo de la Reforma 500",
            "city": "Ciudad de México",
            "postal_code": "06600",
            "country": "MEX"
          }
        }
      },
      "CreatePixExternalAccountRequest": {
        "summary": "Create Pix External Account with Pix Key (Brazil)",
        "value": {
          "currency": "brl",
          "bank_name": "Banco do Brasil",
          "account_owner_name": "João Silva",
          "account_type": "pix",
          "pix_key": {
            "pix_key": "joao.silva@email.com",
            "document_number": "12345678901"
          },
          "account_owner_type": "individual",
          "first_name": "João",
          "last_name": "Silva",
          "address": {
            "street_line_1": "Rua XV de Novembro, 500",
            "city": "São Paulo",
            "state": "SP",
            "postal_code": "01013-001",
            "country": "BRA"
          }
        }
      },
      "CreateBrCodeExternalAccountRequest": {
        "summary": "Create Pix External Account with BR Code (Brazil)",
        "value": {
          "currency": "brl",
          "bank_name": "Banco do Brasil",
          "account_owner_name": "João Silva",
          "account_type": "pix",
          "br_code": {
            "br_code": "00020126580014br.gov.bcb.pix0136a629532e-7693-4846-852d-1bbff6b2f8cd520400005303986540510.005802BR5913Fulano de Tal6008BRASILIA62070503***63041D3D",
            "document_number": "12345678901"
          },
          "account_owner_type": "individual",
          "first_name": "João",
          "last_name": "Silva",
          "address": {
            "street_line_1": "Rua XV de Novembro, 500",
            "city": "São Paulo",
            "state": "SP",
            "postal_code": "01013-001",
            "country": "BRA"
          }
        }
      },
      "CreateBreBExternalAccountRequest": {
        "summary": "Create Bre-B External Account (COP)",
        "value": {
          "currency": "cop",
          "account_owner_name": "Juan Garcia",
          "account_type": "bre_b",
          "account": {
            "bre_b_key": "1234567890123456"
          }
        }
      },
      "CreateCoBankTransferExternalAccountRequest": {
        "summary": "Create CO Bank Transfer External Account (COP)",
        "value": {
          "currency": "cop",
          "account_owner_name": "María López",
          "account_type": "co_bank_transfer",
          "account": {
            "account_number": "12345678901234",
            "bank_code": "1007",
            "account_type": "savings",
            "document_type": "cc",
            "document_number": "1234567890",
            "phone_number": "+573001234567"
          },
          "account_owner_type": "individual",
          "first_name": "María",
          "last_name": "López"
        }
      },
      "SuccessfulExternalAccountResponse": {
        "summary": "A successful ACH External Account object (US)",
        "value": {
          "id": "ea_123",
          "account_type": "us",
          "currency": "usd",
          "customer_id": "cust_123",
          "account_owner_name": "John Doe",
          "bank_name": "Wells Fargo",
          "last_4": "1111",
          "active": true,
          "beneficiary_address_valid": true,
          "account": {
            "last_4": "1111",
            "routing_number": "121000248",
            "checking_or_savings": "checking"
          },
          "created_at": "2020-01-01T00:00:00.000Z",
          "updated_at": "2020-01-02T00:00:00.000Z"
        }
      },
      "SuccessfulFeeExternalAccountResponse": {
        "summary": "A successful Fee External Account object (ACH)",
        "value": {
          "id": "fea_123",
          "account_type": "us",
          "currency": "usd",
          "account_owner_name": "John Doe",
          "bank_name": "Wells Fargo",
          "last_4": "1111",
          "active": true,
          "beneficiary_address_valid": true,
          "account": {
            "last_4": "1111",
            "routing_number": "121000248",
            "checking_or_savings": "checking"
          },
          "created_at": "2020-01-01T00:00:00.000Z",
          "updated_at": "2020-01-02T00:00:00.000Z"
        }
      },
      "SuccessfulIbanExternalAccountResponse": {
        "summary": "A successful IBAN External Account object",
        "value": {
          "id": "ea_123",
          "customer_id": "cust_123",
          "account_type": "iban",
          "currency": "eur",
          "account_owner_name": "John Doe",
          "bank_name": "AAC CAPITAL PARTNERS LIMITED",
          "active": true,
          "iban": {
            "last_4": "5981",
            "bic": "BARBGB2LLEI",
            "country": "NLD"
          },
          "account_owner_type": "individual",
          "first_name": "John",
          "last_name": "Doe",
          "account_verification": {
            "iban": {
              "match_level": "match",
              "reason_code": null,
              "validated_account_owner_name": "John Doe"
            },
            "requested_at": "2020-01-01T00:05:00.000Z",
            "completed_at": "2020-01-01T00:05:05.000Z"
          },
          "created_at": "2020-01-01T00:00:00.000Z",
          "updated_at": "2020-01-02T00:00:00.000Z"
        }
      },
      "SuccessfulPixKeyExternalAccountResponse": {
        "summary": "A successful Pix key External Account object",
        "value": {
          "id": "ea_123",
          "customer_id": "cust_123",
          "account_type": "pix",
          "currency": "brl",
          "account_owner_name": "João Silva",
          "bank_name": "Banco do Brasil",
          "active": true,
          "pix_key": {
            "account_preview": "jo****ilva****il.c**",
            "document_number_last4": "8901"
          },
          "account_validation": {
            "validated_account_owner_name": "João Silva",
            "validated_bank_name": "Banco do Brasil"
          },
          "account_owner_type": "individual",
          "first_name": "João",
          "last_name": "Silva",
          "account_verification": {
            "pix": {
              "matched": true,
              "reason_code": null,
              "validated_account_owner_name": "João Silva",
              "validated_bank_name": "Banco do Brasil"
            },
            "requested_at": "2020-01-01T00:05:00.000Z",
            "completed_at": "2020-01-01T00:05:05.000Z"
          },
          "created_at": "2020-01-01T00:00:00.000Z",
          "updated_at": "2020-01-02T00:00:00.000Z"
        }
      },
      "SuccessfulBrCodeExternalAccountResponse": {
        "summary": "A successful BR Code External Account object",
        "value": {
          "id": "ea_456",
          "customer_id": "cust_456",
          "account_type": "pix",
          "currency": "brl",
          "account_owner_name": "Maria Santos",
          "bank_name": "Itaú Unibanco",
          "active": true,
          "br_code": {
            "account_preview": "11****1111****1111****1111",
            "document_number_last4": "0131"
          },
          "account_validation": {
            "validated_account_owner_name": "Maria Santos",
            "validated_bank_name": "Itaú Unibanco"
          },
          "account_owner_type": "individual",
          "first_name": "Maria",
          "last_name": "Santos",
          "account_verification": {
            "pix": {
              "matched": true,
              "reason_code": null,
              "validated_account_owner_name": "Maria Santos",
              "validated_bank_name": "Itaú Unibanco"
            },
            "requested_at": "2020-01-01T00:05:00.000Z",
            "completed_at": "2020-01-01T00:05:05.000Z"
          },
          "created_at": "2020-01-01T00:00:00.000Z",
          "updated_at": "2020-01-02T00:00:00.000Z"
        }
      },
      "SuccessfulBreBExternalAccountResponse": {
        "summary": "A successful Bre-B External Account object (COP)",
        "value": {
          "id": "ea_789",
          "customer_id": "cust_789",
          "account_type": "bre_b",
          "currency": "cop",
          "account_owner_name": "Juan Garcia",
          "bank_name": "Banco de Bogota",
          "active": true,
          "account": {
            "last_4": "0000"
          },
          "account_validation": {
            "validated_account_owner_name": "Juan Garcia",
            "validated_bank_name": "Banco de Bogota",
            "validated_document_number_last4": "0000"
          },
          "account_owner_type": "individual",
          "first_name": "Juan",
          "last_name": "Garcia",
          "account_verification": {
            "bre_b": {
              "matched": true,
              "reason_code": null,
              "validated_account_owner_name": "Juan Garcia",
              "validated_bank_name": "Banco de Bogota",
              "validated_document_number_last4": "0000"
            },
            "requested_at": "2020-01-01T00:05:00.000Z",
            "completed_at": "2020-01-01T00:05:05.000Z"
          },
          "created_at": "2020-01-01T00:00:00.000Z",
          "updated_at": "2020-01-02T00:00:00.000Z"
        }
      },
      "SuccessfulCoBankTransferExternalAccountResponse": {
        "summary": "A successful CO Bank Transfer External Account object (COP)",
        "value": {
          "id": "ea_012",
          "customer_id": "cust_012",
          "account_type": "co_bank_transfer",
          "currency": "cop",
          "account_owner_name": "Maria Lopez",
          "bank_name": "Bancolombia",
          "active": true,
          "account": {
            "last_4": "1234",
            "routing_number": "1007"
          },
          "account_owner_type": "individual",
          "first_name": "Maria",
          "last_name": "Lopez",
          "account_verification": {
            "co_bank_transfer": {
              "matched": true,
              "reason_code": null,
              "validated_account_owner_name": "Maria Lopez",
              "validated_bank_name": "Bancolombia",
              "validated_document_number_last4": "9012"
            },
            "requested_at": "2020-01-01T00:05:00.000Z",
            "completed_at": "2020-01-01T00:05:05.000Z"
          },
          "created_at": "2020-01-01T00:00:00.000Z",
          "updated_at": "2020-01-02T00:00:00.000Z"
        }
      },
      "SuccessfulClabeExternalAccountResponse": {
        "summary": "A successful CLABE External Account object (SPEI)",
        "value": {
          "id": "ea_567",
          "customer_id": "cust_567",
          "account_type": "clabe",
          "currency": "mxn",
          "account_owner_name": "Juan García",
          "bank_name": "Banco Santander México",
          "active": true,
          "clabe": {
            "last_4": "0007"
          },
          "account_validation": {
            "validated_account_owner_name": "Juan García",
            "validated_bank_name": "Banco Santander México"
          },
          "account_owner_type": "individual",
          "first_name": "Juan",
          "last_name": "García",
          "account_verification": {
            "clabe": {
              "matched": true,
              "reason_code": null,
              "validated_account_owner_name": "Juan García",
              "validated_bank_name": "Banco Santander México"
            },
            "requested_at": "2020-01-01T00:05:00.000Z",
            "completed_at": "2020-01-01T00:05:05.000Z"
          },
          "created_at": "2020-01-01T00:00:00.000Z",
          "updated_at": "2020-01-02T00:00:00.000Z"
        }
      },
      "SuccessfulPrefundedAccountResponse": {
        "summary": "A successful Prefunded Account object",
        "value": {
          "id": "f15972de-4cdd-460c-9da3-34f7321bfa3f",
          "currency": "usd",
          "available_balance": "134.12",
          "name": "my_account",
          "created_at": "2020-01-01T00:00:00.000Z",
          "updated_at": "2020-01-02T00:00:00.000Z"
        }
      },
      "SuccessfulPrefundedAccountHistoryResponse": {
        "summary": "A successful Prefunded Account history",
        "value": {
          "count": 1,
          "data": [
            {
              "id": "abced012-4cdd-460c-9da3-34f7321bfa3f",
              "amount": "500.00",
              "available_balance": "1300.31",
              "currency": "usd",
              "name": "my_account",
              "type": "funding",
              "created_at": "2020-01-01T00:00:00.000Z"
            }
          ]
        }
      },
      "VirtualAccountPaymentSubmmittedEventFromAchPush": {
        "value": {
          "id": "va_event_456",
          "customer_id": "cust_alice",
          "virtual_account_id": "va_123",
          "type": "payment_submitted",
          "amount": "120.0",
          "currency": "usdc",
          "developer_fee_amount": "1.25",
          "exchange_fee_amount": "2.2",
          "subtotal_amount": "120.0",
          "gas_fee": "0.0",
          "deposit_id": "deposit_123",
          "created_at": "2024-01-01T00:00:00.000Z",
          "destination_tx_hash": "0xdeadbeef",
          "source": {
            "payment_rail": "ach_push",
            "description": "ACH description",
            "sender_name": "The name of the business or individual who initiated the ACH",
            "sender_bank_routing_number": "The routing number of the entity that initiated this ACH transaction",
            "trace_number": "The unique, a 15-digit number associated with each ACH transaction that is used for tracking and reconciling transactions"
          }
        }
      },
      "VirtualAccountFundsReceivedEventFromAchPush": {
        "value": {
          "id": "va_event_123",
          "customer_id": "cust_alice",
          "virtual_account_id": "va_123",
          "type": "funds_received",
          "amount": "123.45",
          "currency": "usd",
          "developer_fee_amount": "0.0",
          "exchange_fee_amount": "0.0",
          "subtotal_amount": "123.45",
          "gas_fee": "0.0",
          "deposit_id": "deposit_123",
          "created_at": "2024-01-01T00:00:00.000Z",
          "source": {
            "payment_rail": "ach_push",
            "description": "ACH description",
            "sender_name": "The name of the business or individual who initiated the ACH",
            "sender_bank_routing_number": "The routing number of the entity that initiated this ACH transaction",
            "trace_number": "The unique, a 15-digit number associated with each ACH transaction that is used for tracking and reconciling transactions"
          }
        }
      },
      "VirtualAccountPaymentProcessedEventFromSpei": {
        "value": {
          "id": "va_event_789",
          "customer_id": "cust_alice",
          "virtual_account_id": "va_456",
          "type": "payment_processed",
          "amount": "123.45",
          "currency": "usdc",
          "developer_fee_amount": "0.0",
          "exchange_fee_amount": "0.0",
          "subtotal_amount": "123.45",
          "gas_fee": "0.0",
          "deposit_id": "deposit_789",
          "created_at": "2025-06-01T00:00:00.000Z",
          "source": {
            "payment_rail": "spei",
            "description": "Receiving CLABE | clave de rastreo | SPEI reference",
            "tracking_number": "The unique tracking number or clave de rastreo for this SPEI transaction",
            "sender_name": "The name of the business or individual who initiated the SPEI credit",
            "clabe": "646180546700000164",
            "reference": "The reference or concepto de pago for this SPEI transaction"
          }
        }
      },
      "VirtualAccountRefundEventFromAchPush": {
        "value": {
          "id": "va_event_321",
          "customer_id": "cust_alice",
          "virtual_account_id": "va_123",
          "type": "refund",
          "amount": "250.0",
          "currency": "usd",
          "developer_fee_amount": "0.0",
          "exchange_fee_amount": "0.0",
          "subtotal_amount": "250.0",
          "gas_fee": "0.0",
          "deposit_id": "deposit_456",
          "created_at": "2024-01-02T00:00:00.000Z",
          "refund": {
            "code": "R03",
            "reason": "Risk Rejection",
            "refunded_at": "2024-01-02T00:00:00.000Z",
            "risk_rejection_reason": "Exceeds Transaction Limits"
          },
          "source": {
            "payment_rail": "ach_push",
            "description": "ACH description",
            "sender_name": "The name of the business or individual who initiated the ACH",
            "sender_bank_routing_number": "The routing number of the entity that initiated this ACH transaction",
            "trace_number": "The unique, a 15-digit number associated with each ACH transaction that is used for tracking and reconciling transactions"
          }
        }
      },
      "VirtualAccountHistoryExample": {
        "summary": "A list of event history across all customers and Virtual Accounts",
        "value": {
          "count": 4,
          "data": [
            {
              "id": "va_event_456",
              "customer_id": "cust_alice",
              "virtual_account_id": "va_123",
              "type": "payment_submitted",
              "amount": "120.0",
              "currency": "usdc",
              "developer_fee_amount": "1.25",
              "exchange_fee_amount": "2.2",
              "subtotal_amount": "120.0",
              "gas_fee": "0.0",
              "deposit_id": "deposit_123",
              "created_at": "2024-01-01T00:00:00.000Z",
              "destination_tx_hash": "0xdeadbeef",
              "source": {
                "payment_rail": "ach_push",
                "description": "ACH description",
                "sender_name": "The name of the business or individual who initiated the ACH",
                "sender_bank_routing_number": "The routing number of the entity that initiated this ACH transaction",
                "trace_number": "The unique, a 15-digit number associated with each ACH transaction that is used for tracking and reconciling transactions"
              }
            },
            {
              "id": "va_event_123",
              "customer_id": "cust_alice",
              "virtual_account_id": "va_123",
              "type": "funds_received",
              "amount": "123.45",
              "currency": "usd",
              "developer_fee_amount": "0.0",
              "exchange_fee_amount": "0.0",
              "subtotal_amount": "123.45",
              "gas_fee": "0.0",
              "deposit_id": "deposit_123",
              "created_at": "2024-01-01T00:00:00.000Z",
              "source": {
                "payment_rail": "ach_push",
                "description": "ACH description",
                "sender_name": "The name of the business or individual who initiated the ACH",
                "sender_bank_routing_number": "The routing number of the entity that initiated this ACH transaction",
                "trace_number": "The unique, a 15-digit number associated with each ACH transaction that is used for tracking and reconciling transactions"
              }
            },
            {
              "id": "va_event_789",
              "customer_id": "cust_alice",
              "virtual_account_id": "va_456",
              "type": "payment_processed",
              "amount": "123.45",
              "currency": "usdc",
              "developer_fee_amount": "0.0",
              "exchange_fee_amount": "0.0",
              "subtotal_amount": "123.45",
              "gas_fee": "0.0",
              "deposit_id": "deposit_789",
              "created_at": "2025-06-01T00:00:00.000Z",
              "source": {
                "payment_rail": "spei",
                "description": "Receiving CLABE | clave de rastreo | SPEI reference",
                "tracking_number": "The unique tracking number or clave de rastreo for this SPEI transaction",
                "sender_name": "The name of the business or individual who initiated the SPEI credit",
                "clabe": "646180546700000164",
                "reference": "The reference or concepto de pago for this SPEI transaction"
              }
            },
            {
              "id": "va_event_321",
              "customer_id": "cust_alice",
              "virtual_account_id": "va_123",
              "type": "refund",
              "amount": "250.0",
              "currency": "usd",
              "developer_fee_amount": "0.0",
              "exchange_fee_amount": "0.0",
              "subtotal_amount": "250.0",
              "gas_fee": "0.0",
              "deposit_id": "deposit_456",
              "created_at": "2024-01-02T00:00:00.000Z",
              "refund": {
                "code": "R03",
                "reason": "Risk Rejection",
                "refunded_at": "2024-01-02T00:00:00.000Z",
                "risk_rejection_reason": "Exceeds Transaction Limits"
              },
              "source": {
                "payment_rail": "ach_push",
                "description": "ACH description",
                "sender_name": "The name of the business or individual who initiated the ACH",
                "sender_bank_routing_number": "The routing number of the entity that initiated this ACH transaction",
                "trace_number": "The unique, a 15-digit number associated with each ACH transaction that is used for tracking and reconciling transactions"
              }
            }
          ]
        }
      },
      "StaticMemoHistoryExample": {
        "summary": "A list of event history across all customers and Virtual Accounts",
        "value": {
          "count": 4,
          "data": [
            {
              "id": "sm_event_456",
              "customer_id": "cust_alice",
              "static_memo_id": "sm_123",
              "type": "payment_submitted",
              "amount": "120.0",
              "currency": "usdc",
              "developer_fee_amount": "1.25",
              "exchange_fee_amount": "2.2",
              "subtotal_amount": "120.0",
              "gas_fee": "0.0",
              "deposit_id": "deposit_123",
              "created_at": "2020-01-01T00:00:00.000Z",
              "destination_tx_hash": "0xdeadbeef",
              "source_deposit_instructions": {
                "deposit_message": "BVI7depositmessage"
              },
              "source": {
                "payment_rail": "ach_push",
                "description": "ACH description, if available"
              }
            },
            {
              "id": "sm_event_123",
              "customer_id": "cust_alice",
              "static_memo_id": "sm_123",
              "type": "funds_received",
              "amount": "123.45",
              "currency": "usd",
              "developer_fee_amount": "0.0",
              "exchange_fee_amount": "0.0",
              "subtotal_amount": "123.45",
              "gas_fee": "0.0",
              "deposit_id": "deposit_123",
              "created_at": "2020-01-01T00:00:00.000Z",
              "source_deposit_instructions": {
                "deposit_message": "BVI7depositmessage"
              },
              "source": {
                "payment_rail": "ach_push",
                "description": "ACH description, if available"
              }
            },
            {
              "id": "sm_event_457",
              "customer_id": "cust_alice",
              "static_memo_id": "sm_123",
              "type": "payment_submitted",
              "amount": "120.0",
              "currency": "usdc",
              "developer_fee_amount": "1.25",
              "exchange_fee_amount": "2.2",
              "subtotal_amount": "120.0",
              "gas_fee": "0.0",
              "deposit_id": "deposit_123",
              "created_at": "2020-01-01T00:00:00.000Z",
              "destination_tx_hash": "0xdeadbeef",
              "source_deposit_instructions": {
                "deposit_message": "BVI7depositmessage"
              },
              "source": {
                "payment_rail": "wire",
                "bank_beneficiary_name": "Bank beneficiary",
                "bank_beneficiary_address": "Bank beneficiary address",
                "originator_name": "Originator Name",
                "originator_address": "Originator Address",
                "bank_routing_number": "1234567890",
                "bank_name": "Bank name",
                "imad": "IMAD of incoming wire, if available",
                "omad": "OMAD of incoming wire, if available (deprecated)",
                "wire_message": "Memo of incoming wire, if available"
              }
            },
            {
              "id": "sm_event_124",
              "customer_id": "cust_alice",
              "static_memo_id": "sm_123",
              "type": "funds_received",
              "amount": "123.45",
              "currency": "usd",
              "developer_fee_amount": "0.0",
              "exchange_fee_amount": "0.0",
              "subtotal_amount": "123.45",
              "gas_fee": "0.0",
              "deposit_id": "deposit_123",
              "created_at": "2020-01-01T00:00:00.000Z",
              "source_deposit_instructions": {
                "deposit_message": "BVI7depositmessage"
              },
              "source": {
                "payment_rail": "wire",
                "bank_beneficiary_name": "Bank beneficiary",
                "bank_beneficiary_address": "Bank beneficiary address",
                "originator_name": "Originator Name",
                "originator_address": "Originator Address",
                "bank_routing_number": "1234567890",
                "bank_name": "Bank name",
                "imad": "IMAD of incoming wire, if available",
                "omad": "OMAD of incoming wire, if available (deprecated)",
                "wire_message": "Memo of incoming wire, if available"
              }
            }
          ]
        }
      },
      "CryptoPayinResponse": {
        "summary": "A successful payin",
        "value": {
          "id": "payin_456",
          "customer_id": "cust_123",
          "payment_rail": "ethereum",
          "currency": "usdc",
          "amount": "100.88",
          "state": "completed",
          "transaction_hash": "0xc13d7905be5c989378a945487cd2a1193627ae606009e28e296d48ddaec66162",
          "to_address": "0x4d0280da2f2fDA5103914bCc5aad114743152A9c"
        }
      },
      "WirePayinResponse": {
        "summary": "A successful payin",
        "value": {
          "id": "payin_456",
          "customer_id": "cust_123",
          "payment_rail": "wire",
          "currency": "usd",
          "amount": "400.25",
          "state": "completed"
        }
      },
      "WirePayoutResponse": {
        "summary": "A successful payout",
        "value": {
          "id": "payout_789",
          "customer_id": "cust_123",
          "payment_rail": "wire",
          "currency": "usd",
          "amount": "9999.99",
          "external_account_id": "ea_123",
          "state": "completed"
        }
      },
      "PlaidLinkRequestSuccessResponse": {
        "summary": "Successful Plaid Link token creation",
        "value": {
          "link_token": "plaid_link_token_123",
          "link_token_expires_at": "2023-03-23T03:22:34.086Z",
          "callback_url": "https://api.bridge.xyz/v0/plaid_exchange_public_token/plaid_link_token_123"
        }
      },
      "SuccessfulKycLinkCreateResponse": {
        "summary": "Successful KYC link creation",
        "value": {
          "id": "kyc_link_123",
          "full_name": "John Doe",
          "email": "johndoe@johndoe.com",
          "type": "individual",
          "kyc_link": "www.kyclink.com/blah",
          "tos_link": "www.toslink.com/blah",
          "kyc_status": "not_started",
          "tos_status": "pending",
          "customer_id": "cust_123"
        }
      },
      "ApprovedKycLinkGetResponse": {
        "summary": "Approved KYC link",
        "value": {
          "id": "kyc_link_123",
          "full_name": "John Doe",
          "email": "johndoe@johndoe.com",
          "type": "individual",
          "kyc_link": "www.kyclink.com/blah",
          "tos_link": "www.toslink.com/blah",
          "kyc_status": "approved",
          "rejection_reasons": [],
          "tos_status": "approved",
          "customer_id": "cust_123"
        }
      },
      "RejectedKycLinkGetResponse": {
        "summary": "Rejected KYC link",
        "value": {
          "id": "kyc_link_123",
          "full_name": "John Doe",
          "email": "johndoe@johndoe.com",
          "type": "individual",
          "kyc_link": "www.kyclink.com/blah",
          "tos_link": "www.toslink.com/blah",
          "kyc_status": "rejected",
          "rejection_reasons": [
            {
              "developer_reason": "Missing required ID details.",
              "reason": "Cannot validate ID -- upload a clear photo of the full ID",
              "created_at": "2020-01-02T00:00:00.000Z"
            },
            {
              "developer_reason": "Blurry face portrait.",
              "reason": "Cannot validate ID -- upload a clear photo of the full ID",
              "created_at": "2020-01-02T00:00:00.000Z"
            }
          ],
          "tos_status": "approved",
          "customer_id": "cust_123"
        }
      },
      "KycLinksGetResponse": {
        "summary": "A list of KYC links",
        "value": {
          "count": 2,
          "data": [
            {
              "id": "kyc_link_123",
              "full_name": "John Doe",
              "email": "johndoe@johndoe.com",
              "type": "individual",
              "kyc_link": "www.kyclink.com/blah",
              "tos_link": "www.toslink.com/blah",
              "kyc_status": "approved",
              "rejection_reasons": [],
              "tos_status": "approved",
              "customer_id": "cust_123"
            },
            {
              "id": "kyc_link_456",
              "full_name": "Jane Doe",
              "email": "janedoe@janedoe.com",
              "type": "individual",
              "kyc_link": "www.kyclink.com/blah",
              "tos_link": "www.toslink.com/blah",
              "kyc_status": "rejected",
              "rejection_reasons": [
                {
                  "developer_reason": "Missing required ID details.",
                  "reason": "Cannot validate ID -- upload a clear photo of the full ID",
                  "created_at": "2020-01-02T00:00:00.000Z"
                },
                {
                  "developer_reason": "Blurry face portrait.",
                  "reason": "Cannot validate ID -- upload a clear photo of the full ID",
                  "created_at": "2020-01-02T00:00:00.000Z"
                }
              ],
              "tos_status": "approved",
              "customer_id": "cust_456"
            }
          ]
        }
      },
      "SuccessfulBridgeWalletCreateResponse": {
        "summary": "A successful Bridge Wallet creation response",
        "value": {
          "id": "bw_123",
          "chain": "solana",
          "address": "9kV3ZMehKVyxfHKCcaDLye3P9HHw2MP4jtQa2gKBUmCs",
          "created_at": "2023-11-22T21:31:30.515Z",
          "updated_at": "2023-11-22T21:31:30.515Z"
        }
      },
      "WithdrawalBridgeWalletEvent": {
        "summary": "An outgoing transfer from a bridge wallet initiated by a transfer",
        "value": {
          "count": 1,
          "data": [
            {
              "id": "bwe_123",
              "bridge_wallet_id": "bw_123",
              "amount": "500.000000",
              "available_balance": "500.000000",
              "currency": "usdc",
              "type": "withdrawal",
              "source": {
                "currency": "usdc",
                "payment_rail": "ethereum"
              },
              "destination": {
                "currency": "usd",
                "payment_rail": "ach"
              },
              "payment_route": {
                "type": "transfer",
                "customer_id": "cust_123",
                "transfer_id": "transfer_123"
              },
              "created_at": "2025-01-01T00:00:00.000Z"
            }
          ]
        }
      },
      "DepositDrainBridgeWalletEvent": {
        "summary": "A deposit to a bridge wallet via a liquidation address drain",
        "value": {
          "count": 1,
          "data": [
            {
              "id": "bwe_123",
              "bridge_wallet_id": "bw_123",
              "amount": "50.000000",
              "available_balance": "1050.000000",
              "currency": "usdc",
              "type": "deposit",
              "source": {
                "currency": "usd",
                "payment_rail": "ach"
              },
              "destination": {
                "currency": "usdc",
                "payment_rail": "ethereum",
                "tx_hash": "0xdeadbeef"
              },
              "payment_route": {
                "type": "drain",
                "customer_id": "cust_123",
                "drain_id": "drain_123",
                "liquidation_address_id": "la_123"
              },
              "created_at": "2025-01-01T00:00:00.000Z"
            }
          ]
        }
      },
      "DepositStaticMemoEventBridgeWalletEvent": {
        "summary": "A deposit to a bridge wallet via a static memo fiat payment",
        "value": {
          "count": 1,
          "data": [
            {
              "id": "bwe_123",
              "bridge_wallet_id": "bw_123",
              "amount": "200.000000",
              "available_balance": "1200.000000",
              "currency": "usdc",
              "type": "deposit",
              "source": {
                "currency": "usd",
                "payment_rail": "wire"
              },
              "destination": {
                "currency": "usdc",
                "payment_rail": "ethereum",
                "tx_hash": "0xdeadbeef"
              },
              "payment_route": {
                "type": "static_memo_event",
                "customer_id": "cust_123",
                "deposit_id": "dep_123",
                "static_memo_event_id": "sme_123",
                "static_memo_id": "sm_123"
              },
              "created_at": "2025-01-01T00:00:00.000Z"
            }
          ]
        }
      },
      "DepositVirtualAccountEventBridgeWalletEvent": {
        "summary": "A deposit to a bridge wallet via a virtual account payment",
        "value": {
          "count": 1,
          "data": [
            {
              "id": "bwe_123",
              "bridge_wallet_id": "bw_123",
              "amount": "75.000000",
              "available_balance": "1075.000000",
              "currency": "usdc",
              "type": "deposit",
              "source": {
                "currency": "usd",
                "payment_rail": "ach"
              },
              "destination": {
                "currency": "usdc",
                "payment_rail": "ethereum",
                "tx_hash": "0xdeadbeef"
              },
              "payment_route": {
                "type": "virtual_account_event",
                "customer_id": "cust_123",
                "deposit_id": "dep_123",
                "virtual_account_event_id": "vae_123",
                "virtual_account_id": "va_123"
              },
              "created_at": "2025-01-01T00:00:00.000Z"
            }
          ]
        }
      },
      "DepositTransferBridgeWalletEvent": {
        "summary": "A deposit to a bridge wallet via a transfer payment",
        "value": {
          "count": 1,
          "data": [
            {
              "id": "bwe_123",
              "bridge_wallet_id": "bw_123",
              "amount": "300.000000",
              "available_balance": "1300.000000",
              "currency": "usdc",
              "type": "deposit",
              "source": {
                "currency": "usd",
                "payment_rail": "ach"
              },
              "destination": {
                "currency": "usdc",
                "payment_rail": "ethereum",
                "tx_hash": "0xdeadbeef"
              },
              "payment_route": {
                "type": "transfer",
                "customer_id": "cust_123",
                "transfer_id": "transfer_123"
              },
              "created_at": "2025-01-01T00:00:00.000Z"
            }
          ]
        }
      },
      "DirectDepositBridgeWalletEvent": {
        "summary": "A deposit to a bridge wallet directly on the blockchain",
        "value": {
          "count": 1,
          "data": [
            {
              "id": "bwe_123",
              "bridge_wallet_id": "bw_123",
              "amount": "25.000000",
              "available_balance": "1025.000000",
              "currency": "usdc",
              "type": "direct_deposit",
              "source": {
                "currency": "usdc",
                "payment_rail": "ethereum",
                "from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
              },
              "destination": {
                "currency": "usdc",
                "payment_rail": "ethereum",
                "tx_hash": "0xdeadbeef"
              },
              "created_at": "2025-01-01T00:00:00.000Z"
            }
          ]
        }
      },
      "ReturnBridgeWalletEvent": {
        "summary": "An outgoing transfer from a bridge wallet that was rejected for AML reasons was returned",
        "value": {
          "count": 1,
          "data": [
            {
              "id": "bwe_123",
              "bridge_wallet_id": "bw_123",
              "amount": "150.000000",
              "available_balance": "1150.000000",
              "currency": "usdc",
              "type": "return",
              "source": {
                "currency": "usd",
                "payment_rail": "ach"
              },
              "destination": {
                "currency": "usdc",
                "payment_rail": "ethereum"
              },
              "payment_route": {
                "type": "transfer",
                "customer_id": "cust_123",
                "transfer_id": "transfer_123"
              },
              "created_at": "2025-01-01T00:00:00.000Z"
            }
          ]
        }
      },
      "UndeliverableBridgeWalletEvent": {
        "summary": "An outgoing transfer from a bridge wallet that could not be delivered was returned",
        "value": {
          "count": 1,
          "data": [
            {
              "id": "bwe_123",
              "bridge_wallet_id": "bw_123",
              "amount": "80.000000",
              "available_balance": "1080.000000",
              "currency": "usdc",
              "type": "undeliverable",
              "source": {
                "currency": "usd",
                "payment_rail": "ach"
              },
              "destination": {
                "currency": "usdc",
                "payment_rail": "ethereum"
              },
              "payment_route": {
                "type": "transfer",
                "customer_id": "cust_123",
                "transfer_id": "transfer_123"
              },
              "created_at": "2025-01-01T00:00:00.000Z"
            }
          ]
        }
      },
      "CardSpendBridgeWalletEvent": {
        "summary": "A card spend debiting the bridge wallet to fund a card authorization",
        "value": {
          "count": 1,
          "data": [
            {
              "id": "bwe_123",
              "bridge_wallet_id": "bw_123",
              "amount": "25.500000",
              "available_balance": "974.500000",
              "currency": "usdc",
              "type": "card_spend",
              "source": {
                "currency": "usdc",
                "from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
                "payment_rail": "base"
              },
              "destination": {
                "currency": "usdc",
                "payment_rail": "card_spend_internal_funding"
              },
              "payment_route": {
                "type": "card_spend",
                "customer_id": "cust_123",
                "card_crypto_transaction_id": "cct_123",
                "issuing_authorization_id": "iauth_123",
                "issuing_transaction_id": "ipi_456"
              },
              "created_at": "2025-01-01T00:00:00.000Z"
            }
          ]
        }
      },
      "CardRefundBridgeWalletEvent": {
        "summary": "A card refund crediting the bridge wallet after a confirmed card spend is returned",
        "value": {
          "count": 1,
          "data": [
            {
              "id": "bwe_123",
              "bridge_wallet_id": "bw_123",
              "amount": "10.450000",
              "available_balance": "1010.450000",
              "currency": "usdc",
              "type": "card_refund",
              "source": {
                "currency": "usdc",
                "from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
                "payment_rail": "base"
              },
              "destination": {
                "currency": "usdc",
                "payment_rail": "card_spend_internal_funding"
              },
              "payment_route": {
                "type": "card_spend",
                "customer_id": "cust_123",
                "issuing_authorization_id": "iauth_789",
                "issuing_transaction_id": "ipi_012"
              },
              "created_at": "2025-01-01T00:00:00.000Z"
            }
          ]
        }
      },
      "SuccessfulBridgeWalletGetResponse": {
        "summary": "A successful get response for a Bridge Wallet",
        "value": {
          "id": "bw_123",
          "chain": "solana",
          "address": "9kV3ZMehKVyxfHKCcaDLye3P9HHw2MP4jtQa2gKBUmCs",
          "created_at": "2023-11-22T21:31:30.515Z",
          "updated_at": "2023-11-22T21:31:30.515Z",
          "balances": [
            {
              "balance": "100.25",
              "currency": "usdb",
              "chain": "solana",
              "contract_address": "ENL66PGy8d8j5KNqLtCcg4uidDUac5ibt45wbjH9REzB"
            }
          ]
        }
      },
      "SuccessfulBridgeWalletListResponse": {
        "summary": "A successful get response for a list of Bridge Wallets",
        "value": {
          "count": 1,
          "data": [
            {
              "id": "bw_123",
              "chain": "solana",
              "address": "9kV3ZMehKVyxfHKCcaDLye3P9HHw2MP4jtQa2gKBUmCs",
              "created_at": "2023-11-22T21:31:30.515Z",
              "updated_at": "2023-11-22T21:31:30.515Z"
            }
          ]
        }
      },
      "SuccessfulLiquidationAddressCreateResponse": {
        "summary": "A successful Liquidation Address creation response",
        "value": {
          "id": "la_123",
          "chain": "ethereum",
          "customer_id": "cust_123",
          "external_account_id": "ext_123",
          "address": "0x4d0280da2f2fDA5103914bCc5aad114743152A9c",
          "currency": "usdc",
          "supported_currencies": {
            "ethereum": [
              "usdc"
            ]
          },
          "state": "active",
          "created_at": "2023-11-22T21:31:30.515Z",
          "updated_at": "2023-11-22T21:31:30.515Z"
        }
      },
      "SuccessfulMultiChainLiquidationAddressCreateResponse": {
        "summary": "A creation response for a multi-chain, multi-currency Liquidation Address",
        "value": {
          "id": "la_123",
          "chain": "evm",
          "customer_id": "cust_123",
          "external_account_id": "ext_123",
          "address": "0x4d0280da2f2fDA5103914bCc5aad114743152A9c",
          "currency": "all_supported",
          "supported_currencies": {
            "ethereum": [
              "usdc",
              "eurc"
            ],
            "polygon": [
              "usdc"
            ],
            "base": [
              "usdc",
              "eurc"
            ]
          },
          "state": "active",
          "created_at": "2023-11-22T21:31:30.515Z",
          "updated_at": "2023-11-22T21:31:30.515Z"
        }
      },
      "SuccessfulSepaLiquidationAddressCreateResponse": {
        "summary": "A creation response using SEPA as the destination rail",
        "value": {
          "id": "la_123",
          "chain": "ethereum",
          "customer_id": "cust_123",
          "external_account_id": "ext_123",
          "address": "0x4d0280da2f2fDA5103914bCc5aad114743152A9c",
          "currency": "usdc",
          "destination_sepa_reference": "SEPA reference",
          "destination_payment_rail": "sepa",
          "destination_currency": "eur",
          "supported_currencies": {
            "ethereum": [
              "usdc"
            ]
          },
          "state": "active",
          "created_at": "2023-11-22T21:31:30.515Z",
          "updated_at": "2023-11-22T21:31:30.515Z"
        }
      },
      "SuccessfulLiquidationAddressGetResponse": {
        "summary": "A successful get response for a Liquidation Address",
        "value": {
          "id": "la_123",
          "chain": "ethereum",
          "customer_id": "cust_123",
          "external_account_id": "ext_123",
          "address": "0x4d0280da2f2fDA5103914bCc5aad114743152A9c",
          "currency": "usdc",
          "destination_payment_rail": "wire",
          "destination_currency": "usd",
          "destination_wire_message": "a wire message",
          "supported_currencies": {
            "ethereum": [
              "usdc"
            ]
          },
          "state": "active",
          "created_at": "2023-11-22T21:31:30.515Z",
          "updated_at": "2023-11-22T21:31:30.515Z"
        }
      },
      "SuccessfulSepaLiquidationAddressGetResponse": {
        "summary": "A successful get response for a SEPA Liquidation Address",
        "value": {
          "id": "la_123",
          "chain": "ethereum",
          "customer_id": "cust_123",
          "external_account_id": "ext_123",
          "address": "0x4d0280da2f2fDA5103914bCc5aad114743152A9c",
          "currency": "usdc",
          "destination_payment_rail": "sepa",
          "destination_currency": "eur",
          "destination_sepa_reference": "a SEPA reference",
          "supported_currencies": {
            "ethereum": [
              "usdc"
            ]
          },
          "state": "active",
          "created_at": "2023-11-22T21:31:30.515Z",
          "updated_at": "2023-11-22T21:31:30.515Z"
        }
      },
      "SuccessfulGetAllLiquidationAddressResponse": {
        "summary": "A successful get request for a list of Liquidation Addresses",
        "value": {
          "count": 1,
          "data": {
            "type": "array",
            "minItems": 0,
            "items": {
              "id": "la_123",
              "chain": "ethereum",
              "customer_id": "cust_123",
              "external_account_id": "ext_123",
              "address": "0x4d0280da2f2fDA5103914bCc5aad114743152A9c",
              "currency": "usdc",
              "supported_currencies": {
                "ethereum": [
                  "usdc"
                ]
              },
              "state": "active",
              "created_at": "2023-11-22T21:31:30.515Z",
              "updated_at": "2023-11-22T21:31:30.515Z"
            }
          }
        }
      },
      "PlaidExchangePublicTokenSuccessResponse": {
        "summary": "Successful Plaid public token exchange",
        "value": {
          "message": "Successfully exchanged public token for access token"
        }
      },
      "SuccessfulLiquidationAddressDrainsToCryptoResponse": {
        "summary": "A successful get request for a Liquidation Address's drain to crypto",
        "value": {
          "count": 1,
          "data": [
            {
              "id": "la_123",
              "amount": "100.25",
              "customer_id": "cust_123",
              "liquidation_address_id": "la_456",
              "currency": "usdc",
              "state": "funds_received",
              "created_at": "2020-01-01T00:00:00.000Z",
              "updated_at": "2020-01-01T00:00:00.000Z",
              "deposit_tx_hash": "0xc13d7905be5c989378a945487cd2a1193627ae606009e28e296d48ddaec66162",
              "destination": {
                "payment_rail": "ethereum",
                "currency": "usdt",
                "to_address": "0xb794f5ea0ba39494ce839613fffba74279579268"
              },
              "destination_tx_hash": "0xdeadbeef",
              "receipt": {
                "initial_amount": "100.25",
                "developer_fee": "0.2",
                "subtotal_amount": "100.05",
                "exchange_rate": "1.000000",
                "converted_amount": "100.05",
                "outgoing_amount": "100.05",
                "destination_currency": "usd",
                "url": "https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000"
              }
            }
          ]
        }
      },
      "SuccessfulLiquidationAddressDrainsToFiatResponse": {
        "summary": "A successful get request for a Liquidation Address's drain to fiat",
        "value": {
          "count": 1,
          "data": [
            {
              "id": "la_123",
              "amount": "100.25",
              "customer_id": "cust_123",
              "liquidation_address_id": "la_456",
              "currency": "usdc",
              "state": "funds_received",
              "created_at": "2020-01-01T00:00:00.000Z",
              "updated_at": "2020-01-01T00:00:00.000Z",
              "deposit_tx_hash": "0xc13d7905be5c989378a945487cd2a1193627ae606009e28e296d48ddaec66162",
              "destination": {
                "payment_rail": "wire",
                "currency": "usd",
                "external_account_id": "ext_acct_789",
                "wire_message": "a wire message",
                "imad": "123456"
              },
              "receipt": {
                "initial_amount": "100.25",
                "developer_fee": "0.2",
                "subtotal_amount": "100.05",
                "exchange_rate": "1.000000",
                "converted_amount": "100.05",
                "outgoing_amount": "100.05",
                "destination_currency": "usd",
                "url": "https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000"
              }
            }
          ]
        }
      },
      "ReturnedLiquidationAddressDrainsResponse": {
        "summary": "A Liquidation Address drain returned because of a risk-control decision",
        "value": {
          "count": 1,
          "data": [
            {
              "id": "la_789",
              "amount": "100.25",
              "customer_id": "cust_123",
              "liquidation_address_id": "la_456",
              "currency": "usdc",
              "state": "refunded",
              "created_at": "2020-01-01T00:00:00.000Z",
              "updated_at": "2020-01-02T00:00:00.000Z",
              "deposit_tx_hash": "0xc13d7905be5c989378a945487cd2a1193627ae606009e28e296d48ddaec66162",
              "destination": {
                "payment_rail": "wire",
                "currency": "usd",
                "external_account_id": "ext_acct_789"
              },
              "refund_tx_hash": "0xdeadbeef",
              "return_details": {
                "risk_rejection_reason": "Exceeds Counterparty Limits"
              }
            }
          ]
        }
      },
      "SuccessfulLiquidationAddressBalanceResponse": {
        "summary": "A successful get request for a Liquidation Address's balance",
        "value": {
          "active_balance": "0",
          "pending_balance": "100.25"
        }
      },
      "SuccessfulDeveloperFeesShowResponse": {
        "summary": "A successful get request for configured fees.",
        "value": {
          "default_liquidation_address_fee_percent": "1.3"
        }
      },
      "CreateApiKeyRequest": {
        "summary": "Create a scoped API key limited to reading and creating customers.",
        "value": {
          "name": "Customer service key",
          "scopes": [
            "customer:read",
            "customer:create"
          ]
        }
      },
      "SuccessfulCreateApiKeyResponse": {
        "summary": "A successful create request for a scoped API key.",
        "value": {
          "id": "5f1f5b3a-8c2b-4e5f-9d88-e0b2a7d3a1e8",
          "type": "Private",
          "owner_type": "Developer",
          "owner_id": "e802b3a4-f453-4da8-8a5b-dd50cede1e4f",
          "prefix": "sk-live",
          "last_4": "9f2c",
          "state": "Active",
          "created_at": "2026-04-22T15:04:05Z",
          "updated_at": "2026-04-22T15:04:05Z",
          "name": "Customer service key",
          "scopes": [
            "customer:read",
            "customer:create"
          ],
          "value": "sk-live-0123456789abcdef0123456789ab9f2c"
        }
      },
      "SuccessfulWhoAmIResponse": {
        "summary": "A successful whoami request for a scoped API key.",
        "value": {
          "id": "5f1f5b3a-8c2b-4e5f-9d88-e0b2a7d3a1e8",
          "type": "Private",
          "owner_type": "Developer",
          "owner_id": "e802b3a4-f453-4da8-8a5b-dd50cede1e4f",
          "prefix": "sk-live",
          "last_4": "9f2c",
          "state": "Active",
          "created_at": "2026-04-22T15:04:05Z",
          "updated_at": "2026-04-22T15:04:05Z",
          "name": "Customer service key",
          "scopes": [
            "customer:read",
            "customer:create"
          ]
        }
      },
      "SuccessfulTotalBalancesResponse": {
        "summary": "A successful get request for total balances",
        "value": [
          {
            "balance": "100.25",
            "currency": "usdb",
            "chain": "solana",
            "contract_address": "ENL66PGy8d8j5KNqLtCcg4uidDUac5ibt45wbjH9REzB"
          }
        ]
      },
      "WireFundsRequestResponse": {
        "summary": "A successful wire funds request",
        "value": {
          "id": "fr_123",
          "deposit_id": "dep_123",
          "customer_id": "cust_123",
          "amount": "120.0",
          "currency": "usd",
          "payment_rail": "wire",
          "fraud": true,
          "notice_date": "2020-02-01",
          "imad": "123456",
          "created_at": "2020-02-01T00:00:00.000Z",
          "deposit_created-at": "2020-01-01T00:00:00.000Z"
        }
      },
      "AchFundsRequestResponse": {
        "summary": "A successful ACH funds request",
        "value": {
          "id": "fr_123",
          "deposit_id": "dep_123",
          "customer_id": "cust_123",
          "amount": "120.0",
          "currency": "usd",
          "payment_rail": "ach_push",
          "fraud": true,
          "notice_date": "2020-02-01",
          "trace_number": "123456",
          "created_at": "2020-02-01T00:00:00.000Z",
          "deposit_created-at": "2020-01-01T00:00:00.000Z"
        }
      },
      "SepaFundsRequestResponse": {
        "summary": "A successful SEPA funds request",
        "value": {
          "id": "fr_123",
          "deposit_id": "dep_123",
          "customer_id": "cust_123",
          "amount": "120.0",
          "currency": "eur",
          "payment_rail": "sepa",
          "fraud": true,
          "notice_date": "2020-02-01",
          "bank_transaction_id": "123456",
          "created_at": "2020-02-01T00:00:00.000Z",
          "deposit_created-at": "2020-01-01T00:00:00.000Z"
        }
      },
      "FundsRequestsResponse": {
        "summary": "A list of funds requests across all customers",
        "value": {
          "count": 3,
          "data": [
            {
              "id": "fr_123",
              "deposit_id": "dep_123",
              "customer_id": "cust_123",
              "amount": "120.0",
              "currency": "usd",
              "payment_rail": "wire",
              "fraud": true,
              "notice_date": "2020-02-01",
              "imad": "123456",
              "created_at": "2020-02-01T00:00:00.000Z",
              "deposit_created-at": "2020-01-01T00:00:00.000Z"
            },
            {
              "id": "fr_123",
              "deposit_id": "dep_123",
              "customer_id": "cust_123",
              "amount": "120.0",
              "currency": "usd",
              "payment_rail": "ach_push",
              "fraud": true,
              "notice_date": "2020-02-01",
              "trace_number": "123456",
              "created_at": "2020-02-01T00:00:00.000Z",
              "deposit_created-at": "2020-01-01T00:00:00.000Z"
            },
            {
              "id": "fr_123",
              "deposit_id": "dep_123",
              "customer_id": "cust_123",
              "amount": "120.0",
              "currency": "eur",
              "payment_rail": "sepa",
              "fraud": true,
              "notice_date": "2020-02-01",
              "bank_transaction_id": "123456",
              "created_at": "2020-02-01T00:00:00.000Z",
              "deposit_created-at": "2020-01-01T00:00:00.000Z"
            }
          ]
        }
      },
      "RfiResponse": {
        "summary": "An RFI raised against a transfer, with a structured questions template",
        "value": {
          "id": "rfi_ah4nyoi9pcbrgl3mnu092l6b",
          "state": "on_developer",
          "customer_id": "cust_c6ednm25xanjrx1yzz5s4t8n",
          "referent_id": "transfer_hmyt7lyjqr0h39s5g87lo0jn",
          "referent_type": "transfer",
          "bridge_action_taken": null,
          "expected_action_on_expiry": "pause_customer",
          "deadline": "2026-08-15T00:00:00.000Z",
          "requested_items": [
            {
              "content": "What is the source of funds for this payment? Please provide supporting documentation (bank or investment statement, pay stub, invoice, receipt or contract).",
              "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
              "status": "requested",
              "referent_type": "transfer",
              "referent_id": "d4e5f6a7-b8c9-0123-def0-234567890123",
              "response_types": [
                "free_text_explanation",
                "document_list"
              ],
              "group_id": null
            },
            {
              "content": "Business ownership document",
              "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
              "status": "requested",
              "referent_type": "customer",
              "referent_id": "e5f6a7b8-c9d0-1234-ef01-345678901234",
              "response_types": [
                "document_list",
                "free_text_explanation"
              ],
              "group_id": "c3d4e5f6-a7b8-9012-cdef-123456789012"
            }
          ],
          "requested_item_groups": [
            {
              "id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
              "name": "Ownership/control",
              "description": "Please return an acceptable ownership document which details all individuals that either directly or indirectly hold ≥25% of the applying entity."
            }
          ],
          "additional_context": null,
          "dashboard_url": "https://dashboard.bridge.xyz/rfis/rfi_ah4nyoi9pcbrgl3mnu092l6b",
          "state_changed_at": "2026-08-01T00:00:00.000Z",
          "created_at": "2026-08-01T00:00:00.000Z",
          "closed_at": null
        }
      },
      "RfiListResponse": {
        "summary": "A list of RFIs",
        "value": {
          "count": 1,
          "data": [
            {
              "id": "rfi_ah4nyoi9pcbrgl3mnu092l6b",
              "state": "on_developer",
              "customer_id": "cust_c6ednm25xanjrx1yzz5s4t8n",
              "referent_id": "transfer_hmyt7lyjqr0h39s5g87lo0jn",
              "referent_type": "transfer",
              "bridge_action_taken": null,
              "expected_action_on_expiry": "pause_customer",
              "deadline": "2026-08-15T00:00:00.000Z",
              "requested_items": [
                {
                  "content": "What is the source of funds for this payment? Please provide supporting documentation (bank or investment statement, pay stub, invoice, receipt or contract).",
                  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                  "status": "requested",
                  "referent_type": "transfer",
                  "referent_id": "d4e5f6a7-b8c9-0123-def0-234567890123",
                  "response_types": [
                    "free_text_explanation",
                    "document_list"
                  ],
                  "group_id": null
                },
                {
                  "content": "Business ownership document",
                  "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
                  "status": "requested",
                  "referent_type": "customer",
                  "referent_id": "e5f6a7b8-c9d0-1234-ef01-345678901234",
                  "response_types": [
                    "document_list",
                    "free_text_explanation"
                  ],
                  "group_id": "c3d4e5f6-a7b8-9012-cdef-123456789012"
                }
              ],
              "requested_item_groups": [
                {
                  "id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
                  "name": "Ownership/control",
                  "description": "Please return an acceptable ownership document which details all individuals that either directly or indirectly hold ≥25% of the applying entity."
                }
              ],
              "additional_context": null,
              "dashboard_url": "https://dashboard.bridge.xyz/rfis/rfi_ah4nyoi9pcbrgl3mnu092l6b",
              "state_changed_at": "2026-08-01T00:00:00.000Z",
              "created_at": "2026-08-01T00:00:00.000Z",
              "closed_at": null
            }
          ]
        }
      },
      "SuccessfulWebhookResponse": {
        "summary": "A successful webhook endpoint object.",
        "value": {
          "id": "wep_123",
          "url": "https://my_endpoint.xyz/hooks",
          "status": "active",
          "public_key": "-----BEGIN PUBLIC KEY-----\\nFAKEhFnaPLmxxG4a5w0BAQEFAAOCAQ8AMIIBCgKCAQEAtYhc6PV2LOs/nqDRHi0B\\nMKTsdMLHtg58a1NDxaYfw4IZJ3hpy1qIFUgt5X0HhCYZE0Y40MyLGIejPyitEjYw\\ni9/aE+9F/PN+btqN7OK6cVuF9s/R9cZCtNc27UdTQXrUO5T8GXNAMmRr0KFh8yPv\\nfIgpoZn5ZhnyRbZpDvrxHzLmcZJFAX8Ca+KZLzgGVybEqJtP6fKAT0zrrUS1z44s\\nRDOLiXl543cRAmBnUyrT6cXiNz/PNbm4zRK5Nx7LGxBFrCWQCao4Yi8hrwWsnHxg\\n0Tcy3UyZhAcgL6ydVJfLD5x58Ri4BN32WPBtgSSO6JxZZwCiX0d1BOgq7+eNgmzN\\nJQIDAQAB\\n-----END PUBLIC KEY-----\\n"
        }
      },
      "SuccessfulWebhookResponse2": {
        "summary": "A successful webhook endpoint object.",
        "value": {
          "id": "wep_456",
          "url": "https://my_endpoint.xyz/hooks",
          "status": "active",
          "public_key": "-----BEGIN PUBLIC KEY-----\\nFAKEc27UdTQxxG4a5w0BAQEFAAOCAQ8AMIIBCgKCAQEAtYhc6PV2LOs/nqDRHi0B\\nMKTsdMLHtg58a1NDxaYfw4IZJ3hpy1qIFUgt5X0HhCYZE0Y40MyLGIejPyitEjYw\\ni9/aE+9F/PN+btqN7OK6cVuF9s/R9cxG4a5w0BAQEXrUO5T8GXNAMmRr0KFh8yPv\\nfIgpoZn5ZhnyRbZpDvrxHzLmcZJFAX8Ca+KZLzgGVybEqJtP6fKAT0zrrUS1z44s\\nRDOLiXl543cRAmBnUyrT6cXiNz/PNbm4zRK5Nx7LGxBFrCWQCao4Yi8hrwWsnHxg\\n0Tcy3UyZhAcgL6ydVJfLD5x58Ri4BN32WPBtgSSO6JxZZwCiX0d1BOgq7+eNgmzN\\nJQIDAQAB\\n-----END PUBLIC KEY-----\\n"
        }
      },
      "SuccessfulWebhookCreateResponse": {
        "summary": "Successful webhook endpoint creation",
        "value": {
          "id": "wep_123",
          "url": "https://my_endpoint.xyz/hooks",
          "status": "disabled",
          "public_key": "-----BEGIN PUBLIC KEY-----\\nFJJ3hFnaPLmxxG4a5w0BAQEFAAOCAQ8AMIIBCgKCAQEAtYhc6PV2LOs/nqDRHi0B\\nMKTsdMLHtg58a1NDxaYfw4IZJ3hpy1qIFUgt5X0HhCYZE0Y40MyLGIejPyitEjYw\\ni9/aE+9F/PN+btqN7OK6cVuF9s/R9cZCtNc27UdTQXrUO5T8GXNAMmRr0KFh8yPv\\nfIgpoZn5ZhnyRbZpDvrxHzLmcZJFAX8Ca+KZLzgGVybEqJtP6fKAT0zrrUS1z44s\\nRDOLiXl543cRAmBnUyrT6cXiNz/PNbm4zRK5Nx7LGxBFrCWQCao4Yi8hrwWsnHxg\\n0Tcy3UyZhAcgL6ydVJfLD5x58Ri4BN32WPBtgSSO6JxZZwCiX0d1BOgq7+eNgmzN\\nJQIDAQAB\\n-----END PUBLIC KEY-----\\n",
          "event_categories": [
            "customer",
            "liquidation_address",
            "virtual_account",
            "virtual_account.activity",
            "card_account",
            "card_transaction",
            "card_withdrawal",
            "posted_card_account_transaction"
          ]
        }
      },
      "SuccessfulWebhookUpdateResponse": {
        "summary": "Successful webhook endpoint update",
        "value": {
          "id": "wep_123",
          "url": "https://my_updated_endpoint.xyz/hooks",
          "status": "active",
          "public_key": "-----BEGIN PUBLIC KEY-----\\nFJJ3hFnaPLmxxG4a5w0BAQEFAAOCAQ8AMIIBCgKCAQEAtYhc6PV2LOs/nqDRHi0B\\nMKTsdMLHtg58a1NDxaYfw4IZJ3hpy1qIFUgt5X0HhCYZE0Y40MyLGIejPyitEjYw\\ni9/aE+9F/PN+btqN7OK6cVuF9s/R9cZCtNc27UdTQXrUO5T8GXNAMmRr0KFh8yPv\\nfIgpoZn5ZhnyRbZpDvrxHzLmcZJFAX8Ca+KZLzgGVybEqJtP6fKAT0zrrUS1z44s\\nRDOLiXl543cRAmBnUyrT6cXiNz/PNbm4zRK5Nx7LGxBFrCWQCao4Yi8hrwWsnHxg\\n0Tcy3UyZhAcgL6ydVJfLD5x58Ri4BN32WPBtgSSO6JxZZwCiX0d1BOgq7+eNgmzN\\nJQIDAQAB\\n-----END PUBLIC KEY-----\\n",
          "event_categories": [
            "customer",
            "liquidation_address",
            "virtual_account",
            "virtual_account.activity",
            "card_account",
            "card_transaction",
            "card_withdrawal",
            "posted_card_account_transaction"
          ]
        }
      },
      "SuccessfulWebhookDeleteResponse": {
        "summary": "Successful webhook endpoint delete",
        "value": {
          "id": "wep_123",
          "url": "https://my_deleted_endpoint.xyz/hooks",
          "status": "deleted",
          "public_key": "-----BEGIN PUBLIC KEY-----\\nFJJ3hFnaPLmxxG4a5w0BAQEFAAOCAQ8AMIIBCgKCAQEAtYhc6PV2LOs/nqDRHi0B\\nMKTsdMLHtg58a1NDxaYfw4IZJ3hpy1qIFUgt5X0HhCYZE0Y40MyLGIejPyitEjYw\\ni9/aE+9F/PN+btqN7OK6cVuF9s/R9cZCtNc27UdTQXrUO5T8GXNAMmRr0KFh8yPv\\nfIgpoZn5ZhnyRbZpDvrxHzLmcZJFAX8Ca+KZLzgGVybEqJtP6fKAT0zrrUS1z44s\\nRDOLiXl543cRAmBnUyrT6cXiNz/PNbm4zRK5Nx7LGxBFrCWQCao4Yi8hrwWsnHxg\\n0Tcy3UyZhAcgL6ydVJfLD5x58Ri4BN32WPBtgSSO6JxZZwCiX0d1BOgq7+eNgmzN\\nJQIDAQAB\\n-----END PUBLIC KEY-----\\n"
        }
      },
      "SuccessfulWebhookEventsResponse": {
        "summary": "A list of events for the webhook endpoint",
        "value": {
          "data": {
            "type": "array",
            "minItems": 0,
            "items": [
              {
                "api_version": "v0",
                "event_id": "wh_tmneA3b1rTv1q4gkvmPU53n",
                "event_developer_id": "2d127766-02fa-44b0-9fc8-a67665dbf109",
                "event_sequence": 1,
                "event_category": "transfer",
                "event_type": "transfer.deleted",
                "event_object_id": "cc598628-29ab-448e-851f-7aaffb1a1171",
                "event_object_status": null,
                "event_object": {
                  "id": "cc598628-29ab-448e-851f-7aaffb1a1171",
                  "state": "awaiting_funds",
                  "amount": "50.0",
                  "source": {
                    "currency": "usdc",
                    "from_address": "0xd48f4e51c2fcd1c8489eb1a64588b29b76ad0a3f",
                    "payment_rail": "ethereum"
                  },
                  "receipt": {
                    "gas_fee": "0.0",
                    "exchange_fee": "0.0",
                    "final_amount": "50.0",
                    "developer_fee": "0.0",
                    "initial_amount": "50.0",
                    "subtotal_amount": "50.0",
                    "url": "https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000"
                  },
                  "currency": "usd",
                  "created_at": "2024-05-02T17:48:19.366Z",
                  "updated_at": "2024-05-02T17:48:19.366Z",
                  "destination": {
                    "currency": "usd",
                    "payment_rail": "ach",
                    "external_account_id": "24fd61e9-80b6-464a-b5ee-9f7a521cb1f0"
                  },
                  "on_behalf_of": "474c32b3-f3d6-43e3-92ce-a7d4e07fa0a4",
                  "developer_fee": "0.0",
                  "source_deposit_instructions": {
                    "amount": "50.0",
                    "currency": "usdc",
                    "to_address": null,
                    "from_address": "0xd48f4e51c2fcd1c8489eb1a64588b29b76ad0a3f",
                    "payment_rail": "ethereum"
                  }
                },
                "event_object_changes": {
                  "state": [
                    "pending",
                    "canceled"
                  ],
                  "updated_at": [
                    "2024-05-02T15:14:02.842Z",
                    "2024-05-02T15:15:07.163Z"
                  ]
                },
                "event_created_at": "2024-05-02T17:48:19.465Z"
              }
            ]
          }
        }
      },
      "SuccessfulWebhookLogsResponse": {
        "summary": "A list of delivery logs for the webhook endpoint",
        "value": {
          "data": {
            "type": "array",
            "minItems": 0,
            "items": [
              {
                "status": 200,
                "event_id": "wh_event_id_123",
                "response_body": "{\"message\":\"OK\"}",
                "created_at": "2024-01-01T00:00:00.000Z"
              },
              {
                "status": 200,
                "event_id": "wh_event_id_456",
                "response_body": "{\"message\":\"OK\"}",
                "created_at": "2024-01-01T00:00:00.000Z"
              }
            ]
          }
        }
      },
      "WebhookEventSendSuccessResponse": {
        "summary": "Successful webhook event send",
        "value": {
          "message": "Successfully sent the webhook event. This does not guarantee immediate delivery to the endpoint."
        }
      },
      "OccupationCodesSuccessResponse": {
        "summary": "The list of occupations that can be used during the KYC flow.",
        "value": [
          {
            "display_name": "Accountant and auditor",
            "code": "132011"
          },
          {
            "display_name": "Actor",
            "code": "272011"
          },
          {
            "display_name": "Acupuncturist",
            "code": "291291"
          },
          {
            "display_name": "Administrative services manager",
            "code": "113012"
          },
          {
            "display_name": "Other",
            "code": "other"
          }
        ]
      },
      "CustomerRewardSummary": {
        "summary": "A summary of a customer's rewards",
        "value": {
          "developer_id": "2d127766-02fa-44b0-9fc8-a67665dbf109",
          "customer_id": "02513e85-b0f9-4d79-8320-348ce9efaa11",
          "currency": "xusd",
          "balance": "10000.00",
          "rewards": "23.9725",
          "updated_at": "2025-01-01T00:00:00.000Z"
        }
      },
      "DeveloperRewardSummary": {
        "summary": "A summary of all rewards for a given stablecoin",
        "value": {
          "developer_id": "2d127766-02fa-44b0-9fc8-a67665dbf109",
          "currency": "xusd",
          "balance": "10000.00",
          "rewards": "23.9725",
          "updated_at": "2025-01-01T00:00:00.000Z"
        }
      },
      "CustomerRewardHistory": {
        "summary": "A history of a customer's rewards",
        "value": {
          "customer_id": "02513e85-b0f9-4d79-8320-348ce9efaa11",
          "rewards": [
            {
              "balance": "10000.00",
              "amount": "0.958904",
              "currency": "xusd",
              "date": "2025-01-02"
            },
            {
              "balance": "10100.00",
              "amount": "0.968493",
              "currency": "xusd",
              "date": "2025-01-01"
            }
          ]
        }
      },
      "DeveloperRewardHistory": {
        "summary": "Daily reward history for a stablecoin",
        "value": {
          "currency": "usdb",
          "developer_id": "2d127766-02fa-44b0-9fc8-a67665dbf109",
          "reserves_currency": "usd",
          "data": [
            {
              "date": "2026-04-20",
              "distributed": false,
              "total": {
                "aum": "45000000.00",
                "developer_rewards": "5390.41",
                "net_rewards": "4851.37",
                "bridge_fee_bps": "10.0000",
                "bridge_fee": "539.04",
                "annualized_yield_bps": "436.6667"
              },
              "providers": [
                {
                  "provider": "blackrock",
                  "aum": "30000000.00",
                  "developer_rewards": "3561.64",
                  "annualized_yield_bps": "432.5000"
                },
                {
                  "provider": "superstate",
                  "aum": "15000000.00",
                  "developer_rewards": "1828.77",
                  "annualized_yield_bps": "445.0000"
                }
              ]
            }
          ],
          "pagination": {
            "has_more": true,
            "next_cursor": "eyJkYXRlIjoiMjAyNi0wNC0yMCJ9"
          }
        }
      }
    },
    "schemas": {
      "SimulateKycApprovalResponse": {
        "type": "object",
        "description": "Response from the simulate KYC approval endpoint",
        "required": [
          "success",
          "customer_id",
          "kyc_status",
          "message"
        ],
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether the simulation succeeded"
          },
          "customer_id": {
            "type": "string",
            "description": "The ID of the customer whose KYC was simulated"
          },
          "kyc_status": {
            "$ref": "#/components/schemas/KycStatus"
          },
          "message": {
            "type": "string",
            "description": "Human-readable description of what was processed"
          }
        }
      },
      "BridgeWalletBalance": {
        "description": "The balance of a Bridge Wallet for a given currency",
        "type": "object",
        "required": [
          "balance",
          "currency",
          "chain"
        ],
        "properties": {
          "balance": {
            "type": "string",
            "description": "The balance in the given currency. ex. \"10.95\"",
            "readOnly": true
          },
          "currency": {
            "description": "The currency of the balance",
            "$ref": "#/components/schemas/Currency",
            "readOnly": true
          },
          "chain": {
            "description": "The chain of the balance",
            "$ref": "#/components/schemas/BridgeWalletChain",
            "readOnly": true
          },
          "contract_address": {
            "description": "The contract address of the currency, or null if it is a native currency",
            "type": "string",
            "readOnly": true
          }
        }
      },
      "BridgeWalletTotalBalance": {
        "description": "The total balance across all Bridge wallets for a given currency",
        "type": "object",
        "required": [
          "balance",
          "currency",
          "chain"
        ],
        "properties": {
          "balance": {
            "type": "string",
            "description": "The total balance of wallets in the given currency  ex. \"10.95\"",
            "readOnly": true
          },
          "currency": {
            "description": "The currency of the total balance",
            "$ref": "#/components/schemas/Currency",
            "readOnly": true
          },
          "chain": {
            "description": "The chain of the total balance",
            "$ref": "#/components/schemas/BridgeWalletChain",
            "readOnly": true
          },
          "contract_address": {
            "description": "The contract address of the currency, or null if it is a native currency",
            "type": "string",
            "readOnly": true
          }
        }
      },
      "BridgeWallet": {
        "required": [
          "chain"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/CreateBridgeWallet"
          },
          {
            "properties": {
              "id": {
                "$ref": "#/components/schemas/Id",
                "readOnly": true
              },
              "chain": {
                "description": "The chain of the Bridge Wallet",
                "$ref": "#/components/schemas/BridgeWalletChain",
                "readOnly": true
              },
              "address": {
                "description": "The blockchain address of the Bridge Wallet",
                "type": "string",
                "readOnly": true
              },
              "initiation_required": {
                "readOnly": true,
                "type": "boolean",
                "description": "When present, transfers sourced from this wallet must include an `initiation` object on the create request. Omitted for wallets that do not require initiation data."
              },
              "created_at": {
                "readOnly": true,
                "type": "string",
                "description": "Time of creation of the Bridge Wallet",
                "format": "date-time"
              },
              "updated_at": {
                "readOnly": true,
                "type": "string",
                "description": "Time of most recent update of the Bridge Wallet",
                "format": "date-time"
              }
            }
          }
        ]
      },
      "BridgeWalletWithBalances": {
        "required": [
          "chain"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/CreateBridgeWallet"
          },
          {
            "properties": {
              "id": {
                "$ref": "#/components/schemas/Id",
                "readOnly": true
              },
              "chain": {
                "description": "The chain of the Bridge Wallet",
                "$ref": "#/components/schemas/BridgeWalletChain",
                "readOnly": true
              },
              "address": {
                "description": "The blockchain address of the Bridge Wallet",
                "type": "string",
                "readOnly": true
              },
              "initiation_required": {
                "readOnly": true,
                "type": "boolean",
                "description": "When present, transfers sourced from this wallet must include an `initiation` object on the create request. Omitted for wallets that do not require initiation data."
              },
              "created_at": {
                "readOnly": true,
                "type": "string",
                "description": "Time of creation of the Bridge Wallet",
                "format": "date-time"
              },
              "updated_at": {
                "readOnly": true,
                "type": "string",
                "description": "Time of most recent update of the Bridge Wallet",
                "format": "date-time"
              },
              "balances": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/BridgeWalletBalance"
                },
                "readOnly": true
              }
            }
          }
        ]
      },
      "BridgeWalletsList": {
        "type": "object",
        "required": [
          "count",
          "data"
        ],
        "properties": {
          "count": {
            "description": "total number of items in data",
            "type": "integer"
          },
          "data": {
            "type": "array",
            "minItems": 0,
            "items": {
              "$ref": "#/components/schemas/BridgeWallet"
            }
          }
        }
      },
      "BridgeWalletEventResponse": {
        "description": "Shared fields present on every bridge wallet history event.",
        "type": "object",
        "required": [
          "id",
          "bridge_wallet_id",
          "amount",
          "available_balance",
          "currency",
          "source",
          "destination",
          "type",
          "created_at"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Id"
          },
          "bridge_wallet_id": {
            "$ref": "#/components/schemas/Id"
          },
          "amount": {
            "description": "Amount of the transaction, represented as a decimal string. Examples include \"100.250000\", \"0.100000\", \"1.234567\" etc.",
            "type": "string"
          },
          "available_balance": {
            "description": "Available balance of the wallet after this event, represented as a decimal string.",
            "type": "string"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "type": {
            "description": "The type of wallet event.",
            "type": "string",
            "enum": [
              "deposit",
              "direct_deposit",
              "withdrawal",
              "return",
              "undeliverable",
              "card_spend",
              "card_refund"
            ]
          },
          "source": {
            "description": "The source of the transfer, which could be an external bank account, a bridge account, or a crypto wallet address.",
            "type": "object",
            "properties": {
              "currency": {
                "$ref": "#/components/schemas/Currency"
              },
              "payment_rail": {
                "type": "string"
              },
              "from_address": {
                "type": "string",
                "nullable": true
              }
            }
          },
          "destination": {
            "description": "The destination of the transfer, which could be an external bank account, a bridge account, or a crypto wallet address.",
            "type": "object",
            "properties": {
              "currency": {
                "$ref": "#/components/schemas/Currency"
              },
              "payment_rail": {
                "type": "string"
              },
              "tx_hash": {
                "type": "string",
                "nullable": true
              },
              "from_address": {
                "type": "string",
                "nullable": true
              }
            }
          },
          "payment_route": {
            "description": "Details about the Bridge payment route that initiated this event, such as a transfer, liquidation address drain, virtual account deposit, or card spend. Not present on direct deposits.",
            "type": "object",
            "nullable": true,
            "properties": {
              "type": {
                "description": "The type of payment route.",
                "type": "string",
                "enum": [
                  "transfer",
                  "liquidation_address",
                  "virtual_account",
                  "card_spend"
                ]
              },
              "customer_id": {
                "$ref": "#/components/schemas/Id"
              },
              "transfer_id": {
                "type": "string",
                "nullable": true
              },
              "card_crypto_transaction_id": {
                "description": "The ID of the card crypto transaction that initiated this event. Present on card_spend and card_refund events when the event is linked to a specific on-chain card transaction.",
                "type": "string",
                "nullable": true
              },
              "issuing_authorization_id": {
                "description": "The Stripe Issuing authorization ID associated with this card event.",
                "type": "string",
                "nullable": true
              },
              "issuing_transaction_id": {
                "description": "The Stripe Issuing transaction ID associated with this card event.",
                "type": "string",
                "nullable": true
              }
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "BridgeWalletHistory": {
        "type": "object",
        "required": [
          "count",
          "data"
        ],
        "properties": {
          "count": {
            "description": "total number of items in data",
            "type": "integer"
          },
          "data": {
            "type": "array",
            "minItems": 0,
            "items": {
              "$ref": "#/components/schemas/BridgeWalletEventResponse"
            }
          }
        }
      },
      "Id": {
        "description": "A UUID that uniquely identifies a resource",
        "type": "string",
        "pattern": "[a-z0-9]*",
        "minLength": 1,
        "maxLength": 42
      },
      "client_reference_id": {
        "description": "A client-provided reference ID that uniquely identifies a resource in the client's system",
        "type": "string",
        "minLength": 1,
        "maxLength": 256
      },
      "DepositId": {
        "description": "A UUID that uniquely identifies a deposit",
        "type": "string",
        "pattern": "[a-z0-9]*",
        "minLength": 1,
        "maxLength": 42
      },
      "Omad": {
        "description": "(Wire only) The OMAD of a wire transfer, if available",
        "type": "string",
        "pattern": "[a-z0-9]*",
        "minLength": 1,
        "maxLength": 40,
        "deprecated": true
      },
      "Imad": {
        "description": "(Wire only) The IMAD of a wire transfer, if available",
        "type": "string",
        "pattern": "[a-z0-9]*",
        "minLength": 1,
        "maxLength": 40
      },
      "Uetr": {
        "description": "Deprecated: use tracking_number instead. The unique end-to-end transaction reference, for tracing purposes.",
        "type": "string",
        "readOnly": true,
        "deprecated": true
      },
      "TraceNumber": {
        "description": "The trace number of an ACH transfer",
        "type": "string",
        "pattern": "[0-9]",
        "minLength": 15,
        "maxLength": 15
      },
      "EndToEndId": {
        "description": "The end-to-end ID of the FedNow transaction, assigned by the sending bank, and is not guaranteed to be unique across payments.",
        "type": "string"
      },
      "TrackingNumber": {
        "description": "The primary tracking identifier for this fiat transaction. Format varies by payment rail (e.g., UETR for SWIFT/SEPA/FPS, clave de rastreo for SPEI, end-to-end ID for PIX).",
        "type": "string",
        "readOnly": true
      },
      "Clabe": {
        "description": "The 18-digit CLABE (Clave Bancaria Estandarizada) of the sender who initiated this SPEI transaction",
        "type": "string",
        "pattern": "^[0-9]+$",
        "minLength": 18,
        "maxLength": 18
      },
      "TransactionId": {
        "description": "Deprecated: use tracking_number instead. The unique transaction identifier for this payment.",
        "type": "string",
        "deprecated": true
      },
      "Reference": {
        "description": "A payment reference message for newer payment rails (e.g. Pix, Faster Payments, and FedNow).\n",
        "oneOf": [
          {
            "$ref": "#/components/schemas/FasterPaymentsReference"
          },
          {
            "$ref": "#/components/schemas/PixReference"
          }
        ]
      },
      "FasterPaymentsReference": {
        "title": "Faster Payments",
        "type": "string",
        "minLength": 1,
        "maxLength": 18
      },
      "PixReference": {
        "title": "Pix",
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      },
      "WireMessage": {
        "description": "A message to be sent with a wire transfer. It can have up to 140 characters. This message will be validated against 4 lines, each with a max length of 35 characters according to the Fedwire standard.",
        "type": "string",
        "minLength": 1,
        "maxLength": 256
      },
      "SepaReference": {
        "description": "A reference message to be sent with a SEPA transaction. We recommend you set a unique value to help you and your customers track payments end to end. It must be from 6 to 140 characters. The allowed characters are `a-z`, `A-Z`, `0-9`, spaces, ampersand (`&`), hyphen (`-`), full stop (`.`), and solidus (`/`). If not populated, the default value is \"Payment via Bridge {unique_token}\".",
        "type": "string",
        "minLength": 6,
        "maxLength": 140
      },
      "SwiftReference": {
        "description": "A payment reference message or remittance information to be included in a SWIFT transaction. It can have at most 4 lines (separated by \"\\n\"), each line with a max length of 35 chars. The allowed characters are `a-z`, `A-Z`, `0-9`, special characters (`/` `-` `?` `:` `(` `)` `.` `,` `'` `+`), and space",
        "type": "string",
        "minLength": 1,
        "maxLength": 140
      },
      "SpeiReference": {
        "description": "A payment reference message or remittance information to be included in a SPEI transaction. The allowed characters are alphanumeric `a-z`, `A-Z`, `0-9`, and space",
        "type": "string",
        "minLength": 1,
        "maxLength": 40
      },
      "ChargeBearer": {
        "description": "Which party bears the SWIFT transaction charges.\n- `our`: the sender (ordering customer) pays all charges.\n- `sha`: charges are shared — the sender pays their own bank's charges; intermediary/beneficiary bank charges are deducted from the transferred amount.\n- `ben`: the receiver (beneficiary) pays all charges, deducted from the transferred amount.\n",
        "type": "string",
        "enum": [
          "our",
          "sha",
          "ben"
        ]
      },
      "AchReference": {
        "description": "A reference message to be sent with an ACH transaction. It can be at most 10 characters, A-Z, a-z, 0-9, and spaces.",
        "type": "string",
        "minLength": 1,
        "maxLength": 10
      },
      "Customer": {
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Id",
            "readOnly": true
          },
          "first_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          },
          "middle_name": {
            "type": "string",
            "nullable": true,
            "maxLength": 1024
          },
          "last_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          },
          "email": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          },
          "status": {
            "type": "string",
            "$ref": "#/components/schemas/CustomerStatus"
          },
          "capabilities": {
            "deprecated": true,
            "type": "object",
            "properties": {
              "payin_crypto": {
                "type": "string",
                "$ref": "#/components/schemas/CustomerCapabilityState"
              },
              "payout_crypto": {
                "type": "string",
                "$ref": "#/components/schemas/CustomerCapabilityState"
              },
              "payin_fiat": {
                "type": "string",
                "$ref": "#/components/schemas/CustomerCapabilityState"
              },
              "payout_fiat": {
                "type": "string",
                "$ref": "#/components/schemas/CustomerCapabilityState"
              }
            }
          },
          "future_requirements_due": {
            "deprecated": true,
            "readOnly": true,
            "description": "This field is deprecated. See endorsements.missing instead.",
            "type": "array",
            "minItems": 0,
            "items": {
              "type": "string",
              "enum": [
                "id_verification"
              ]
            }
          },
          "requirements_due": {
            "deprecated": true,
            "readOnly": true,
            "description": "KYC requirements still needed to be completed. Please consult our KYC guide on how to resolve each requirement.",
            "type": "array",
            "minItems": 0,
            "items": {
              "type": "string",
              "enum": [
                "external_account",
                "id_verification"
              ]
            }
          },
          "created_at": {
            "readOnly": true,
            "type": "string",
            "description": "Time of creation of the customer",
            "format": "date-time"
          },
          "updated_at": {
            "readOnly": true,
            "type": "string",
            "description": "Time of last update of the customer",
            "format": "date-time"
          },
          "rejection_reasons": {
            "deprecated": true,
            "readOnly": true,
            "description": "Reasons why a customer KYC was rejected",
            "type": "array",
            "minItems": 0,
            "items": {
              "$ref": "#/components/schemas/RejectionReason"
            }
          },
          "has_accepted_terms_of_service": {
            "readOnly": true,
            "description": "Whether the customer has accepted the terms of service.",
            "type": "boolean"
          },
          "client_reference_id": {
            "description": "Caller-provided identifier used to correlate this customer with your internal records. Returned in API and webhook responses.",
            "$ref": "#/components/schemas/client_reference_id"
          },
          "endorsements": {
            "readOnly": true,
            "description": "A summary of whether the customer has received approvals to complete onboarding or use certain products/services offered by Bridge.",
            "type": "array",
            "minItems": 0,
            "items": {
              "$ref": "#/components/schemas/Endorsement"
            }
          }
        }
      },
      "Endorsement": {
        "required": [
          "name",
          "status"
        ],
        "properties": {
          "name": {
            "description": "The endorsement type.",
            "$ref": "#/components/schemas/EndorsementType"
          },
          "status": {
            "type": "string",
            "enum": [
              "incomplete",
              "approved",
              "revoked"
            ]
          },
          "additional_requirements": {
            "description": "This field is deprecated. See endorsements.missing instead.",
            "type": "array",
            "minItems": 0,
            "items": {
              "$ref": "#/components/schemas/EndorsementRequirementEnum"
            }
          },
          "requirements": {
            "description": "This object aims to replace the `additional_requirements` attribute as it gives a more comprehensive view into what items are already `complete` or `pending` and which are `missing` or have `issues`.\n",
            "type": "object",
            "required": [
              "complete",
              "pending",
              "missing",
              "issues"
            ],
            "properties": {
              "complete": {
                "type": "array",
                "description": "an array of requirements that have already been completed for this endorsement.",
                "minItems": 0,
                "items": {
                  "type": "string"
                }
              },
              "pending": {
                "type": "array",
                "description": "an array of requirements that are pending review for this endorsement.",
                "minItems": 0,
                "items": {
                  "type": "string"
                }
              },
              "missing": {
                "type": "object",
                "description": "an object that will specify an indepth breakdown of what items are missing for this endorsement."
              },
              "issues": {
                "type": "array",
                "description": "An array of issues preventing this endorsement from being approved. Values in this array can be either a string such as `endorsement_not_available_in_customers_region` or an object that correlates the issue to a particular field such as `{ id_front_photo: \"id_expired\" }`\n",
                "minItems": 0,
                "items": {
                  "oneOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "object"
                    }
                  ]
                }
              }
            }
          },
          "future_requirements": {
            "description": "An array of upcoming requirements that will become active on their effective_date.\nEach entry has the same structure as the current requirements object, plus an\neffective_date indicating when the requirement takes effect.\n",
            "type": "array",
            "minItems": 0,
            "items": {
              "type": "object",
              "required": [
                "effective_date",
                "verification_stage",
                "pending",
                "missing",
                "issues"
              ],
              "properties": {
                "effective_date": {
                  "type": "string",
                  "format": "date"
                },
                "verification_stage": {
                  "type": "string",
                  "description": "The verification stage this future requirement is currently at.",
                  "enum": [
                    "automatic_review",
                    "manual_review",
                    "post_review",
                    "complete",
                    "not_applicable"
                  ]
                },
                "pending": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "missing": {
                  "type": "object",
                  "nullable": true
                },
                "issues": {
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "object"
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      },
      "EndorsementRequirementEnum": {
        "type": "string",
        "enum": [
          "kyc_approval",
          "tos_acceptance",
          "kyc_with_proof_of_address",
          "tos_v2_acceptance"
        ]
      },
      "EndorsementType": {
        "description": "The type of endorsement. Note: `pix_onramp` (BRL deposits via PIX) and `pix_offramp` (BRL withdrawals via PIX) can be requested individually for granular access. Requesting `pix` grants both directional endorsements. `pix_onramp` is not supported for non-BR individuals; if requested (or requested via `pix`) it will remain in an `endorsement_not_available_in_customers_region` state and no action is required.\n",
        "type": "string",
        "enum": [
          "base",
          "cards",
          "cop",
          "faster_payments",
          "pix",
          "pix_onramp",
          "pix_offramp",
          "sepa",
          "spei"
        ]
      },
      "Address": {
        "required": [
          "street_line_1",
          "country",
          "city"
        ],
        "properties": {
          "street_line_1": {
            "type": "string",
            "minLength": 4
          },
          "street_line_2": {
            "type": "string",
            "minLength": 1
          },
          "city": {
            "type": "string",
            "minLength": 1
          },
          "state": {
            "type": "string",
            "description": "ISO 3166-2 subdivision code. Must be supplied for US addresses.",
            "minLength": 1,
            "maxLength": 3
          },
          "postal_code": {
            "type": "string",
            "description": "Must be supplied for countries that use postal codes.",
            "minLength": 1
          },
          "country": {
            "description": "Three-letter alpha-3 country code as defined in the ISO 3166-1 spec.",
            "type": "string",
            "minLength": 3,
            "maxLength": 3
          }
        }
      },
      "TravelRuleAddress": {
        "type": "object",
        "description": "Address for travel rule submissions. All fields are optional to support partial address data (e.g. country-only).",
        "properties": {
          "street_line_1": {
            "type": "string"
          },
          "street_line_2": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "state": {
            "type": "string",
            "description": "ISO 3166-2 subdivision code."
          },
          "postal_code": {
            "type": "string"
          },
          "country": {
            "description": "Three-letter alpha-3 country code as defined in the ISO 3166-1 spec.",
            "type": "string",
            "minLength": 3,
            "maxLength": 3
          }
        }
      },
      "TravelRuleWalletType": {
        "type": "string",
        "description": "Indicates the custody model for the wallet. Use `self_custodied` for customer-owned wallets (customer controls private keys), `hosted` for wallets managed by a developer or regulated entity on behalf of the customer, or `external` for wallets belonging to external exchanges or smart contracts.",
        "enum": [
          "hosted",
          "external",
          "self_custodied"
        ]
      },
      "TravelRuleIsSelf": {
        "type": "boolean",
        "description": "Set to `true` when this party is the same person or business as the Bridge customer on the resource. When `true`, Bridge uses the customer's name and address on file instead of relying on `name` and `address` in this payload."
      },
      "TravelRuleName": {
        "type": "string",
        "description": "Legal name of the originator or beneficiary. Usually omitted when `is_self` is `true`."
      },
      "TravelRuleWalletAttestedOwnershipAt": {
        "type": "string",
        "format": "date-time",
        "description": "Required when `wallet_type` is `self-custodied` or `hosted`. Must be a timestamp in the past indicating when wallet ownership was attested."
      },
      "TravelRuleOriginator": {
        "type": "object",
        "description": "Travel Rule details for originator crypto movement.",
        "properties": {
          "is_self": {
            "$ref": "#/components/schemas/TravelRuleIsSelf"
          },
          "name": {
            "$ref": "#/components/schemas/TravelRuleName"
          },
          "address": {
            "description": "Mailing or legal address of the originator. Usually omitted when `is_self` is `true`.",
            "allOf": [
              {
                "$ref": "#/components/schemas/TravelRuleAddress"
              }
            ]
          },
          "wallet_type": {
            "$ref": "#/components/schemas/TravelRuleWalletType"
          },
          "wallet_attested_ownership_at": {
            "$ref": "#/components/schemas/TravelRuleWalletAttestedOwnershipAt"
          },
          "identifying_information": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdentifyingInformation"
              }
            ],
            "description": "List of identification objects for the originator. Do **not** include `image_front` or `image_back` fields in this context; those are not accepted in Travel Rule submissions.\n"
          },
          "birth_date": {
            "type": "string",
            "description": "Date of birth in format yyyy-mm-dd.",
            "minLength": 10,
            "maxLength": 10
          },
          "place_of_birth": {
            "$ref": "#/components/schemas/PlaceOfBirthInput"
          },
          "legal_entity_identifier": {
            "type": "string",
            "description": "The Legal Entity Identifier (LEI) or equivalent (e.g. VAT number) of the originator. Provide this when the originator is a legal entity rather than an individual."
          }
        }
      },
      "TravelRuleBeneficiary": {
        "type": "object",
        "description": "Travel Rule details for beneficiary crypto movement.",
        "properties": {
          "is_self": {
            "$ref": "#/components/schemas/TravelRuleIsSelf"
          },
          "name": {
            "$ref": "#/components/schemas/TravelRuleName"
          },
          "address": {
            "description": "Mailing or legal address of the beneficiary. Usually omitted when `is_self` is `true`.",
            "allOf": [
              {
                "$ref": "#/components/schemas/TravelRuleAddress"
              }
            ]
          },
          "wallet_type": {
            "$ref": "#/components/schemas/TravelRuleWalletType"
          },
          "wallet_attested_ownership_at": {
            "$ref": "#/components/schemas/TravelRuleWalletAttestedOwnershipAt"
          },
          "legal_entity_identifier": {
            "type": "string",
            "description": "The Legal Entity Identifier (LEI) or equivalent (e.g. VAT number) of the beneficiary. Provide this when the beneficiary is a legal entity rather than an individual."
          }
        }
      },
      "TravelRuleData": {
        "type": "object",
        "description": "Travel Rule data for a crypto movement. Send this on create or update when the same counterparty should apply to every future use of a reusable resource, or send the same payload with `POST /travel_rule_data/{id}` when it belongs to one specific movement.",
        "properties": {
          "originator": {
            "description": "The party sending the crypto.",
            "allOf": [
              {
                "$ref": "#/components/schemas/TravelRuleOriginator"
              }
            ]
          },
          "beneficiary": {
            "description": "The party receiving the crypto.",
            "allOf": [
              {
                "$ref": "#/components/schemas/TravelRuleBeneficiary"
              }
            ]
          }
        },
        "example": {
          "originator": {
            "name": "Jane Smith",
            "address": {
              "street_line_1": "123 Market St",
              "street_line_2": null,
              "city": "San Francisco",
              "state": "CA",
              "postal_code": "94105",
              "country": "USA"
            },
            "identifying_information": {
              "type": "national_id",
              "number": "1234567890",
              "issuing_country": "USA"
            },
            "birth_date": "2000-01-31",
            "place_of_birth": {
              "city": "San Francisco",
              "country": "USA"
            },
            "wallet_type": "self_custodied",
            "wallet_attested_ownership_at": "2026-04-01T12:00:00Z"
          },
          "beneficiary": {
            "is_self": true,
            "wallet_type": "external"
          }
        }
      },
      "ExternalAccountAddress": {
        "required": [
          "street_line_1",
          "country",
          "city"
        ],
        "properties": {
          "street_line_1": {
            "type": "string",
            "minLength": 4,
            "maxLength": 35
          },
          "street_line_2": {
            "type": "string",
            "maxLength": 35
          },
          "city": {
            "type": "string",
            "minLength": 1
          },
          "state": {
            "type": "string",
            "description": "ISO 3166-2 subdivision code. Must be supplied for US addresses.",
            "minLength": 1
          },
          "postal_code": {
            "type": "string",
            "description": "Must be supplied for countries that use postal codes.",
            "minLength": 1
          },
          "country": {
            "description": "Three-letter alpha-3 country code as defined in the ISO 3166-1 spec.",
            "type": "string",
            "minLength": 3,
            "maxLength": 3
          }
        }
      },
      "Address2025WinterRefresh": {
        "required": [
          "street_line_1",
          "country",
          "city"
        ],
        "properties": {
          "street_line_1": {
            "type": "string",
            "minLength": 4
          },
          "street_line_2": {
            "type": "string",
            "minLength": 1
          },
          "city": {
            "type": "string",
            "minLength": 1
          },
          "subdivision": {
            "type": "string",
            "description": "ISO 3166-2 subdivision code. Must be supplied for US addresses.",
            "minLength": 1,
            "maxLength": 3
          },
          "postal_code": {
            "type": "string",
            "description": "Must be supplied for countries that use postal codes.",
            "minLength": 1
          },
          "country": {
            "description": "Three-letter alpha-3 country code as defined in the ISO 3166-1 spec.",
            "type": "string",
            "minLength": 3,
            "maxLength": 3
          }
        }
      },
      "PlaceOfBirthInput": {
        "type": "object",
        "description": "Country (and optionally city) of birth. **EEA / BBSA in-scope customers:** supply when onboarding individuals or associated persons under the [EEA updated requirements](https://apidocs.bridge.xyz/platform/customers/customers/eea-updated-requirements#country-of-birth-and-city-of-birth). This is a sparse address — no street address. At least `country` should be present when the object is sent; `city` is recommended and will be required by EU law in 2027.\n",
        "properties": {
          "country": {
            "type": "string",
            "minLength": 3,
            "maxLength": 3,
            "description": "ISO 3166-1 alpha-3 country code for the place of birth."
          },
          "city": {
            "type": "string",
            "minLength": 1,
            "description": "City of birth (recommended for EEA)."
          }
        }
      },
      "Country": {
        "required": [
          "name",
          "alpha3",
          "subdivisions"
        ],
        "properties": {
          "name": {
            "description": "The name of the country",
            "type": "string",
            "minLength": 1
          },
          "alpha3": {
            "description": "The three-letter alpha-3 country code as defined in the ISO 3166-1 spec, used in Bridge APIs",
            "type": "string",
            "minLength": 3,
            "maxLength": 3
          },
          "postal_code_format": {
            "description": "A [Ruby-formatted regular expression](https://ruby-doc.org/3.4.2/Regexp.html) that matches valid postal codes for the country, or null if the country does not use postal codes.",
            "type": "string",
            "minLength": 1
          },
          "subdivisions": {
            "description": "A list of subdivisions for the country",
            "type": "array",
            "minItems": 0,
            "items": {
              "$ref": "#/components/schemas/Subdivision"
            }
          }
        }
      },
      "Subdivision": {
        "required": [
          "name",
          "code"
        ],
        "properties": {
          "name": {
            "description": "The name of the subdivision",
            "type": "string",
            "minLength": 1
          },
          "code": {
            "description": "The subdivision code, which can be used in place of the name when interacting with Bridge via API",
            "type": "string",
            "minLength": 2
          }
        }
      },
      "IbanBankAccount": {
        "required": [
          "account_number",
          "country",
          "last_4"
        ],
        "properties": {
          "account_number": {
            "type": "string",
            "description": "The International Bank Account Number (IBAN) that will be used to send the funds",
            "minLength": 1,
            "writeOnly": true
          },
          "bic": {
            "type": "string",
            "description": "The Bank Identifier Code (BIC/SWIFT code) associated with the beneficiary bank.\nWhile not strictly required for IBAN-based payments, providing the BIC may improve\npayment success rates.\n",
            "minLength": 8,
            "maxLength": 11,
            "pattern": "^[A-Za-z]{4}[A-Za-z]{2}[A-Za-z0-9]{2}([A-Za-z0-9]{3})?$"
          },
          "country": {
            "description": "Country in which the bank account is located. It's a three-letter alpha-3 country code as defined in the ISO 3166-1 spec.",
            "type": "string",
            "minLength": 3,
            "maxLength": 3
          },
          "last_4": {
            "description": "Last 4 digits of the bank account number",
            "minLength": 1,
            "type": "string",
            "readOnly": true
          }
        }
      },
      "BreBBankAccount": {
        "title": "bre_b",
        "required": [
          "bre_b_key",
          "last_4"
        ],
        "properties": {
          "bre_b_key": {
            "type": "string",
            "description": "The Bre-B key of the Colombian bank account",
            "writeOnly": true
          },
          "last_4": {
            "description": "Last 4 digits of the Bre-B key",
            "minLength": 4,
            "maxLength": 4,
            "type": "string",
            "readOnly": true
          }
        }
      },
      "ColombianBankCode": {
        "type": "string",
        "description": "The Colombian bank code identifying the customer's bank.\n\n| Code | Bank |\n|------|------|\n| `1001` | Banco de Bogotá |\n| `1002` | Banco Popular |\n| `1006` | Itaú |\n| `1007` | Bancolombia |\n| `1009` | Citibank |\n| `1012` | Banco GNB Sudameris |\n| `1013` | BBVA Colombia |\n| `1019` | Scotiabank Colpatria |\n| `1023` | Banco de Occidente |\n| `1032` | Banco Caja Social |\n| `1040` | Banco Agrario |\n| `1047` | Banco Mundo Mujer |\n| `1051` | Banco Davivienda |\n| `1052` | Banco AV Villas |\n| `1053` | Banco W |\n| `1059` | Bancamía |\n| `1060` | Banco Pichincha |\n| `1061` | Bancoomeva |\n| `1062` | Banco Falabella |\n| `1063` | Banco Finandina |\n| `1065` | Banco Santander |\n| `1066` | Banco Cooperativo Coopcentral |\n| `1067` | MiBanco |\n| `1069` | Banco Serfinanza |\n| `1070` | Lulo Bank |\n| `1071` | Banco J.P. Morgan Colombia |\n| `1097` | Dale |\n| `1121` | Financiera Juriscoop |\n| `1283` | Cooperativa Financiera de Antioquia |\n| `1286` | JFK Cooperativa Financiera |\n| `1289` | Cootrafa Cooperativa Financiera |\n| `1292` | Confiar Cooperativa Financiera |\n| `1303` | Banco Unión |\n| `1370` | Coltefinanciera |\n| `1507` | Nequi |\n| `1551` | Daviplata |\n| `1558` | Ban100 |\n| `1637` | Iris |\n| `1801` | Movii |\n| `1802` | Ding Tecnipagos |\n| `1803` | Powwi |\n| `1804` | Ualá |\n| `1805` | Banco BTG Pactual |\n| `1808` | Bold CF |\n| `1809` | Nu Colombia |\n| `1811` | Rappipay |\n| `1812` | Coink |\n| `1814` | Global66 |\n| `1815` | Alianza Fiduciaria |\n| `1816` | Crezcamos |\n",
        "enum": [
          "1001",
          "1002",
          "1006",
          "1007",
          "1009",
          "1012",
          "1013",
          "1019",
          "1023",
          "1032",
          "1040",
          "1047",
          "1051",
          "1052",
          "1053",
          "1059",
          "1060",
          "1061",
          "1062",
          "1063",
          "1065",
          "1066",
          "1067",
          "1069",
          "1070",
          "1071",
          "1097",
          "1121",
          "1283",
          "1286",
          "1289",
          "1292",
          "1303",
          "1370",
          "1507",
          "1551",
          "1558",
          "1637",
          "1801",
          "1802",
          "1803",
          "1804",
          "1805",
          "1808",
          "1809",
          "1811",
          "1812",
          "1814",
          "1815",
          "1816"
        ]
      },
      "CoBankTransferBankAccount": {
        "title": "co_bank_transfer",
        "description": "Colombian CO bank transfer account for COP transfers",
        "required": [
          "account_number",
          "bank_code",
          "account_type",
          "document_type",
          "document_number",
          "phone_number"
        ],
        "properties": {
          "account_number": {
            "type": "string",
            "description": "The CO bank account number",
            "writeOnly": true
          },
          "bank_code": {
            "$ref": "#/components/schemas/ColombianBankCode"
          },
          "account_type": {
            "type": "string",
            "description": "The type of bank account",
            "enum": [
              "checking",
              "savings",
              "electronic_deposit"
            ]
          },
          "document_type": {
            "$ref": "#/components/schemas/CoBankTransferDocumentType"
          },
          "document_number": {
            "type": "string",
            "description": "The document number of the account holder"
          },
          "phone_number": {
            "type": "string",
            "description": "Phone number of the account holder in E.164 format (e.g. +573001234567)"
          },
          "last_4": {
            "description": "Last 4 digits of the account number",
            "minLength": 4,
            "maxLength": 4,
            "type": "string",
            "readOnly": true
          },
          "routing_number": {
            "description": "The bank code of the account",
            "type": "string",
            "readOnly": true
          }
        }
      },
      "ClabeBankAccount": {
        "required": [
          "account_number",
          "last_4"
        ],
        "properties": {
          "account_number": {
            "type": "string",
            "description": "The CLABE account number of the bank account",
            "minLength": 18,
            "maxLength": 18,
            "writeOnly": true
          },
          "last_4": {
            "description": "Last 4 digits of the CLABE",
            "minLength": 4,
            "maxLength": 4,
            "type": "string",
            "readOnly": true
          }
        }
      },
      "PixKeyBankAccount": {
        "title": "pix_key",
        "required": [
          "pix_key",
          "account_preview"
        ],
        "properties": {
          "pix_key": {
            "type": "string",
            "description": "The Pix key for the Brazilian bank account. Must be one of the following formats:\n- **EVP (Virtual Payment Address)**: Random UUID generated by Banco Central do Brasil (e.g., `550e8400-e29b-41d4-a716-446655440000`)\n- **CPF (Tax ID)**: 11-digit individual tax number (e.g., `12345678901`)\n- **CNPJ (Business Tax ID)**: 14-digit business tax number (e.g., `12345678000195`)\n- **Phone**: Brazilian mobile phone in format +55 followed by 11 digits (e.g., `+5511987654321`)\n- **Email**: Valid email address (e.g., `joao.silva@email.com`)\n",
            "minLength": 1,
            "writeOnly": true
          },
          "document_number": {
            "type": "string",
            "description": "Optional document number (CPF/CNPJ) associated with the Pix key.  Must be all numerals (no punctuation) if provided.",
            "writeOnly": true
          },
          "account_preview": {
            "description": "Masked preview of the Pix key",
            "type": "string",
            "readOnly": true
          },
          "document_number_last4": {
            "description": "Last 4 digits of the document number (CPF/CNPJ) when available",
            "type": "string",
            "readOnly": true
          }
        }
      },
      "BrCodeBankAccount": {
        "title": "br_code",
        "required": [
          "br_code",
          "account_preview"
        ],
        "properties": {
          "br_code": {
            "type": "string",
            "description": "The Copie e cola code for Pix transactions",
            "minLength": 1,
            "writeOnly": true
          },
          "document_number": {
            "type": "string",
            "description": "Optional document number (CPF/CNPJ) associated with the Pix key.  Must be all numerals (no punctuation) if provided.",
            "writeOnly": true
          },
          "account_preview": {
            "description": "Masked preview of the BR Code",
            "type": "string",
            "readOnly": true
          },
          "document_number_last4": {
            "description": "Last 4 digits of the document number (CPF/CNPJ) when available",
            "type": "string",
            "readOnly": true
          }
        }
      },
      "GbBankAccount": {
        "title": "gb",
        "type": "object",
        "required": [
          "account_number",
          "last_4",
          "sort_code"
        ],
        "properties": {
          "account_number": {
            "type": "string",
            "description": "The bank account number",
            "minLength": 8,
            "maxLength": 8,
            "example": 12345678,
            "writeOnly": true
          },
          "last_4": {
            "description": "Last 4 digits of the bank account number",
            "minLength": 1,
            "type": "string",
            "readOnly": true
          },
          "sort_code": {
            "type": "string",
            "description": "The sort code, without hyphens",
            "minLength": 6,
            "maxLength": 6,
            "example": 123456
          }
        }
      },
      "GbBankAccountVirtualAccount": {
        "title": "gb",
        "type": "object",
        "required": [
          "account_number",
          "sort_code"
        ],
        "properties": {
          "account_number": {
            "type": "string",
            "description": "The bank account number",
            "minLength": 8,
            "maxLength": 8,
            "example": 12345678
          },
          "sort_code": {
            "type": "string",
            "description": "The sort code, without hyphens",
            "minLength": 6,
            "maxLength": 6,
            "example": 123456
          }
        }
      },
      "UsBankAccount": {
        "title": "us",
        "required": [
          "account_number",
          "routing_number",
          "last_4"
        ],
        "properties": {
          "account_number": {
            "type": "string",
            "description": "The bank account number",
            "minLength": 1,
            "writeOnly": true
          },
          "routing_number": {
            "type": "string",
            "description": "The bank routing number",
            "minLength": 9,
            "maxLength": 9
          },
          "last_4": {
            "description": "Last 4 digits of the bank account number",
            "minLength": 1,
            "type": "string",
            "readOnly": true
          },
          "checking_or_savings": {
            "$ref": "#/components/schemas/CheckingOrSavingsType"
          }
        }
      },
      "UsBankAccountUpdate": {
        "properties": {
          "checking_or_savings": {
            "$ref": "#/components/schemas/CheckingOrSavingsType"
          },
          "routing_number": {
            "type": "string",
            "description": "The bank routing number",
            "minLength": 9,
            "maxLength": 9
          }
        }
      },
      "CreateIndividualCustomerPayload": {
        "allOf": [
          {
            "$ref": "#/components/schemas/UpdateIndividualCustomerPayload"
          },
          {
            "title": "Individual Customer"
          },
          {
            "required": [
              "type"
            ]
          }
        ]
      },
      "UpdateIndividualCustomerPayload": {
        "title": "Individual Customer",
        "properties": {
          "type": {
            "description": "Type of the customer (individual vs. business).",
            "type": "string",
            "minLength": 1,
            "enum": [
              "individual"
            ]
          },
          "first_name": {
            "type": "string",
            "minLength": 2,
            "maxLength": 1024,
            "description": "The first name of the individual."
          },
          "middle_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024,
            "description": "The middle name of the individual."
          },
          "last_name": {
            "type": "string",
            "minLength": 2,
            "maxLength": 1024,
            "description": "The last name of the individual."
          },
          "transliterated_first_name": {
            "type": "string",
            "description": "Required when the `first_name` includes any non Latin-1 characters. Acceptable characters - Latin-1 Unicode Character Range: À-ÖØ-ßà-öø-ÿ; Standard Unicode Character Range:  -~",
            "minLength": 1,
            "maxLength": 256
          },
          "transliterated_middle_name": {
            "type": "string",
            "description": "Required when the `middle_name` includes any non Latin-1 characters. Acceptable characters - Latin-1 Unicode Character Range: À-ÖØ-ßà-öø-ÿ; Standard Unicode Character Range:  -~",
            "minLength": 1,
            "maxLength": 256
          },
          "transliterated_last_name": {
            "type": "string",
            "description": "Required when the `last_name` includes any non Latin-1 characters. Acceptable characters - Latin-1 Unicode Character Range: À-ÖØ-ßà-öø-ÿ; Standard Unicode Character Range:  -~",
            "minLength": 1,
            "maxLength": 256
          },
          "email": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024,
            "description": "The individuals primary email address"
          },
          "phone": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024,
            "description": "The individuals primary phone number in format \"+12223334444\""
          },
          "residential_address": {
            "writeOnly": true,
            "$ref": "#/components/schemas/Address2025WinterRefresh",
            "description": "The residential address of the individual. This must be a physical address, not a PO Box."
          },
          "transliterated_residential_address": {
            "writeOnly": true,
            "$ref": "#/components/schemas/Address2025WinterRefresh",
            "description": "Required when any part of the `residential_address` includes any non Latin-1 characters. Acceptable characters - Latin-1 Unicode Character Range: À-ÖØ-ßà-öø-ÿ; Standard Unicode Character Range:  -~"
          },
          "birth_date": {
            "type": "string",
            "description": "Date of birth in format yyyy-mm-dd. Must be at least 18 years old.",
            "minLength": 10,
            "maxLength": 10
          },
          "signed_agreement_id": {
            "writeOnly": true,
            "type": "string",
            "description": "The ID of the signed agreement that the customer completed. You can get a signed agreement id for a _new_ customer by following this guide [here](https://apidocs.bridge.xyz/docs/terms-of-service#tos-acceptance-for-a-new-customer).\n",
            "minLength": 1,
            "maxLength": 1024
          },
          "endorsements": {
            "writeOnly": true,
            "type": "array",
            "description": "List of endorsements to request for this customer. If omitted, we'll attempt to grant `base` and `sepa`.\n",
            "items": {
              "$ref": "#/components/schemas/EndorsementType"
            }
          },
          "account_purpose": {
            "type": "string",
            "description": "What is the primary purpose of the customer's account?\n\n_Required for high risk customers. More information found [here](https://apidocs.bridge.xyz/docs/individuals)._\n\n**EEA / BBSA in-scope individuals:** also required under program rules (not for associated persons). See [EEA updated requirements](https://apidocs.bridge.xyz/platform/customers/customers/eea-updated-requirements#account-purpose-and-employment-status).\n",
            "enum": [
              "charitable_donations",
              "ecommerce_retail_payments",
              "investment_purposes",
              "operating_a_company",
              "other",
              "payments_to_friends_or_family_abroad",
              "personal_or_living_expenses",
              "protect_wealth",
              "purchase_goods_and_services",
              "receive_payment_for_freelancing",
              "receive_salary"
            ]
          },
          "account_purpose_other": {
            "type": "string",
            "description": "A supplemental description of the `account_purpose`.\n\n_Required if the `account_purpose` is `other`._\n"
          },
          "employment_status": {
            "type": "string",
            "description": "What is the customer's current employment status?\n\n_Required for high risk customers. More information found [here](https://apidocs.bridge.xyz/docs/individuals)._\n\n**EEA / BBSA in-scope individuals:** also required under program rules (not for associated persons). See [EEA updated requirements](https://apidocs.bridge.xyz/platform/customers/customers/eea-updated-requirements#account-purpose-and-employment-status).\n",
            "enum": [
              "employed",
              "homemaker",
              "retired",
              "self_employed",
              "student",
              "unemployed"
            ]
          },
          "expected_monthly_payments_usd": {
            "type": "string",
            "description": "What is the expected monthly volume of payments the customer will be sending or receiving?\n\n_Required for high risk customers. More information found [here](https://apidocs.bridge.xyz/docs/individuals)_\n",
            "enum": [
              "0_4999",
              "5000_9999",
              "10000_49999",
              "50000_plus"
            ]
          },
          "acting_as_intermediary": {
            "type": "boolean",
            "description": "Is the customer acting as an intermediary for a third party?\n\n_Required for high risk customers. More information found [here](https://apidocs.bridge.xyz/docs/individuals)_\n"
          },
          "most_recent_occupation": {
            "type": "string",
            "description": "What is the customer's most recent occupation? Specify the relevant alphanumeric occupation code. See the [list of occupations](https://apidocs.bridge.xyz/page/sof-eu-most-recent-occupation-list) for the complete list of valid occupations and codes. _Required for Restricted countries._\n\n_Required for high risk customers. More information found [here](https://apidocs.bridge.xyz/docs/individuals)_\n"
          },
          "source_of_funds": {
            "type": "string",
            "description": "The individuals source of funds, e.g. government_benefits, investments_loans, salary, etc.\n\n_Required for high risk customers. More information found [here](https://apidocs.bridge.xyz/docs/individuals)_\n",
            "enum": [
              "company_funds",
              "ecommerce_reseller",
              "gambling_proceeds",
              "gifts",
              "government_benefits",
              "inheritance",
              "investments_loans",
              "pension_retirement",
              "salary",
              "sale_of_assets_real_estate",
              "savings",
              "someone_elses_funds"
            ]
          },
          "nationality": {
            "type": "string",
            "description": "Legacy single nationality as ISO 3166-1 alpha-3. Prefer `nationalities` to send **all** nationalities. During migration Bridge honors either field; `nationality` will be deprecated after migration. **EEA / BBSA program:** see [Nationalities](https://apidocs.bridge.xyz/platform/customers/customers/eea-updated-requirements#nationalities).\n",
            "writeOnly": true
          },
          "nationalities": {
            "type": "array",
            "writeOnly": true,
            "description": "All nationalities held by the customer (ISO 3166-1 alpha-3 codes). **EEA / BBSA in-scope individuals:** required. See [EEA updated requirements](https://apidocs.bridge.xyz/platform/customers/customers/eea-updated-requirements#nationalities).\n",
            "items": {
              "type": "string",
              "minLength": 3,
              "maxLength": 3
            }
          },
          "place_of_birth": {
            "writeOnly": true,
            "$ref": "#/components/schemas/PlaceOfBirthInput"
          },
          "verified_database_at": {
            "type": "string",
            "format": "date-time",
            "description": "Write-only ISO 8601 timestamp. For **EEA in-scope** customers on **reliance** (`TWO_FORMS_OF_ID_RELIANCE` in `eea_requirements.rb`), may stand in for a database identity check together with `verified_govid_at`. See [EEA updated requirements — identity](https://apidocs.bridge.xyz/platform/customers/customers/eea-updated-requirements).\n",
            "writeOnly": true
          },
          "verified_govid_at": {
            "type": "string",
            "format": "date-time",
            "description": "Write-only ISO 8601 timestamp. For **EEA in-scope** customers on **reliance**, use with a second factor (`verified_selfie_at` or `verified_database_at`) per `TWO_FORMS_OF_ID_RELIANCE`. See [EEA updated requirements](https://apidocs.bridge.xyz/platform/customers/customers/eea-updated-requirements).\n",
            "writeOnly": true
          },
          "verified_selfie_at": {
            "type": "string",
            "format": "date-time",
            "description": "Write-only ISO 8601 timestamp. For **EEA in-scope** customers on **reliance**, pairs with `verified_govid_at` or `verified_database_at` under `TWO_FORMS_OF_ID_RELIANCE`.\n",
            "writeOnly": true
          },
          "liveness_check_selfies": {
            "type": "array",
            "writeOnly": true,
            "description": "Selfie images to submit for Bridge's liveness verification. Use this when you are collecting the customer's selfie on behalf of Bridge.\n\n**EEA in-scope** customers: selfies submitted via this field are not sufficient. The selfie must be collected through the Persona hosted flow (via a KYC link). See [EEA updated requirements](https://apidocs.bridge.xyz/platform/customers/customers/eea-updated-requirements).\n",
            "items": {
              "type": "object",
              "required": [
                "image"
              ],
              "properties": {
                "image": {
                  "type": "string",
                  "description": "Base64 encoded image* of the selfie, following the data-uri scheme i.e. data:image/[type];base64,[base_64_encoded_file_contents], with a minimum size of 200px x 200px \n\n*Maximum File Size: 15MB\n\n*Valid file types: .jpeg, .jpg, .png, .heic, .heif, .tif, .tiff"
                }
              }
            }
          },
          "identifying_information": {
            "$ref": "#/components/schemas/IdentifyingInformation"
          },
          "documents": {
            "$ref": "#/components/schemas/IndividualDocuments"
          },
          "client_reference_id": {
            "description": "Caller-provided identifier used to correlate this customer with your internal records. Returned in API and webhook responses.",
            "$ref": "#/components/schemas/client_reference_id"
          }
        }
      },
      "IdentifyingInformation": {
        "writeOnly": true,
        "type": "array",
        "title": "Identification Information",
        "items": {
          "type": "object",
          "required": [
            "issuing_country",
            "type"
          ],
          "properties": {
            "type": {
              "type": "string",
              "description": "Tax identification number type or government-issued ID document type (see enum). Country-specific tax and national ID lists: [Individuals](https://apidocs.bridge.xyz/docs/individual-tax-identification-numbers-by-country), [Businesses](https://apidocs.bridge.xyz/docs/business-tax-identification-numbers-by-country).\n\n**EEA / BBSA (policy in `eea_requirements.rb`):** In-scope individuals and UBOs need **both** a valid national-ID-type entry and a valid TIN per [EEA updated requirements](https://apidocs.bridge.xyz/platform/customers/customers/eea-updated-requirements). In-scope businesses need business registration **and** business tax ID types per country tables there. **TIN issuing country** must match residence (individuals) or incorporation (businesses). **Foreign tax** outside the incorporation country: set `has_foreign_tax_registration` on the business customer and add TIN objects per jurisdiction ([foreign tax / tax residency](https://apidocs.bridge.xyz/platform/customers/customers/eea-updated-requirements#tax-residency-status-foreign-tax-registry)).\n",
              "enum": [
                "drivers_license",
                "matriculate_id",
                "military_id",
                "national_id",
                "passport",
                "permanent_residency_id",
                "state_or_provincial_id",
                "visa",
                "abn",
                "acn",
                "ahv",
                "ak",
                "aom",
                "arbn",
                "avs",
                "bc",
                "bce",
                "bin",
                "bir",
                "bp",
                "brn",
                "bsn",
                "bvn",
                "cc",
                "cdi",
                "cedula_juridica",
                "cf",
                "cif",
                "cin",
                "cipc",
                "cn",
                "cnp",
                "cnpj",
                "cpf",
                "cpr",
                "crc",
                "crib",
                "crn",
                "cro",
                "cui",
                "cuil",
                "curp",
                "cuit",
                "cvr",
                "edrpou",
                "ein",
                "embg",
                "emirates_id",
                "en",
                "fin",
                "fn",
                "gstin",
                "gui",
                "hetu",
                "hkid",
                "hn",
                "ic",
                "ico",
                "id",
                "id_broj",
                "idno",
                "idnp",
                "idnr",
                "if",
                "iin",
                "ik",
                "inn",
                "ird",
                "itin",
                "itr",
                "iva",
                "jmbg",
                "kbo",
                "kvk",
                "matricule",
                "mf",
                "mn",
                "ms",
                "mst",
                "nic",
                "nicn",
                "nie",
                "nif",
                "nin",
                "nino",
                "nip",
                "nipc",
                "nipt",
                "nit",
                "npwp",
                "nric",
                "nrn",
                "nrt",
                "ntn",
                "nuit",
                "nzbn",
                "oib",
                "orgnr",
                "other",
                "pan",
                "partita_iva",
                "pesel",
                "pib",
                "pin",
                "pk",
                "ppsn",
                "qid",
                "rc",
                "regon",
                "rfc",
                "ricn",
                "rif",
                "rn",
                "rnc",
                "rnokpp",
                "rp",
                "rrn",
                "rtn",
                "ruc",
                "rut",
                "si",
                "sin",
                "siren",
                "siret",
                "spi",
                "ssm",
                "ssn",
                "steuer_id",
                "strn",
                "tckn",
                "tfn",
                "tin",
                "tpin",
                "trn",
                "ucn",
                "uen",
                "uic",
                "uid",
                "usc",
                "ust_idnr",
                "utr",
                "vat",
                "vkn",
                "voen",
                "y_tunnus"
              ]
            },
            "issuing_country": {
              "type": "string",
              "description": "The ISO 3166-1 (three-character) country code that issued the provided document."
            },
            "number": {
              "type": "string",
              "description": "The unique identifier of the document. Required if this document is being used as a tax identification number (e.g., you are providing a passport or national_id with no other identification)."
            },
            "description": {
              "type": "string",
              "description": "A description describing the provided document. This field is required when `other` is selected."
            },
            "expiration": {
              "type": "string",
              "description": "The expiration date of the given document in yyyy-mm-dd format."
            },
            "image_front": {
              "type": "string",
              "description": "This field is optionally accepted for tax_id types, but required for government_id types. Base64 encoded image* of the front side of the provided document, following the data-uri scheme i.e. data:image/[type];base64,[base_64_encoded_file_contents], with a minimum size of 200px x 200px \\n\\n*Maximum File Size: 15MB\\n\\n*Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif\n\n_Note: When combined with an `image_back`, the combined size of both images must not exceed 24MB._\n"
            },
            "image_back": {
              "type": "string",
              "description": "Base64 encoded image* of the back side of the provided document, following the data-uri scheme i.e. data:image/[type];base64,[base_64_encoded_file_contents], with a minimum size of 200px x 200px \\n\\n*Maximum File Size: 15MB\\n\\n*Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif\n\n_Note: When combined with an `image_front`, the combined size of both images must not exceed 24MB._\n"
            }
          }
        }
      },
      "IndividualDocuments": {
        "writeOnly": true,
        "type": "array",
        "title": "Documents",
        "description": "Please click \"ADD OBJECT\" for more information.",
        "items": {
          "type": "object",
          "required": [
            "purposes",
            "file"
          ],
          "properties": {
            "purposes": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "proof_of_account_purpose",
                  "proof_of_address",
                  "proof_of_individual_name_change",
                  "proof_of_relationship",
                  "proof_of_source_of_funds",
                  "proof_of_source_of_wealth",
                  "proof_of_tax_identification",
                  "other"
                ]
              },
              "description": "A list of purposes that the given document serves. Click \"ADD STRING\" to see common document purposes for individuals, or view the full list of possible values [here](https://apidocs.bridge.xyz/docs/supported-documents)."
            },
            "file": {
              "type": "string",
              "description": "Base64 encoded image* of the provided document, following the data-uri scheme i.e. data:image/[type];base64,[base_64_encoded_file_contents], with a minimum size of 200px x 200px \n\n*Maximum File Size: 24MB\n\n*Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif"
            },
            "description": {
              "type": "string",
              "description": "A description describing the provided document. This field is required when `other` is provided as one of the purposes."
            }
          }
        }
      },
      "BusinessDocuments": {
        "writeOnly": true,
        "type": "array",
        "title": "Documents",
        "description": "Please click \"ADD OBJECT\" for more information.",
        "items": {
          "type": "object",
          "required": [
            "purposes",
            "file"
          ],
          "properties": {
            "purposes": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "aml_comfort_letter",
                  "business_formation",
                  "directors_registry",
                  "e_signature_certificate",
                  "evidence_of_good_standing",
                  "flow_of_funds",
                  "marketing_materials",
                  "ownership_chart",
                  "ownership_information",
                  "proof_of_account_purpose",
                  "proof_of_address",
                  "proof_of_entity_name_change",
                  "proof_of_nature_of_business",
                  "proof_of_signatory_authority",
                  "proof_of_source_of_funds",
                  "proof_of_source_of_wealth",
                  "proof_of_tax_identification",
                  "shareholder_register",
                  "other"
                ]
              },
              "description": "**EEA / BBSA (business KYB):** purposes used in [EEA updated requirements](https://apidocs.bridge.xyz/platform/customers/customers/eea-updated-requirements) include `business_formation`, `evidence_of_good_standing`, `ownership_information`, and `proof_of_signatory_authority` (letter of authorization). See supported-documents for the full enum [here](https://apidocs.bridge.xyz/docs/supported-documents).\n\nFor **non-reliance** EEA in-scope businesses, `business_formation`, `evidence_of_good_standing`, and `ownership_information` are evaluated **independently** in CPU policy: each may be satisfied by an uploaded/Persona-backed document **or**, when Stripe business-registry verification passes with the required checks and provider metadata, by that verification alone for that document slot (see `BUSINESS_REGISTRY_CHECK` and `BUSINESS_OWNERSHIP` in `eea_requirements.rb`).\n"
            },
            "file": {
              "type": "string",
              "description": "Base64 encoded image of the provided document, following the data-uri scheme i.e. data:image/[type];base64,[base_64_encoded_file_contents], with a minimum size of 200px x 200px \n\n*Maximum File Size: 24MB\n\n*Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif"
            },
            "description": {
              "type": "string",
              "description": "A description describing the provided document. This field is required when `other` is provided as one of the purposes."
            }
          }
        }
      },
      "CreateBusinessCustomerPayload": {
        "allOf": [
          {
            "$ref": "#/components/schemas/UpdateBusinessCustomerPayload"
          },
          {
            "title": "Business Customer"
          }
        ]
      },
      "UpdateBusinessCustomerPayload": {
        "title": "Business Customer",
        "properties": {
          "type": {
            "description": "Type of the customer (individual vs. business)",
            "type": "string",
            "minLength": 1,
            "enum": [
              "business"
            ]
          },
          "business_legal_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024,
            "description": "The official registered name of the business as documented with government authorities."
          },
          "transliterated_business_legal_name": {
            "type": "string",
            "description": "Required if `business_legal_name` includes any non Latin-1 characters. Acceptable characters - Latin-1 Unicode Character Range: À-ÖØ-ßà-öø-ÿ; Standard Unicode Character Range:  -~",
            "minLength": 1,
            "maxLength": 1024
          },
          "business_trade_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024,
            "description": "The trading name or DBA (Doing Business As) name under which the business operates publicly."
          },
          "transliterated_business_trade_name": {
            "type": "string",
            "description": "Required if `business_trade` includes any non Latin-1 characters. Acceptable characters - Latin-1 Unicode Character Range: À-ÖØ-ßà-öø-ÿ; Standard Unicode Character Range:  -~",
            "minLength": 1,
            "maxLength": 1024
          },
          "business_description": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024,
            "description": "A brief summary of the business"
          },
          "has_foreign_tax_registration": {
            "type": "boolean",
            "description": "Whether the business is registered for tax in any jurisdiction **outside** its country of incorporation. When `true`, provide additional tax identifiers in `identifying_information` whose `issuing_country` reflects each foreign registration, per [EEA tax residency](https://apidocs.bridge.xyz/platform/customers/customers/eea-updated-requirements#tax-residency-status-foreign-tax-registry).\n"
          },
          "email": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024,
            "description": "The business's primary email address"
          },
          "phone": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024,
            "description": "The business's primary phone number in format \"+12223334444\""
          },
          "business_type": {
            "description": "How the business is legally registered",
            "type": "string",
            "minLength": 1,
            "enum": [
              "cooperative",
              "corporation",
              "llc",
              "other",
              "partnership",
              "sole_prop",
              "trust"
            ]
          },
          "primary_website": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024,
            "description": "The business's primary website/web presence. A document with purpose 'proof_of_nature_of_business' is required if this is not provided"
          },
          "other_websites": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "minLength": 1,
            "maxLength": 1024,
            "description": "The business's other websites and social media handles"
          },
          "registered_address": {
            "writeOnly": true,
            "$ref": "#/components/schemas/Address2025WinterRefresh",
            "description": "The official registered address of the business."
          },
          "transliterated_registered_address": {
            "writeOnly": true,
            "$ref": "#/components/schemas/Address2025WinterRefresh",
            "description": "Required if any part of the `registered_address` includes any non Latin-1 characters. Acceptable characters - Latin-1 Unicode Character Range: À-ÖØ-ßà-öø-ÿ; Standard Unicode Character Range:  -~"
          },
          "physical_address": {
            "writeOnly": true,
            "$ref": "#/components/schemas/Address2025WinterRefresh",
            "description": "The physical address for the primary place of business. This must be a physical address and cannot be a PO Box."
          },
          "transliterated_physical_address": {
            "writeOnly": true,
            "$ref": "#/components/schemas/Address2025WinterRefresh",
            "description": "Required if any part of the `physical_address` includes any non Latin-1 characters. Acceptable characters - Latin-1 Unicode Character Range: À-ÖØ-ßà-öø-ÿ; Standard Unicode Character Range:  -~"
          },
          "signed_agreement_id": {
            "writeOnly": true,
            "type": "string",
            "description": "The ID of the signed agreement that the customer completed. You can get a signed agreement id for a _new_ customer by following [this guide](https://apidocs.bridge.xyz/docs/terms-of-service#tos-acceptance-for-a-new-customer).\n",
            "minLength": 1,
            "maxLength": 1024
          },
          "is_dao": {
            "type": "boolean",
            "description": "Whether the business is a DAO (Decentralized Autonomous Organization)"
          },
          "compliance_screening_explanation": {
            "type": "string",
            "description": "Required if `conducts_money_services` is true. A detailed description of the business's compliance and anti-money laundering controls and practices.",
            "minLength": 1,
            "maxLength": 1024
          },
          "associated_persons": {
            "type": "array",
            "description": "List of notable people associated with the business such as UBOs.",
            "items": {
              "$ref": "#/components/schemas/AssociatedPerson"
            }
          },
          "endorsements": {
            "writeOnly": true,
            "type": "array",
            "description": "List of endorsements to request for this customer. If omitted, we'll attempt to grant `base` and `sepa`.\n",
            "items": {
              "$ref": "#/components/schemas/EndorsementType"
            }
          },
          "business_industry": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The industry in which this business operates. Click [here](https://apidocs.bridge.xyz/page/business-industry-list-updated-2022-naics-codes) for the complete list of valid industries and codes."
          },
          "publicly_traded_listings": {
            "writeOnly": true,
            "type": "array",
            "description": "A list of public exchanges that the company is traded on if applicable.",
            "items": {
              "type": "object",
              "required": [
                "market_identifier_code",
                "stock_number",
                "ticker"
              ],
              "properties": {
                "market_identifier_code": {
                  "type": "string",
                  "description": "The 4-digit Market Identifier Code (MIC) (ISO 10383) for the venue where the business is publicly listed and traded."
                },
                "stock_number": {
                  "type": "string",
                  "description": "The 12-digit International Securities Identification Number (ISIN) of the company without dashes (-)."
                },
                "ticker": {
                  "type": "string",
                  "description": "The ticker for the business's publicly traded listing."
                }
              }
            }
          },
          "ownership_threshold": {
            "type": "integer",
            "description": "The applicable beneficial ownership threshold for the submitted `associated_persons` information. Valid values are between 5 to 25. Default value is 25."
          },
          "has_material_intermediary_ownership": {
            "type": "boolean",
            "description": "The business has at least one intermediate legal entity owner with 25% or more ownership"
          },
          "estimated_annual_revenue_usd": {
            "type": "string",
            "description": "Estimated annual revenue in USD\n\n_Required for high risk customers. More information found [here](https://apidocs.bridge.xyz/docs/business-accounts)_\n",
            "enum": [
              "0_99999",
              "100000_999999",
              "1000000_9999999",
              "10000000_49999999",
              "50000000_249999999",
              "250000000_plus"
            ]
          },
          "expected_monthly_payments_usd": {
            "type": "integer",
            "description": "Expected monthly payments in USD\n\n_Required for high risk customers. More information found [here](https://apidocs.bridge.xyz/docs/business-accounts)_\n"
          },
          "expected_monthly_swift_transaction_volume": {
            "type": "integer",
            "deprecated": true,
            "description": "Expected monthly SWIFT transaction volume in USD.\n\n_Deprecated: no longer required for the SWIFT endorsement._\n"
          },
          "operates_in_prohibited_countries": {
            "type": "boolean",
            "description": "Does the business operate in any prohibited countries?\n\n_Required for high risk customers. More information found [here](https://apidocs.bridge.xyz/docs/business-accounts)_\n"
          },
          "account_purpose": {
            "type": "string",
            "description": "What is the primary purpose of the business account?",
            "enum": [
              "charitable_donations",
              "ecommerce_retail_payments",
              "investment_purposes",
              "other",
              "payments_to_friends_or_family_abroad",
              "payroll",
              "personal_or_living_expenses",
              "protect_wealth",
              "purchase_goods_and_services",
              "receive_payments_for_goods_and_services",
              "tax_optimization",
              "third_party_money_transmission",
              "treasury_management"
            ]
          },
          "account_purpose_other": {
            "type": "string",
            "description": "Required if the primary purpose is 'other'."
          },
          "high_risk_activities_explanation": {
            "type": "string",
            "description": "An explanation of the high risk activities that the business performs. \n\n_Required if `high_risk_activities` contains entries other than `none_of_the_above`_\n"
          },
          "high_risk_activities": {
            "type": "array",
            "description": "List of high-risk activities the business is involved in.\n\n_Required for high risk customers. More information found [here](https://apidocs.bridge.xyz/docs/business-accounts)_\n",
            "items": {
              "type": "string",
              "enum": [
                "adult_entertainment",
                "gambling",
                "hold_client_funds",
                "investment_services",
                "lending_banking",
                "marijuana_or_related_services",
                "money_services",
                "nicotine_tobacco_or_related_services",
                "operate_foreign_exchange_virtual_currencies_brokerage_otc",
                "pharmaceuticals",
                "precious_metals_precious_stones_jewelry",
                "safe_deposit_box_rentals",
                "third_party_payment_processing",
                "weapons_firearms_and_explosives",
                "none_of_the_above"
              ]
            }
          },
          "source_of_funds": {
            "type": "string",
            "description": "The source of funds for the business, e.g. profits, income, venture capital, etc.",
            "enum": [
              "business_loans",
              "grants",
              "inter_company_funds",
              "investment_proceeds",
              "legal_settlement",
              "owners_capital",
              "pension_retirement",
              "sale_of_assets",
              "sales_of_goods_and_services",
              "third_party_funds",
              "treasury_reserves"
            ]
          },
          "source_of_funds_description": {
            "type": "string",
            "description": "Description of the source of funds for the business' account.\n\n_Required for high risk customers. More information found [here](https://apidocs.bridge.xyz/docs/business-accounts)_\n"
          },
          "conducts_money_services": {
            "type": "boolean",
            "description": "The business offers money services, investment products, and/or other financial services.\n\n_Required for high risk customers. More information found [here](https://apidocs.bridge.xyz/docs/business-accounts)_\n"
          },
          "conducts_money_services_using_bridge": {
            "type": "boolean",
            "description": "The business plans to conduct money services, investment products, and/or other financial services using its Bridge account. A document with purpose 'flow_of_funds' is required if this is true.\n\n_Required if `conducts_money_services` is true_\n"
          },
          "conducts_money_services_description": {
            "type": "string",
            "description": "Description of the money services offered by the business.\n\n_Required if `conducts_money_services` is true_\n"
          },
          "identifying_information": {
            "$ref": "#/components/schemas/IdentifyingInformation"
          },
          "documents": {
            "$ref": "#/components/schemas/BusinessDocuments"
          },
          "incorporation_date": {
            "type": "string",
            "format": "date",
            "description": "The date the business was incorporated, in ISO 8601 format (YYYY-MM-DD)."
          },
          "verified_business_formation_at": {
            "type": "string",
            "format": "date-time",
            "description": "Write-only ISO 8601 timestamp. For **EEA in-scope** businesses on **reliance**, may satisfy `BUSINESS_REGISTRY_CHECK_RELIANCE` together with good-standing/registry evidence (or use document purpose `business_formation`). See [EEA updated requirements](https://apidocs.bridge.xyz/platform/customers/customers/eea-updated-requirements#evidence-of-good-standing).\n",
            "writeOnly": true
          },
          "verified_business_registry_at": {
            "type": "string",
            "format": "date-time",
            "description": "Write-only ISO 8601 timestamp. For **EEA in-scope** businesses on **reliance**, registry-side evidence for `BUSINESS_REGISTRY_CHECK_RELIANCE`. Use `verified_evidence_of_good_standing_at` when the artifact maps to purpose `evidence_of_good_standing`.\n",
            "writeOnly": true
          },
          "verified_evidence_of_good_standing_at": {
            "type": "string",
            "format": "date-time",
            "description": "Write-only ISO 8601 timestamp. For **EEA in-scope** businesses on **reliance**, evidence-of-good-standing path (`evidence_of_good_standing`) under `BUSINESS_REGISTRY_CHECK_RELIANCE`.\n",
            "writeOnly": true
          },
          "verified_ownership_at": {
            "type": "string",
            "format": "date-time",
            "description": "Write-only ISO 8601 timestamp. For **EEA in-scope** businesses on **reliance**, may satisfy `BUSINESS_OWNERSHIP_RELIANCE` (ownership / cap-table documentation). See [EEA updated requirements — ownership document](https://apidocs.bridge.xyz/platform/customers/customers/eea-updated-requirements#ownership-document-always-required).\n",
            "writeOnly": true
          },
          "regulated_activity": {
            "type": "object",
            "required": [
              "regulated_activities_description",
              "primary_regulatory_authority_country",
              "primary_regulatory_authority_name",
              "license_number"
            ],
            "properties": {
              "regulated_activities_description": {
                "type": "string",
                "description": "A detailed description of the regulated activities the business is licensed to conduct."
              },
              "primary_regulatory_authority_country": {
                "type": "string",
                "description": "The ISO 3166-1 (three-character) country code."
              },
              "primary_regulatory_authority_name": {
                "type": "string",
                "description": "The name of the primary regulatory authority that oversees the business's regulated activities."
              },
              "license_number": {
                "type": "string",
                "description": "The license number or registration number assigned by the business's primary regulator."
              }
            }
          },
          "acting_as_intermediary": {
            "type": "boolean",
            "description": "Is the customer acting as an intermediary for a third party?\n\n_Required for high risk customers. More information found [here](https://apidocs.bridge.xyz/docs/business-accounts)_\n"
          },
          "client_reference_id": {
            "description": "Caller-provided identifier used to correlate this customer with your internal records. Returned in API and webhook responses.",
            "$ref": "#/components/schemas/client_reference_id"
          }
        }
      },
      "AssociatedPersonResponse": {
        "type": "object",
        "required": [
          "id",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the associated person"
          },
          "email": {
            "type": "string",
            "description": "The email address of the associated person"
          },
          "first_name": {
            "type": "string",
            "minLength": 2,
            "maxLength": 1024,
            "description": "The first name of the associated person"
          },
          "last_name": {
            "type": "string",
            "minLength": 2,
            "maxLength": 1024,
            "description": "The last name of the associated person"
          },
          "has_ownership": {
            "type": "boolean",
            "description": "True if this person has at least 25% ownership of the business."
          },
          "has_control": {
            "type": "boolean",
            "description": "True if this is the control person of the company, having significant responsibility to control, manage or influence the activities of the business entity."
          },
          "is_signer": {
            "type": "boolean",
            "description": "True if this person is able to authorize transactions on behalf of the business."
          },
          "title": {
            "type": "string",
            "description": "The title of this associated person at the company, e.g. CEO, CFO, etc."
          },
          "attested_ownership_structure_at": {
            "type": "string",
            "description": "When this individual attested to the correctness of the ownership structure provided to Bridge. If provided by at least one control person, ownership documents for the business are not required."
          },
          "relationship_established_at": {
            "type": "string",
            "description": "When the associated person relationship was established in format yyyy-mm-dd."
          },
          "created_at": {
            "type": "integer",
            "description": "Created timestamp in milliseconds since Unix epoch"
          },
          "updated_at": {
            "type": "integer",
            "description": "Last updated timestamp in milliseconds since Unix epoch"
          }
        }
      },
      "AssociatedPerson": {
        "required": [
          "first_name",
          "last_name",
          "email",
          "residential_address",
          "identifying_information",
          "birth_date",
          "has_ownership",
          "has_control",
          "is_signer"
        ],
        "properties": {
          "first_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024,
            "description": "The first name of the associated person"
          },
          "middle_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024,
            "description": "The middle name of the associated person"
          },
          "last_name": {
            "type": "string",
            "minLength": 2,
            "maxLength": 1024,
            "description": "The last name of the associated person"
          },
          "transliterated_first_name": {
            "type": "string",
            "description": "Required when the `first_name` includes any non Latin-1 characters. Acceptable characters - Latin-1 Unicode Character Range: À-ÖØ-ßà-öø-ÿ; Standard Unicode Character Range:  -~",
            "minLength": 1,
            "maxLength": 256
          },
          "transliterated_middle_name": {
            "type": "string",
            "description": "Required when the `middle_name` includes any non Latin-1 characters. Acceptable characters - Latin-1 Unicode Character Range: À-ÖØ-ßà-öø-ÿ; Standard Unicode Character Range:  -~",
            "minLength": 1,
            "maxLength": 256
          },
          "transliterated_last_name": {
            "type": "string",
            "description": "Required when the `last_name` includes any non Latin-1 characters. Acceptable characters - Latin-1 Unicode Character Range: À-ÖØ-ßà-öø-ÿ; Standard Unicode Character Range:  -~",
            "minLength": 1,
            "maxLength": 256
          },
          "email": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024,
            "description": "The persons primary email address"
          },
          "phone": {
            "description": "The persons phone in format \"+12223334444\"",
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          },
          "residential_address": {
            "writeOnly": true,
            "$ref": "#/components/schemas/Address2025WinterRefresh",
            "description": "The residential address of the associated person. This must be a physical address and cannot be a PO Box."
          },
          "transliterated_residential_address": {
            "writeOnly": true,
            "$ref": "#/components/schemas/Address2025WinterRefresh",
            "description": "Required when any part of the `residential_address` includes any non Latin-1 characters. Acceptable characters - Latin-1 Unicode Character Range: À-ÖØ-ßà-öø-ÿ; Standard Unicode Character Range:  -~"
          },
          "birth_date": {
            "type": "string",
            "description": "Date of birth in format yyyy-mm-dd. Must be at least 18 years old.",
            "minLength": 10,
            "maxLength": 10
          },
          "nationality": {
            "type": "string",
            "writeOnly": true,
            "description": "Legacy single nationality (ISO 3166-1 alpha-3). Prefer `nationalities` for all nationalities. See individual customer `nationality` / `nationalities` and [EEA nationalities](https://apidocs.bridge.xyz/platform/customers/customers/eea-updated-requirements#nationalities).\n"
          },
          "nationalities": {
            "type": "array",
            "writeOnly": true,
            "description": "All nationalities for this associated person (ISO 3166-1 alpha-3). **EEA / BBSA in-scope businesses:** required on each UBO / associated person where policy applies.\n",
            "items": {
              "type": "string",
              "minLength": 3,
              "maxLength": 3
            }
          },
          "place_of_birth": {
            "writeOnly": true,
            "$ref": "#/components/schemas/PlaceOfBirthInput"
          },
          "verified_database_at": {
            "type": "string",
            "format": "date-time",
            "writeOnly": true,
            "description": "Write-only ISO 8601 timestamp. For **EEA in-scope** associated persons on **reliance**, second factor with `verified_govid_at` under `TWO_FORMS_OF_ID_RELIANCE`.\n"
          },
          "has_ownership": {
            "type": "boolean",
            "description": "True if this person has at least 25% ownership of the business."
          },
          "has_control": {
            "type": "boolean",
            "description": "True if this is the control person of the company, having significant responsibility to control, manage or influence the activities of the business entity. At least one control person must be specified. "
          },
          "is_signer": {
            "type": "boolean",
            "description": "True if this person is able to authorize transactions on behalf of the business. At least one signer must be specified."
          },
          "is_director": {
            "type": "boolean",
            "description": "True if this person is an appointed director of the company. **EEA / BBSA in-scope businesses:** must be set for every associated person (complete director list). See [EEA updated requirements](https://apidocs.bridge.xyz/platform/customers/customers/eea-updated-requirements#complete-director-list)."
          },
          "title": {
            "type": "string",
            "description": "The title of this associated person at the company, e.g. CEO, CFO, etc. Required if has_control is true.",
            "minLength": 1,
            "maxLength": 1024
          },
          "ownership_percentage": {
            "type": "integer",
            "description": "Ultimate ownership percentage of the business. **EEA / BBSA in-scope businesses:** required when `has_ownership` is true for UBOs at or above the configured threshold (default 25%). See [EEA updated requirements](https://apidocs.bridge.xyz/platform/customers/customers/eea-updated-requirements#ownership-percentage-per-ubo).\n",
            "writeOnly": true
          },
          "attested_ownership_structure_at": {
            "type": "string",
            "description": "The date or timestamp when this individual attested to the correctness of the ownership structure provided to Bridge. If provided by at least one control person, ownership documents for the business are not required.",
            "writeOnly": true
          },
          "verified_account_authorization_at": {
            "type": "string",
            "format": "date-time",
            "description": "Write-only ISO 8601 timestamp. For **EEA in-scope** businesses on **reliance**, may satisfy signatory authority for signers who are not owner, director, or control person (`signature_authority_requirement(for_reliance: true)`); alternative is `documents` with purpose `proof_of_signatory_authority`. See [EEA updated requirements — LOA](https://apidocs.bridge.xyz/platform/customers/customers/eea-updated-requirements#letter-of-authority-loa).\n",
            "writeOnly": true
          },
          "relationship_established_at": {
            "type": "string",
            "description": "The date or timestamp when the associated person relationship was established in format yyyy-mm-dd."
          },
          "verified_govid_at": {
            "type": "string",
            "format": "date-time",
            "description": "Write-only ISO 8601 timestamp. For **EEA in-scope** associated persons on **reliance**, use with `verified_selfie_at` or `verified_database_at` under `TWO_FORMS_OF_ID_RELIANCE`.\n",
            "writeOnly": true
          },
          "verified_selfie_at": {
            "type": "string",
            "format": "date-time",
            "description": "Write-only ISO 8601 timestamp. For **EEA in-scope** associated persons on **reliance**, pairs with `verified_govid_at` or `verified_database_at` under `TWO_FORMS_OF_ID_RELIANCE`.\n",
            "writeOnly": true
          },
          "identifying_information": {
            "$ref": "#/components/schemas/IdentifyingInformation"
          },
          "documents": {
            "$ref": "#/components/schemas/IndividualDocuments"
          }
        }
      },
      "FiatPayoutConfiguration": {
        "type": "object",
        "description": "A nested hash structure representing the fiat payout configuration. The top-level keys are currency codes. \nEach currency maps to a hash where keys are payment rail codes and values are payout names.\n",
        "properties": {
          "usd": {
            "type": "object",
            "description": "Payment rail configuration for USD",
            "properties": {
              "wire": {
                "type": "string",
                "enum": [
                  "developer",
                  "customer"
                ],
                "description": "The payout method to use for USD wire transfers"
              },
              "ach": {
                "type": "string",
                "enum": [
                  "bridge"
                ],
                "description": "The payout method to use for USD ACH transfers"
              }
            }
          },
          "eur": {
            "type": "object",
            "description": "Payment rail configuration for EUR",
            "properties": {
              "sepa": {
                "type": "string",
                "enum": [
                  "bridge"
                ],
                "description": "The payout method to use for EUR SEPA transfers"
              }
            }
          },
          "brl": {
            "type": "object",
            "description": "Payment rail configuration for BRL",
            "properties": {
              "pix": {
                "type": "string",
                "enum": [
                  "payment_provider"
                ],
                "description": "The payout method to use for BRL PIX transfers"
              }
            }
          },
          "mxn": {
            "type": "object",
            "description": "Payment rail configuration for MXN",
            "properties": {
              "spei": {
                "type": "string",
                "enum": [
                  "payment_provider"
                ],
                "description": "The payout method to use for MXN SPEI transfers"
              }
            }
          }
        },
        "example": {
          "usd": {
            "wire": "developer",
            "ach": "bridge"
          },
          "eur": {
            "sepa": "bridge"
          },
          "brl": {
            "pix": "payment_provider"
          },
          "mxn": {
            "spei": "payment_provider"
          }
        }
      },
      "PatchFiatPayoutConfigurationInput": {
        "type": "object",
        "required": [
          "fiat_payout_configuration"
        ],
        "properties": {
          "fiat_payout_configuration": {
            "$ref": "#/components/schemas/FiatPayoutConfiguration"
          }
        },
        "description": "Input payload for updating a customer's fiat payout configuration",
        "example": {
          "fiat_payout_configuration": {
            "usd": {
              "wire": "customer"
            }
          }
        }
      },
      "FiatPayoutConfigurationResponse": {
        "type": "object",
        "required": [
          "fiat_payout_configuration"
        ],
        "properties": {
          "fiat_payout_configuration": {
            "$ref": "#/components/schemas/FiatPayoutConfiguration"
          }
        }
      },
      "Payin": {
        "required": [
          "customer_id",
          "payment_rail",
          "currency",
          "amount",
          "state"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Id",
            "readOnly": true
          },
          "customer_id": {
            "$ref": "#/components/schemas/Id"
          },
          "payment_rail": {
            "$ref": "#/components/schemas/PaymentRail"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "amount": {
            "description": "Amount of the payin, represented as a dollar denominated string. Examples include \"100.25\", \"0.1\", \"1.234567\" etc.",
            "type": "string"
          },
          "state": {
            "description": "current state of the payin (more info to come!)",
            "type": "string",
            "readOnly": true
          },
          "transaction_hash": {
            "description": "The hash of the depositing transaction, for crypto payins",
            "type": "string",
            "readOnly": true
          },
          "to_address": {
            "description": "The destination address of the transaction, for crypto payins",
            "type": "string",
            "readOnly": true
          }
        }
      },
      "FakePayin": {
        "required": [
          "customer_id",
          "payment_rail",
          "currency",
          "amount",
          "state"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Id",
            "readOnly": true
          },
          "customer_id": {
            "$ref": "#/components/schemas/Id"
          },
          "payment_rail": {
            "$ref": "#/components/schemas/PaymentRail"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "amount": {
            "description": "Amount of the payin, represented as a dollar denominated string. Examples include \"100.25\", \"0.1\", \"1.234567\", \"1.01\" etc.",
            "type": "string"
          },
          "state": {
            "description": "current state of the payin (more info to come!)",
            "type": "string",
            "readOnly": true
          },
          "transaction_hash": {
            "description": "The hash of the depositing transaction, for crypto payins only",
            "type": "string"
          },
          "to_address": {
            "description": "The destination address of the transaction, for crypto payins only",
            "type": "string"
          }
        }
      },
      "Payout": {
        "required": [
          "customer_id",
          "payment_rail",
          "currency",
          "amount",
          "external_account_id",
          "state"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Id",
            "readOnly": true
          },
          "customer_id": {
            "$ref": "#/components/schemas/Id"
          },
          "payment_rail": {
            "$ref": "#/components/schemas/PaymentRail"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "amount": {
            "description": "Amount of the payout, represented as a dollar denominated string. Examples include \"100.25\", \"0.1\", \"1.234567\", \"1.01\" etc.",
            "type": "string"
          },
          "external_account_id": {
            "$ref": "#/components/schemas/Id"
          },
          "state": {
            "description": "current state of the payout (more info to come!)",
            "type": "string",
            "readOnly": true
          }
        }
      },
      "ReturnInstructions": {
        "description": "Optional instructions for where to send funds if the transfer is returned (e.g. refund). Only supported when the source payment rail is crypto. Memo is required when the source payment rail is Stellar.",
        "type": "object",
        "required": [
          "address"
        ],
        "properties": {
          "address": {
            "description": "The crypto wallet address to send returned funds to. Must be valid for the source payment rail's chain.",
            "type": "string"
          },
          "memo": {
            "description": "Memo to include with the return transaction. Required when the source payment rail is Stellar; optional for other memo-capable chains.",
            "type": "string"
          }
        }
      },
      "TransferInitiationAuthFactor": {
        "type": "object",
        "required": [
          "category",
          "authenticated_at",
          "reference"
        ],
        "properties": {
          "category": {
            "description": "The type of authentication factor used. Must be one of: `knowledge` (something only the user knows, e.g. a PIN or password), `possession` (something only the user has, e.g. a phone receiving an OTP or a hardware token), or `inherence` (something the user is, e.g. a fingerprint or face scan). When `outcome` is `sca_used`, the two factors in `auth_factors` must belong to two different categories.",
            "type": "string",
            "enum": [
              "knowledge",
              "possession",
              "inherence"
            ]
          },
          "authenticated_at": {
            "description": "The ISO 8601 timestamp when this factor was authenticated.",
            "type": "string",
            "format": "date-time"
          },
          "reference": {
            "description": "Your internal identifier for this authentication event (e.g. a session ID, transaction ID, or audit log reference). Used for reconciliation; Bridge does not validate its format.",
            "type": "string"
          }
        }
      },
      "TransferInitiationSca": {
        "type": "object",
        "required": [
          "outcome"
        ],
        "properties": {
          "outcome": {
            "description": "Whether Strong Customer Authentication (SCA) was applied or which regulatory exemption or non-applicability reason covers this payment. Use `sca_used` when the user authenticated with SCA. Otherwise, choose the value that applies: `payment_to_self` — payer and payee are the same person (remote only); `trusted_beneficiaries` — payee is on the user's pre-approved list; `recurring_transaction` — amount and payee match a previously SCA-authorized recurring series; `contactless_low_value` — contactless card payment below the low-value threshold (non-remote only); `unattended_terminal_for_transport` — automated terminal for transport fares or parking (non-remote only); `low_value` — remote payment below the low-value threshold (remote only); `secure_corporate_payment` — dedicated corporate payment process with controls equivalent to SCA (remote only); `transaction_risk_analysis` — PSP has performed real-time risk analysis and the transaction falls within permitted thresholds (remote only); `merchant_initiated_transaction` — payment triggered by the merchant without the payer present, on a pre-authorized mandate (remote only); `not_applicable` — this flow requires initiation context but SCA and SCA exemptions do not apply; `other` — another recognized exemption not listed above.",
            "type": "string",
            "enum": [
              "sca_used",
              "payment_to_self",
              "trusted_beneficiaries",
              "recurring_transaction",
              "contactless_low_value",
              "unattended_terminal_for_transport",
              "low_value",
              "secure_corporate_payment",
              "transaction_risk_analysis",
              "merchant_initiated_transaction",
              "not_applicable",
              "other"
            ]
          },
          "auth_factors": {
            "description": "Authentication factor metadata. Optional when `outcome` is `sca_used`; if provided, it must contain at least two entries from different `category` values (e.g. one `possession` factor and one `knowledge` factor). Omit this field for any other outcome.",
            "type": "array",
            "minItems": 2,
            "items": {
              "$ref": "#/components/schemas/TransferInitiationAuthFactor"
            }
          }
        }
      },
      "TransferInitiationAttestations": {
        "type": "object",
        "required": [
          "sca"
        ],
        "properties": {
          "sca": {
            "$ref": "#/components/schemas/TransferInitiationSca"
          }
        }
      },
      "TransferInitiation": {
        "type": "object",
        "description": "Payment initiation context required for transfers sourced from wallets where `initiation_required: true`. Captures how the payment was initiated (channel and subchannel) and whether Strong Customer Authentication was applied or which SCA exemption was used. This object is accepted on create only and is not returned in transfer responses.",
        "required": [
          "channel",
          "subchannel",
          "attestations"
        ],
        "properties": {
          "channel": {
            "description": "How the payment was initiated. Use `p2p_mobile_payment` for peer-to-peer transfers initiated on a mobile device; `other_mobile_payment` for non-P2P mobile-initiated payments (e.g. a merchant payment via a mobile app); `other` for payments not relying on a mobile device.",
            "type": "string",
            "enum": [
              "p2p_mobile_payment",
              "other_mobile_payment",
              "other"
            ]
          },
          "subchannel": {
            "description": "Whether the payment was made remotely or in person. Use `remote` for payments initiated from a distance (mobile app, online banking, or e-commerce checkout); `non_remote` for payments made in person (physical card, payment terminal, or contactless tap).",
            "type": "string",
            "enum": [
              "remote",
              "non_remote"
            ]
          },
          "attestations": {
            "$ref": "#/components/schemas/TransferInitiationAttestations"
          }
        }
      },
      "TransferRequest": {
        "required": [
          "on_behalf_of",
          "source",
          "destination"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Id",
            "readOnly": true
          },
          "client_reference_id": {
            "$ref": "#/components/schemas/client_reference_id"
          },
          "amount": {
            "description": "Amount of the transfer, expressed as a decimal string.  Examples include \"100.25\", \"0.1\", \"1.234567\", \"1.01\" etc.\n\nIt is denominated in the source currency if that is a fiat currency, or in the fiat currency to which the source currency is pegged.",
            "type": "string"
          },
          "on_behalf_of": {
            "description": "The id of the Bridge customer that you are moving funds on behalf of.",
            "type": "string"
          },
          "developer_fee": {
            "description": "The fee, expressed as a decimal string, represents the amount you wish to reserve for your own account.  This fee is the final amount deducted from what your customer ultimately receives, rather than a percentage.\n\nIt is denominated in the source currency if that is a fiat currency, or in the fiat currency to which the source currency is pegged.",
            "type": "string"
          },
          "developer_fee_percent": {
            "description": "The fee percent, expressed as a decimal string from `0.0` to `100.0`, represents the percentage of the transfer you wish to reserve for your own account.\n\nThis field must be set instead of `developer_fee` when using [Flexible Amounts](https://apidocs.bridge.xyz/platform/orchestration/fees-and-mins/devfees#transfers-with-fixed-amounts).",
            "type": "string"
          },
          "dry_run": {
            "description": "Whether to validate the transfer route without creating a transfer. If set to true, a valid transfer will return a `TransferRouteResponse` indicating the transfer would have been valid. The same error response will be returned for an invalid transfer as in the non-dry-run case.",
            "type": "boolean"
          },
          "source": {
            "description": "The source of the transfer, which could be an external bank account, a bridge account, or a crypto wallet address.",
            "allOf": [
              {
                "$ref": "#/components/schemas/TransferSource"
              },
              {
                "properties": {
                  "from_address": {
                    "description": "The crypto wallet address that the customer will send funds from, in order to kick off this transfer.",
                    "type": "string"
                  }
                }
              }
            ]
          },
          "destination": {
            "description": "The destination of the transfer, which could be an external bank account, a bridge account, or a crypto wallet address.",
            "allOf": [
              {
                "$ref": "#/components/schemas/TransferDestination"
              },
              {
                "properties": {
                  "amount": {
                    "description": "Specify the destination amount for the recipient to receive. Learn more at [Fixed Outputs Integration Guide](https://apidocs.bridge.xyz/get-started/guides/move-money/fixed_outputs_integration_guide).\n\nDenominated in the destination currency.\n\nExpressed as a decimal string. Examples include \"100.25\", \"0.1\", \"1.234567\", \"1.01\" etc.",
                    "type": "string"
                  },
                  "to_address": {
                    "description": "The crypto wallet address that the customer wishes to ultimately receive funds at, in order to complete this transfer",
                    "type": "string"
                  },
                  "wire_message": {
                    "type": "string"
                  }
                }
              }
            ]
          },
          "features": {
            "description": "Features that should be enabled for this transfer. See [Transfer Features](https://apidocs.bridge.xyz/platform/orchestration/transfers/transfer-features) for more details.",
            "type": "object",
            "properties": {
              "flexible_amount": {
                "type": "boolean",
                "description": "Allows for variable amounts to be accepted. When true, omit `amount` from the request body. Required to be `true` when the source payment rail is `swift`."
              },
              "static_template": {
                "type": "boolean"
              },
              "allow_any_from_address": {
                "type": "boolean"
              }
            }
          },
          "return_instructions": {
            "description": "Optional instructions for where to send funds if the transfer is returned (e.g. refund). Only supported when the source payment rail is crypto. When the source is Stellar, `memo` is required.",
            "$ref": "#/components/schemas/ReturnInstructions"
          },
          "initiation": {
            "description": "Payment initiation context. Required when the source Bridge Wallet's GET response includes `initiation_required: true`. Omit for wallets that do not return that field. Not returned in transfer responses.",
            "writeOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/TransferInitiation"
              }
            ]
          },
          "travel_rule_data": {
            "description": "Travel Rule data for this transfer. Use this when the same originator or beneficiary should apply to this transfer's movement. If the payload is only known after the transfer exists or is specific to a single movement, you can also submit the same object with `POST /travel_rule_data/{id}`.",
            "allOf": [
              {
                "$ref": "#/components/schemas/TravelRuleData"
              }
            ]
          }
        }
      },
      "TransferUpdateRequest": {
        "properties": {
          "amount": {
            "description": "Amount of the transfer, expressed as a decimal string.  Examples include \"100.25\", \"0.1\", \"1.234567\", \"1.01\" etc.\n\nIt is denominated in the source currency if that is a fiat currency, or in the fiat currency to which the source currency is pegged.",
            "type": "string"
          },
          "developer_fee": {
            "description": "The fee, expressed as a decimal string, represents the amount you wish to reserve for your own account.  This fee is the final amount deducted from what your customer ultimately receives, rather than a percentage.\n\nIt is denominated in the source currency if that is a fiat currency, or in the fiat currency to which the source currency is pegged.",
            "type": "string"
          },
          "developer_fee_percent": {
            "description": "The fee percent, expressed as a decimal string from `0.0` to `100.0`, represents the percentage of the transfer you wish to reserve for your own account.\n\nThis field must be set instead of `developer_fee` when using [Flexible Amounts](https://apidocs.bridge.xyz/platform/orchestration/fees-and-mins/devfees#transfers-with-fixed-amounts).",
            "type": "string"
          },
          "return_instructions": {
            "description": "Optional instructions for where to send funds if the transfer is returned (e.g. refund). Only supported when the source payment rail is crypto. When the source is Stellar, `memo` is required.",
            "$ref": "#/components/schemas/ReturnInstructions"
          }
        }
      },
      "TransferRouteResponse": {
        "required": [
          "state",
          "notes"
        ],
        "properties": {
          "state": {
            "type": "string",
            "enum": [
              "valid",
              "invalid"
            ]
          },
          "notes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "TransferResponse": {
        "required": [
          "id",
          "amount",
          "developer_fee",
          "currency",
          "on_behalf_of",
          "source",
          "destination",
          "state",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Id",
            "readOnly": true
          },
          "client_reference_id": {
            "$ref": "#/components/schemas/client_reference_id"
          },
          "amount": {
            "description": "Amount of the transfer, expressed as a decimal string.  Examples include \"100.25\", \"0.1\", \"1.234567\", \"1.01\" etc.\n\nIt is denominated in the source currency if that is a fiat currency, or in the fiat currency to which the source currency is pegged.",
            "type": "string"
          },
          "currency": {
            "description": "Fiat currency for the transfer amount and developer fee. It's the source currency if that is a fiat currency or the fiat currency to which the source currency is pegged.",
            "$ref": "#/components/schemas/EuroInclusiveFiatCurrency"
          },
          "on_behalf_of": {
            "description": "The id of the Bridge customer that you are moving funds on behalf of.",
            "type": "string"
          },
          "developer_fee": {
            "description": "The fee, expressed as a decimal string, represents the amount you wish to reserve for your own account. This fee is the final amount deducted from what your customer ultimately receives, rather than a percentage.\n\nIt is denominated in the source currency if that is a fiat currency, or in the fiat currency to which the source currency is pegged.",
            "type": "string"
          },
          "developer_fee_percent": {
            "description": "The fee percent, expressed as a decimal string from `0.0` to `100.0`, represents the percentage of the transfer you wish to reserve for your own account.\n\nThis field must be set instead of `developer_fee` when using [Flexible Amounts](https://apidocs.bridge.xyz/platform/orchestration/fees-and-mins/devfees#transfers-with-fixed-amounts).",
            "type": "string"
          },
          "source": {
            "description": "The source of the transfer, which could be an external bank account, a bridge account, or a crypto wallet address",
            "allOf": [
              {
                "$ref": "#/components/schemas/TransferSource"
              },
              {
                "properties": {
                  "currency": {
                    "description": "The source currency",
                    "$ref": "#/components/schemas/EuroInclusiveCurrency"
                  },
                  "payment_rail": {
                    "description": "The intended source payment rail",
                    "$ref": "#/components/schemas/TransferSourcePaymentRail"
                  },
                  "payment_received_rail": {
                    "description": "The rail on which the payment was actually received. Set once the funds have been onramped.",
                    "$ref": "#/components/schemas/TransferSourcePaymentRail",
                    "readOnly": true
                  },
                  "from_address": {
                    "description": "The crypto wallet address that the customer will send funds from, in order to kick off this transfer",
                    "type": "string"
                  }
                }
              }
            ]
          },
          "destination": {
            "description": "The destination of the transfer, which could be an external bank account, a bridge account, or a crypto wallet address",
            "allOf": [
              {
                "$ref": "#/components/schemas/TransferDestination"
              },
              {
                "properties": {
                  "amount": {
                    "description": "The destination amount for the recipient to receive. Present when the transfer was created with a destination amount (Fixed Outputs).\n\nDenominated in the destination currency.\n\nExpressed as a decimal string. Examples include \"100.25\", \"0.1\", \"1.234567\", \"1.01\" etc.",
                    "type": "string",
                    "readOnly": true
                  },
                  "currency": {
                    "description": "The destination currency",
                    "$ref": "#/components/schemas/EuroInclusiveCurrency"
                  },
                  "payment_rail": {
                    "description": "The destination payment rail",
                    "$ref": "#/components/schemas/SepaSwiftInclusivePaymentRail"
                  },
                  "to_address": {
                    "description": "The crypto wallet address that the customer wishes to ultimately receive funds at, in order to complete this transfer",
                    "type": "string"
                  },
                  "wire_message": {
                    "description": "A message to be sent with a wire transfer, only allowed when the payment rail is a wire.  This message will be validated against 4 lines, each with a max length of 35 char according to the Fedwire standard.",
                    "type": "string"
                  },
                  "blockchain_memo": {
                    "description": "A message to be sent with a crypto transaction, only allowed when the payment rail supports memo, e.g. Stellar.",
                    "type": "string"
                  }
                }
              }
            ]
          },
          "state": {
            "description": "Status of the transfer. See [Transfer States](https://apidocs.bridge.xyz/platform/orchestration/transfers/transfer-states) for more details.",
            "readOnly": true,
            "$ref": "#/components/schemas/TransferState"
          },
          "source_deposit_instructions": {
            "readOnly": true,
            "description": "Some transfers require a deposit to be made by the customer before Bridge can start the process.  Instructions for how to kick off the transfer will be included here.  The deposit must match these instructions exactly, or the transfer will fail.",
            "$ref": "#/components/schemas/DepositInstructions"
          },
          "receipt": {
            "description": "Receipt information of a transfer. Not present on static templates or transfers with a flexible amount.",
            "$ref": "#/components/schemas/Receipt"
          },
          "return_details": {
            "readOnly": true,
            "description": "Return information, if the transfer has been returned.",
            "$ref": "#/components/schemas/TransferReturnDetails"
          },
          "return_instructions": {
            "readOnly": true,
            "description": "Optional return instructions configured when creating or updating the transfer.",
            "$ref": "#/components/schemas/ReturnInstructions"
          },
          "exchange_details": {
            "readOnly": true,
            "description": "Exchange details for the associated trade, if applicable.",
            "$ref": "#/components/schemas/ExchangeDetails"
          },
          "created_at": {
            "readOnly": true,
            "type": "string",
            "description": "Time of creation of the transfer",
            "format": "date-time"
          },
          "updated_at": {
            "readOnly": true,
            "type": "string",
            "description": "Time of update of the transfer",
            "format": "date-time"
          },
          "template_id": {
            "readOnly": true,
            "description": "The ID of the static template transfer from which this transfer was instantiated. Only present for transfers created from a template.",
            "$ref": "#/components/schemas/Id"
          },
          "first_confirmed_at": {
            "readOnly": true,
            "type": "string",
            "description": "Time when the withdrawal transaction received its first on-chain confirmation. Only present for crypto withdrawal transfers where this feature is enabled for the developer.",
            "format": "date-time"
          }
        }
      },
      "TransferReturnDetails": {
        "properties": {
          "reason": {
            "description": "The reason for the return, as given by the returning financial institution.",
            "type": "string"
          },
          "refund_reference_id": {
            "description": "A unique identifier (such as transaction hash) for the refund transaction.",
            "type": "string"
          },
          "risk_rejection_reason": {
            "description": "The risk-related reason the transaction was returned. Present only when Bridge provides a risk-related reason for the return. Possible values include `Exceeds Transaction Limits` and `Exceeds Counterparty Limits`.",
            "type": "string",
            "readOnly": true,
            "example": "Exceeds Transaction Limits"
          }
        }
      },
      "Receipt": {
        "description": "Each amount on the receipt has a companion `<field>_currency` giving the currency that amount is denominated in. Every one of them is either the transfer's source currency or its destination currency. Amounts taken out of what you sent (the initial amount and the fees charged before conversion) carry the source currency, and amounts on the far side of the conversion (the converted amount, the gas fee, the final amount) carry the destination currency, so a USDT to USDC transfer reports its input in USDT and its output in USDC.",
        "required": [
          "initial_amount",
          "initial_amount_currency",
          "developer_fee",
          "developer_fee_currency",
          "exchange_fee",
          "exchange_fee_currency",
          "subtotal_amount",
          "subtotal_amount_currency"
        ],
        "properties": {
          "initial_amount": {
            "description": "The initial amount of the transfer from the source, represented as a decimal string. Examples include \"100.25\", \"0.1\", \"1.234567\", \"1.01\" etc.",
            "type": "string"
          },
          "initial_amount_currency": {
            "description": "The currency the `initial_amount` is denominated in.",
            "type": "string"
          },
          "developer_fee": {
            "description": "The fee, expressed as a decimal string, represents the amount of the transfer reserved for your own account. This fee is the final amount deducted from what your customer ultimately receives, rather than a percentage.",
            "type": "string"
          },
          "developer_fee_currency": {
            "description": "The currency the `developer_fee` is denominated in.",
            "type": "string"
          },
          "exchange_fee": {
            "description": "The fee, expressed as a decimal string, represents the amount Bridge charges for facilitating the transfer. This is the final amount deducted from what your customer ultimately receives, rather than a percentage. It can be deducted from the initial amount/currency or the converted amount/currency. ",
            "type": "string"
          },
          "exchange_fee_currency": {
            "description": "The currency the `exchange_fee` is denominated in.",
            "type": "string"
          },
          "developer_exchange_fee": {
            "description": "For FixedOutput trades, the amount, expressed as a decimal string, of the traded money that was not necessary to deliver the fixed output, returned to the developer.",
            "type": "object",
            "properties": {
              "amount": {
                "description": "Amount of the fee",
                "type": "string"
              },
              "currency": {
                "description": "Currency of the fee",
                "type": "string"
              }
            }
          },
          "pre_conversion_subtotal_amount": {
            "description": "On transfers with a variable trade, the amount of money, expressed as a decimal string, that is passed into the trade itself. Equal to the initial amount less any fees applied on the input side of the trade",
            "type": "string"
          },
          "pre_conversion_subtotal_amount_currency": {
            "description": "The currency the `pre_conversion_subtotal_amount` is denominated in.",
            "type": "string"
          },
          "mid_market_rate": {
            "description": "If the transfer includes a market rate trade, this is the mid-market rate used to calculate the output of the trade. It is expressed as a decimal string.",
            "type": "string"
          },
          "converted_amount": {
            "description": "If the transfer includes a variable trade, the amount of money, expressed as a decimal string, received after the trade, before any final fees are deducted.",
            "type": "string"
          },
          "converted_amount_currency": {
            "description": "The currency the `converted_amount` is denominated in.",
            "type": "string"
          },
          "subtotal_amount": {
            "description": "The amount, expressed as a decimal string, remaining from the converted amount after any remaining non-gas fees have been deducted. ",
            "type": "string"
          },
          "subtotal_amount_currency": {
            "description": "The currency the `subtotal_amount` is denominated in.",
            "type": "string"
          },
          "remaining_prefunded_balance": {
            "description": "For Prefunded Accounts, this value will represent the remaining account balance after the transfer.",
            "type": "string"
          },
          "remaining_prefunded_balance_currency": {
            "description": "The currency the `remaining_prefunded_balance` is denominated in.",
            "type": "string"
          },
          "gas_fee": {
            "description": "The fee, expressed as a decimal string. It's deducted from the withdrawn amount to pay for gas.  Only nonzero to crypto withdrawals that cost gas (e.g. USDT), and only known when the transaction is confirmed on-chain.  Will be missing if not yet known.\n\nIt's denominated in the destination currency, given in `gas_fee_currency`.",
            "type": "string"
          },
          "gas_fee_currency": {
            "description": "The currency the `gas_fee` is denominated in.",
            "type": "string"
          },
          "final_amount": {
            "description": "The final amount of the transfer, expressed as a decimal string, equal to the subtotal_amount minus any gas fees.  If the gas fee is not known, this field will be missing.  Examples include \"100.25\", \"0.1\", \"1.234567\", \"1.01\" etc.\n\nIt's denominated in the destination currency, given in `final_amount_currency`.",
            "type": "string"
          },
          "final_amount_currency": {
            "description": "The currency the `final_amount` is denominated in.",
            "type": "string"
          },
          "source_tx_hash": {
            "description": "The hash of the on-chain deposit to the source address, where applicable"
          },
          "destination_tx_hash": {
            "description": "The hash of the on-chain transfer to the destination address, where applicable"
          },
          "exchange_rate": {
            "description": "The effective exchange rate can be calculated by dividing the converted amount by the amount available for conversion after deducting the developer fee. This rate includes a currency conversion spread and is subject to a rounding precision loss during the calculation. Currently it's populated for SEPA onramp/offramp transfers only."
          },
          "url": {
            "description": "The URL of a user-facing copy of the receipt.",
            "type": "string"
          },
          "bank_details": {
            "description": "Bank-lookup details for fiat offramp receipts, to help the recipient's bank locate the payment. Present for enabled developers once the offramp's bank leg exists; individual fields may be null until they become available (e.g. the ACH trace ID before submission to the Fed).",
            "type": "object",
            "properties": {
              "sending_routing_number": {
                "description": "Routing number of the bank Bridge sent the payment from.",
                "type": "string"
              },
              "ach_description": {
                "description": "Statement descriptor on the outgoing ACH credit.",
                "type": "string"
              },
              "ach_trace_id": {
                "description": "ACH trace number, populated after submission to the Fed.",
                "type": "string"
              },
              "wire_message": {
                "description": "Message sent with the outgoing wire (beneficiary, FI-to-FI, or receiving-FI message).",
                "type": "string"
              },
              "imad": {
                "description": "IMAD (Input Message Accountability Data) of the outgoing wire, populated after posting.",
                "type": "string"
              },
              "recipient_name": {
                "description": "Name on the receiving external account.",
                "type": "string"
              },
              "sending_bic": {
                "description": "BIC of the bank Bridge sent the SEPA payment from.",
                "type": "string"
              },
              "sepa_reference": {
                "description": "SEPA payment reference.",
                "type": "string"
              },
              "uetr": {
                "description": "Unique End-to-end Transaction Reference (UETR) of the SEPA payment.",
                "type": "string"
              },
              "receiving_account_last_four": {
                "description": "Last four digits of the receiving IBAN.",
                "type": "string"
              },
              "receiving_bic": {
                "description": "BIC of the receiving bank.",
                "type": "string"
              }
            }
          }
        }
      },
      "ExchangeDetails": {
        "description": "Exchange information for a currency conversion.",
        "properties": {
          "fixed_rate": {
            "description": "The target exchange rate.",
            "type": "string"
          },
          "estimated_market_rate": {
            "description": "The estimated achievable rate based on current market conditions.",
            "type": "string"
          },
          "traded_market_rate": {
            "description": "The actual effective exchange rate achieved.",
            "type": "string"
          },
          "trade_at_market": {
            "description": "Whether market-rate execution has been applied to this trade.",
            "type": "boolean"
          },
          "updated_at": {
            "description": "Timestamp of the last exchange details update.",
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "DrainReceipt": {
        "required": [
          "initial_amount",
          "developer_fee",
          "exchange_rate",
          "subtotal_amount",
          "converted_amount",
          "outgoing_amount",
          "destination_currency"
        ],
        "properties": {
          "initial_amount": {
            "description": "The initial amount of the drain, denominated in the fiat currency to which the currency of the Liquidation Address is pegged. Examples include \"100.25\", \"0.1\", \"1.234567\", \"1.000000000000000001\" etc.",
            "type": "string"
          },
          "developer_fee": {
            "description": "The developer fee, denominated in the fiat currency to which the currency of the Liquidation Address is pegged. This fee is a specific amount deducted from the initial total before conversion, rather than a percentage.",
            "type": "string"
          },
          "subtotal_amount": {
            "description": "The initial amount of the drain less the `developer_fee`, denominated in the fiat currency to which the Liquidation Address currency is pegged. Examples include \"100.25\", \"0.1\", \"1.234567\", \"1.000000000000000001\" etc.",
            "type": "string"
          },
          "gas_fee": {
            "description": "The fee that is deducted from the withdrawn amount to pay for gas.  Only included for crypto withdrawals that cost gas (e.g. USDT). It's denominated in the fiat currency to which the destination currency is pegged.",
            "type": "string"
          },
          "converted_amount": {
            "description": "The converted amount of the drain. It's denominated in the destination currency or its pegged fiat currency.",
            "type": "string"
          },
          "exchange_rate": {
            "description": "The effective exchange rate that can be calculated by dividing the converted amount by the amount available for conversion after deducting the developer fee."
          },
          "outgoing_amount": {
            "description": "The final amount of the drain, equal to the `converted_amount` minus any gas fees. It's denominated in the destination currency or its pegged fiat currency.",
            "type": "string"
          },
          "destination_currency": {
            "$ref": "#/components/schemas/Currency",
            "description": "The currency of the fund sent to the customer."
          },
          "url": {
            "description": "The URL of a user-facing copy of the receipt.",
            "type": "string"
          }
        }
      },
      "PutWebhookPayload": {
        "properties": {
          "url": {
            "description": "The new HTTPS URL that Bridge will send events to.",
            "type": "string",
            "minLength": 1
          },
          "status": {
            "description": "The new status of the webhook endpoint.  If set to \"active\", the webhook will be enabled and will send requests to the new URL.  If set to \"disabled\", the webhook will be disabled and will not send requests to the URL.",
            "type": "string",
            "enum": [
              "active",
              "disabled"
            ]
          },
          "event_categories": {
            "type": "array",
            "description": "The list of event categories that the webhook endpoint will receive. Note that if modified, the webhook endpoint will receive events for new categories only from the current point onwards.",
            "minItems": 0,
            "items": {
              "$ref": "#/components/schemas/WebhookEventCategory"
            }
          }
        }
      },
      "SendWebhookPayload": {
        "properties": {
          "event_id": {
            "description": "The ID of the event that will be delivered to your endpoint",
            "type": "string",
            "minLength": 1
          }
        }
      },
      "TransferSource": {
        "required": [
          "currency",
          "payment_rail"
        ],
        "properties": {
          "currency": {
            "description": "When `eur` is specified as the source currency:\n  1. the source rail must be `sepa`;\n  2. only `usdc` or `eurc` are supported as the destination currency",
            "$ref": "#/components/schemas/EuroInclusiveCurrency"
          },
          "payment_rail": {
            "description": "When `sepa` is specified as the source rail:\n  1. the source currency must be `eur`;\n  2. only `usdc` or `eurc` are supported as the destination currency \n\n **Note: This is the intended payment rail, and may differ from the actual payment rail used to onramp the funds.**",
            "$ref": "#/components/schemas/TransferSourcePaymentRail"
          },
          "payment_scheme": {
            "description": "(SEPA only) The payment scheme used for this transaction, such as SEPA Credit Transfer or SEPA Instant",
            "readOnly": true,
            "$ref": "#/components/schemas/PaymentScheme"
          },
          "omad": {
            "$ref": "#/components/schemas/Omad",
            "readOnly": true
          },
          "imad": {
            "$ref": "#/components/schemas/Imad",
            "readOnly": true
          },
          "trace_number": {
            "$ref": "#/components/schemas/TraceNumber",
            "readOnly": true
          },
          "bank_beneficiary_name": {
            "description": "(Wire only) The name of the beneficiary of the bank account that the customer sent the deposit to",
            "type": "string",
            "readOnly": true
          },
          "bank_beneficiary_address": {
            "description": "(Wire only) The address of the beneficiary of the bank account that the customer sent the deposit to",
            "type": "string",
            "readOnly": true
          },
          "bank_routing_number": {
            "description": "(Wire only) The routing number of the bank that the customer sent the deposit to",
            "type": "string",
            "readOnly": true
          },
          "bank_name": {
            "description": "(Wire, SPEI, and PIX only) The name of the bank that the customer sent the deposit from. For PIX, only present when the sending bank reports it.",
            "type": "string",
            "readOnly": true
          },
          "originator_name": {
            "description": "(Wire only) The originator name of this wire",
            "type": "string",
            "readOnly": true
          },
          "originator_address": {
            "description": "(Wire only) The originator address of this wire",
            "type": "string",
            "readOnly": true
          },
          "wire_message": {
            "description": "(Wire only) The memo for this wire",
            "type": "string",
            "readOnly": true
          },
          "bridge_wallet_id": {
            "description": "(Bridge Wallet only) The ID of the Bridge Wallet to draw funds from",
            "$ref": "#/components/schemas/Id"
          },
          "sender_name": {
            "description": "(ACH and FedNow only) The name of the business or individual who initiated the transaction",
            "type": "string",
            "readOnly": true
          },
          "sender_bank_routing_number": {
            "description": "(ACH and FedNow only) The routing number of the entity that initiated this transaction",
            "type": "string",
            "readOnly": true
          },
          "end_to_end_id": {
            "$ref": "#/components/schemas/EndToEndId",
            "readOnly": true
          },
          "description": {
            "description": "(ACH only) The description of the deposit that the customer sent",
            "type": "string",
            "readOnly": true
          },
          "tracking_number": {
            "$ref": "#/components/schemas/TrackingNumber",
            "readOnly": true
          },
          "clabe": {
            "description": "(SPEI only) The 18-digit CLABE of the sender who initiated this SPEI transaction",
            "$ref": "#/components/schemas/Clabe",
            "readOnly": true
          },
          "account_number": {
            "description": "The account number of the sender who initiated this transaction, when the sending bank reports it. SPEI transactions use `clabe` instead.",
            "type": "string",
            "readOnly": true
          },
          "bank_code": {
            "description": "(SPEI and PIX only) The code of the sender's bank that initiated this transaction. For SPEI this is the Banxico bank code; for PIX this is the 8-digit ISPB code.",
            "type": "string",
            "readOnly": true
          },
          "transaction_id": {
            "$ref": "#/components/schemas/TransactionId",
            "readOnly": true
          },
          "co_bank_transfer": {
            "description": "(co_bank_transfer only) Details for Colombian bank transfers.",
            "type": "object",
            "required": [
              "redirect_url"
            ],
            "properties": {
              "redirect_url": {
                "description": "URL to redirect the customer to after completing the bank transfer",
                "type": "string",
                "writeOnly": true
              },
              "expiry_date": {
                "description": "Optional ISO 8601 expiry timestamp for the payment session. Defaults to 24 hours from creation.",
                "type": "string",
                "writeOnly": true
              },
              "sender_data": {
                "description": "Sender information for the CO bank transfer. If omitted, the payer must manually provide this information via the payment link. If provided, fields will be pre-populated for the payer. Sensitive fields are masked in responses (e.g. document_number shows `***3456`).",
                "type": "object",
                "required": [
                  "full_name",
                  "document_type",
                  "document_number",
                  "email",
                  "phone_number"
                ],
                "properties": {
                  "full_name": {
                    "description": "Full name of the sender",
                    "type": "string"
                  },
                  "document_type": {
                    "$ref": "#/components/schemas/CoBankTransferDocumentType"
                  },
                  "document_number": {
                    "description": "Document number of the sender. Masked in responses (e.g. ***3456).",
                    "type": "string"
                  },
                  "email": {
                    "description": "Email address of the sender",
                    "type": "string"
                  },
                  "phone_number": {
                    "description": "Phone number of the sender in E.164 format (e.g. +573001234567)",
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      },
      "TransferDestination": {
        "required": [
          "currency",
          "payment_rail"
        ],
        "properties": {
          "currency": {
            "description": "When `eur` is specified as the destination currency, the destination rail must be `sepa`.",
            "$ref": "#/components/schemas/EuroInclusiveCurrency"
          },
          "payment_rail": {
            "description": "When `sepa` is specified as the destination payment rail, the destination currency must be `eur`; when `swift` is specified as the destination payment rail, the destination currency must be `usd`.",
            "$ref": "#/components/schemas/SepaSwiftInclusiveOfframpPaymentRail"
          },
          "external_account_id": {
            "description": "External bank account Bridge should send the funds to. The currency associated with the External Account must match the destination currency.",
            "$ref": "#/components/schemas/Id"
          },
          "bridge_wallet_id": {
            "description": "The Bridge Wallet to which Bridge will send the funds. The chain associated with the Bridge Wallet must match the destination payment rail.",
            "$ref": "#/components/schemas/Id"
          },
          "omad": {
            "$ref": "#/components/schemas/Omad",
            "readOnly": true
          },
          "imad": {
            "$ref": "#/components/schemas/Imad",
            "readOnly": true
          },
          "trace_number": {
            "$ref": "#/components/schemas/TraceNumber",
            "readOnly": true
          },
          "end_to_end_id": {
            "$ref": "#/components/schemas/EndToEndId",
            "readOnly": true
          },
          "wire_message": {
            "$ref": "#/components/schemas/WireMessage"
          },
          "sepa_reference": {
            "$ref": "#/components/schemas/SepaReference"
          },
          "swift_reference": {
            "$ref": "#/components/schemas/SwiftReference"
          },
          "spei_reference": {
            "$ref": "#/components/schemas/SpeiReference"
          },
          "reference": {
            "$ref": "#/components/schemas/Reference"
          },
          "charge_bearer": {
            "description": "Which party bears the charges for the SWIFT transaction. Defaults to `sha` when not specified. Accepted on both request and response.",
            "$ref": "#/components/schemas/ChargeBearer"
          },
          "ach_reference": {
            "$ref": "#/components/schemas/AchReference"
          },
          "uetr": {
            "$ref": "#/components/schemas/Uetr"
          },
          "blockchain_memo": {
            "type": "string",
            "description": "The memo to include when sending funds on chain. Only allowed for blockchains that support memos such as Stellar"
          },
          "deposit_id": {
            "$ref": "#/components/schemas/DepositId"
          },
          "tracking_number": {
            "$ref": "#/components/schemas/TrackingNumber",
            "readOnly": true
          },
          "transaction_id": {
            "$ref": "#/components/schemas/TransactionId",
            "readOnly": true
          },
          "sending_institution_name": {
            "description": "The name of the institution sending the funds",
            "type": "string",
            "readOnly": true
          }
        }
      },
      "DrainDestination": {
        "required": [
          "payment_rail",
          "currency"
        ],
        "properties": {
          "payment_rail": {
            "$ref": "#/components/schemas/PaymentRail"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "to_address": {
            "description": "The crypto wallet address that the customer will ultimately receive funds at",
            "type": "string"
          },
          "blockchain_memo": {
            "description": "The memo to include in the transaction, for blockchains that support memos only",
            "type": "string"
          },
          "external_account_id": {
            "description": "External bank account to which Bridge will send the funds.",
            "$ref": "#/components/schemas/Id"
          },
          "wire_message": {
            "description": "A message to be sent with a wire transfer.",
            "$ref": "#/components/schemas/WireMessage"
          },
          "sepa_reference": {
            "$ref": "#/components/schemas/SepaReference"
          },
          "swift_reference": {
            "$ref": "#/components/schemas/SwiftReference"
          },
          "spei_reference": {
            "$ref": "#/components/schemas/SpeiReference"
          },
          "reference": {
            "$ref": "#/components/schemas/Reference"
          },
          "ach_reference": {
            "$ref": "#/components/schemas/AchReference"
          },
          "imad": {
            "$ref": "#/components/schemas/Imad"
          },
          "trace_number": {
            "$ref": "#/components/schemas/TraceNumber",
            "readOnly": true
          },
          "tracking_number": {
            "$ref": "#/components/schemas/TrackingNumber",
            "readOnly": true
          },
          "transaction_id": {
            "$ref": "#/components/schemas/TransactionId",
            "readOnly": true
          },
          "sending_institution_name": {
            "description": "The name of the institution sending the funds",
            "type": "string",
            "readOnly": true
          },
          "uetr": {
            "$ref": "#/components/schemas/Uetr"
          }
        }
      },
      "DrainReturnDetails": {
        "properties": {
          "reason": {
            "description": "The reason for the return, as given by the returning financial institution.",
            "type": "string"
          },
          "risk_rejection_reason": {
            "description": "The risk-related reason the transaction was returned. Present only when Bridge provides a risk-related reason for the return. Possible values include `Exceeds Transaction Limits` and `Exceeds Counterparty Limits`.",
            "type": "string",
            "readOnly": true,
            "example": "Exceeds Transaction Limits"
          }
        }
      },
      "DepositInstructions": {
        "title": "Transfer Source Deposit Instructions",
        "readOnly": true,
        "oneOf": [
          {
            "$ref": "#/components/schemas/FiatDepositInstructions"
          },
          {
            "$ref": "#/components/schemas/CryptoDepositInstructions"
          }
        ]
      },
      "FiatDepositInstructions": {
        "title": "Fiat",
        "description": "Instructions for a fiat bank deposit. Which bank fields are present depends on the payment rail.",
        "readOnly": true,
        "type": "object",
        "required": [
          "payment_rail",
          "amount",
          "currency"
        ],
        "properties": {
          "payment_rail": {
            "description": "The fiat payment rail that Bridge is expecting funds to arrive on",
            "$ref": "#/components/schemas/OnrampSourceDepositPaymentRail"
          },
          "amount": {
            "description": "Amount of the deposit in the source currency, expressed as a decimal string. Examples include \"100.25\", \"0.1\", \"1.234567\", \"1.01\" etc.",
            "type": "string"
          },
          "currency": {
            "description": "The source currency",
            "$ref": "#/components/schemas/EuroInclusiveFiatCurrency"
          },
          "deposit_message": {
            "description": "The message that the customer MUST include in their `wire memo/message`, `ach push description`, or `sepa reference`.",
            "type": "string"
          },
          "bank_name": {
            "description": "The name of the bank that the customer should send the deposit to",
            "type": "string"
          },
          "bank_address": {
            "description": "The address of the bank that the customer should send the deposit to. For SEPA, the country in this address should be used for sending the deposit",
            "type": "string"
          },
          "bank_routing_number": {
            "description": "The routing number of the bank that the customer should send the deposit to",
            "type": "string"
          },
          "bank_account_number": {
            "description": "The account number of the bank that the customer should send the deposit to",
            "type": "string"
          },
          "bank_beneficiary_name": {
            "description": "The name of the beneficiary of the bank account that the customer should send the deposit to",
            "type": "string"
          },
          "bank_beneficiary_address": {
            "description": "The address of the beneficiary of the bank account that the customer should send the deposit to",
            "type": "string"
          },
          "intermediary_bank_name": {
            "description": "For USD SWIFT, the name of the intermediary correspondent bank that the originating bank should route the payment through.",
            "type": "string"
          },
          "intermediary_bank_bic": {
            "description": "For USD SWIFT, the SWIFT/BIC of the intermediary correspondent bank",
            "type": "string"
          },
          "intermediary_bank_routing_number": {
            "description": "For USD SWIFT, the ABA routing number of the intermediary correspondent bank",
            "type": "string"
          },
          "iban": {
            "description": "For SEPA and SWIFT, the International Bank Account Number (IBAN) that the customer should use to send the deposit",
            "type": "string"
          },
          "bic": {
            "description": "For SEPA and SWIFT, the Bank Identifier Code (BIC) that the customer should use to send the deposit",
            "type": "string"
          },
          "account_number": {
            "description": "For Faster Payments (UK), the account number that the customer should use to send the deposit",
            "type": "string"
          },
          "sort_code": {
            "description": "For Faster Payments (UK), the sort code that the customer should use to send the deposit",
            "type": "string"
          },
          "clabe": {
            "description": "For SPEI, the CLABE (account number) that the customer should use to send the deposit",
            "type": "string"
          },
          "br_code": {
            "description": "For Pix (Brazil), the BR Code that the customer should use to send the deposit",
            "type": "string"
          },
          "qr_code": {
            "description": "For Pix (Brazil), a base64-encoded PNG image of the QR code that the customer can scan to send the deposit",
            "type": "string"
          },
          "account_holder_name": {
            "description": "For SEPA, SWIFT, SPEI, Pix, Bre-B, and co_bank_transfer, the name of the bank account holder that the customer should use to send the deposit",
            "type": "string"
          },
          "bre_b_key": {
            "description": "For Bre-B (Colombia), the Bre-B key that the customer should use to send the COP deposit",
            "type": "string"
          },
          "start_url": {
            "description": "For co_bank_transfer (Colombia), the URL the customer should be redirected to in order to complete the bank transfer payment",
            "type": "string"
          },
          "redirect_url": {
            "description": "For co_bank_transfer (Colombia), the redirect URL you provided when the transfer was created",
            "type": "string"
          },
          "expires_at": {
            "description": "For Pix (Brazil) and co_bank_transfer (Colombia), the ISO 8601 timestamp when the payment session expires",
            "type": "string"
          }
        },
        "example": {
          "payment_rail": "wire",
          "amount": "75.0",
          "currency": "usd",
          "deposit_message": "BVI7depositmessage",
          "bank_name": "Bank name",
          "bank_address": "Bank address",
          "bank_routing_number": "123456789",
          "bank_account_number": "1234567890",
          "bank_beneficiary_name": "Bank beneficiary",
          "bank_beneficiary_address": "Bank beneficiary address"
        }
      },
      "CryptoDepositInstructions": {
        "title": "Crypto",
        "description": "Instructions for an on-chain deposit to a Bridge deposit address",
        "readOnly": true,
        "type": "object",
        "required": [
          "payment_rail",
          "amount",
          "currency",
          "to_address"
        ],
        "properties": {
          "payment_rail": {
            "description": "The chain that Bridge is expecting funds to arrive on",
            "$ref": "#/components/schemas/OfframpChain"
          },
          "amount": {
            "description": "Amount of the deposit, expressed as a decimal string denominated in the fiat currency to which the source currency is pegged. Null for flexible amount transfers. Examples include \"100.25\", \"0.1\", \"1.234567\", \"1.01\" etc.",
            "type": "string",
            "nullable": true
          },
          "currency": {
            "description": "The source currency",
            "$ref": "#/components/schemas/CryptoCurrency"
          },
          "to_address": {
            "description": "The crypto wallet address the customer will send funds to in order to initiate the payment processing",
            "type": "string"
          },
          "from_address": {
            "description": "The crypto wallet address that the customer must send funds from. Null or absent when any address may be used.",
            "type": "string",
            "nullable": true
          },
          "blockchain_memo": {
            "description": "If present, the message that the customer MUST include in their on chain transfer. Only used for memo-based blockchains such as Stellar and Tron",
            "type": "string"
          },
          "memoless_to_address": {
            "description": "An alternative crypto wallet address that encodes the memo, allowing the customer to send funds without needing to include a separate memo. Currently only available for Stellar deposits.",
            "type": "string"
          }
        },
        "example": {
          "payment_rail": "ethereum",
          "amount": "75.0",
          "currency": "usdc",
          "from_address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
          "to_address": "0xb794f5ea0ba39494ce839613fffba74279579268"
        }
      },
      "PrefundedAccount": {
        "required": [
          "id",
          "available_balance",
          "currency",
          "name"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Id",
            "readOnly": true
          },
          "available_balance": {
            "description": "Amount available for spending, represented as a dollar denominated string. Examples include \"100.25\", \"0.1\", \"1.234567\", \"1.01\" etc.",
            "type": "string",
            "readOnly": true
          },
          "currency": {
            "description": "currency associated with the bank account.",
            "$ref": "#/components/schemas/FiatCurrency",
            "readOnly": true
          },
          "name": {
            "description": "Serialized name of the account which identifies the counterparty.",
            "type": "string",
            "readOnly": true
          }
        }
      },
      "PrefundedAccountHistory": {
        "required": [
          "id",
          "amount",
          "available_balance",
          "currency",
          "name",
          "type",
          "created_at"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Id",
            "readOnly": true
          },
          "amount": {
            "description": "Amount of the transaction, represented as a dollar denominated string. Examples include \"100.25\", \"0.1\", \"1.234567\", \"1.01\" etc.",
            "type": "string",
            "readOnly": true
          },
          "available_balance": {
            "description": "Amount available for spending, represented as a dollar denominated string. Examples include \"100.25\", \"0.1\", \"1.234567\", \"1.01\" etc.",
            "type": "string",
            "readOnly": true
          },
          "currency": {
            "description": "currency associated with the bank account.",
            "$ref": "#/components/schemas/FiatCurrency",
            "readOnly": true
          },
          "name": {
            "description": "Serialized name of the account.",
            "type": "string",
            "readOnly": true
          },
          "type": {
            "description": "The type of the transaction.",
            "type": "string",
            "enum": [
              "funding",
              "refunded transfer"
            ],
            "readOnly": true
          },
          "created_at": {
            "readOnly": true,
            "type": "string",
            "description": "Time of creation of the External Account",
            "format": "date-time"
          },
          "withdrawal_id": {
            "readOnly": true,
            "type": "string",
            "description": "The ID of the transfer which created this event. Exclusive with deposit_id."
          },
          "deposit_id": {
            "readOnly": true,
            "type": "string",
            "description": "The ID of the transfer which created this event. Exclusive with withdrawal_id."
          }
        }
      },
      "ExternalAccountBaseWithOwnerInfo": {
        "description": "Properties shared by all external account types",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Id",
            "readOnly": true
          },
          "customer_id": {
            "description": "The id of the Bridge customer that this External Account belongs to",
            "type": "string",
            "minLength": 1,
            "readOnly": true
          },
          "bank_name": {
            "description": "Bank name of the account (e.g. \"Chase\")",
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "account_owner_name": {
            "description": "Owner of the account Bank Account (e.g. \"John Doe\"). For ach, wire, and iban accounts, this field must be at least 3 characters, at most 35 characters, and follow the regex pattern for the given account type:\n- ach: `^(?!\\s*$)[\\x20-\\x7E]*$`\n- wire: ```^[ \\w!\"#$%&'()+,\\-./:;<=>?@\\\\_`~]*$```\n- iban: `^(?![:\\- ]*$)[a-zA-Z0-9\\/\\-?:().,'+ _]+$`\n",
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "created_at": {
            "readOnly": true,
            "type": "string",
            "description": "Time of creation of the External Account",
            "format": "date-time"
          },
          "updated_at": {
            "readOnly": true,
            "type": "string",
            "description": "Time of last update of the External Account",
            "format": "date-time"
          },
          "active": {
            "readOnly": true,
            "type": "boolean",
            "description": "Whether or not this External Account is active"
          },
          "account_owner_type": {
            "description": "The type of the account ownership. Required when the `account_type` is `iban`. For `individual` ownership, `first_name` and `last_name` are required. For `business` ownership, `business_name` is required.",
            "$ref": "#/components/schemas/BankAccountOwnerType"
          },
          "first_name": {
            "type": "string",
            "description": "First name of the individual account holder. Required when the `account_owner_type` is `individual`"
          },
          "last_name": {
            "type": "string",
            "description": "Last name of the individual account holder. Required when the `account_owner_type` is `individual`"
          },
          "business_name": {
            "type": "string",
            "description": "Business name of the business account holder. Required when the `account_owner_type` is `business`"
          },
          "address": {
            "description": "Address of the beneficiary of this account. Please ensure the address is valid (Google Maps is good for this). US addresses used to receive wires must include a street number.",
            "$ref": "#/components/schemas/ExternalAccountAddress"
          },
          "account_owner_country": {
            "readOnly": true,
            "type": "string",
            "minLength": 3,
            "maxLength": 3,
            "description": "Three-letter alpha-3 country of residence of the account owner (ISO 3166-1)."
          },
          "deactivation_reason": {
            "readOnly": true,
            "description": "Reason for deactivation when this External Account is inactive",
            "$ref": "#/components/schemas/ExternalAccountDeactivationReason"
          },
          "deactivation_details": {
            "readOnly": true,
            "type": "string",
            "description": "Additional details about the deactivation when this External Account is inactive"
          }
        }
      },
      "ExternalAccountDeactivationReason": {
        "description": "Reason for deactivating an External Account",
        "type": "string",
        "enum": [
          "plaid_item_error",
          "deactivated_due_to_bounceback",
          "deleted_by_developer",
          "requested_by_developer",
          "invalid_account_number",
          "invalid_bank_validation",
          "rejected_by_bank_provider"
        ]
      },
      "ExternalAccountUs": {
        "title": "ACH/Wire",
        "description": "US bank account using account and routing numbers for ACH or Wire transfers",
        "allOf": [
          {
            "$ref": "#/components/schemas/ExternalAccountBaseWithOwnerInfo"
          },
          {
            "type": "object",
            "required": [
              "account_type",
              "account",
              "currency",
              "account_owner_name"
            ],
            "properties": {
              "account_type": {
                "type": "string",
                "enum": [
                  "us"
                ],
                "description": "Type of the bank account."
              },
              "currency": {
                "description": "Currency associated with the bank account. Must be `usd` for US accounts.",
                "type": "string",
                "enum": [
                  "usd"
                ]
              },
              "account": {
                "$ref": "#/components/schemas/UsBankAccount"
              },
              "beneficiary_address_valid": {
                "readOnly": true,
                "type": "boolean",
                "description": "Whether the beneficiary address is valid. A valid beneficiary address is required for all US External Accounts"
              },
              "last_4": {
                "description": "Last 4 digits of the bank account number. This field is getting deprecated in favor of the `account.last_4` field",
                "type": "string",
                "minLength": 1,
                "readOnly": true,
                "deprecated": true
              },
              "account_number": {
                "writeOnly": true,
                "description": "Account number of your bank account. This field is getting deprecated in favor of the `account.account_number` field for US accounts.",
                "type": "string",
                "minLength": 12,
                "deprecated": true
              },
              "routing_number": {
                "writeOnly": true,
                "description": "Routing number of your bank account. This field is getting deprecated in favor of the `account.routing_number` field for US accounts.",
                "type": "string",
                "minLength": 9,
                "deprecated": true
              }
            }
          }
        ]
      },
      "ExternalAccountIban": {
        "title": "IBAN",
        "description": "IBAN bank account for European and international transfers (SEPA transfers use IBAN)",
        "allOf": [
          {
            "$ref": "#/components/schemas/ExternalAccountBaseWithOwnerInfo"
          },
          {
            "type": "object",
            "required": [
              "account_type",
              "currency",
              "iban",
              "account_owner_name"
            ],
            "properties": {
              "account_type": {
                "type": "string",
                "enum": [
                  "iban"
                ],
                "description": "Type of the bank account."
              },
              "currency": {
                "description": "Currency associated with the bank account. Must be `eur` for IBAN accounts.",
                "type": "string",
                "enum": [
                  "eur"
                ]
              },
              "iban": {
                "$ref": "#/components/schemas/IbanBankAccount"
              },
              "account_verification": {
                "readOnly": true,
                "nullable": true,
                "description": "Present for accounts with a holder verification check; contains the verification result.",
                "$ref": "#/components/schemas/AccountVerificationIban"
              }
            }
          }
        ]
      },
      "ExternalAccountClabe": {
        "title": "CLABE",
        "description": "Mexican CLABE account for SPEI transfers",
        "allOf": [
          {
            "$ref": "#/components/schemas/ExternalAccountBaseWithOwnerInfo"
          },
          {
            "type": "object",
            "required": [
              "account_type",
              "currency",
              "clabe",
              "account_owner_name"
            ],
            "properties": {
              "account_type": {
                "type": "string",
                "enum": [
                  "clabe"
                ],
                "description": "Type of the bank account."
              },
              "currency": {
                "description": "Currency associated with the bank account. Must be `mxn` for CLABE (SPEI) accounts.",
                "type": "string",
                "enum": [
                  "mxn"
                ]
              },
              "clabe": {
                "$ref": "#/components/schemas/ClabeBankAccount"
              },
              "account_validation": {
                "readOnly": true,
                "nullable": true,
                "description": "Present for CLABE accounts with a successful validation; contains validated owner and bank name.",
                "$ref": "#/components/schemas/AccountValidation"
              },
              "account_verification": {
                "readOnly": true,
                "nullable": true,
                "description": "Present for accounts with a holder verification check; contains the verification result.",
                "$ref": "#/components/schemas/AccountVerificationClabe"
              }
            }
          }
        ]
      },
      "ExternalAccountPix": {
        "title": "Pix",
        "description": "Brazilian Pix instant payment system",
        "allOf": [
          {
            "$ref": "#/components/schemas/ExternalAccountBaseWithOwnerInfo"
          },
          {
            "type": "object",
            "required": [
              "account_type",
              "currency"
            ],
            "properties": {
              "currency": {
                "description": "Currency associated with the bank account. Must be `brl` for Pix accounts.",
                "type": "string",
                "enum": [
                  "brl"
                ]
              },
              "account_type": {
                "type": "string",
                "enum": [
                  "pix"
                ],
                "description": "Type of the bank account."
              },
              "pix_key": {
                "readOnly": true,
                "description": "Pix key display info. Returned in GET responses when the account uses a Pix key.",
                "$ref": "#/components/schemas/PixKeyBankAccount"
              },
              "br_code": {
                "readOnly": true,
                "description": "BR Code display info. Returned in GET responses when the account uses a BR Code.",
                "$ref": "#/components/schemas/BrCodeBankAccount"
              },
              "account_validation": {
                "readOnly": true,
                "nullable": true,
                "description": "Present for Pix accounts with a successful validation; contains validated owner and bank name.",
                "$ref": "#/components/schemas/AccountValidation"
              },
              "account_verification": {
                "readOnly": true,
                "nullable": true,
                "description": "Present for accounts with a holder verification check; contains the verification result.",
                "$ref": "#/components/schemas/AccountVerificationPix"
              }
            }
          }
        ]
      },
      "ExternalAccountGb": {
        "title": "GB",
        "description": "UK bank account using account number and sort code for Faster Payments payment rail",
        "allOf": [
          {
            "$ref": "#/components/schemas/ExternalAccountBaseWithOwnerInfo"
          },
          {
            "type": "object",
            "required": [
              "account_type",
              "currency",
              "account",
              "account_owner_name"
            ],
            "properties": {
              "account_type": {
                "type": "string",
                "enum": [
                  "gb"
                ],
                "description": "Type of the bank account."
              },
              "currency": {
                "description": "Currency associated with the bank account. Must be `gbp` for GB accounts.",
                "type": "string",
                "enum": [
                  "gbp"
                ]
              },
              "account": {
                "$ref": "#/components/schemas/GbBankAccount"
              },
              "account_verification": {
                "readOnly": true,
                "nullable": true,
                "description": "Present for accounts with a holder verification check; contains the verification result.",
                "$ref": "#/components/schemas/AccountVerificationGb"
              }
            }
          }
        ]
      },
      "ExternalAccountBreB": {
        "title": "Bre-B",
        "description": "Colombian Bre-B account for COP transfers via the Bre-B payment rail. Requires `cop` endorsement. Virtual account numbers are not accepted.",
        "allOf": [
          {
            "$ref": "#/components/schemas/ExternalAccountBaseWithOwnerInfo"
          },
          {
            "type": "object",
            "required": [
              "account_type",
              "currency",
              "account"
            ],
            "properties": {
              "account_type": {
                "type": "string",
                "enum": [
                  "bre_b"
                ],
                "description": "Type of the bank account."
              },
              "currency": {
                "description": "Currency associated with the bank account. Must be `cop` for Bre-B accounts.",
                "type": "string",
                "enum": [
                  "cop"
                ]
              },
              "account": {
                "$ref": "#/components/schemas/BreBBankAccount"
              },
              "account_validation": {
                "readOnly": true,
                "nullable": true,
                "description": "Present for Bre-B accounts with a successful validation; contains validated owner and bank name.",
                "$ref": "#/components/schemas/AccountValidation"
              },
              "account_verification": {
                "readOnly": true,
                "nullable": true,
                "description": "Present for accounts with a holder verification check; contains the verification result.",
                "$ref": "#/components/schemas/AccountVerificationBreB"
              }
            }
          }
        ]
      },
      "ExternalAccountCoBankTransfer": {
        "title": "CO Bank Transfer",
        "description": "Colombian bank account for COP transfers via CO bank transfer.",
        "allOf": [
          {
            "$ref": "#/components/schemas/ExternalAccountBaseWithOwnerInfo"
          },
          {
            "type": "object",
            "required": [
              "account_type",
              "currency",
              "account"
            ],
            "properties": {
              "account_type": {
                "type": "string",
                "enum": [
                  "co_bank_transfer"
                ],
                "description": "Type of the bank account."
              },
              "currency": {
                "description": "Currency associated with the bank account. Must be `cop` for CO bank transfer accounts.",
                "type": "string",
                "enum": [
                  "cop"
                ]
              },
              "account": {
                "description": "CO bank transfer account display information. Returned in GET responses.",
                "type": "object",
                "properties": {
                  "last_4": {
                    "description": "Last 4 digits of the account number",
                    "type": "string",
                    "readOnly": true
                  },
                  "routing_number": {
                    "description": "The bank code of the account",
                    "type": "string",
                    "readOnly": true
                  }
                }
              },
              "account_verification": {
                "readOnly": true,
                "nullable": true,
                "description": "Present for accounts with a holder verification check; contains the verification result.",
                "$ref": "#/components/schemas/AccountVerificationCoBankTransfer"
              }
            }
          }
        ]
      },
      "ExternalAccount": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/ExternalAccountUs"
          },
          {
            "$ref": "#/components/schemas/ExternalAccountIban"
          },
          {
            "$ref": "#/components/schemas/ExternalAccountClabe"
          },
          {
            "$ref": "#/components/schemas/ExternalAccountPix"
          },
          {
            "$ref": "#/components/schemas/ExternalAccountGb"
          },
          {
            "$ref": "#/components/schemas/ExternalAccountBreB"
          },
          {
            "$ref": "#/components/schemas/ExternalAccountCoBankTransfer"
          }
        ]
      },
      "AccountVerification": {
        "description": "The current state of a holder verification check, keyed by account type.",
        "nullable": true,
        "oneOf": [
          {
            "$ref": "#/components/schemas/AccountVerificationIban"
          },
          {
            "$ref": "#/components/schemas/AccountVerificationGb"
          },
          {
            "$ref": "#/components/schemas/AccountVerificationPix"
          },
          {
            "$ref": "#/components/schemas/AccountVerificationClabe"
          },
          {
            "$ref": "#/components/schemas/AccountVerificationBreB"
          },
          {
            "$ref": "#/components/schemas/AccountVerificationCoBankTransfer"
          }
        ]
      },
      "AccountVerificationIban": {
        "title": "IBAN",
        "description": "Present when verifying an IBAN account.",
        "type": "object",
        "properties": {
          "iban": {
            "type": "object",
            "properties": {
              "match_level": {
                "type": "string",
                "enum": [
                  "pending",
                  "match",
                  "close_match",
                  "no_match",
                  "error"
                ],
                "description": "The result of the name match check."
              },
              "reason_code": {
                "type": "string",
                "nullable": true,
                "description": "Additional context from the receiving bank when the result is not a full match."
              },
              "validated_account_owner_name": {
                "type": "string",
                "nullable": true,
                "description": "Account owner name as returned by the validation provider."
              }
            }
          },
          "requested_at": {
            "type": "string",
            "format": "date-time",
            "description": "When the verification was requested."
          },
          "completed_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "When the verification completed. Null while pending."
          }
        }
      },
      "AccountVerificationGb": {
        "title": "GB",
        "description": "Present when verifying a GB account.",
        "type": "object",
        "properties": {
          "gb": {
            "type": "object",
            "properties": {
              "match_level": {
                "type": "string",
                "enum": [
                  "pending",
                  "match",
                  "close_match",
                  "no_match",
                  "error"
                ],
                "description": "The result of the name match check."
              },
              "reason_code": {
                "type": "string",
                "nullable": true,
                "description": "Additional context from the receiving bank when the result is not a full match."
              },
              "validated_account_owner_name": {
                "type": "string",
                "nullable": true,
                "description": "Account owner name as returned by the validation provider."
              }
            }
          },
          "requested_at": {
            "type": "string",
            "format": "date-time",
            "description": "When the verification was requested."
          },
          "completed_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "When the verification completed. Null while pending."
          }
        }
      },
      "AccountVerificationPix": {
        "title": "Pix",
        "description": "Present when verifying a Pix account.",
        "type": "object",
        "properties": {
          "pix": {
            "type": "object",
            "properties": {
              "matched": {
                "type": "boolean",
                "nullable": true,
                "description": "Match result as returned by the validation provider."
              },
              "reason_code": {
                "type": "string",
                "nullable": true,
                "description": "Additional context from the validation provider."
              },
              "validated_account_owner_name": {
                "type": "string",
                "nullable": true,
                "description": "Account owner name as returned by the validation provider."
              },
              "validated_bank_name": {
                "type": "string",
                "nullable": true,
                "description": "Bank name as returned by the validation provider."
              }
            }
          },
          "requested_at": {
            "type": "string",
            "format": "date-time",
            "description": "When the verification was requested."
          },
          "completed_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "When the verification completed. Null while pending."
          }
        }
      },
      "AccountVerificationClabe": {
        "title": "CLABE",
        "description": "Present when verifying a CLABE account.",
        "type": "object",
        "properties": {
          "clabe": {
            "type": "object",
            "properties": {
              "matched": {
                "type": "boolean",
                "nullable": true,
                "description": "Match result as returned by the validation provider."
              },
              "reason_code": {
                "type": "string",
                "nullable": true,
                "description": "Additional context from the validation provider."
              },
              "validated_account_owner_name": {
                "type": "string",
                "nullable": true,
                "description": "Account owner name as returned by the validation provider."
              },
              "validated_bank_name": {
                "type": "string",
                "nullable": true,
                "description": "Bank name as returned by the validation provider."
              }
            }
          },
          "requested_at": {
            "type": "string",
            "format": "date-time",
            "description": "When the verification was requested."
          },
          "completed_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "When the verification completed. Null while pending."
          }
        }
      },
      "AccountVerificationBreB": {
        "title": "Bre-B",
        "description": "Present when verifying a Bre-B account.",
        "type": "object",
        "properties": {
          "bre_b": {
            "type": "object",
            "properties": {
              "matched": {
                "type": "boolean",
                "nullable": true,
                "description": "Match result as returned by the validation provider."
              },
              "reason_code": {
                "type": "string",
                "nullable": true,
                "description": "Additional context from the validation provider."
              },
              "validated_account_owner_name": {
                "type": "string",
                "nullable": true,
                "description": "Account owner name as returned by the validation provider."
              },
              "validated_bank_name": {
                "type": "string",
                "nullable": true,
                "description": "Bank name as returned by the validation provider."
              },
              "validated_document_number_last4": {
                "type": "string",
                "nullable": true,
                "readOnly": true,
                "description": "Last 4 characters of the account owner's document number, as returned by the validation provider. Present only for Bre-B (Colombian) accounts."
              }
            }
          },
          "requested_at": {
            "type": "string",
            "format": "date-time",
            "description": "When the verification was requested."
          },
          "completed_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "When the verification completed. Null while pending."
          }
        }
      },
      "AccountVerificationCoBankTransfer": {
        "title": "CO Bank Transfer",
        "description": "Present when verifying a PSE account.",
        "type": "object",
        "properties": {
          "co_bank_transfer": {
            "type": "object",
            "properties": {
              "matched": {
                "type": "boolean",
                "nullable": true,
                "description": "Match result as returned by the validation provider."
              },
              "reason_code": {
                "type": "string",
                "nullable": true,
                "description": "Additional context from the validation provider."
              },
              "validated_account_owner_name": {
                "type": "string",
                "nullable": true,
                "description": "Account owner name as returned by the validation provider."
              },
              "validated_bank_name": {
                "type": "string",
                "nullable": true,
                "description": "Bank name as returned by the validation provider."
              },
              "validated_document_number_last4": {
                "type": "string",
                "nullable": true,
                "readOnly": true,
                "description": "Last 4 characters of the account owner's document number, as returned by the validation provider. Present only for Bre-B (Colombian) accounts."
              }
            }
          },
          "requested_at": {
            "type": "string",
            "format": "date-time",
            "description": "When the verification was requested."
          },
          "completed_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "When the verification completed. Null while pending."
          }
        }
      },
      "AccountValidation": {
        "description": "Validated account owner and bank name from successful Infinia validation. Present only for Pix, SPEI/CLABE, and Bre-B accounts that have been successfully validated.",
        "type": "object",
        "properties": {
          "validated_account_owner_name": {
            "type": "string",
            "nullable": true,
            "description": "Account owner name as returned by the validation provider."
          },
          "validated_bank_name": {
            "type": "string",
            "nullable": true,
            "description": "Bank name as returned by the validation provider."
          },
          "validated_document_number_last4": {
            "type": "string",
            "nullable": true,
            "readOnly": true,
            "description": "Last 4 characters of the account owner's document number, as returned by the validation provider. Present only for Bre-B (Colombian) accounts."
          }
        }
      },
      "ExternalAccountResponse": {
        "required": [
          "id",
          "customer_id",
          "created_at",
          "updated_at",
          "account_owner_name",
          "currency",
          "account_type",
          "active"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/ExternalAccount"
          }
        ]
      },
      "UpdateExternalAccountInput": {
        "properties": {
          "address": {
            "writeOnly": true,
            "description": "Address of the beneficiary of this account.",
            "$ref": "#/components/schemas/Address"
          },
          "account": {
            "description": "US bank account information. Required when the `account_type` is `us`.",
            "$ref": "#/components/schemas/UsBankAccountUpdate"
          }
        }
      },
      "FeeExternalAccount": {
        "required": [
          "id",
          "customer_id",
          "created_at",
          "updated_at",
          "account_owner_name",
          "account_name",
          "currency",
          "account_type",
          "active"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/ExternalAccountUs"
          }
        ]
      },
      "ExternalAccountBaseWithoutOwnerInfo": {
        "description": "Shared writable properties for creating an external account (without account owner info bundle)",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Id",
            "readOnly": true
          },
          "customer_id": {
            "description": "The id of the Bridge customer that this External Account belongs to",
            "type": "string",
            "minLength": 1,
            "readOnly": true
          },
          "bank_name": {
            "description": "Bank name of the account",
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "account_owner_name": {
            "description": "Owner of the bank account",
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "created_at": {
            "readOnly": true,
            "type": "string",
            "description": "Time of creation of the External Account",
            "format": "date-time"
          },
          "updated_at": {
            "readOnly": true,
            "type": "string",
            "description": "Time of last update of the External Account",
            "format": "date-time"
          },
          "active": {
            "readOnly": true,
            "type": "boolean",
            "description": "Whether or not this External Account is active"
          },
          "address": {
            "writeOnly": true,
            "description": "Address of the beneficiary of this account.",
            "$ref": "#/components/schemas/ExternalAccountAddress"
          },
          "deactivation_reason": {
            "readOnly": true,
            "description": "Reason for deactivation when this External Account is inactive",
            "$ref": "#/components/schemas/ExternalAccountDeactivationReason"
          },
          "deactivation_details": {
            "readOnly": true,
            "type": "string",
            "description": "Additional details about the deactivation when this External Account is inactive"
          }
        }
      },
      "CreateExternalAccountPixKeyInput": {
        "title": "Pix (Pix Key)",
        "description": "Brazilian Pix instant payment system using a Pix key",
        "allOf": [
          {
            "$ref": "#/components/schemas/ExternalAccountBaseWithoutOwnerInfo"
          },
          {
            "type": "object",
            "required": [
              "account_type",
              "currency",
              "pix_key",
              "account_owner_name"
            ],
            "properties": {
              "currency": {
                "description": "Currency associated with the bank account. Must be `brl` for Pix accounts.",
                "type": "string",
                "enum": [
                  "brl"
                ]
              },
              "account_type": {
                "type": "string",
                "enum": [
                  "pix"
                ],
                "description": "Type of the bank account."
              },
              "pix_key": {
                "writeOnly": true,
                "description": "Brazilian Pix key bank account information. Required when account type is `pix` and using a Pix key.",
                "$ref": "#/components/schemas/PixKeyBankAccount"
              }
            }
          }
        ]
      },
      "CreateExternalAccountBrCodeInput": {
        "title": "Pix (BR Code)",
        "description": "Brazilian Pix instant payment system using a BR Code (Copie e cola)",
        "allOf": [
          {
            "$ref": "#/components/schemas/ExternalAccountBaseWithoutOwnerInfo"
          },
          {
            "type": "object",
            "required": [
              "account_type",
              "currency",
              "br_code",
              "account_owner_name"
            ],
            "properties": {
              "currency": {
                "description": "Currency associated with the bank account. Must be `brl` for Pix accounts.",
                "type": "string",
                "enum": [
                  "brl"
                ]
              },
              "account_type": {
                "type": "string",
                "enum": [
                  "pix"
                ],
                "description": "Type of the bank account."
              },
              "br_code": {
                "writeOnly": true,
                "description": "Brazilian BR Code (Copie e cola) bank account information. Required when account type is `pix` and using a BR Code.",
                "$ref": "#/components/schemas/BrCodeBankAccount"
              }
            }
          }
        ]
      },
      "CreateExternalAccountIbanInput": {
        "title": "IBAN",
        "description": "IBAN bank account for European and international transfers (SEPA transfers use IBAN)",
        "allOf": [
          {
            "$ref": "#/components/schemas/ExternalAccountBaseWithOwnerInfo"
          },
          {
            "type": "object",
            "required": [
              "account_type",
              "currency",
              "iban",
              "account_owner_name"
            ],
            "properties": {
              "account_type": {
                "type": "string",
                "enum": [
                  "iban"
                ],
                "description": "Type of the bank account."
              },
              "currency": {
                "description": "Currency associated with the bank account. Must be `eur` for IBAN accounts.",
                "type": "string",
                "enum": [
                  "eur"
                ]
              },
              "iban": {
                "$ref": "#/components/schemas/IbanBankAccount"
              }
            }
          }
        ]
      },
      "CreateExternalAccountFPSInput": {
        "title": "FPS",
        "description": "UK bank account information for the Faster Payments payment rail",
        "allOf": [
          {
            "$ref": "#/components/schemas/ExternalAccountBaseWithOwnerInfo"
          },
          {
            "type": "object",
            "required": [
              "account_type",
              "currency",
              "account",
              "account_owner_name"
            ],
            "properties": {
              "account_type": {
                "type": "string",
                "enum": [
                  "gb"
                ],
                "description": "Type of the bank account."
              },
              "currency": {
                "description": "Currency associated with the bank account. Must be `gbp` for GB accounts.",
                "type": "string",
                "enum": [
                  "gbp"
                ]
              },
              "account": {
                "$ref": "#/components/schemas/GbBankAccount"
              }
            }
          }
        ]
      },
      "CreateExternalAccountBreBInput": {
        "title": "Bre-B",
        "description": "Colombian Bre-B account for COP transfers. Requires `cop` endorsement. Virtual account numbers are not accepted as Bre-B keys.\n",
        "allOf": [
          {
            "$ref": "#/components/schemas/ExternalAccountBaseWithoutOwnerInfo"
          },
          {
            "type": "object",
            "required": [
              "account_type",
              "currency",
              "account",
              "account_owner_name"
            ],
            "properties": {
              "currency": {
                "description": "Currency associated with the bank account. Must be `cop` for Bre-B accounts.",
                "type": "string",
                "enum": [
                  "cop"
                ]
              },
              "account_type": {
                "type": "string",
                "enum": [
                  "bre_b"
                ],
                "description": "Type of the bank account."
              },
              "account": {
                "writeOnly": true,
                "description": "Colombian Bre-B bank account information. Required when account type is `bre_b`.",
                "$ref": "#/components/schemas/BreBBankAccount"
              }
            }
          }
        ]
      },
      "CreateExternalAccountCoBankTransferInput": {
        "title": "CO Bank Transfer",
        "description": "Colombian bank account for COP transfers via CO bank transfer. Requires `cop` endorsement and account owner information (individual or business).\n",
        "allOf": [
          {
            "$ref": "#/components/schemas/ExternalAccountBaseWithOwnerInfo"
          },
          {
            "type": "object",
            "required": [
              "account_type",
              "currency",
              "account",
              "account_owner_name"
            ],
            "properties": {
              "currency": {
                "description": "Currency associated with the bank account. Must be `cop` for CO bank transfer accounts.",
                "type": "string",
                "enum": [
                  "cop"
                ]
              },
              "account_type": {
                "type": "string",
                "enum": [
                  "co_bank_transfer"
                ],
                "description": "Type of the bank account."
              },
              "account": {
                "writeOnly": true,
                "description": "Colombian CO bank account information. Required when account type is co_bank_transfer.",
                "$ref": "#/components/schemas/CoBankTransferBankAccount"
              }
            }
          }
        ]
      },
      "CreateExternalAccountUsInput": {
        "title": "ACH/Wire",
        "description": "US bank account using account and routing numbers for ACH or Wire transfers",
        "allOf": [
          {
            "$ref": "#/components/schemas/ExternalAccountBaseWithoutOwnerInfo"
          },
          {
            "type": "object",
            "required": [
              "account_type",
              "account",
              "currency",
              "account_owner_name",
              "address"
            ],
            "properties": {
              "account_type": {
                "type": "string",
                "enum": [
                  "us"
                ],
                "description": "Type of the bank account."
              },
              "currency": {
                "description": "Currency associated with the bank account. Must be `usd` for US accounts.",
                "type": "string",
                "enum": [
                  "usd"
                ]
              },
              "account": {
                "$ref": "#/components/schemas/UsBankAccount"
              },
              "account_number": {
                "writeOnly": true,
                "description": "Account number of your bank account. This field is getting deprecated in favor of the `account.account_number` field for US accounts.",
                "type": "string",
                "minLength": 12,
                "deprecated": true
              },
              "routing_number": {
                "writeOnly": true,
                "description": "Routing number of your bank account. This field is getting deprecated in favor of the `account.routing_number` field for US accounts.",
                "type": "string",
                "minLength": 9,
                "deprecated": true
              }
            }
          }
        ]
      },
      "CreateExternalAccountClabeInput": {
        "title": "CLABE",
        "description": "Mexican CLABE account for SPEI transfers",
        "allOf": [
          {
            "$ref": "#/components/schemas/ExternalAccountBaseWithoutOwnerInfo"
          },
          {
            "type": "object",
            "required": [
              "account_type",
              "currency",
              "clabe",
              "account_owner_name"
            ],
            "properties": {
              "account_type": {
                "type": "string",
                "enum": [
                  "clabe"
                ],
                "description": "Type of the bank account."
              },
              "currency": {
                "description": "Currency associated with the bank account. Must be `mxn` for CLABE (SPEI) accounts.",
                "type": "string",
                "enum": [
                  "mxn"
                ]
              },
              "clabe": {
                "$ref": "#/components/schemas/ClabeBankAccount"
              }
            }
          }
        ]
      },
      "CreateExternalAccountInput": {
        "description": "Request body for creating an external account.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/CreateExternalAccountUsInput"
          },
          {
            "$ref": "#/components/schemas/CreateExternalAccountIbanInput"
          },
          {
            "$ref": "#/components/schemas/CreateExternalAccountClabeInput"
          },
          {
            "$ref": "#/components/schemas/CreateExternalAccountPixKeyInput"
          },
          {
            "$ref": "#/components/schemas/CreateExternalAccountBrCodeInput"
          },
          {
            "$ref": "#/components/schemas/CreateExternalAccountFPSInput"
          },
          {
            "$ref": "#/components/schemas/CreateExternalAccountBreBInput"
          },
          {
            "$ref": "#/components/schemas/CreateExternalAccountCoBankTransferInput"
          }
        ]
      },
      "CreateFeeExternalAccountInput": {
        "description": "Request body for creating a fee external account. Fee external accounts must use USD currency.",
        "allOf": [
          {
            "$ref": "#/components/schemas/ExternalAccountUs"
          }
        ]
      },
      "LiquidationAddress": {
        "required": [
          "id",
          "currency",
          "chain",
          "external_account_id",
          "address",
          "destination_payment_rail",
          "destination_currency",
          "customer_id",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Id",
            "readOnly": true
          },
          "currency": {
            "$ref": "#/components/schemas/LiquidationAddressSourceCurrency"
          },
          "chain": {
            "$ref": "#/components/schemas/LiquidationAddressSourceChain"
          },
          "supported_currencies": {
            "description": "The currencies this Liquidation Address accepts on each chain. Keys are `LiquidationAddressSourceChain` values (e.g. `ethereum`, `polygon`, `base`). For a single-chain, single-currency address this is just that one chain and currency; for a multi-chain (`chain` is `evm`) or multi-currency (`currency` is `all_supported`) address it lists every currency actually accepted on each chain.\n",
            "type": "object",
            "readOnly": true,
            "additionalProperties": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/CryptoCurrency"
              }
            },
            "example": {
              "ethereum": [
                "usdc",
                "eurc"
              ],
              "polygon": [
                "usdc"
              ]
            }
          },
          "customer_id": {
            "description": "The ID of the customer who owns this liquidation address",
            "$ref": "#/components/schemas/Id"
          },
          "external_account_id": {
            "description": "External bank account to which Bridge will send the funds. The currency associated with the External Account must match the destination currency.",
            "$ref": "#/components/schemas/Id"
          },
          "prefunded_account_id": {
            "description": "The developer's prefunded account to which Bridge will send the funds.",
            "$ref": "#/components/schemas/Id"
          },
          "custom_developer_fee_percent": {
            "$ref": "#/components/schemas/LiquidationAddressCustomDeveloperFeePercent"
          },
          "global_developer_fee_percent": {
            "$ref": "#/components/schemas/LiquidationAddressGlobalDeveloperFeePercent"
          },
          "destination_wire_message": {
            "description": "A message to be sent with a wire transfer.",
            "$ref": "#/components/schemas/WireMessage"
          },
          "destination_sepa_reference": {
            "$ref": "#/components/schemas/SepaReference"
          },
          "destination_spei_reference": {
            "$ref": "#/components/schemas/SpeiReference"
          },
          "destination_ach_reference": {
            "$ref": "#/components/schemas/AchReference"
          },
          "destination_swift_reference": {
            "$ref": "#/components/schemas/SwiftReference"
          },
          "destination_payment_rail": {
            "description": "The payment rail that Bridge will use to send funds to the customer.",
            "$ref": "#/components/schemas/SepaSwiftInclusivePaymentRail"
          },
          "destination_currency": {
            "description": "The currency that Bridge will use to send funds to the customer.",
            "$ref": "#/components/schemas/EuroInclusiveCurrency"
          },
          "address": {
            "description": "The crypto wallet address the customer will send funds to in order to initiate the payment processing",
            "type": "string",
            "readOnly": true
          },
          "memoless_address": {
            "description": "An alternative crypto wallet address that encodes the memo, allowing the customer to send funds without needing to include a separate memo. Currently only available for Stellar deposits.",
            "type": "string",
            "readOnly": true
          },
          "blockchain_memo": {
            "description": "The memo that must be included with the deposit transaction when sending funds to the deposit address. Only present for blockchains that require memos (such as Stellar).",
            "type": "string",
            "readOnly": true
          },
          "destination_address": {
            "type": "string",
            "description": "The crypto wallet address that Bridge will use to send funds to the customer."
          },
          "destination_blockchain_memo": {
            "type": "string",
            "description": "The memo to include in the transaction, for blockchains that support memos only"
          },
          "return_address": {
            "type": "string",
            "nullable": true,
            "deprecated": true,
            "description": "Deprecated: use `return_instructions` instead.\n\nThe crypto wallet address that Bridge will use to return funds to the customer in case of a failed transaction.\nMust be on the same chain as the liquidation address.\nCannot be used on Stellar — use `return_instructions` with a `memo` instead.\n"
          },
          "return_memo": {
            "type": "string",
            "nullable": true,
            "description": "The memo included with return transactions. Present when `return_instructions` was set with a memo (e.g. required for Stellar to route funds to the correct end-customer)."
          },
          "state": {
            "type": "string",
            "description": "The state of the liquidation address. It could be \"active\" or \"deactivated\""
          },
          "created_at": {
            "readOnly": true,
            "type": "string",
            "description": "Time of creation of the Liquidation Address",
            "format": "date-time"
          },
          "updated_at": {
            "readOnly": true,
            "type": "string",
            "description": "Time of last update of the Liquidation Address",
            "format": "date-time"
          }
        }
      },
      "CreateKycLinks": {
        "required": [
          "email",
          "type"
        ],
        "properties": {
          "full_name": {
            "description": "Full name of the customer, for a business, this would be the business entity's legal name",
            "type": "string",
            "minLength": 1
          },
          "email": {
            "description": "Email of the customer",
            "type": "string",
            "minLength": 1
          },
          "type": {
            "description": "Type of the customer (individual vs. business)",
            "type": "string",
            "minLength": 1,
            "enum": [
              "individual",
              "business"
            ]
          },
          "endorsements": {
            "description": "List of endorsements to request for the generated KYC link.\nFor example, `sepa` endorsement could be requested to allow an `individual` customer to submit `proof-of-address` documents in the KYC flow.",
            "type": "array",
            "minItems": 0,
            "items": {
              "$ref": "#/components/schemas/EndorsementType"
            }
          },
          "redirect_uri": {
            "description": "The location where the customer should be redirected after completing the KYC flow. Must be in the form of http:// or https://.",
            "type": "string"
          },
          "transliterated_first_name": {
            "type": "string",
            "description": "Required when the `full_name` of an individual includes any non Latin-1 characters. Acceptable characters - Latin-1 Unicode Character Range: À-ÖØ-ßà-öø-ÿ; Standard Unicode Character Range:  -~",
            "minLength": 1,
            "maxLength": 256
          },
          "transliterated_middle_name": {
            "type": "string",
            "description": "Required when the `full_name` of an individual includes any non Latin-1 characters and the individual has a middle name. Acceptable characters - Latin-1 Unicode Character Range: À-ÖØ-ßà-öø-ÿ; Standard Unicode Character Range:  -~",
            "minLength": 1,
            "maxLength": 256
          },
          "transliterated_last_name": {
            "type": "string",
            "description": "Required when the `full_name` of an individual includes any non Latin-1 characters. Acceptable characters - Latin-1 Unicode Character Range: À-ÖØ-ßà-öø-ÿ; Standard Unicode Character Range:  -~",
            "minLength": 1,
            "maxLength": 256
          },
          "transliterated_business_legal_name": {
            "type": "string",
            "description": "Required if the `full_name` of a business includes any non Latin-1 characters. Acceptable characters - Latin-1 Unicode Character Range: À-ÖØ-ßà-öø-ÿ; Standard Unicode Character Range:  -~",
            "minLength": 1,
            "maxLength": 1024
          }
        }
      },
      "CreateStaticMemo": {
        "required": [
          "source",
          "destination"
        ],
        "properties": {
          "developer_fee_percent": {
            "$ref": "#/components/schemas/StaticMemoDeveloperFeePercent"
          },
          "source": {
            "$ref": "#/components/schemas/StaticMemoSourceInput"
          },
          "destination": {
            "$ref": "#/components/schemas/StaticMemoDestination"
          }
        }
      },
      "UpdateStaticMemo": {
        "properties": {
          "destination": {
            "$ref": "#/components/schemas/UpdateStaticMemoDestination"
          },
          "developer_fee_percent": {
            "$ref": "#/components/schemas/StaticMemoDeveloperFeePercent"
          }
        }
      },
      "UpdateStaticMemoDestination": {
        "properties": {
          "currency": {
            "$ref": "#/components/schemas/CryptoCurrency"
          },
          "payment_rail": {
            "$ref": "#/components/schemas/OfframpChain"
          },
          "address": {
            "description": "The crypto wallet address that the customer wishes to ultimately receive funds at",
            "type": "string"
          }
        },
        "example": {
          "currency": "usdc",
          "payment_rail": "polygon",
          "address": "0xdeadbeef"
        }
      },
      "StaticMemoDeveloperFeePercent": {
        "description": "The developer fee percent that will be applied to this Virtual Account. The value is a base 100 percentage, i.e. 10.2% is 10.2 in the API.",
        "type": "string",
        "format": "number",
        "minimum": 0,
        "maximum": 100,
        "exclusiveMaximum": true,
        "example": "0.1"
      },
      "StaticMemoSourceInput": {
        "required": [
          "currency"
        ],
        "properties": {
          "currency": {
            "$ref": "#/components/schemas/FiatCurrency"
          },
          "payment_rail": {
            "description": "Static memos support both wire and ACH push regardless of this value.",
            "$ref": "#/components/schemas/PaymentRail"
          }
        },
        "example": {
          "currency": "usd",
          "payment_rail": "wire"
        }
      },
      "StaticMemoDestination": {
        "required": [
          "currency",
          "payment_rail",
          "address"
        ],
        "properties": {
          "currency": {
            "$ref": "#/components/schemas/CryptoCurrency"
          },
          "payment_rail": {
            "$ref": "#/components/schemas/OfframpChain"
          },
          "address": {
            "description": "The crypto wallet address that the customer wishes to ultimately receive funds at",
            "type": "string"
          },
          "bridge_wallet_id": {
            "description": "The Bridge Wallet to which Bridge will send the funds. payment_rail must match the chain of the Bridge Wallet.",
            "$ref": "#/components/schemas/Id"
          },
          "blockchain_memo": {
            "type": "string",
            "description": "The memo to include when sending funds on chain. Only allowed for blockchains that support memos such as Stellar"
          }
        },
        "example": {
          "currency": "usdc",
          "payment_rail": "polygon",
          "address": "0xdeadbeef"
        }
      },
      "StaticMemoResponse": {
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Id",
            "readOnly": true
          },
          "developer_fee_percent": {
            "$ref": "#/components/schemas/StaticMemoDeveloperFeePercent"
          },
          "source_deposit_instructions": {
            "$ref": "#/components/schemas/StaticMemoSourceDepositInstructions"
          },
          "destination": {
            "$ref": "#/components/schemas/StaticMemoDestination"
          },
          "created_at": {
            "readOnly": true,
            "type": "string",
            "description": "Time of creation of the static memo",
            "format": "date-time"
          }
        }
      },
      "StaticMemoSourceDepositInstructions": {
        "readOnly": true,
        "properties": {
          "currency": {
            "$ref": "#/components/schemas/FiatCurrency"
          },
          "payment_rails": {
            "description": "All supported payment rails for deposits",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentRail"
            }
          },
          "deposit_message": {
            "description": "The message that the customer MUST include in their wire memo/message or ACH description.",
            "type": "string"
          },
          "bank_name": {
            "description": "The name of the bank that the customer should send the deposit to",
            "type": "string"
          },
          "bank_address": {
            "description": "The address of the bank that the customer should send the deposit to",
            "type": "string"
          },
          "bank_routing_number": {
            "description": "The routing number of the bank that the customer should send the deposit to",
            "type": "string"
          },
          "bank_account_number": {
            "description": "The account number of the bank that the customer should send the deposit to",
            "type": "string"
          },
          "bank_beneficiary_name": {
            "description": "The name of the beneficiary of the bank account that the customer should send the deposit to",
            "type": "string"
          },
          "bank_beneficiary_address": {
            "description": "The address of the beneficiary of the bank account that the customer should send the deposit to",
            "type": "string"
          }
        },
        "example": {
          "currency": "usd",
          "payment_rails": [
            "ach_push",
            "wire"
          ],
          "deposit_message": "EXAMPLE_MEMO_MESSAGE",
          "bank_name": "Lead Bank",
          "bank_address": "1801 Main St., Kansas City, MO 64108",
          "bank_beneficiary_name": "Bridge Ventures Inc",
          "bank_beneficiary_address": "21750 Hardy Oak Blvd, Ste 104 PMB 77950, San Antonio, Texas, 78258-4946",
          "bank_account_number": "123456789",
          "bank_routing_number": "87654321"
        }
      },
      "VirtualAccountEvent": {
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Id",
            "readOnly": true
          },
          "type": {
            "type": "string",
            "description": "The type of activity",
            "enum": [
              "funds_scheduled",
              "funds_received",
              "payment_submitted",
              "payment_processed",
              "in_review",
              "refund",
              "refund_in_flight",
              "refund_failed",
              "microdeposit",
              "account_update",
              "deactivation",
              "activation"
            ]
          },
          "customer_id": {
            "$ref": "#/components/schemas/Id",
            "description": "The id of the Bridge customer that this Virtual Account event belongs to",
            "type": "string",
            "minLength": 1,
            "readOnly": true
          },
          "virtual_account_id": {
            "$ref": "#/components/schemas/Id",
            "description": "The id of the Virtual Account that this Virtual Account event belongs to",
            "type": "string",
            "minLength": 1,
            "readOnly": true
          },
          "amount": {
            "type": "string",
            "description": "Amount for that event, represented as a dollar denominated string. Examples include \"100.25\", \"0.1\", \"1.234567\" etc. For \"incoming\" events such as funds_received or under_review, this is the initial amount received. For \"outgoing\" events such as payment_submitted and payment_processed, this is the amount of funds sent to the destination. For non-transactional events such as account_update, this will be zero."
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "developer_fee_amount": {
            "type": "string",
            "description": "Amount of the developer fee if any, represented as a dollar denominated string. This is the final amount taken out of what is ultimately received by your customer, not a percentage. Examples include \"100.25\", \"0.1\", \"1.234567\" etc."
          },
          "exchange_fee_amount": {
            "type": "string",
            "description": "Amount of the exchange fee if any, represented as a dollar denominated string. Examples include \"100.25\", \"0.1\", \"1.234567\" etc."
          },
          "subtotal_amount": {
            "type": "string",
            "description": "Amount of the subtotal, represented as a dollar denominated string. Examples include \"100.25\", \"0.1\", \"1.234567\" etc."
          },
          "gas_fee": {
            "type": "string",
            "description": "Amount of the gas fee if any, represented as a dollar denominated string. Examples include \"100.25\", \"0.1\", \"1.234567\" etc."
          },
          "deposit_id": {
            "type": "string",
            "description": "The id of the deposit related to this event. This id can be used to link multiple events to the same transaction. Omitted for some `refund` cases."
          },
          "destination_tx_hash": {
            "type": "string",
            "description": "The hash of the on-chain transfer to the destination address"
          },
          "destination_payment_rail": {
            "type": "string",
            "description": "The destination payment rail where the funds are deposited to"
          },
          "source": {
            "$ref": "#/components/schemas/VirtualAccountEventSource"
          },
          "created_at": {
            "readOnly": true,
            "type": "string",
            "description": "Time of creation of the event",
            "format": "date-time"
          },
          "receipt": {
            "readOnly": true,
            "description": "Receipt information of a virtual account event. Available for drain and payment_processed events.",
            "$ref": "#/components/schemas/Receipt"
          },
          "refund": {
            "readOnly": true,
            "description": "Refund information of a virtual account event. Available for refund events.",
            "$ref": "#/components/schemas/VirtualAccountRefundDetails"
          }
        }
      },
      "VirtualAccountEventSource": {
        "required": [
          "payment_rail"
        ],
        "properties": {
          "payment_rail": {
            "$ref": "#/components/schemas/VirtualAccountEventPaymentRails"
          },
          "description": {
            "description": "(ACH, SPEI, and FedNow only) The description of the deposit that the customer sent",
            "type": "string",
            "readOnly": true
          },
          "sender_name": {
            "description": "(ACH, SEPA, SPEI, and FedNow only) The name of the business or individual who initiated the transaction",
            "type": "string",
            "readOnly": true
          },
          "sender_bank_routing_number": {
            "description": "(ACH and FedNow only) The routing number of the entity that initiated this transaction",
            "type": "string",
            "readOnly": true
          },
          "end_to_end_id": {
            "$ref": "#/components/schemas/EndToEndId",
            "readOnly": true
          },
          "trace_number": {
            "description": "(ACH only) The unique, a 15-digit number associated with each ACH transaction that is used for tracking and reconciling transactions",
            "type": "string",
            "readOnly": true
          },
          "recipient_name": {
            "description": "(ACH, FedNow, SEPA, and Faster Payments only) The name of the recipient of the deposit",
            "type": "string",
            "readOnly": true
          },
          "bank_routing_number": {
            "description": "(Wire only) The routing number of the bank that sent the wire to the Virtual Account",
            "type": "string",
            "readOnly": true
          },
          "bank_name": {
            "description": "(Wire, SPEI, and PIX only) The name of the bank that sent the deposit. For PIX, only present when the sending bank reports it.",
            "type": "string",
            "readOnly": true
          },
          "bank_code": {
            "description": "(SPEI and PIX only) The code of the sender's bank that initiated this transaction. For SPEI this is the Banxico bank code; for PIX this is the 8-digit ISPB code.",
            "type": "string",
            "readOnly": true
          },
          "bank_beneficiary_name": {
            "description": "(Wire only) The beneficiary name of this wire",
            "type": "string",
            "readOnly": true
          },
          "bank_beneficiary_address": {
            "description": "(Wire only) The beneficiary address of this wire",
            "type": "string",
            "readOnly": true
          },
          "originator_name": {
            "description": "(Wire only) The originator name of this wire",
            "type": "string",
            "readOnly": true
          },
          "originator_address": {
            "description": "(Wire only) The originator address of this wire",
            "type": "string",
            "readOnly": true
          },
          "wire_message": {
            "description": "(Wire only) The memo for this wire",
            "type": "string",
            "readOnly": true
          },
          "imad": {
            "$ref": "#/components/schemas/Imad",
            "readOnly": true
          },
          "charge_bearer": {
            "description": "(Wire only) Which party bore the SWIFT wire's charges",
            "$ref": "#/components/schemas/ChargeBearer",
            "readOnly": true
          },
          "bic": {
            "description": "(SEPA and Wire only) The BIC of the bank that initiated this transaction. For wires this is the originating bank's BIC, reported for international (SWIFT) wires, and can differ from the US correspondent bank in bank_name and bank_routing_number",
            "type": "string",
            "readOnly": true
          },
          "iban": {
            "description": "(SEPA only) The full IBAN of the account that initiated this transaction",
            "type": "string",
            "readOnly": true
          },
          "iban_last_4": {
            "description": "(SEPA only) The last 4 digits of the IBAN of the account that initiated this transaction",
            "type": "string",
            "readOnly": true
          },
          "clabe": {
            "description": "(SPEI only) The CLABE (account number) of the account that initiated this transaction",
            "type": "string",
            "readOnly": true
          },
          "account_number": {
            "description": "The account number of the account that initiated this transaction, when the sending bank reports it. SPEI transactions use `clabe` and SEPA transactions use `iban` instead.",
            "type": "string",
            "readOnly": true
          },
          "reference": {
            "$ref": "#/components/schemas/SepaReference",
            "description": "(SEPA and SPEI only) The SEPA/SPEI (concepto de pago) reference field set by the initiator of this transaction",
            "readOnly": true
          },
          "tracking_number": {
            "description": "The primary tracking identifier for the incoming fiat payment. For SWIFT wires, this is the UETR when available. Other rails use SEPA/FPS transaction references, the SPEI clave de rastreo, or PIX end-to-end IDs.",
            "type": "string",
            "readOnly": true
          },
          "payment_scheme": {
            "$ref": "#/components/schemas/PaymentScheme",
            "description": "(SEPA only) The payment scheme used for this transaction, such as SEPA Credit Transfer or SEPA Instant"
          },
          "uetr": {
            "$ref": "#/components/schemas/Uetr"
          }
        }
      },
      "VirtualAccountRefundDetails": {
        "required": [
          "code",
          "reason",
          "refunded_at"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "The code of the refund"
          },
          "reason": {
            "type": "string",
            "description": "The reason of the refund"
          },
          "refunded_at": {
            "type": "string",
            "description": "The time of the refund"
          },
          "risk_rejection_reason": {
            "description": "The risk-related reason the transaction was refunded. Present only when Bridge provides a risk-related reason for the refund. Possible values include `Exceeds Transaction Limits` and `Exceeds Counterparty Limits`.",
            "type": "string",
            "readOnly": true,
            "example": "Exceeds Transaction Limits"
          }
        }
      },
      "CreateVirtualAccount": {
        "required": [
          "source",
          "destination"
        ],
        "properties": {
          "developer_fee_percent": {
            "$ref": "#/components/schemas/VirtualAccountDeveloperFeePercent"
          },
          "fee_config": {
            "description": "Developer fee configuration. Available by request only. Contact Bridge to enable this feature for your developer account. Cannot be provided alongside `developer_fee_percent` in the same request.",
            "allOf": [
              {
                "$ref": "#/components/schemas/FeeConfigRequest"
              }
            ]
          },
          "source": {
            "$ref": "#/components/schemas/VirtualAccountSourceInput"
          },
          "destination": {
            "$ref": "#/components/schemas/VirtualAccountDestination"
          },
          "travel_rule_data": {
            "description": "Travel Rule data for this virtual account. Use this only when the same originator or beneficiary should apply to every future movement through this virtual account. If counterparties can vary by event, submit the payload later with `POST /travel_rule_data/{id}` for the relevant event or resource.",
            "allOf": [
              {
                "$ref": "#/components/schemas/TravelRuleData"
              }
            ]
          }
        }
      },
      "UpdateVirtualAccount": {
        "properties": {
          "destination": {
            "$ref": "#/components/schemas/UpdateVirtualAccountDestination"
          },
          "developer_fee_percent": {
            "$ref": "#/components/schemas/VirtualAccountDeveloperFeePercent"
          },
          "fee_config": {
            "description": "Developer fee configuration. Available by request only. Contact Bridge to enable this feature for your developer account. When provided, performs a full replacement of the existing fee configuration. If the virtual account was previously configured with `developer_fee_percent`, providing `fee_config` will clear `developer_fee_percent` and replace it with the new configuration. Include the desired fee under `source` (e.g. `fee_config.source.fee_percent`). Cannot be provided alongside `developer_fee_percent` in the same request.",
            "allOf": [
              {
                "$ref": "#/components/schemas/FeeConfigRequest"
              }
            ]
          }
        }
      },
      "UpdateVirtualAccountDestination": {
        "properties": {
          "currency": {
            "$ref": "#/components/schemas/CryptoCurrency"
          },
          "payment_rail": {
            "$ref": "#/components/schemas/OfframpChain"
          },
          "address": {
            "description": "The crypto wallet address that the customer wishes to ultimately receive funds at",
            "type": "string"
          },
          "blockchain_memo": {
            "type": "string",
            "description": "The memo to include when sending funds on chain. Only allowed for blockchains that support memos such as Stellar"
          },
          "bridge_wallet_id": {
            "description": "The Bridge Wallet to which Bridge will send the funds. The chain associated with the Bridge Wallet must match the payment rail.",
            "$ref": "#/components/schemas/Id"
          }
        },
        "example": {
          "currency": "usdc",
          "payment_rail": "polygon",
          "address": "0xdeadbeef",
          "blockchain_memo": "from_bridge"
        }
      },
      "VirtualAccountDeveloperFeePercent": {
        "description": "The developer fee percent that will be applied to this Virtual Account. The value is a base 100 percentage, i.e. 10.2% is 10.2 in the API.",
        "type": "string",
        "format": "number",
        "minimum": 0,
        "maximum": 100,
        "exclusiveMaximum": true,
        "example": "0.1"
      },
      "FeeConfigFeeParams": {
        "description": "Fee parameters for a specific payment rail or default configuration",
        "type": "object",
        "properties": {
          "fee_percent": {
            "description": "Percentage fee (0-100, exclusive). Applied to the amount remaining after any flat fee deduction.",
            "type": "string",
            "format": "number",
            "example": "1.5"
          },
          "fee_amount": {
            "description": "Flat fee amount deducted before percentage calculation",
            "type": "string",
            "format": "number",
            "example": "10.00"
          },
          "minimum_fee": {
            "description": "Minimum total fee floor",
            "type": "string",
            "format": "number",
            "example": "1.00"
          },
          "maximum_fee": {
            "description": "Maximum total fee cap",
            "type": "string",
            "format": "number",
            "example": "1000.00"
          }
        }
      },
      "FeeConfigRequest": {
        "description": "Developer fee configuration. Available by request only. Contact Bridge to enable this feature for your developer account. The `source` object supports direct fee parameters as a shorthand for a default fee, an explicit `default` key, payment-rail keys (e.g. `ach_push`, `wire`), or a mixed default-plus-override form.",
        "type": "object",
        "properties": {
          "source": {
            "description": "Source-side fee configuration. Supports direct fee params under `source`, an explicit `default` key, payment-rail keys such as `ach_push` and `wire`, or a mixed default-plus-override form.",
            "anyOf": [
              {
                "$ref": "#/components/schemas/FeeConfigFeeParams"
              },
              {
                "type": "object",
                "additionalProperties": {
                  "$ref": "#/components/schemas/FeeConfigFeeParams"
                }
              }
            ],
            "example": {
              "fee_percent": "0.5",
              "minimum_fee": "1.00",
              "wire": {
                "fee_amount": "10.00",
                "fee_percent": "1.0"
              }
            }
          }
        }
      },
      "FeeConfigResponse": {
        "description": "Developer fee configuration. Available by request only. Contact Bridge to enable this feature for your developer account. Responses render source-side fees keyed by payment rail, using `default` for a catch-all configuration.",
        "type": "object",
        "properties": {
          "source": {
            "description": "Source-side fee configuration keyed by payment rail or `default`",
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/FeeConfigFeeParams"
            },
            "example": {
              "default": {
                "fee_percent": "0.5",
                "minimum_fee": "1.00"
              },
              "wire": {
                "fee_amount": "10.00",
                "fee_percent": "1.0"
              }
            }
          }
        }
      },
      "VirtualAccountActivationStatus": {
        "description": "The activation status of the Virtual Account",
        "type": "string",
        "enum": [
          "activated",
          "deactivated"
        ]
      },
      "VirtualAccountSourceInput": {
        "required": [
          "currency"
        ],
        "properties": {
          "currency": {
            "$ref": "#/components/schemas/EuroInclusiveFiatCurrency"
          }
        },
        "example": {
          "currency": "usd"
        }
      },
      "VirtualAccountDestination": {
        "required": [
          "currency",
          "payment_rail"
        ],
        "properties": {
          "currency": {
            "$ref": "#/components/schemas/CryptoCurrency"
          },
          "payment_rail": {
            "$ref": "#/components/schemas/OfframpChain"
          },
          "address": {
            "description": "The crypto wallet address that the customer wishes to ultimately receive funds at",
            "type": "string"
          },
          "blockchain_memo": {
            "type": "string",
            "description": "The memo to include when sending funds on chain. Only allowed for blockchains that support memos such as Stellar"
          },
          "bridge_wallet_id": {
            "description": "The Bridge Wallet to which Bridge will send the funds. The chain associated with the Bridge Wallet must match the payment rail.",
            "$ref": "#/components/schemas/Id"
          },
          "prefunded_account_id": {
            "description": "The id of the prefunded account to which the funds will be sent. Use 'prefunded' as the payment rail and 'usd' as the currency when specifying a prefunded account id.",
            "$ref": "#/components/schemas/Id"
          }
        },
        "example": {
          "currency": "usdc",
          "payment_rail": "polygon",
          "address": "0xdeadbeef"
        }
      },
      "VirtualAccountResponse": {
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Id",
            "readOnly": true
          },
          "status": {
            "$ref": "#/components/schemas/VirtualAccountActivationStatus"
          },
          "developer_fee_percent": {
            "$ref": "#/components/schemas/VirtualAccountDeveloperFeePercent"
          },
          "fee_config": {
            "description": "Developer fee configuration. Available by request only and returned only for developers with this feature enabled.",
            "allOf": [
              {
                "$ref": "#/components/schemas/FeeConfigResponse"
              }
            ]
          },
          "customer_id": {
            "$ref": "#/components/schemas/Id"
          },
          "created_at": {
            "readOnly": true,
            "type": "string",
            "description": "Time of creation of the virtual account",
            "format": "date-time"
          },
          "source_deposit_instructions": {
            "$ref": "#/components/schemas/VirtualAccountSourceDepositInstructions"
          },
          "destination": {
            "$ref": "#/components/schemas/VirtualAccountDestination"
          }
        }
      },
      "VirtualAccountSourceDepositInstructions": {
        "title": "Source Deposit Instructions",
        "readOnly": true,
        "oneOf": [
          {
            "$ref": "#/components/schemas/VirtualAccountSourceDepositInstructionsUs"
          },
          {
            "$ref": "#/components/schemas/VirtualAccountSourceDepositInstructionsEu"
          },
          {
            "$ref": "#/components/schemas/VirtualAccountSourceDepositInstructionsMx"
          },
          {
            "$ref": "#/components/schemas/VirtualAccountSourceDepositInstructionsBr"
          },
          {
            "$ref": "#/components/schemas/VirtualAccountSourceDepositInstructionsGb"
          },
          {
            "$ref": "#/components/schemas/VirtualAccountSourceDepositInstructionsCo"
          }
        ]
      },
      "VirtualAccountSourceDepositInstructionsCommon": {
        "readOnly": true,
        "type": "object",
        "required": [
          "bank_address",
          "bank_name"
        ],
        "properties": {
          "bank_name": {
            "description": "The name of the bank that the customer should send the deposit to",
            "type": "string"
          },
          "bank_address": {
            "description": "The address of the bank that the customer should send the deposit to",
            "type": "string"
          }
        }
      },
      "VirtualAccountSourceDepositInstructionsUs": {
        "title": "Virtual Account US",
        "allOf": [
          {
            "type": "object",
            "required": [
              "currency",
              "payment_rails",
              "bank_account_number",
              "bank_routing_number",
              "bank_beneficiary_name",
              "bank_beneficiary_address"
            ],
            "properties": {
              "bank_account_number": {
                "description": "The account number of the bank that the customer should send the deposit to",
                "type": "string"
              },
              "bank_routing_number": {
                "description": "The routing number of the bank that the customer should send the deposit to",
                "type": "string"
              },
              "bank_beneficiary_name": {
                "description": "If available, the name of the beneficiary of the bank account that the customer should send the deposit to",
                "type": "string"
              },
              "bank_beneficiary_address": {
                "description": "If available, the address of the beneficiary of the bank account that the customer should send the deposit to",
                "type": "string"
              },
              "currency": {
                "type": "string",
                "enum": [
                  "usd"
                ]
              },
              "payment_rail": {
                "$ref": "#/components/schemas/VirtualAccountSourcePaymentRails",
                "deprecated": true
              },
              "payment_rails": {
                "description": "The payment rails supported by these deposit instructions",
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "ach_push",
                    "fednow",
                    "wire"
                  ]
                }
              }
            }
          },
          {
            "$ref": "#/components/schemas/VirtualAccountSourceDepositInstructionsCommon"
          }
        ],
        "example": {
          "currency": "usd",
          "payment_rails": [
            "ach_push",
            "fednow",
            "wire"
          ],
          "bank_name": "Lead Bank",
          "bank_address": "1801 Main St., Kansas City, MO 64108",
          "bank_beneficiary_name": "Customer Name",
          "bank_beneficiary_address": "1234 Main St., Kansas City, MO 64108",
          "bank_account_number": "123456789",
          "bank_routing_number": "87654321"
        }
      },
      "AccountHolderName": {
        "type": "string",
        "description": "The name of the account owner that the deposit must be sent to."
      },
      "VirtualAccountSourceDepositInstructionsBr": {
        "title": "Virtual Account BR",
        "allOf": [
          {
            "type": "object",
            "required": [
              "currency",
              "payment_rails",
              "br_code",
              "account_holder_name"
            ],
            "properties": {
              "br_code": {
                "description": "The BR Code that the customer should send the deposit to",
                "type": "string"
              },
              "account_holder_name": {
                "$ref": "#/components/schemas/AccountHolderName"
              },
              "currency": {
                "type": "string",
                "enum": [
                  "brl"
                ]
              },
              "payment_rails": {
                "description": "The payment rails supported by these deposit instructions",
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "pix"
                  ]
                }
              }
            }
          }
        ]
      },
      "VirtualAccountSourceDepositInstructionsMx": {
        "title": "Virtual Account MX",
        "allOf": [
          {
            "type": "object",
            "required": [
              "currency",
              "payment_rails",
              "account_holder_name",
              "clabe"
            ],
            "properties": {
              "clabe": {
                "description": "The CLABE (account number) of the account that the customer should send the deposit to",
                "type": "string"
              },
              "account_holder_name": {
                "$ref": "#/components/schemas/AccountHolderName"
              },
              "currency": {
                "type": "string",
                "enum": [
                  "mxn"
                ]
              },
              "payment_rails": {
                "description": "The payment rails supported by these deposit instructions",
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "spei"
                  ]
                }
              }
            }
          }
        ]
      },
      "VirtualAccountSourceDepositInstructionsEu": {
        "title": "Virtual IBAN",
        "allOf": [
          {
            "type": "object",
            "required": [
              "iban",
              "bic",
              "account_holder_name",
              "currency",
              "payment_rails"
            ],
            "properties": {
              "iban": {
                "description": "he IBAN of the account that the customer should send the deposit to",
                "type": "string"
              },
              "bic": {
                "description": "The BIC of the bank that the customer should send the deposit to",
                "type": "string"
              },
              "account_holder_name": {
                "$ref": "#/components/schemas/AccountHolderName"
              },
              "bank_beneficiary_name": {
                "description": "The account beneficiary name — the customer for POBO accounts, otherwise the Bridge legal entity. Senders should match this name.",
                "type": "string"
              },
              "bank_beneficiary_address": {
                "description": "The account beneficiary address. Present for POBO accounts (the customer's registered address).",
                "type": "string"
              },
              "currency": {
                "type": "string",
                "enum": [
                  "eur"
                ]
              },
              "payment_rails": {
                "type": "string",
                "enum": [
                  "sepa"
                ]
              }
            }
          },
          {
            "$ref": "#/components/schemas/VirtualAccountSourceDepositInstructionsCommon"
          }
        ]
      },
      "VirtualAccountSourceDepositInstructionsGb": {
        "title": "Virtual Account UK",
        "allOf": [
          {
            "$ref": "#/components/schemas/GbBankAccountVirtualAccount"
          },
          {
            "type": "object",
            "required": [
              "currency",
              "payment_rails",
              "account_holder_name"
            ],
            "properties": {
              "account_holder_name": {
                "$ref": "#/components/schemas/AccountHolderName"
              },
              "bank_beneficiary_name": {
                "description": "The account beneficiary name — the customer for POBO accounts, otherwise the Bridge legal entity. Senders should match this name.",
                "type": "string"
              },
              "bank_beneficiary_address": {
                "description": "The account beneficiary address. Present for POBO accounts (the customer's registered address).",
                "type": "string"
              },
              "currency": {
                "type": "string",
                "enum": [
                  "gbp"
                ]
              },
              "payment_rails": {
                "type": "string",
                "enum": [
                  "faster_payments"
                ]
              }
            }
          },
          {
            "$ref": "#/components/schemas/VirtualAccountSourceDepositInstructionsCommon"
          }
        ]
      },
      "VirtualAccountSourceDepositInstructionsCo": {
        "title": "Virtual Account CO (Bre-B)",
        "allOf": [
          {
            "type": "object",
            "required": [
              "currency",
              "payment_rails",
              "bre_b_key",
              "account_holder_name"
            ],
            "properties": {
              "bre_b_key": {
                "description": "The Bre-B key of the Colombian bank account for receiving COP deposits",
                "type": "string"
              },
              "account_holder_name": {
                "$ref": "#/components/schemas/AccountHolderName"
              },
              "currency": {
                "type": "string",
                "enum": [
                  "cop"
                ]
              },
              "payment_rails": {
                "description": "The payment rails supported by these deposit instructions",
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "bre_b"
                  ]
                }
              }
            }
          }
        ]
      },
      "StaticMemoEvent": {
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Id",
            "readOnly": true
          },
          "type": {
            "type": "string",
            "description": "The type of activity",
            "enum": [
              "funds_received",
              "payment_submitted",
              "payment_processed",
              "in_review",
              "refunded",
              "refund_in_flight",
              "refund_failed",
              "account_update"
            ]
          },
          "customer_id": {
            "$ref": "#/components/schemas/Id",
            "description": "The id of the Bridge customer that this static memo event belongs to",
            "type": "string",
            "minLength": 1,
            "readOnly": true
          },
          "static_memo_id": {
            "$ref": "#/components/schemas/Id",
            "description": "The id of the Static Memo that this event belongs to",
            "type": "string",
            "minLength": 1,
            "readOnly": true
          },
          "amount": {
            "type": "string",
            "description": "Amount for that event, represented as a dollar denominated string. Examples include \"100.25\", \"0.1\", \"1.234567\" etc. For \"incoming\" events such as funds_received or under_review, this is the initial amount received. For \"outgoing\" events such as payment_submitted and payment_processed, this is the amount of funds sent to the destination. For non-transactional events such as account_update, this will be zero."
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "developer_fee_amount": {
            "type": "string",
            "description": "Amount of the developer fee if any, represented as a dollar denominated string. This is the final amount taken out of what is ultimately received by your customer, not a percentage. Examples include \"100.25\", \"0.1\", \"1.234567\" etc."
          },
          "exchange_fee_amount": {
            "type": "string",
            "description": "Amount of the exchange fee if any, represented as a dollar denominated string. Examples include \"100.25\", \"0.1\", \"1.234567\" etc."
          },
          "subtotal_amount": {
            "type": "string",
            "description": "Amount of the subtotal, represented as a dollar denominated string. Examples include \"100.25\", \"0.1\", \"1.234567\" etc."
          },
          "gas_fee": {
            "type": "string",
            "description": "Amount of the gas fee if any, represented as a dollar denominated string. Examples include \"100.25\", \"0.1\", \"1.234567\" etc."
          },
          "deposit_id": {
            "type": "string",
            "description": "The id of the deposit related to this event. This id can be used to link multiple events to the same transaction"
          },
          "destination_tx_hash": {
            "type": "string",
            "description": "The hash of the on-chain transfer to the destination address"
          },
          "destination_payment_rail": {
            "type": "string",
            "description": "The destination payment rail where the funds are deposited to"
          },
          "source_deposit_instructions": {
            "$ref": "#/components/schemas/StaticMemoEventSourceDepositInstructions"
          },
          "source": {
            "$ref": "#/components/schemas/StaticMemoEventSource"
          },
          "created_at": {
            "readOnly": true,
            "type": "string",
            "description": "Time of creation of the event",
            "format": "date-time"
          }
        }
      },
      "StaticMemoEventSourceDepositInstructions": {
        "required": [
          "deposit_message"
        ],
        "properties": {
          "deposit_message": {
            "description": "The message that the customer MUST include in their wire memo/message or ach push description",
            "type": "string"
          }
        }
      },
      "StaticMemoEventSource": {
        "required": [
          "payment_rail"
        ],
        "properties": {
          "payment_rail": {
            "$ref": "#/components/schemas/PaymentRail"
          },
          "description": {
            "description": "(ACH only) The description of the deposit that the customer sent",
            "type": "string"
          },
          "sender_name": {
            "description": "(ACH only) The name of the business or individual who initiated the transaction",
            "type": "string",
            "readOnly": true
          },
          "sender_bank_routing_number": {
            "description": "(ACH only) The routing number of the entity that initiated this ACH transaction",
            "type": "string",
            "readOnly": true
          },
          "trace_number": {
            "description": "(ACH only) The unique, a 15-digit number associated with each ACH transaction that is used for tracking and reconciling transactions",
            "type": "string",
            "readOnly": true
          },
          "bank_routing_number": {
            "description": "(Wire only) The routing number of the bank that the customer sent the deposit to",
            "type": "string",
            "readOnly": true
          },
          "bank_name": {
            "description": "(Wire only) The name of the bank that the customer sent the deposit to",
            "type": "string",
            "readOnly": true
          },
          "bank_beneficiary_name": {
            "description": "(Wire only) The beneficiary name of this deposit",
            "type": "string",
            "readOnly": true
          },
          "bank_beneficiary_address": {
            "description": "(Wire only) The beneficiary address of this deposit",
            "type": "string",
            "readOnly": true
          },
          "originator_name": {
            "description": "(Wire only) The originator name of this deposit",
            "type": "string",
            "readOnly": true
          },
          "originator_address": {
            "description": "(Wire only) The originator address of this deposit",
            "type": "string",
            "readOnly": true
          },
          "wire_message": {
            "description": "(Wire only) The memo for this wire",
            "type": "string",
            "readOnly": true
          },
          "imad": {
            "$ref": "#/components/schemas/Imad"
          },
          "omad": {
            "$ref": "#/components/schemas/Omad"
          }
        }
      },
      "CreateBridgeWallet": {
        "required": [
          "chain"
        ],
        "properties": {
          "chain": {
            "$ref": "#/components/schemas/BridgeWalletChain"
          }
        }
      },
      "CreateBatchSettlementSchedule": {
        "required": [
          "destination"
        ],
        "properties": {
          "destination": {
            "description": "The destination that Bridge will use to settle funds.",
            "$ref": "#/components/schemas/TransferDestination"
          }
        }
      },
      "CreateLiquidationAddress": {
        "required": [
          "currency",
          "chain"
        ],
        "properties": {
          "currency": {
            "$ref": "#/components/schemas/LiquidationAddressSourceCurrency"
          },
          "chain": {
            "$ref": "#/components/schemas/LiquidationAddressSourceChain"
          },
          "external_account_id": {
            "description": "External bank account to which Bridge will send the funds. The currency associated with the External Account must match the destination currency.",
            "$ref": "#/components/schemas/Id"
          },
          "prefunded_account_id": {
            "description": "The developer's prefunded account id that Bridge will send the funds to.",
            "$ref": "#/components/schemas/Id"
          },
          "bridge_wallet_id": {
            "description": "The Bridge Wallet to which Bridge will send the funds. The chain associated with the Bridge Wallet must match the payment rail.",
            "$ref": "#/components/schemas/Id"
          },
          "destination_wire_message": {
            "$ref": "#/components/schemas/WireMessage"
          },
          "destination_sepa_reference": {
            "$ref": "#/components/schemas/SepaReference"
          },
          "destination_ach_reference": {
            "$ref": "#/components/schemas/AchReference"
          },
          "destination_spei_reference": {
            "$ref": "#/components/schemas/SpeiReference"
          },
          "destination_swift_reference": {
            "$ref": "#/components/schemas/SwiftReference"
          },
          "destination_reference": {
            "description": "A payment reference message for newer payment rails (e.g. Pix, Faster Payments, and FedNow).",
            "type": "string"
          },
          "destination_payment_rail": {
            "$ref": "#/components/schemas/SepaSwiftInclusivePaymentRail",
            "description": "The payment rail that Bridge will use to send funds to the customer. Will default to ACH if not specified."
          },
          "destination_currency": {
            "$ref": "#/components/schemas/EuroInclusiveCurrency",
            "description": "The currency that Bridge will use to send funds to the customer. Will default to USD if not specified."
          },
          "destination_address": {
            "type": "string",
            "description": "The crypto wallet address that Bridge will use to send funds to the customer."
          },
          "destination_blockchain_memo": {
            "type": "string",
            "description": "The memo to include in the transaction, for blockchains that support memos only"
          },
          "return_address": {
            "type": "string",
            "nullable": true,
            "deprecated": true,
            "description": "Deprecated: use `return_instructions` instead.\n\nThe crypto wallet address that Bridge will use to return funds to the customer in case of a failed transaction.\nMust be on the same chain as the liquidation address.\nCannot be used on Stellar — use `return_instructions` with a `memo` instead.\n"
          },
          "return_instructions": {
            "description": "The return instructions Bridge will use to route funds back to the customer when a transaction fails.\nReplaces the deprecated `return_address` field. Set one or the other, not both.\n\nFor memo-required chains (e.g. Stellar), both `address` and `memo` are required — without a memo, Bridge cannot\nroute the return to the correct end-customer at an omnibus wallet.\n",
            "allOf": [
              {
                "$ref": "#/components/schemas/ReturnInstructions"
              }
            ]
          },
          "custom_developer_fee_percent": {
            "$ref": "#/components/schemas/LiquidationAddressCustomDeveloperFeePercent"
          },
          "travel_rule_data": {
            "description": "Travel Rule data for this liquidation address. Use this only when the same originator or beneficiary should apply to every future movement through this liquidation address. If counterparties can vary by deposit or drain, submit the payload later with `POST /travel_rule_data/{id}` for the relevant movement.",
            "allOf": [
              {
                "$ref": "#/components/schemas/TravelRuleData"
              }
            ]
          }
        }
      },
      "UpdateLiquidationAddress": {
        "properties": {
          "external_account_id": {
            "type": "string",
            "description": "An optional identifier for the external account you wish to associate with this liquidation schedule.\n\n**Note**: Only one liquidation address can be associated with an external account per (customer, chain, currency).\n"
          },
          "custom_developer_fee_percent": {
            "$ref": "#/components/schemas/LiquidationAddressCustomDeveloperFeePercent"
          },
          "destination": {
            "$ref": "#/components/schemas/UpdateLiquidationAddressDestination"
          },
          "destination_ach_reference": {
            "nullable": true,
            "description": "An ACH reference to include with each payout. Send `null` to clear an existing reference.",
            "$ref": "#/components/schemas/AchReference"
          },
          "destination_wire_message": {
            "nullable": true,
            "description": "A wire message to include with each payout. Send `null` to clear an existing message.",
            "$ref": "#/components/schemas/WireMessage"
          },
          "destination_sepa_reference": {
            "nullable": true,
            "description": "A SEPA reference to include with each payout. Send `null` to clear an existing reference.",
            "$ref": "#/components/schemas/SepaReference"
          },
          "destination_spei_reference": {
            "nullable": true,
            "description": "A SPEI reference to include with each payout. Send `null` to clear an existing reference.",
            "$ref": "#/components/schemas/SpeiReference"
          },
          "destination_swift_reference": {
            "nullable": true,
            "description": "A SWIFT payment reference to include with each payout. Send `null` to clear an existing reference.",
            "$ref": "#/components/schemas/SwiftReference"
          },
          "destination_reference": {
            "nullable": true,
            "description": "A payment reference message for newer payment rails (e.g. Pix, Faster Payments, and FedNow). Send `null` to clear an existing reference.",
            "type": "string"
          },
          "return_address": {
            "type": "string",
            "nullable": true,
            "deprecated": true,
            "description": "Deprecated: use `return_instructions` instead.\n\nThe crypto wallet address that Bridge will use to return funds to the customer in case of a failed transaction.\nMust be on the same chain as the liquidation address.\nCannot be used on Stellar — use `return_instructions` with a `memo` instead.\n"
          },
          "return_instructions": {
            "description": "The return instructions Bridge will use to route funds back to the customer when a transaction fails.\nReplaces the deprecated `return_address` field. Set one or the other, not both.\n\nFor memo-required chains (e.g. Stellar), both `address` and `memo` are required — without a memo, Bridge cannot\nroute the return to the correct end-customer at an omnibus wallet.\n",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ReturnInstructions"
              }
            ]
          },
          "currency": {
            "$ref": "#/components/schemas/LiquidationAddressSourceCurrency",
            "description": "The source currency to deposit to this liquidation address. Must be either the liquidation address's existing source currency, or `all_supported` to upgrade the address to accept all supported currencies. Once upgraded to `all_supported`, this cannot be changed back to a single currency.\n"
          },
          "chain": {
            "$ref": "#/components/schemas/LiquidationAddressSourceChain",
            "description": "The source chain to deposit to this liquidation address. Must be either the liquidation address's existing source chain, or `evm` to upgrade the address to accept deposits from any EVM chain. Only liquidation addresses on an EVM chain can be upgraded. Once upgraded to `evm`, this cannot be changed back to a single chain.\n"
          }
        }
      },
      "UpdateLiquidationAddressDestination": {
        "type": "object",
        "description": "Update the destination currency for a crypto liquidation address. Only `currency` is required;\nchanging the payment rail or address is not currently supported.\n",
        "required": [
          "currency"
        ],
        "properties": {
          "currency": {
            "$ref": "#/components/schemas/Currency",
            "description": "The new destination currency. Must be deployed on the existing destination chain and accessible to the customer."
          }
        }
      },
      "LiquidationAddressCustomDeveloperFeePercent": {
        "description": "The developer fee percent that will be applied to this Liquidation Address or null to use the default fee. The value is a base 100 percentage, i.e. 10.2% is 10.2 in the API.",
        "type": "string",
        "nullable": true,
        "format": "number",
        "minimum": 0,
        "maximum": 100,
        "exclusiveMaximum": true,
        "example": "0.1"
      },
      "DeveloperFeeConfigSchema": {
        "description": "The schema version for this fee config. Currently only `v1` is supported.",
        "type": "string",
        "enum": [
          "v1"
        ]
      },
      "DeveloperFeeConfigDefaultFeePercentage": {
        "description": "The default developer fee percent applied by this config. The value is a base 100 percentage, i.e. 10.2% is 10.2 in the API.",
        "type": "string",
        "format": "number",
        "minimum": 0.01,
        "maximum": 100,
        "exclusiveMaximum": true,
        "example": "0.1"
      },
      "DeveloperFeeConfigSourceAssetFee": {
        "description": "Per-source-currency fee overrides applied instead of `default_fee_percentage`. Keys are `CryptoCurrency` values, values are base 100 percentages, e.g. `{\"usdc\": \"0.05\"}` charges a 0.05% fee on USDC deposits.",
        "type": "object",
        "additionalProperties": {
          "type": "string"
        },
        "example": {
          "usdc": "0.05",
          "usdt": "0.2"
        }
      },
      "CreateDeveloperFeeConfig": {
        "required": [
          "name",
          "schema",
          "default_fee_percentage"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "A friendly name for this fee config."
          },
          "schema": {
            "$ref": "#/components/schemas/DeveloperFeeConfigSchema"
          },
          "default_fee_percentage": {
            "$ref": "#/components/schemas/DeveloperFeeConfigDefaultFeePercentage"
          },
          "source_asset_fee": {
            "$ref": "#/components/schemas/DeveloperFeeConfigSourceAssetFee"
          },
          "description": {
            "type": "string",
            "description": "An optional longer description of this fee config."
          }
        }
      },
      "UpdateDeveloperFeeConfig": {
        "required": [
          "name",
          "schema",
          "default_fee_percentage"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "A friendly name for this fee config."
          },
          "schema": {
            "$ref": "#/components/schemas/DeveloperFeeConfigSchema"
          },
          "default_fee_percentage": {
            "$ref": "#/components/schemas/DeveloperFeeConfigDefaultFeePercentage"
          },
          "source_asset_fee": {
            "$ref": "#/components/schemas/DeveloperFeeConfigSourceAssetFee"
          },
          "description": {
            "type": "string",
            "description": "An optional longer description of this fee config."
          }
        }
      },
      "DeveloperFeeConfig": {
        "required": [
          "id",
          "name",
          "schema",
          "default_fee_percentage",
          "source_asset_fee",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Id",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "A friendly name for this fee config."
          },
          "schema": {
            "$ref": "#/components/schemas/DeveloperFeeConfigSchema"
          },
          "default_fee_percentage": {
            "$ref": "#/components/schemas/DeveloperFeeConfigDefaultFeePercentage"
          },
          "source_asset_fee": {
            "$ref": "#/components/schemas/DeveloperFeeConfigSourceAssetFee"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "An optional longer description of this fee config."
          },
          "created_at": {
            "readOnly": true,
            "type": "string",
            "format": "date-time",
            "description": "Time of creation of the Developer Fee Config"
          },
          "updated_at": {
            "readOnly": true,
            "type": "string",
            "format": "date-time",
            "description": "Time of most recent update of the Developer Fee Config"
          }
        }
      },
      "LiquidationAddressGlobalDeveloperFeePercent": {
        "description": "The developer fee percent that will be default applied to all Liquidation Addresses.",
        "type": "object",
        "properties": {
          "percent": {
            "type": "string",
            "nullable": true,
            "format": "number",
            "minimum": 0,
            "maximum": 100,
            "exclusiveMaximum": true,
            "example": "0.2"
          }
        }
      },
      "CreateBridgeWalletResponse": {
        "required": [
          "chain"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/CreateBridgeWallet"
          },
          {
            "properties": {
              "id": {
                "$ref": "#/components/schemas/Id",
                "readOnly": true
              },
              "address": {
                "description": "The blockchain address of the Bridge Wallet",
                "type": "string",
                "readOnly": true
              },
              "initiation_required": {
                "readOnly": true,
                "type": "boolean",
                "description": "When present, transfers sourced from this wallet must include an `initiation` object on the create request. Omitted for wallets that do not require initiation data."
              },
              "created_at": {
                "readOnly": true,
                "type": "string",
                "description": "Time of creation of the Bridge Wallet",
                "format": "date-time"
              },
              "updated_at": {
                "readOnly": true,
                "type": "string",
                "description": "Time of most recent update of the Bridge Wallet",
                "format": "date-time"
              }
            }
          }
        ]
      },
      "CreateLiquidationAddressResponse": {
        "required": [
          "currency",
          "chain",
          "destination_payment_rail",
          "destination_currency"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/CreateLiquidationAddress"
          },
          {
            "properties": {
              "address": {
                "type": "string",
                "description": "The blockchain address the customer will send funds to."
              },
              "memoless_address": {
                "description": "An alternative crypto wallet address that encodes the memo, allowing the customer to send funds without needing to include a separate memo. Currently only available for Stellar deposits.",
                "type": "string"
              },
              "external_account_id": {
                "description": "External bank account to which Bridge will send the funds."
              },
              "prefunded_account_id": {
                "description": "The developer's prefunded account to which Bridge will send the funds."
              },
              "destination_wire_message": {
                "description": "A message to be sent with a wire transfer."
              },
              "destination_sepa_reference": {
                "description": "A reference message to be sent with a SEPA transaction."
              },
              "destination_payment_rail": {
                "description": "The payment rail that Bridge will use to send funds to the customer."
              },
              "destination_currency": {
                "description": "The currency that Bridge will use to send funds to the customer."
              },
              "state": {
                "type": "string",
                "description": "The state of the liquidation address. It could be \"active\" or \"deactivated\""
              },
              "custom_developer_fee_percent": {
                "$ref": "#/components/schemas/LiquidationAddressCustomDeveloperFeePercent"
              },
              "return_memo": {
                "type": "string",
                "nullable": true,
                "description": "The memo included with return transactions. Present when `return_instructions` was set with a memo (e.g. required for Stellar to route funds to the correct end-customer)."
              },
              "supported_currencies": {
                "description": "The currencies this Liquidation Address accepts on each chain. Keys are `LiquidationAddressSourceChain` values (e.g. `ethereum`, `polygon`, `base`). For a single-chain, single-currency address this is just that one chain and currency; for a multi-chain (`chain` is `evm`) or multi-currency (`currency` is `all_supported`) address it lists every currency actually accepted on each chain.\n",
                "type": "object",
                "readOnly": true,
                "additionalProperties": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CryptoCurrency"
                  }
                },
                "example": {
                  "ethereum": [
                    "usdc",
                    "eurc"
                  ],
                  "polygon": [
                    "usdc"
                  ]
                }
              }
            }
          }
        ]
      },
      "Drain": {
        "required": [
          "id",
          "customer_id",
          "liquidation_address_id",
          "amount",
          "currency",
          "state"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Id",
            "readOnly": true
          },
          "amount": {
            "description": "Amount of the drain, represented as a dollar denominated string. Examples include \"100.25\", \"0.1\", \"1.234567\", \"1.01\" etc.",
            "type": "string"
          },
          "customer_id": {
            "$ref": "#/components/schemas/Id",
            "readOnly": true
          },
          "liquidation_address_id": {
            "$ref": "#/components/schemas/Id",
            "readOnly": true
          },
          "currency": {
            "$ref": "#/components/schemas/EuroInclusiveCurrency"
          },
          "state": {
            "description": "Status of the drain",
            "readOnly": true,
            "$ref": "#/components/schemas/TransactionStatus"
          },
          "created_at": {
            "readOnly": true,
            "type": "string",
            "description": "Time of creation of the drain",
            "format": "date-time"
          },
          "updated_at": {
            "readOnly": true,
            "type": "string",
            "description": "Time of last update of the drain",
            "format": "date-time"
          },
          "deposit_tx_hash": {
            "readOnly": true,
            "type": "string",
            "description": "Hash of the Liquidation Address deposit that triggered this drain"
          },
          "from_address": {
            "readOnly": true,
            "type": "string",
            "description": "The blockchain address that sent funds to the Liquidation Address"
          },
          "source_payment_rail": {
            "readOnly": true,
            "type": "string",
            "description": "The source payment rail where the funds originated from"
          },
          "destination": {
            "readOnly": true,
            "description": "Destination information of a drain.",
            "$ref": "#/components/schemas/DrainDestination"
          },
          "destination_tx_hash": {
            "readOnly": true,
            "type": "string",
            "description": "Hash of withdrawal of funds to the destination"
          },
          "refund_tx_hash": {
            "readOnly": true,
            "type": "string",
            "description": "Hash of refund, if the drain has been returned"
          },
          "return_details": {
            "readOnly": true,
            "description": "Return information, if the drain has been returned.",
            "$ref": "#/components/schemas/DrainReturnDetails"
          },
          "receipt": {
            "readOnly": true,
            "description": "Receipt information of a drain.",
            "$ref": "#/components/schemas/DrainReceipt"
          },
          "exchange_details": {
            "readOnly": true,
            "description": "Exchange details for the associated trade, if applicable.",
            "$ref": "#/components/schemas/ExchangeDetails"
          }
        }
      },
      "Balance": {
        "deprecated": true,
        "properties": {
          "active_balance": {
            "description": "Active Balance (Money currently not being processed) of a Liquidation Address",
            "type": "string"
          },
          "pending_balance": {
            "description": "Pending Balance (Money being processed) of a Liquidation Address",
            "type": "string"
          }
        }
      },
      "CoBankTransferDocumentType": {
        "description": "Colombian document type identifier. `cc` = Cédula de Ciudadanía, `ce` = Cédula de Extranjería, `nit` = NIT (tax ID), `rut` = RUT (worker registration), `pa` = Passport, `ppt` = Permiso de Protección Temporal.\n",
        "type": "string",
        "enum": [
          "cc",
          "ce",
          "nit",
          "rut",
          "pa",
          "ppt",
          "ti",
          "rc",
          "te",
          "die",
          "nd"
        ]
      },
      "BankAccountNumberType": {
        "type": "string",
        "enum": [
          "us",
          "iban",
          "bre_b",
          "clabe",
          "pix",
          "gb",
          "unknown"
        ]
      },
      "CheckingOrSavingsType": {
        "description": "Determines whether the US account is treated as checking or savings. All US accounts will be treated as checking by default.",
        "type": "string",
        "enum": [
          "checking",
          "savings"
        ]
      },
      "BankAccountOwnerType": {
        "type": "string",
        "enum": [
          "individual",
          "business"
        ]
      },
      "FiatCurrency": {
        "type": "string",
        "enum": [
          "usd"
        ]
      },
      "EuroInclusiveFiatCurrency": {
        "type": "string",
        "enum": [
          "usd",
          "eur",
          "mxn",
          "brl",
          "cop",
          "gbp"
        ]
      },
      "Currency": {
        "type": "string",
        "enum": [
          "ousd",
          "path_usd",
          "usdb",
          "usdc",
          "usdt",
          "usdl_linea",
          "usd",
          "pyusd"
        ]
      },
      "EuroInclusiveCurrency": {
        "type": "string",
        "enum": [
          "brl",
          "cop",
          "eur",
          "eurc",
          "gbp",
          "mxn",
          "ousd",
          "path_usd",
          "pyusd",
          "usd",
          "usdb",
          "usdc",
          "usdt",
          "usdl_linea"
        ]
      },
      "CryptoCurrency": {
        "type": "string",
        "enum": [
          "usdb",
          "usdc",
          "usdt",
          "usdl_linea",
          "pyusd",
          "eurc"
        ]
      },
      "LiquidationAddressSourceCurrency": {
        "type": "string",
        "enum": [
          "usdb",
          "usdc",
          "usdt",
          "usdl_linea",
          "pyusd",
          "eurc",
          "all_supported"
        ]
      },
      "LiquidationAddressSourceChain": {
        "type": "string",
        "enum": [
          "arbitrum",
          "avalanche_c_chain",
          "base",
          "celo",
          "ethereum",
          "linea",
          "optimism",
          "polygon",
          "solana",
          "stellar",
          "tempo",
          "tron",
          "xdc",
          "evm"
        ]
      },
      "CardsCryptoCurrency": {
        "type": "string",
        "enum": [
          "usdc"
        ]
      },
      "DeveloperFees": {
        "required": [
          "default_liquidation_address_fee_percent"
        ],
        "properties": {
          "default_liquidation_address_fee_percent": {
            "description": "The default fee percent that will be applied to all your Liquidation Addresses. The value is a base 100 percentage, i.e. 10.2% is \"10.2\" in the API.",
            "type": "string",
            "format": "float",
            "minimum": 0.0,
            "maximum": 1.0,
            "example": "0.5",
            "exclusiveMaximum": true
          }
        }
      },
      "ApiKeyScope": {
        "description": "A scope that may be granted to a scoped API key. Unrestricted keys are created via the Dashboard and implicitly hold the standard scopes; they cannot be requested here.",
        "type": "string",
        "enum": [
          "api_key:create",
          "api_key:self:read",
          "audit_log:read",
          "batch_settlement:create",
          "batch_settlement:read",
          "card:create",
          "card:delete",
          "card:read",
          "card:update",
          "crypto_return_policy:create",
          "crypto_return_policy:delete",
          "crypto_return_policy:read",
          "crypto_return_policy:update",
          "customer:create",
          "customer:delete",
          "customer:read",
          "customer:update",
          "customer_creation_request:create",
          "customer_creation_request:read",
          "developer_fee:create",
          "developer_fee:read",
          "developer_fee:update",
          "developer_trade_configuration:read",
          "developer_trade_configuration:update",
          "exchange_rate:read",
          "external_account:create",
          "external_account:delete",
          "external_account:read",
          "external_account:update",
          "funds_request:read",
          "inquiry:read",
          "inquiry:resume",
          "liquidation_address:create",
          "liquidation_address:drain:read",
          "liquidation_address:drain:update",
          "liquidation_address:read",
          "liquidation_address:update",
          "prefunded_account:create",
          "prefunded_account:history:read",
          "prefunded_account:read",
          "rewards:read",
          "rfi:read",
          "sandbox:developer:create",
          "sandbox:simulate",
          "spender_contract:approval:create",
          "spender_contract:approval:read",
          "spender_contract:create",
          "spender_contract:read",
          "tos_link:create",
          "tos_link:read",
          "transfer:create",
          "transfer:create:privy_custodial_wallet",
          "transfer:delete",
          "transfer:read",
          "transfer:update",
          "travel_rule_data:create",
          "virtual_account:create",
          "virtual_account:delete",
          "virtual_account:history:read",
          "virtual_account:read",
          "virtual_account:transaction:read",
          "virtual_account:update",
          "wallet:create",
          "wallet:create:privy_custodial_wallet",
          "wallet:customer:read",
          "wallet:delete",
          "wallet:developer:read",
          "wallet:update",
          "webhook:create",
          "webhook:delete",
          "webhook:read",
          "webhook:update"
        ]
      },
      "CreateApiKeyInput": {
        "required": [
          "scopes"
        ],
        "properties": {
          "scopes": {
            "description": "Scopes to grant the new key. Must be a non-empty array. Each scope must be one you yourself hold (scope subsetting).",
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/ApiKeyScope"
            }
          },
          "name": {
            "description": "A human-readable label for this key, up to 100 characters. Useful for identifying the key's purpose later.",
            "type": "string",
            "maxLength": 100
          }
        }
      },
      "ApiKey": {
        "required": [
          "id",
          "type",
          "owner_type",
          "owner_id",
          "prefix",
          "last_4",
          "state",
          "created_at",
          "updated_at",
          "scopes"
        ],
        "properties": {
          "id": {
            "description": "The unique identifier for this API key.",
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "description": "Whether the key was created programmatically (Private) or via the Dashboard (Public).",
            "type": "string",
            "enum": [
              "Public",
              "Private"
            ]
          },
          "owner_type": {
            "description": "The type of entity that owns the key. Always `Developer`.",
            "type": "string",
            "enum": [
              "Developer"
            ]
          },
          "owner_id": {
            "description": "The developer ID that owns the key.",
            "type": "string",
            "format": "uuid"
          },
          "prefix": {
            "description": "The environment prefix of the key. `sk-live` in production, `sk-test` in sandbox.",
            "type": "string",
            "enum": [
              "sk-live",
              "sk-test"
            ]
          },
          "last_4": {
            "description": "The last four characters of the key, shown alongside the prefix for disambiguation in audit logs.",
            "type": "string"
          },
          "state": {
            "description": "Lifecycle state of the key.",
            "type": "string",
            "enum": [
              "Active",
              "Deleted"
            ]
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "scopes": {
            "description": "The scopes authorized on this key. A single-element list containing `bridge:api_unrestricted`\ndenotes an unrestricted key (all standard scopes). Any other list denotes a scoped key.\n",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "name": {
            "description": "The human-readable label for this key, if one was provided at creation.",
            "type": "string",
            "maxLength": 100
          }
        }
      },
      "ApiKeyWithSecret": {
        "description": "Returned only on key creation. `value` is the plaintext secret and is shown exactly once.",
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiKey"
          },
          {
            "required": [
              "value"
            ],
            "properties": {
              "value": {
                "description": "The plaintext secret for this API key. Store it securely — it cannot be retrieved again.",
                "type": "string",
                "example": "sk-live-0123456789abcdef0123456789ab9f2c"
              }
            }
          }
        ]
      },
      "BridgeWalletChain": {
        "type": "string",
        "enum": [
          "arbitrum",
          "base",
          "ethereum",
          "linea",
          "monad",
          "optimism",
          "polygon",
          "solana",
          "stellar",
          "tempo",
          "tron",
          "xdc"
        ]
      },
      "OfframpChain": {
        "type": "string",
        "enum": [
          "arbitrum",
          "avalanche_c_chain",
          "base",
          "celo",
          "ethereum",
          "linea",
          "optimism",
          "polygon",
          "solana",
          "stellar",
          "tempo",
          "tron",
          "xdc"
        ]
      },
      "OfframpChainForCards": {
        "type": "string",
        "enum": [
          "arbitrum",
          "avalanche_c_chain",
          "base",
          "ethereum",
          "optimism",
          "polygon",
          "solana",
          "stellar"
        ]
      },
      "PaymentRail": {
        "type": "string",
        "enum": [
          "ach",
          "wire",
          "ach_push",
          "ach_same_day",
          "arbitrum",
          "avalanche_c_chain",
          "base",
          "bre_b",
          "co_bank_transfer",
          "celo",
          "ethereum",
          "optimism",
          "pix",
          "polygon",
          "solana",
          "spei",
          "stellar",
          "tempo"
        ]
      },
      "VirtualAccountSourcePaymentRails": {
        "type": "string",
        "enum": [
          "ach_push",
          "bre_b",
          "faster_payments",
          "pix",
          "sepa",
          "spei",
          "wire"
        ]
      },
      "PaymentScheme": {
        "type": "string",
        "enum": [
          "sepa_credit",
          "sepa_instant"
        ]
      },
      "SepaSwiftInclusivePaymentRail": {
        "type": "string",
        "enum": [
          "ach",
          "wire",
          "ach_push",
          "ach_same_day",
          "arbitrum",
          "avalanche_c_chain",
          "base",
          "bre_b",
          "co_bank_transfer",
          "celo",
          "ethereum",
          "faster_payments",
          "fiat_deposit_return",
          "linea",
          "optimism",
          "pix",
          "polygon",
          "sepa",
          "solana",
          "spei",
          "stellar",
          "swift",
          "tempo",
          "tron",
          "xdc"
        ]
      },
      "TransferSourcePaymentRail": {
        "type": "string",
        "enum": [
          "ach",
          "wire",
          "ach_push",
          "ach_same_day",
          "fednow",
          "arbitrum",
          "avalanche_c_chain",
          "base",
          "bre_b",
          "co_bank_transfer",
          "bridge_wallet",
          "celo",
          "ethereum",
          "faster_payments",
          "linea",
          "optimism",
          "pix",
          "polygon",
          "sepa",
          "solana",
          "spei",
          "stellar",
          "swift",
          "tempo",
          "tron",
          "xdc"
        ]
      },
      "VirtualAccountEventPaymentRails": {
        "type": "string",
        "enum": [
          "ach_push",
          "bre_b",
          "faster_payments",
          "fednow",
          "pix",
          "sepa",
          "spei",
          "wire"
        ]
      },
      "OnrampSourceDepositPaymentRail": {
        "type": "string",
        "enum": [
          "ach_push",
          "bre_b",
          "co_bank_transfer",
          "faster_payments",
          "fednow",
          "pix",
          "sepa",
          "spei",
          "swift",
          "wire"
        ]
      },
      "OfframpPaymentRail": {
        "type": "string",
        "enum": [
          "ach",
          "wire",
          "ach_push",
          "ach_same_day",
          "fednow",
          "arbitrum",
          "avalanche_c_chain",
          "base",
          "bre_b",
          "co_bank_transfer",
          "celo",
          "ethereum",
          "optimism",
          "polygon",
          "solana",
          "spei",
          "stellar",
          "swift",
          "tempo",
          "tron"
        ]
      },
      "SepaSwiftInclusiveOfframpPaymentRail": {
        "type": "string",
        "enum": [
          "ach",
          "wire",
          "ach_push",
          "ach_same_day",
          "fednow",
          "arbitrum",
          "avalanche_c_chain",
          "base",
          "bre_b",
          "co_bank_transfer",
          "celo",
          "ethereum",
          "fiat_deposit_return",
          "linea",
          "optimism",
          "polygon",
          "sepa",
          "solana",
          "spei",
          "stellar",
          "swift",
          "tempo",
          "tron",
          "xdc"
        ]
      },
      "Error": {
        "required": [
          "code",
          "message"
        ],
        "properties": {
          "code": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "message": {
            "type": "string",
            "minLength": 1,
            "maxLength": 512
          },
          "source": {
            "title": "ErrorSource",
            "required": [
              "location",
              "key"
            ],
            "properties": {
              "location": {
                "type": "string",
                "enum": [
                  "path",
                  "query",
                  "body",
                  "header"
                ]
              },
              "key": {
                "type": "string",
                "description": "Comma separated names of the properties or parameters causing the error"
              }
            }
          }
        }
      },
      "PlaidLinkRequest": {
        "properties": {
          "link_token": {
            "type": "string",
            "description": "Link token generated via the Plaid Link SDK"
          },
          "link_token_expires_at": {
            "type": "string",
            "description": "Expiration time of the link token",
            "format": "date-time"
          },
          "callback_url": {
            "type": "string",
            "description": "URL to call through Plaid Link Flow's onSuccess callback with the public token passed in the body of the request"
          }
        }
      },
      "IndividualKycLinkResponse": {
        "properties": {
          "id": {
            "type": "string",
            "description": "ID of the KYC link"
          },
          "type": {
            "type": "string",
            "description": "Type of the KYC link",
            "enum": [
              "individual",
              "business"
            ]
          },
          "customer_id": {
            "type": "string",
            "description": "ID of the customer."
          },
          "full_name": {
            "type": "string",
            "description": "Full name of the customer, for a business, this would be the business entity's legal name"
          },
          "email": {
            "type": "string",
            "description": "Email of the customer"
          },
          "kyc_link": {
            "type": "string",
            "description": "Link to the KYC flow"
          },
          "kyc_status": {
            "type": "string",
            "$ref": "#/components/schemas/KycStatus"
          },
          "rejection_reasons": {
            "deprecated": true,
            "readOnly": true,
            "description": "Reasons why a customer KYC was rejected",
            "type": "array",
            "minItems": 0,
            "items": {
              "$ref": "#/components/schemas/RejectionReason"
            }
          },
          "tos_link": {
            "type": "string",
            "description": "Link to the TOS flow"
          },
          "tos_status": {
            "type": "string",
            "$ref": "#/components/schemas/TosStatus"
          },
          "created_at": {
            "type": "string",
            "description": "Time of creation of the KYC link",
            "format": "date-time"
          }
        }
      },
      "PlaidExchangePublicToken": {
        "required": [
          "public_token"
        ],
        "properties": {
          "public_token": {
            "type": "string",
            "description": "Public token generated via the Plaid Link SDK"
          }
        }
      },
      "TransactionStatus": {
        "type": "string",
        "enum": [
          "awaiting_funds",
          "in_review",
          "funds_received",
          "payment_submitted",
          "payment_processed",
          "canceled",
          "error",
          "undeliverable",
          "returned",
          "refund_in_flight",
          "refund_failed",
          "refunded"
        ]
      },
      "TransferState": {
        "type": "string",
        "enum": [
          "awaiting_funds",
          "in_review",
          "funds_received",
          "payment_submitted",
          "payment_processed",
          "canceled",
          "undeliverable",
          "returned",
          "refund_in_flight",
          "refund_failed",
          "refunded"
        ]
      },
      "CustomerStatus": {
        "type": "string",
        "description": "`offboarded`: represents a customer's account that was internally reviewed and closed due to suspicious activity.\n`paused`: represents a customer's account that is currently under review because of activity on the platform.\n`deposits_restricted`: represents a customer's account that is currently restricted from making new deposits because of activity on the platform.\n",
        "enum": [
          "active",
          "awaiting_questionnaire",
          "awaiting_ubo",
          "deposits_restricted",
          "incomplete",
          "not_started",
          "offboarded",
          "paused",
          "rejected",
          "under_review"
        ]
      },
      "CustomerCapabilityState": {
        "type": "string",
        "description": "State of the customer capability",
        "enum": [
          "pending",
          "active",
          "inactive",
          "rejected"
        ]
      },
      "KycStatus": {
        "type": "string",
        "description": "Status of the KYC flow.",
        "enum": [
          "not_started",
          "incomplete",
          "awaiting_questionnaire",
          "awaiting_ubo",
          "under_review",
          "approved",
          "rejected",
          "paused",
          "offboarded",
          "deposits_restricted"
        ]
      },
      "RejectionReason": {
        "description": "Reason why the kyc_status was rejected",
        "properties": {
          "developer_reason": {
            "type": "string",
            "description": "Developer information for why a customer was rejected. Not to be shared with the customer."
          },
          "reason": {
            "type": "string",
            "description": "Reason for why a customer was rejected. To be shared with the customer."
          },
          "created_at": {
            "deprecated": true,
            "nullable": true,
            "type": "string",
            "description": "Time of creation of the rejection reason"
          }
        }
      },
      "TosStatus": {
        "type": "string",
        "description": "Status of the TOS flow",
        "enum": [
          "pending",
          "approved"
        ]
      },
      "WebhookEventCategory": {
        "type": "string",
        "description": "The category of the webhook event",
        "enum": [
          "customer",
          "kyc_link",
          "liquidation_address.drain",
          "static_memo.activity",
          "transfer",
          "virtual_account.activity",
          "bridge_wallet.activity",
          "card_account",
          "card_transaction",
          "card_withdrawal",
          "posted_card_account_transaction",
          "external_account",
          "rfi"
        ]
      },
      "Webhook": {
        "required": [
          "id",
          "url",
          "status",
          "public_key"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "An identifier that uniquely identifies the webhook endpoint",
            "pattern": "^wep_[a-f0-9]+$"
          },
          "url": {
            "type": "string",
            "description": "The URL that the webhook will send events to"
          },
          "status": {
            "type": "string",
            "description": "The status of the webhook. Only active webhooks will receive events automatically.",
            "enum": [
              "active",
              "disabled",
              "deleted"
            ]
          },
          "public_key": {
            "type": "string",
            "description": "The public key (in PEM format) that should be used to verify the authenticity of webhook events"
          },
          "event_categories": {
            "type": "array",
            "description": "The list of event categories that the webhook endpoint will receive",
            "minItems": 0,
            "items": {
              "$ref": "#/components/schemas/WebhookEventCategory"
            }
          }
        }
      },
      "WebhookEvent": {
        "required": [
          "api_version",
          "event_id",
          "event_developer_id",
          "event_category",
          "event_type",
          "event_object_id",
          "event_object",
          "event_object_changes",
          "event_created_at"
        ],
        "properties": {
          "api_version": {
            "type": "string",
            "readOnly": true
          },
          "event_id": {
            "$ref": "#/components/schemas/Id",
            "readOnly": true
          },
          "event_developer_id": {
            "type": "string",
            "readOnly": true,
            "description": "The developer ID of the developer"
          },
          "event_sequence": {
            "type": "integer",
            "readOnly": true
          },
          "event_category": {
            "$ref": "#/components/schemas/WebhookEventCategory"
          },
          "event_type": {
            "type": "string",
            "description": "The values here will be prefixed with the event_category. For example, a customer created event will be `customer.created`",
            "enum": [
              "created",
              "updated",
              "updated.status_transitioned",
              "deleted",
              "canceled"
            ]
          },
          "event_object_id": {
            "$ref": "#/components/schemas/Id",
            "readOnly": true
          },
          "event_object_status": {
            "type": "string",
            "readOnly": true,
            "enum": [
              "not_started",
              "incomplete",
              "active",
              "rejected",
              "under_review",
              "manual_review",
              "awaiting_ubo",
              "approved",
              "awaiting_funds",
              "funds_received",
              "payment_submitted",
              "payment_processed",
              "in_review",
              "canceled",
              "error",
              "returned",
              "refund_in_flight",
              "refund_failed",
              "refunded",
              "undeliverable"
            ]
          },
          "event_object": {
            "type": "object",
            "description": "The object that was affected by the event",
            "readOnly": true
          },
          "event_object_changes": {
            "type": "object",
            "description": "The changes that were made to the object",
            "readOnly": true
          },
          "event_created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          }
        }
      },
      "WebhookEventDeliveryLog": {
        "required": [
          "status",
          "event_id",
          "response_body",
          "created_at"
        ],
        "properties": {
          "status": {
            "type": "integer",
            "description": "The status code of the delivery"
          },
          "event_id": {
            "$ref": "#/components/schemas/Id",
            "description": "The id of the event for the delivery"
          },
          "response_body": {
            "type": "string",
            "description": "The response body of the delivery"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The time of the delivery"
          }
        }
      },
      "CreateWebhook": {
        "required": [
          "url",
          "event_epoch"
        ],
        "properties": {
          "url": {
            "description": "The URL that the webhook will send events to. It must use the HTTPS scheme and have a valid X.509 certificate. The URL doesn't need to be live, but the host must be reachable.",
            "type": "string",
            "minLength": 1
          },
          "event_epoch": {
            "description": "Specifies the starting point from which this webhook will receive events. This should usually be set to \"webhook_creation\", unless there is a reason why this webhook needs to process events from before its creation. When this value is set to \"webhook_creation\", the webhook will receive a small number of events preceding its creation for convenience.",
            "type": "string",
            "enum": [
              "webhook_creation",
              "beginning_of_time"
            ]
          },
          "event_categories": {
            "type": "array",
            "description": "The list of event categories that the webhook endpoint will receive",
            "minItems": 0,
            "items": {
              "$ref": "#/components/schemas/WebhookEventCategory"
            }
          }
        }
      },
      "FundsRequest": {
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Id",
            "readOnly": true
          },
          "deposit_id": {
            "$ref": "#/components/schemas/Id",
            "description": "The id that uniquely identifies the Bridge deposit associated with the funds request",
            "type": "string",
            "minLength": 1,
            "readOnly": true
          },
          "customer_id": {
            "$ref": "#/components/schemas/Id",
            "description": "The id of the Bridge customer that this static memo event belongs to",
            "type": "string",
            "minLength": 1,
            "readOnly": true
          },
          "amount": {
            "type": "string",
            "description": "Amount of the deposit, represented as a decimal string. Examples include \"100.25\", \"0.1\", \"1.234567\" etc. It is denominated in the source currency of the deposit."
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "payment_rail": {
            "type": "string",
            "description": "The source payment rail of the deposit"
          },
          "fraud": {
            "type": "boolean",
            "description": "Whether the funds request was fraudulent or not"
          },
          "notice_date": {
            "type": "string",
            "description": "Date that Bridge was notified about the funds request from our banking partner, in the format YYYY-MM-DD"
          },
          "imad": {
            "type": "string",
            "description": "(Wire only) The IMAD of a wire deposit, if available"
          },
          "trace_number": {
            "type": "string",
            "description": "(ACH only) The trace number of an ACH deposit, if available"
          },
          "bank_transaction_id": {
            "type": "string",
            "description": "(Non-wire and Non-ACH only) In cases where an identifier tied to a public financial system is not available, we may instead provide a unique identifier that identifies the transaction for the relevant bank or financial institution"
          },
          "created_at": {
            "readOnly": true,
            "type": "string",
            "description": "Time of creation of the funds request",
            "format": "date-time"
          },
          "deposit_created_at": {
            "readOnly": true,
            "type": "string",
            "description": "Time of creation of the associated deposit",
            "format": "date-time"
          }
        }
      },
      "Rfi": {
        "required": [
          "id",
          "state",
          "deadline",
          "requested_items",
          "dashboard_url",
          "created_at"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Id",
            "readOnly": true
          },
          "state": {
            "type": "string",
            "enum": [
              "on_developer",
              "on_bridge",
              "closed"
            ],
            "description": "The current state of the RFI: `on_developer` means Bridge is waiting on a response from you, `on_bridge` means Bridge is reviewing a response you submitted, `closed` means no further action is needed"
          },
          "customer_id": {
            "$ref": "#/components/schemas/Id",
            "readOnly": true,
            "nullable": true,
            "description": "The customer this RFI is associated with, if any"
          },
          "referent_id": {
            "type": "string",
            "nullable": true,
            "description": "The id of the record (transfer, drain, deposit, card account, or customer) this RFI relates to, if any. Resolve it against the endpoint named by `referent_type`"
          },
          "referent_type": {
            "type": "string",
            "nullable": true,
            "enum": [
              "transfer",
              "drain",
              "deposit",
              "card_account",
              "customer"
            ],
            "description": "The type of record that `referent_id` refers to"
          },
          "bridge_action_taken": {
            "type": "string",
            "nullable": true,
            "enum": [
              "customer_paused",
              "transaction_paused"
            ],
            "description": "An action Bridge has already taken as a result of this RFI, if any"
          },
          "expected_action_on_expiry": {
            "type": "string",
            "nullable": true,
            "enum": [
              "pause_customer"
            ],
            "description": "The action Bridge expects to take if this RFI expires without a response, if any"
          },
          "deadline": {
            "type": "string",
            "format": "date-time",
            "description": "The time by which a response to this RFI is expected"
          },
          "requested_items": {
            "type": "array",
            "description": "The items Bridge is asking the developer to provide for this RFI",
            "items": {
              "type": "object",
              "required": [
                "content"
              ],
              "properties": {
                "content": {
                  "type": "string",
                  "description": "The question or request being made, in plain language"
                },
                "id": {
                  "type": "string",
                  "nullable": true,
                  "description": "The id of this requested item"
                },
                "status": {
                  "type": "string",
                  "nullable": true,
                  "enum": [
                    "requested",
                    "provided"
                  ],
                  "description": "Whether this item is still awaiting a response (`requested`) or has been answered (`provided`)"
                },
                "referent_type": {
                  "type": "string",
                  "nullable": true,
                  "enum": [
                    "customer",
                    "beneficial_owner",
                    "transfer",
                    "drain",
                    "deposit",
                    "card_account"
                  ],
                  "description": "The type of record this item asks about"
                },
                "referent_id": {
                  "type": "string",
                  "nullable": true,
                  "description": "The id of the record named by this item's `referent_type`"
                },
                "response_types": {
                  "type": "array",
                  "nullable": true,
                  "description": "The response fields accepted for this item on `POST /rfis/{rfiID}/responses`",
                  "items": {
                    "type": "string",
                    "enum": [
                      "text",
                      "text_list",
                      "date",
                      "address",
                      "identifying_information_list",
                      "document_list",
                      "boolean",
                      "free_text_explanation"
                    ]
                  }
                },
                "group_id": {
                  "type": "string",
                  "nullable": true,
                  "description": "The id of the `requested_item_groups` entry this item belongs to"
                }
              }
            }
          },
          "requested_item_groups": {
            "type": "array",
            "description": "Named groupings of `requested_items` (e.g. one group per beneficial owner)",
            "items": {
              "type": "object",
              "required": [
                "id",
                "name"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The id of this group"
                },
                "name": {
                  "type": "string",
                  "description": "The name of this group"
                },
                "description": {
                  "type": "string",
                  "nullable": true,
                  "description": "Additional detail about this group, if any"
                }
              }
            }
          },
          "additional_context": {
            "type": "string",
            "nullable": true,
            "description": "Additional free-text detail about the request, when Bridge has provided it. Not every RFI includes this field"
          },
          "dashboard_url": {
            "type": "string",
            "description": "A link to view and respond to this RFI in the Bridge dashboard"
          },
          "state_changed_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "The time the RFI's state last changed"
          },
          "created_at": {
            "readOnly": true,
            "type": "string",
            "format": "date-time",
            "description": "The time the RFI was created"
          },
          "closed_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "The time the RFI was closed, if it has been"
          }
        }
      },
      "PostRfiResponsesInput": {
        "type": "object",
        "required": [
          "responses"
        ],
        "additionalProperties": false,
        "properties": {
          "responses": {
            "type": "array",
            "minItems": 1,
            "description": "One or more response items. Applied atomically — a failure on any item rolls back the entire batch.",
            "items": {
              "$ref": "#/components/schemas/RfiResponseItem"
            }
          }
        }
      },
      "RfiResponseItem": {
        "type": "object",
        "required": [
          "requested_item_id"
        ],
        "additionalProperties": false,
        "description": "A response to one outstanding requested item. Which fields to populate depends on the item's `response_types`.\nYou may submit any or all of the accepted fields in a single object; Bridge processes each one provided.\n\nFields ending in `_list` accept one or more values. All other fields accept a single scalar value.\n",
        "properties": {
          "requested_item_id": {
            "type": "string",
            "description": "ID of the `RfiRequestedItem` this response answers. Must belong to the RFI identified by\nthe path parameter. Returns 422 if not found or if it belongs to a different RFI.\n"
          },
          "text": {
            "type": "string",
            "minLength": 1,
            "description": "Single-value plain-text answer (e.g. a name or short description)."
          },
          "text_list": {
            "type": "array",
            "minItems": 1,
            "description": "Multi-value plain-text answer (e.g. nationalities, industries, or operating countries).",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "date": {
            "type": "string",
            "description": "ISO 8601 date string (`YYYY-MM-DD`), e.g. a date of birth.",
            "example": "1990-06-15"
          },
          "address": {
            "$ref": "#/components/schemas/RfiAddressInput"
          },
          "identifying_information_list": {
            "type": "array",
            "minItems": 1,
            "description": "One or more identity documents or tax identification numbers.\n\nThe valid values for `type` depend on the specific item:\n- **TaxIdentificationNumber** items: `type` must be a TIN enum value (e.g. `ssn`, `ein`, `itin`, `cpf`, `vat`). Supplying a government-ID-only type returns 400.\n- **Government-ID document** items: `type` must be a government-ID enum value (e.g. `passport`, `drivers_license`, `national_id`). Supplying a TIN-only type returns 400.\n\nSee the `IdentifyingInformation` schema for the full list of accepted `type` values.\n",
            "items": {
              "$ref": "#/components/schemas/IdentifyingInformation"
            }
          },
          "document_list": {
            "type": "array",
            "minItems": 1,
            "description": "One or more file attachments as base64 data-URIs. The document purpose is derived automatically\nfrom the item's entity detail type; you do not need to specify it.\n\n*Maximum combined file size per item: 24MB.*\n",
            "items": {
              "$ref": "#/components/schemas/RfiDocumentInput"
            }
          },
          "boolean": {
            "type": "boolean",
            "description": "`true` or `false`. `false` is a valid answer; only a missing or null field is rejected."
          },
          "free_text_explanation": {
            "type": "string",
            "minLength": 1,
            "description": "A plain-text explanation supplementing the primary response. Accepted alongside most other\nfields — for example, you may submit both an `address` and a `free_text_explanation`.\n"
          }
        }
      },
      "RfiAddressInput": {
        "type": "object",
        "description": "Postal address.",
        "properties": {
          "street_line_1": {
            "type": "string",
            "description": "Primary street line (house number and street name)."
          },
          "street_line_2": {
            "type": "string",
            "description": "Secondary street line (apartment, suite, unit, floor, etc.)."
          },
          "city": {
            "type": "string",
            "description": "City or locality."
          },
          "subdivision": {
            "type": "string",
            "description": "State, province, or other first-level subdivision code (e.g. `CA`). Must be supplied for US addresses.",
            "minLength": 1,
            "maxLength": 3
          },
          "state": {
            "type": "string",
            "description": "Deprecated alias for `subdivision`. Use `subdivision` instead.",
            "deprecated": true
          },
          "postal_code": {
            "type": "string",
            "description": "Postal or ZIP code. Must be supplied for countries that use postal codes."
          },
          "country": {
            "type": "string",
            "description": "Three-letter alpha-3 country code as defined in the ISO 3166-1 spec.",
            "minLength": 3,
            "maxLength": 3,
            "example": "USA"
          }
        }
      },
      "RfiDocumentInput": {
        "type": "object",
        "required": [
          "file"
        ],
        "additionalProperties": false,
        "description": "A file attachment. The document purpose is derived from the entity detail type of\nthe parent item and does not need to be specified.\n",
        "properties": {
          "file": {
            "type": "string",
            "description": "File content as a base64 data-URI: `data:<mime-type>;base64,<base64-encoded-content>`.\nCommon MIME types: `application/pdf`, `image/jpeg`, `image/png`, `image/heic`, `image/tif`.\n\n*Maximum File Size: 24MB*\n",
            "example": "data:application/pdf;base64,JVBERi0xLjQK..."
          },
          "description": {
            "type": "string",
            "description": "Human-readable label for the document (e.g. \"utility bill\", \"bank statement\")."
          }
        }
      },
      "CryptoReturnPolicy": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "developer_id": {
            "type": "string"
          },
          "refund_destination_address": {
            "type": "string"
          },
          "refund_destination_blockchain_memo": {
            "type": "string"
          },
          "refund_destination_chain": {
            "type": "string"
          },
          "refund_destination_currency": {
            "type": "string"
          },
          "strategy": {
            "type": "string"
          }
        }
      },
      "PostCryptoReturnPoliciesInput": {
        "type": "object",
        "properties": {
          "refund_destination_address": {
            "type": "string",
            "description": "The address to which the refund will be sent. Required if the strategy is `static_address`, but must be unset if the strategy is `refund_to_sender`."
          },
          "refund_destination_blockchain_memo": {
            "type": "string",
            "description": "The memo to include with the refund transaction. Must be unset if the strategy is `refund_to_sender`."
          },
          "refund_destination_chain": {
            "type": "string",
            "description": "The blockchain on which the refund will be sent. Required if the strategy is `static_address`, but must be unset if the strategy is `refund_to_sender`."
          },
          "refund_destination_currency": {
            "type": "string",
            "description": "The currency to which the refund will be sent. Required if the strategy is `static_address`, but must be unset if the strategy is `refund_to_sender`."
          },
          "strategy": {
            "type": "string",
            "description": "The strategy to use for the refund. Can be `refund_to_sender` or `static_address`. We only support multiple policies for `static_address`; different strategies cannot have multiple policies. If multiple `static_address` policies exist, the policy that matches both the currency and chain will be used first. If no such policy is found, the policy that matches only the currency will be used instead."
          }
        }
      },
      "PostCardAccountsInput": {
        "required": [
          "currency",
          "chain"
        ],
        "properties": {
          "client_reference_id": {
            "type": "string",
            "description": "An optional client-provided reference ID that uniquely identifies the card account in the client's system"
          },
          "currency": {
            "$ref": "#/components/schemas/CardsCryptoCurrency",
            "description": "Crypto currency used by the card account being created"
          },
          "chain": {
            "$ref": "#/components/schemas/OfframpChainForCards",
            "description": "Chain used by the card account being created"
          },
          "crypto_account": {
            "$ref": "#/components/schemas/CardCryptoAccount"
          },
          "card_design_shortname": {
            "type": "string",
            "description": "The shortname of the card design to use for the card account. If not specified, the default card design will be used."
          }
        }
      },
      "PostCardFreezeInput": {
        "required": [
          "initiator",
          "reason"
        ],
        "properties": {
          "initiator": {
            "$ref": "#/components/schemas/CardFreezeInitiator"
          },
          "reason": {
            "$ref": "#/components/schemas/CardFreezeReason"
          },
          "reason_detail": {
            "type": "string",
            "description": "A more detailed reason for the freeze"
          },
          "starting_at": {
            "type": "string",
            "description": "An optional starting time in ISO8601 format. It defaults to the current date-time if unspecified"
          },
          "ending_at": {
            "type": "string",
            "description": "An optional ending time in ISO8601 format. If this ending time is not specified, the card account will stay frozen indefinitely until it gets unfrozen by another request"
          }
        }
      },
      "PostCardUnfreezeInput": {
        "required": [
          "initiator"
        ],
        "properties": {
          "initiator": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardFreezeInitiator"
              }
            ],
            "description": "The party of the freeze to be removed"
          }
        }
      },
      "CardUnfreezeResponse": {
        "description": "Card unfreeze response",
        "required": [
          "card_account_id",
          "initiator",
          "reason",
          "created_at",
          "status"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/CardFreeze"
          },
          {
            "properties": {
              "initiator": {
                "description": "The initiator of the removed freeze"
              },
              "reason": {
                "description": "The reason of the removed freeze"
              },
              "reason_detail": {
                "description": "The reason detail of the removed freeze"
              },
              "starting_at": {
                "description": "The start time of the removed freeze, in ISO8601 format"
              },
              "ending_at": {
                "description": "The end time of the removed freeze, in ISO8601 format"
              },
              "created_at": {
                "description": "The creation time of the removed freeze, in ISO8601 format"
              },
              "status": {
                "type": "string",
                "description": "The processing status of the unfreeze request",
                "readOnly": true,
                "enum": [
                  "freeze_removed"
                ]
              }
            }
          }
        ]
      },
      "PostCardPushProvisioningInput": {
        "required": [
          "initiator"
        ],
        "properties": {
          "wallet_provider": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardWalletProvider"
              }
            ],
            "description": "The wallet provider of the push provisioning request"
          },
          "apple_pay": {
            "description": "Apple Pay specific provisioning request data. Required for `apple_pay` wallet provider.",
            "required": [
              "leaf_cert",
              "subordinate_cert",
              "nonce",
              "nonce_signature"
            ],
            "properties": {
              "encoding": {
                "type": "string",
                "description": "Specifies the encoding of each field in the Apple Pay provisioning request. Defaults to `hex` if unspecified.",
                "enum": [
                  "base64",
                  "hex"
                ]
              },
              "leaf_cert": {
                "type": "string",
                "description": "The leaf certificate returned by the wallet provider that was signed using the subordinate cert. The binary data of this certificate should be hex (case-insensitive) or base64 encoded, as specified by the encoding field"
              },
              "subordinate_cert": {
                "type": "string",
                "description": "The subordinate certificate returned by the wallet provider that was signed using the wallet provider's Certificate Authority (CA) certificate. The binary data of this certificate should be hex (case-insensitive) or base64 encoded, as specified by the encoding field"
              },
              "nonce": {
                "type": "string",
                "description": "The nonce value returned by Apple Pay. It should be hex (case-insensitive) or base64 encoded, as specified by the encoding field"
              },
              "nonce_signature": {
                "type": "string",
                "description": "The nonce signature value returned by Apple Pay. It should be hex (case-insensitive) or base64 encoded, as specified by the encoding field"
              }
            }
          },
          "google_pay": {
            "description": "Google Pay specific push provisioning request data. Required for `google_pay` wallet provider.",
            "required": [
              "client_wallet_account_id",
              "client_device_id"
            ],
            "properties": {
              "client_wallet_account_id": {
                "type": "string",
                "description": "Value returned by Google Pay for use with Visa"
              },
              "client_device_id": {
                "type": "string",
                "description": "Value returned by Google Pay for use with Visa"
              }
            }
          }
        }
      },
      "CardPushProvisioningResponse": {
        "description": "The mobile wallet push provisioning response",
        "required": [
          "card_account_id",
          "initiator",
          "reason",
          "created_at",
          "status"
        ],
        "properties": {
          "wallet_provider": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardWalletProvider"
              }
            ],
            "description": "The wallet provider of the push provisioning request"
          },
          "apple_pay": {
            "description": "The detailed provisioning request data that need to be sent directly to the `apple_pay` wallet provider",
            "properties": {
              "activation_data": {
                "type": "string",
                "description": "The request's activation data. This field is always Base64-encoded"
              },
              "encrypted_pass_data": {
                "type": "string",
                "description": "An encrypted JSON file containing the sensitive information needed to add a card to a wallet. This field is always Base64-encoded"
              },
              "ephemeral_public_key": {
                "type": "string",
                "description": "A generated key that is combined with a private key. This field is always Base64-encoded"
              }
            }
          },
          "google_pay": {
            "description": "The detailed provisioning request data that need to be sent directly to the `google_pay` wallet provider",
            "properties": {
              "opaque_payment_card": {
                "type": "string",
                "description": "A Base64-encoded or Base64url-encoded opaque string"
              }
            }
          }
        }
      },
      "PostCardAccountEphemeralKeyInput": {
        "description": "The request to create an ephemeral key to reveal card details",
        "required": [
          "client_nonce"
        ],
        "properties": {
          "client_nonce": {
            "type": "string",
            "description": "The client-side nonce that will be associated with the ephemeral key. This must be generated from the client secret and timestamp as per the [integration guide](https://apidocs.bridge.xyz/docs/safely-reveal-card-details-to-customers) in order to be usable for revealing card details."
          }
        }
      },
      "CardAccountEphemeralKeyResponse": {
        "description": "A response containing the ephemeral key to reveal card details",
        "required": [
          "ephemeral_key"
        ],
        "properties": {
          "ephemeral_key": {
            "type": "string",
            "description": "The ephemeral key to reveal card details. This key is only valid for 5 minutes. Your backend should return this key to the frontend instead of directly using it, to avoid putting your backend in PCI compliance scope. Please see the integration guide on [safely revealing card details](/platform/cards/additional/safely-reveal-card-details) for more information."
          }
        }
      },
      "CardAccount": {
        "type": "object",
        "required": [
          "id",
          "customer_id",
          "status",
          "balances",
          "freezes"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Id",
            "description": "ID of the card account"
          },
          "client_reference_id": {
            "type": "string",
            "description": "The client-provided reference ID"
          },
          "customer_id": {
            "$ref": "#/components/schemas/Id",
            "description": "ID of the customer"
          },
          "cardholder_name": {
            "type": "object",
            "$ref": "#/components/schemas/CardholderName"
          },
          "card_image_url": {
            "type": "string",
            "deprecated": true,
            "description": "An expiring URL used to render the card image, with a validity period of 5 minutes. _Note:_ This field will be deprecated in favor of the more secure and scalable card details API. Please see the integration guide on [safely revealing card details](https://apidocs.bridge.xyz/docs/safely-reveal-card-details-to-customers) for more information."
          },
          "status": {
            "type": "string",
            "description": "Status of the card account",
            "enum": [
              "active",
              "pending",
              "inactive",
              "frozen"
            ]
          },
          "status_reason": {
            "type": "string",
            "description": "An optional detailed explanation for the card account status"
          },
          "card_details": {
            "type": "object",
            "$ref": "#/components/schemas/CardDetails"
          },
          "balances": {
            "type": "object",
            "$ref": "#/components/schemas/CardBalances"
          },
          "freezes": {
            "type": "array",
            "minItems": 0,
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/CardFreeze"
                }
              ],
              "properties": {
                "initiator": {
                  "description": "The party that initiated the freeze. A freeze can be initiated by the customer, the developer, or Bridge. Only one freeze per initiator can be active at a time. If a new freeze is initiated by the same party, it overwrites any existing freeze",
                  "enum": [
                    "bridge"
                  ]
                }
              }
            }
          },
          "stripe_card_id": {
            "type": "string",
            "nullable": true,
            "description": "The [Stripe Issuing card ID](https://docs.stripe.com/api/issuing/cards/object?issuing_card_object-id), if the card account is backed by Stripe Issuing"
          },
          "crypto_account": {
            "type": "object",
            "$ref": "#/components/schemas/CardCryptoAccount"
          },
          "funding_instructions": {
            "$ref": "#/components/schemas/CardAccountFundingInstructions"
          },
          "additional_funding_instructions": {
            "type": "array",
            "minItems": 0,
            "items": {
              "$ref": "#/components/schemas/CardAccountFundingInstructions"
            }
          }
        }
      },
      "CardBalances": {
        "description": "Balances of the card account",
        "type": "object",
        "required": [
          "available",
          "hold"
        ],
        "properties": {
          "available": {
            "description": "The available balance of the card account",
            "type": "object",
            "$ref": "#/components/schemas/CardBalance"
          },
          "hold": {
            "description": "The balance tha is placed on hold for pending authorizations",
            "type": "object",
            "$ref": "#/components/schemas/CardBalance"
          }
        }
      },
      "CardBalance": {
        "required": [
          "amount",
          "currency"
        ],
        "properties": {
          "amount": {
            "type": "string"
          },
          "currency": {
            "$ref": "#/components/schemas/CardsCryptoCurrency"
          }
        }
      },
      "CardDetails": {
        "description": "Details of the issued card. This object contains enough payment card details to identify the issued card, but only provides the last four digits of the card number to maintain security.",
        "type": "object",
        "required": [
          "last_4",
          "expiry",
          "bin"
        ],
        "properties": {
          "last_4": {
            "description": "The last four digits of the card number",
            "type": "string",
            "example": "1264"
          },
          "expiry": {
            "description": "The expiration date of the card, in MM/YY format",
            "type": "string",
            "example": "10/24"
          },
          "bin": {
            "description": "The BIN of the card, including the first 8 digits",
            "type": "string",
            "example": "44325280"
          },
          "pin_status": {
            "type": "string",
            "description": "The current status of the card PIN",
            "enum": [
              "not_set",
              "ok"
            ]
          }
        }
      },
      "CardholderName": {
        "description": "The name of the cardholder associated to the card. By default, this will be the name of the associated customer. To override the cardholder name, you can contact Bridge support.",
        "type": "object",
        "required": [
          "first_name",
          "last_name"
        ],
        "properties": {
          "first_name": {
            "type": "string"
          },
          "middle_name": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          }
        }
      },
      "CardFreezeInitiator": {
        "type": "string",
        "description": "The party that initiated the freeze. A freeze can be initiated by either the customer or developer. Only one freeze per initiator can be active at a time. If a new freeze is initiated by the same party, it overwrites any existing freeze",
        "enum": [
          "developer",
          "customer"
        ]
      },
      "CardFreezeReason": {
        "type": "string",
        "description": "The reason of the freeze",
        "enum": [
          "lost_or_stolen",
          "suspicious_activity",
          "planned_inactivity",
          "suspected_fraud",
          "other"
        ]
      },
      "CardFreeze": {
        "description": "Card freeze",
        "required": [
          "card_account_id",
          "initiator",
          "reason",
          "created_at",
          "status"
        ],
        "properties": {
          "card_account_id": {
            "$ref": "#/components/schemas/Id",
            "description": "Card account ID"
          },
          "initiator": {
            "$ref": "#/components/schemas/CardFreezeInitiator"
          },
          "reason": {
            "$ref": "#/components/schemas/CardFreezeReason"
          },
          "reason_detail": {
            "type": "string",
            "description": "A more detailed reason for the freeze"
          },
          "starting_at": {
            "type": "string",
            "description": "The start time of the freeze, in ISO8601 format"
          },
          "ending_at": {
            "type": "string",
            "description": "The end time of the freeze, in ISO8601 format"
          },
          "created_at": {
            "type": "string",
            "description": "The creation time of the freeze, in ISO8601 format",
            "readOnly": true
          }
        }
      },
      "CardCryptoAccount": {
        "description": "The crypto account for a self-custodial card account. This field is not supported for a Bridge-custodial card funding setup (note that if you are on cards trial, you are automatically on a custodial funding setup).",
        "required": [
          "type",
          "address"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of the crypto account",
            "enum": [
              "standard",
              "bridge_wallet",
              "noncustodial_ata"
            ]
          },
          "address": {
            "type": "string",
            "description": "The public address of the crypto account"
          }
        }
      },
      "CardAccountFundingInstructions": {
        "description": "Funding instructions applicable only to the top-up card funding strategy, which is configured at the developer level",
        "required": [
          "currency",
          "chain",
          "address"
        ],
        "properties": {
          "currency": {
            "$ref": "#/components/schemas/CardsCryptoCurrency",
            "description": "The crypto currency used by the card account"
          },
          "chain": {
            "$ref": "#/components/schemas/OfframpChainForCards",
            "description": "The chain used by the card account"
          },
          "address": {
            "type": "string",
            "description": "The deposit address provided by Bridge to fund the card account"
          },
          "memo": {
            "type": "string",
            "description": "If present, this is the message that the customer MUST include in their on-chain funding transfers. It is only applicable to memo-based blockchains such as Stellar and Tron"
          }
        }
      },
      "CardWalletProvider": {
        "type": "string",
        "description": "The mobile wallet provider",
        "enum": [
          "apple_pay",
          "google_pay"
        ]
      },
      "CardAuthorization": {
        "description": "A pending card authorization",
        "required": [
          "id",
          "amount",
          "currency",
          "merchant_category_code",
          "description",
          "authorized_at",
          "details"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Id",
            "description": "ID of the pending authorization"
          },
          "amount": {
            "type": "string",
            "description": "The amount represented as a decimal string"
          },
          "billing_amount": {
            "type": "string",
            "description": "The billing amount, represented as a decimal string. The billing amount is the amount of the transaction excluding any additional hold. This amount should be present on all purchases, but will only differ from the amount field for some merchant categories in which an upcharge is involved (e.g. gas stations, hotels)."
          },
          "currency": {
            "$ref": "#/components/schemas/FiatCurrency",
            "description": "The currency of the transaction"
          },
          "merchant_category_code": {
            "type": "string",
            "description": "A merchant category code for card transactions (e.g., '5712')"
          },
          "description": {
            "type": "string",
            "description": "A description of the card transaction, including the merchant's name and location information"
          },
          "authorized_at": {
            "type": "string",
            "description": "Timestamp when the card transaction was authorized, in ISO8601 format"
          },
          "details": {
            "properties": {
              "vendor_auth_id": {
                "type": "string",
                "description": "ID in the vendor system used to identify this authorized card transaction"
              }
            }
          },
          "local_transaction_details": {
            "$ref": "#/components/schemas/CardLocalTransactionDetails"
          },
          "verification_data": {
            "$ref": "#/components/schemas/CardAuthorizationVerificationData"
          },
          "stripe_issuing_authorization_id": {
            "type": "string",
            "nullable": true,
            "description": "The [Stripe Issuing authorization ID](https://docs.stripe.com/api/issuing/authorizations/object#issuing_authorization_object-id), if the authorization is backed by Stripe Issuing"
          },
          "stripe_authorization_code": {
            "type": "string",
            "nullable": true,
            "description": "The network-assigned [authorization code](https://docs.corp.stripe.com/api/issuing/authorizations/object#issuing_authorization_object-request_history-authorization_code) for this request, if the authorization is backed by Stripe Issuing"
          }
        }
      },
      "CardTransaction": {
        "description": "A posted transaction",
        "required": [
          "id",
          "category",
          "amount",
          "currency",
          "description",
          "posted_at"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Id",
            "description": "ID of the transaction"
          },
          "card_account_id": {
            "$ref": "#/components/schemas/Id",
            "description": "ID of the card account associated to this transaction"
          },
          "customer_id": {
            "$ref": "#/components/schemas/Id",
            "description": "ID of the customer of the card account associated to this transaction"
          },
          "category": {
            "type": "string",
            "description": "The category of the transaction",
            "enum": [
              "adjustment",
              "fee",
              "purchase",
              "refund",
              "crypto_funding",
              "crypto_return",
              "crypto_withdrawal"
            ]
          },
          "amount": {
            "type": "string",
            "description": "The amount represented as a decimal string"
          },
          "billing_amount": {
            "type": "string",
            "description": "The billing amount, represented as a decimal string. The billing amount is the amount of the transaction excluding any additional hold. This amount should be present on all purchases, but will only differ from the amount field for some merchant categories in which an upcharge is involved (e.g. gas stations, hotels)."
          },
          "currency": {
            "type": "string",
            "description": "The currency of the transaction",
            "enum": [
              "usd",
              "usdc"
            ]
          },
          "merchant_category_code": {
            "type": "string",
            "description": "The merchant category code, if applicable (e.g., '5712'). Always returned for transactions with category `purchase` or `refund`"
          },
          "merchant_name": {
            "type": "string",
            "description": "The merchant name, if applicable. Always returned for transactions with category `purchase` or `refund`"
          },
          "merchant_location": {
            "type": "string",
            "description": "The merchant location, if applicable. Always returned for transactions with category `purchase` or `refund`"
          },
          "description": {
            "type": "string",
            "description": "The transaction description. It includes the merchant's name and location information for card transactions"
          },
          "local_transaction_details": {
            "$ref": "#/components/schemas/CardLocalTransactionDetails"
          },
          "posted_at": {
            "type": "string",
            "description": "Timestamp when the transaction was posted, in ISO8601 format"
          },
          "authorized_at": {
            "type": "string",
            "description": "Timestamp when the transaction was authorized, in ISO8601 format. Applicable only to transactions with category `purchase` or `refund` and always returned when applicable"
          },
          "status": {
            "type": "string",
            "description": "The status of the transaction",
            "enum": [
              "pending",
              "posted"
            ]
          },
          "crypto_transaction_details": {
            "$ref": "#/components/schemas/CardCryptoTransactionDetails"
          },
          "related_transaction_ids": {
            "type": "array",
            "description": "IDs of related card transactions",
            "items": {
              "type": "string"
            }
          },
          "stripe_issuing_transaction_id": {
            "type": "string",
            "nullable": true,
            "description": "The [Stripe Issuing transaction ID](https://docs.stripe.com/api/issuing/transactions/object?issuing_transaction_object-id), if the transaction is backed by Stripe Issuing"
          }
        }
      },
      "CardCryptoTransactionDetails": {
        "description": "Details of the underlying crypto transaction for crypto funding, withdrawal, or return transactions",
        "properties": {
          "from_address": {
            "type": "string",
            "description": "The source blockchain address of the crypto transaction. Present for crypto funding transactions"
          },
          "to_address": {
            "type": "string",
            "description": "The destination blockchain address of the crypto transaction"
          },
          "tx_hash": {
            "type": "string",
            "description": "The blockchain transaction hash"
          },
          "chain": {
            "type": "string",
            "description": "The blockchain network on which the transaction occurred",
            "enum": [
              "arbitrum",
              "avalanche_c_chain",
              "base",
              "ethereum",
              "optimism",
              "polygon",
              "solana",
              "stellar",
              "tron"
            ]
          },
          "memo": {
            "type": "string",
            "description": "An optional memo associated with the crypto transaction, if applicable"
          }
        }
      },
      "CardLocalTransactionDetails": {
        "description": "Details of a transaction processed in a local currency other than USD, with currency conversion applied",
        "required": [
          "amount",
          "currency",
          "exchange_rate"
        ],
        "properties": {
          "amount": {
            "type": "string",
            "description": "The amount in local currency, represented as a decimal string"
          },
          "currency": {
            "type": "string",
            "description": "The transaction's local currency"
          },
          "exchange_rate": {
            "type": "string",
            "description": "The exchange rate applied to convert the local currency amount into USD for the transaction"
          }
        }
      },
      "CardAuthorizationVerificationData": {
        "description": "Information on verifications that were performed on information that the cardholder provided to the merchant.",
        "type": "object",
        "properties": {
          "address_check": {
            "type": "string",
            "description": "Whether the cardholder provided an address and if it matched the cardholder’s address on file.",
            "enum": [
              "match",
              "not_provided",
              "mismatch"
            ]
          },
          "address_postal_code_check": {
            "type": "string",
            "description": "Whether the cardholder provided a postal code and if it matched the cardholder’s postal code on file.",
            "enum": [
              "match",
              "not_provided",
              "mismatch"
            ]
          },
          "cvv_check": {
            "type": "string",
            "description": "Whether the cardholder provided a CVV and if it matched the CVV on record.",
            "enum": [
              "match",
              "not_provided",
              "mismatch"
            ]
          },
          "pin_check": {
            "type": "string",
            "description": "Whether the cardholder provided a PIN and if it matched the PIN on record.",
            "enum": [
              "verified",
              "failed",
              "locked",
              "not_set",
              "blocked",
              "no_pin_passed",
              "unknown"
            ]
          },
          "three_d_secure_check": {
            "type": "string",
            "description": "The results of the 3DS authentication attempt for this authorization, if applicable.",
            "enum": [
              "attempt_acknowledged",
              "authenticated",
              "failed",
              "required"
            ]
          }
        }
      },
      "CardWithdrawalDestination": {
        "required": [
          "chain",
          "address"
        ],
        "properties": {
          "chain": {
            "type": "string",
            "description": "The chain of the wallet the withdrawn crypto funds should be transferred to"
          },
          "address": {
            "type": "string",
            "description": "The address of the wallet the withdrawn crypto funds should be transferred to"
          },
          "memo": {
            "type": "string",
            "description": "The memo to attach to the withdrawal transaction. Will be transmitted for blockchains that support memos only."
          },
          "tx_hash": {
            "type": "string",
            "description": "The crypto transaction hash for the withdrawal once it's confirmed on the chain",
            "readOnly": true
          },
          "gas_fee": {
            "$ref": "#/components/schemas/GasFee",
            "description": "The gas fee for the withdrawal transaction. Note that this is the representation of the native gas fee of the onchain transaction, which may be different from the fiat-converted gas fee charged on the invoice."
          }
        }
      },
      "GasFee": {
        "description": "The gas fee for a crypto transaction",
        "required": [
          "amount",
          "currency"
        ],
        "properties": {
          "amount": {
            "type": "string",
            "description": "The amount of the gas fee represented as a decimal string",
            "readOnly": true
          },
          "currency": {
            "type": "string",
            "description": "The currency of the gas fee.",
            "readOnly": true
          }
        }
      },
      "CardSpendingLimit": {
        "description": "A spending limit for a card account",
        "required": [
          "period",
          "total_amount",
          "remaining_amount"
        ],
        "properties": {
          "period": {
            "type": "string",
            "description": "The period of the spending limit",
            "enum": [
              "daily",
              "trial_lifetime"
            ]
          },
          "timezone": {
            "type": "string",
            "description": "The timezone of the spending limit, only applicable to spending limits that have a `next_reset_at`"
          },
          "next_reset_at": {
            "type": "string",
            "description": "The next reset time of the spending limit, in ISO8601 format"
          },
          "total_amount": {
            "type": "string",
            "description": "The total amount of the spending limit"
          },
          "remaining_amount": {
            "type": "string",
            "description": "The remaining amount of the spending limit"
          },
          "currency": {
            "$ref": "#/components/schemas/FiatCurrency",
            "description": "The currency of the spending limit"
          }
        }
      },
      "PostCardAccountDepositAddressInput": {
        "description": "The details of the new deposit address to be provisioned.",
        "required": [
          "chain"
        ],
        "properties": {
          "chain": {
            "type": "string",
            "description": "The chain to provision the new deposit address on.",
            "$ref": "#/components/schemas/OfframpChainForCards"
          }
        }
      },
      "CardWithdrawal": {
        "description": "A card funds withdrawal",
        "required": [
          "id",
          "card_account_id",
          "customer_id",
          "amount",
          "currency",
          "destination",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Id",
            "description": "ID of the withdrawal",
            "readOnly": true
          },
          "card_account_id": {
            "$ref": "#/components/schemas/Id",
            "description": "ID of the card account associated with the withdrawal",
            "readOnly": true
          },
          "customer_id": {
            "$ref": "#/components/schemas/Id",
            "description": "ID of the customer who owns the card account",
            "readOnly": true
          },
          "amount": {
            "type": "string",
            "description": "The amount represented as a decimal string"
          },
          "type": {
            "type": "string",
            "description": "The type of the withdrawal. Defaults to `top_up_balance_withdrawal`.",
            "enum": [
              "top_up_balance_withdrawal",
              "fee"
            ]
          },
          "currency": {
            "$ref": "#/components/schemas/CardsCryptoCurrency",
            "description": "The currency of the withdrawal, which is the crypto currency on the card account",
            "readOnly": true
          },
          "destination": {
            "$ref": "#/components/schemas/CardWithdrawalDestination"
          },
          "client_note": {
            "type": "string",
            "description": "An optional client-provided note for the withdrawal"
          },
          "created_at": {
            "type": "string",
            "description": "Timestamp when the withdrawal was created, in ISO8601 format",
            "readOnly": true
          },
          "updated_at": {
            "type": "string",
            "description": "Timestamp when the withdrawal was last updated, in ISO8601 format",
            "readOnly": true
          }
        }
      },
      "CardPinUpdateResponse": {
        "description": "Response containing a secure URL to update a card's PIN",
        "type": "object",
        "required": [
          "url"
        ],
        "properties": {
          "url": {
            "type": "string",
            "format": "uri",
            "description": "Single-use, time-limited URL that can be used to securely update the card PIN in an iframe",
            "example": "https://secure.example.com/update-pin?token=xyz789"
          }
        }
      },
      "CardProgramSummary": {
        "description": "The summary of a card program for a given period",
        "type": "object",
        "properties": {
          "period": {
            "type": "string",
            "description": "The period type of the card program summary",
            "enum": [
              "year",
              "month",
              "week",
              "day",
              "lifetime"
            ]
          },
          "period_starting": {
            "type": "string",
            "description": "The starting date of the period, in ISO8601 format",
            "example": "2025-01-01"
          },
          "cards_provisioned_count": {
            "type": "integer",
            "description": "The number of cards provisioned during the period",
            "example": 1123
          },
          "card_transactions_count": {
            "type": "integer",
            "description": "The number of card transactions during the period, excluding refunds.",
            "example": 31415
          },
          "provisioned_cards_by_country": {
            "type": "object",
            "description": "The number of cards provisioned during the period, by issuing country. The key is the ISO-3166-1 alpha-3 country code, and the value is the number of cards provisioned for that issuing country.",
            "example": {
              "USA": 123,
              "MEX": 45
            }
          },
          "transaction_volume": {
            "type": "string",
            "description": "The total transaction volume during the period, in USD",
            "example": "-100.0"
          },
          "transacting_card_accounts_count": {
            "type": "integer",
            "description": "The number of card accounts that transacted during the period",
            "example": 2047
          },
          "card_transactions_count_by_country": {
            "type": "object",
            "description": "The number of card transactions during the period, by merchant country. The key is the ISO-3166-1 alpha-3 country code, and the value is the number of card transactions for that merchant country.",
            "example": {
              "USA": 74,
              "MEX": 55
            }
          },
          "transaction_volume_by_country": {
            "type": "object",
            "description": "The transaction volume during the period, by merchant country. The key is the ISO-3166-1 alpha-3 country code, and the value is the transaction volume for that merchant country.",
            "example": {
              "USA": "7.04",
              "MEX": "5.0"
            }
          },
          "transacting_cards_by_country": {
            "type": "object",
            "description": "The number of cards that transacted during the period, by issuing country. The key is the ISO-3166-1 alpha-3 country code, and the value is the number of cards transacted for that issuing country.",
            "example": {
              "USA": 123,
              "MEX": 45
            }
          }
        }
      },
      "CardDesigns": {
        "description": "A listing of the designs that you can use to issue a card with.",
        "type": "object",
        "properties": {
          "card_designs": {
            "type": "array",
            "description": "A listing of the designs that you can use to issue a card with.",
            "items": {
              "type": "object",
              "properties": {
                "shortname": {
                  "type": "string",
                  "description": "The shortname of the card design. You can pass this into the `card_design_shortname` parameter when creating a card account."
                },
                "type": {
                  "type": "string",
                  "description": "The type of card that the design applies to",
                  "enum": [
                    "virtual",
                    "physical"
                  ]
                }
              }
            }
          },
          "default_card_design_shortname": {
            "type": "string",
            "description": "The shortname of the default card design"
          }
        }
      },
      "CustomerRewardSummary": {
        "title": "Customer Reward Summary for a given stablecoin",
        "type": "object",
        "properties": {
          "developer_id": {
            "type": "string",
            "description": "The developer ID of the customer"
          },
          "customer_id": {
            "type": "string",
            "description": "The customer ID of the customer"
          },
          "currency": {
            "type": "string",
            "description": "The stablecoin symbol for the reward summary"
          },
          "balance": {
            "type": "string",
            "description": "The balance of the customer in the given stablecoin"
          },
          "rewards": {
            "type": "string",
            "description": "The rewards of the customer in the given stablecoin"
          },
          "updated_at": {
            "type": "string",
            "description": "The timestamp of the last update to the reward summary, in ISO8601 format"
          }
        }
      },
      "DeveloperRewardSummary": {
        "title": "Reward Summary for a given stablecoin",
        "type": "object",
        "properties": {
          "developer_id": {
            "type": "string",
            "description": "The developer ID of the developer"
          },
          "currency": {
            "type": "string",
            "description": "The stablecoin symbol for the reward summary"
          },
          "balance": {
            "type": "string",
            "description": "The balance of the developer in the given stablecoin"
          },
          "rewards": {
            "type": "string",
            "description": "The rewards of the developer in the given stablecoin"
          },
          "updated_at": {
            "type": "string",
            "description": "The timestamp of the last update to the reward summary, in ISO8601 format"
          }
        }
      },
      "CustomerRewardHistory": {
        "title": "Customer Reward History for a given stablecoin",
        "type": "object",
        "properties": {
          "customer_id": {
            "type": "string",
            "description": "The customer ID of the customer"
          },
          "rewards": {
            "type": "array",
            "description": "The rewards of the customer in the given stablecoin",
            "items": {
              "type": "object",
              "properties": {
                "balance": {
                  "type": "string",
                  "description": "The balance of the customer in the given stablecoin"
                },
                "amount": {
                  "type": "string",
                  "description": "The amount of the reward"
                },
                "currency": {
                  "type": "string",
                  "description": "The stablecoin symbol for the reward summary"
                },
                "date": {
                  "type": "string",
                  "description": "The date of the calculated reward"
                }
              }
            }
          }
        }
      },
      "DeveloperRewardHistory": {
        "title": "Developer Daily Reward History",
        "type": "object",
        "properties": {
          "currency": {
            "type": "string",
            "description": "The stablecoin symbol"
          },
          "developer_id": {
            "type": "string",
            "description": "The developer ID"
          },
          "reserves_currency": {
            "type": "string",
            "description": "The denomination currency for all monetary amounts"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "date": {
                  "type": "string",
                  "description": "The reward calculation date (YYYY-MM-DD)"
                },
                "distributed": {
                  "type": "boolean",
                  "description": "Whether rewards for this date have been distributed"
                },
                "total": {
                  "type": "object",
                  "properties": {
                    "aum": {
                      "type": "string",
                      "description": "Developer AUM across all providers"
                    },
                    "developer_rewards": {
                      "type": "string",
                      "description": "Gross rewards (net of premint yield)"
                    },
                    "net_rewards": {
                      "type": "string",
                      "description": "Net rewards after fees"
                    },
                    "bridge_fee_bps": {
                      "type": "string",
                      "description": "Effective fee rate for that day"
                    },
                    "bridge_fee": {
                      "type": "string",
                      "description": "Fee amount for that day"
                    },
                    "annualized_yield_bps": {
                      "type": "string",
                      "description": "Blended annualized yield across providers"
                    }
                  }
                },
                "providers": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "provider": {
                        "type": "string",
                        "description": "Provider identifier"
                      },
                      "aum": {
                        "type": "string",
                        "description": "Developer AUM held at this provider"
                      },
                      "developer_rewards": {
                        "type": "string",
                        "description": "Gross rewards from this provider"
                      },
                      "annualized_yield_bps": {
                        "type": "string",
                        "description": "Annualized yield rate for this provider"
                      }
                    }
                  }
                }
              }
            }
          },
          "pagination": {
            "type": "object",
            "properties": {
              "has_more": {
                "type": "boolean",
                "description": "Whether more pages are available"
              },
              "next_cursor": {
                "type": "string",
                "nullable": true,
                "description": "Cursor for the next page"
              }
            }
          }
        }
      }
    },
    "parameters": {
      "AssociatedPersonIDParameter": {
        "name": "associatedPersonID",
        "in": "path",
        "description": "Unique identifier for an associated person",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/Id"
        }
      },
      "BridgeWalletIDParameter": {
        "name": "bridgeWalletID",
        "in": "path",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/Id"
        }
      },
      "CustomerIDParameter": {
        "name": "customerID",
        "in": "path",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/Id"
        }
      },
      "TemplateIDParameter": {
        "name": "template_id",
        "in": "query",
        "required": false,
        "schema": {
          "$ref": "#/components/schemas/Id"
        },
        "description": "This is a template id. If this is specified, the transfers with the specified template id will be returned."
      },
      "TransferIDParameter": {
        "name": "transferID",
        "in": "path",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/Id"
        }
      },
      "TransferStateParameter": {
        "name": "state",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "awaiting_funds",
            "funds_received",
            "payment_submitted",
            "payment_processed",
            "in_review",
            "kyc_required",
            "kyc_in_review",
            "developer_kyb_required",
            "canceled",
            "error",
            "returned",
            "refund_in_flight",
            "refund_failed",
            "refunded",
            "undeliverable"
          ]
        },
        "description": "Filter transfers by their external state. See [Transfer States](https://apidocs.bridge.xyz/platform/orchestration/transfers/transfer-states) for more details."
      },
      "VirtualAccountIDParameter": {
        "name": "virtualAccountID",
        "in": "path",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/Id"
        }
      },
      "StaticMemoIDParameter": {
        "name": "staticMemoID",
        "in": "path",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/Id"
        }
      },
      "PrefundedAccountIDParameter": {
        "name": "prefundedAccountID",
        "in": "path",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/Id"
        }
      },
      "DeveloperFeeConfigIDParameter": {
        "name": "developerFeeConfigID",
        "in": "path",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/Id"
        }
      },
      "DeveloperFeeConfigStartingAfterParameter": {
        "in": "query",
        "name": "starting_after",
        "schema": {
          "type": "string"
        },
        "description": "This is a developer fee config id. If this is specified, the next page that starts with a developer fee config right AFTER the specified developer fee config id on the developer fee config timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that developer fee configs older than the specified developer fee config id will be returned (shouldn't be set if ending_before is set)"
      },
      "DeveloperFeeConfigEndingBeforeParameter": {
        "in": "query",
        "name": "ending_before",
        "schema": {
          "type": "string"
        },
        "description": "This is a developer fee config id. If this is specified, the previous page that ends with a developer fee config right BEFORE the specified developer fee config id on the developer fee config timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that developer fee configs newer than the specified developer fee config id will be returned (shouldn't be set if starting_after is set)"
      },
      "CustomerIDQueryParameter": {
        "name": "customer_id",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string"
        },
        "description": "If specified, results will be filtered to the given customer_id only"
      },
      "DrainIDQueryParameter": {
        "name": "drain_id",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string"
        },
        "description": "If specified, results will be filtered to the given drain id only"
      },
      "DepositIDQueryParameter": {
        "name": "deposit_id",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string"
        },
        "description": "The deposit id associated with the events. Cannot be passed if deposit_ids is also passed"
      },
      "DepositIDsQueryParameter": {
        "name": "deposit_ids",
        "in": "query",
        "required": false,
        "schema": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "description": "The deposit ids associated with the events. Pass a list of deposit ids like \"deposit_ids[]=id1&deposit_ids[]=id2\". Cannot be passed if deposit_id is also passed"
      },
      "TxHashParameter": {
        "name": "tx_hash",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string"
        },
        "description": "The hash of the transaction"
      },
      "EventTypeParameter": {
        "name": "event_type",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "funds_received",
            "payment_submitted",
            "payment_processed",
            "in_review",
            "refund",
            "refund_in_flight",
            "refund_failed",
            "microdeposit",
            "account_update",
            "deactivation",
            "activation"
          ]
        },
        "description": "Filter history by event type"
      },
      "PayinIDParameter": {
        "name": "payinID",
        "in": "path",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/Id"
        }
      },
      "PayoutIDParameter": {
        "name": "payoutID",
        "in": "path",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/Id"
        }
      },
      "ExternalAccountIDParameter": {
        "name": "externalAccountID",
        "in": "path",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/Id"
        }
      },
      "LiquidationAddressIDParameter": {
        "name": "liquidationAddressID",
        "in": "path",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/Id"
        }
      },
      "IdempotencyKeyParameter": {
        "in": "header",
        "name": "Idempotency-Key",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "CustomerEmailParameter": {
        "in": "query",
        "name": "email",
        "required": false,
        "schema": {
          "type": "string"
        },
        "description": "If included, filters to customers with the given email"
      },
      "LimitParameter": {
        "in": "query",
        "name": "limit",
        "schema": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100,
          "default": 10
        },
        "description": "The number of items to return (min 1, default 10, max 100)"
      },
      "TransferStartingAfterParameter": {
        "in": "query",
        "name": "starting_after",
        "schema": {
          "type": "string"
        },
        "description": "This is a transfer id. If this is specified, the next page that starts with a transfer right AFTER the specified transfer id on the transfer timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that transfers older than the specified transfer id will be returned (shouldn't be set if ending_before is set)"
      },
      "TransferEndingBeforeParameter": {
        "in": "query",
        "name": "ending_before",
        "schema": {
          "type": "string"
        },
        "description": "This is a transfer id. If this is specified, the previous page that ends with a transfer right BEFORE the specified transfer id on the transfer timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that transfers newer than the specified transfer id will be returned (shouldn't be set if starting_after is set)"
      },
      "LiquidationScheduleStartingAfterParameter": {
        "in": "query",
        "name": "starting_after",
        "schema": {
          "type": "string"
        },
        "description": "This is a liquidation address id. If this is specified, the next page that starts with a liquidation address right AFTER the specified liquidation address id on the liquidation address timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that liquidation address older than the specified liquidation address id will be returned (shouldn't be set if ending_before is set)"
      },
      "LiquidationScheduleEndingBeforeParameter": {
        "in": "query",
        "name": "ending_before",
        "schema": {
          "type": "string"
        },
        "description": "This is a liquidation address id. If this is specified, the previous page that ends with a liquidation address right BEFORE the specified liquidation address id on the liquidation address timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that liquidation address newer than the specified liquidation address id will be returned (shouldn't be set if starting_after is set)"
      },
      "StaticMemoStartingAfterParameter": {
        "in": "query",
        "name": "starting_after",
        "schema": {
          "type": "string"
        },
        "description": "This is a static memo id. If this is specified, the next page that starts with a static memo right AFTER the specified static memo id on the static memo timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that static memo older than the specified static memo id will be returned (shouldn't be set if ending_before is set)"
      },
      "StaticMemoEndingBeforeParameter": {
        "in": "query",
        "name": "ending_before",
        "schema": {
          "type": "string"
        },
        "description": "This is a static memo id. If this is specified, the previous page that ends with a static memo right BEFORE the specified static memo id on the static memo timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that static memo newer than the specified static memo id will be returned (shouldn't be set if starting_after is set)"
      },
      "VirtualAccountStartingAfterParameter": {
        "in": "query",
        "name": "starting_after",
        "schema": {
          "type": "string"
        },
        "description": "This is a virtual account id. If this is specified, the next page that starts with a virtual account right AFTER the specified virtual account id on the virtual account timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that virtual account older than the specified virtual account id will be returned (shouldn't be set if ending_before is set)"
      },
      "VirtualAccountEndingBeforeParameter": {
        "in": "query",
        "name": "ending_before",
        "schema": {
          "type": "string"
        },
        "description": "This is a virtual account id. If this is specified, the previous page that ends with a virtual account right BEFORE the specified virtual account id on the virtual account timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that virtual account newer than the specified virtual account id will be returned (shouldn't be set if starting_after is set)"
      },
      "ExternalAccountStartingAfterParameter": {
        "in": "query",
        "name": "starting_after",
        "schema": {
          "type": "string"
        },
        "description": "This is an external account id. If this is specified, the next page that starts with an external account right AFTER the specified external account id on the external account timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that external accounts older than the specified external account id will be returned (shouldn't be set if ending_before is set)"
      },
      "ExternalAccountEndingBeforeParameter": {
        "in": "query",
        "name": "ending_before",
        "schema": {
          "type": "string"
        },
        "description": "This is an external account id. If this is specified, the previous page that ends with an external account right BEFORE the specified external account id on the external account timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that external accounts newer than the specified external account id will be returned (shouldn't be set if starting_after is set)"
      },
      "UpdatedAfterMsParameter": {
        "in": "query",
        "name": "updated_after_ms",
        "schema": {
          "type": "integer"
        },
        "description": "This is a unix timestamp in milliseconds. If this is specified, objects updated AFTER the specified timestamp will be returned"
      },
      "UpdatedBeforeMsParameter": {
        "in": "query",
        "name": "updated_before_ms",
        "schema": {
          "type": "integer"
        },
        "description": "This is a unix timestamp in milliseconds. If this is specified, objects updated BEFORE the specified timestamp will be returned"
      },
      "CustomerStartingAfterParameter": {
        "in": "query",
        "name": "starting_after",
        "schema": {
          "type": "string"
        },
        "description": "This is a customer id. If this is specified, the next page that starts with a customer right AFTER the specified customer id on the customer timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that customers older than the specified customer id will be returned (shouldn't be set if ending_before is set)"
      },
      "CustomerEndingBeforeParameter": {
        "in": "query",
        "name": "ending_before",
        "schema": {
          "type": "string"
        },
        "description": "This is a customer id. If this is specified, the previous page that ends with a customer right BEFORE the specified customer id on the customer timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that customers newer than the specified customer id will be returned (shouldn't be set if starting_after is set)"
      },
      "DrainStartingAfterParameter": {
        "in": "query",
        "name": "starting_after",
        "schema": {
          "type": "string"
        },
        "description": "This is a drain id. If this is specified, the next page that starts with a drain right AFTER the specified drain id on the drain timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that drains older than the specified drain id will be returned (shouldn't be set if ending_before is set)"
      },
      "DrainEndingBeforeParameter": {
        "in": "query",
        "name": "ending_before",
        "schema": {
          "type": "string"
        },
        "description": "This is a drain id. If this is specified, the previous page that ends with a drain right BEFORE the specified drain id on the drain timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that drains newer than the specified drain id will be returned (shouldn't be set if starting_after is set)"
      },
      "EventStartingAfterParameter": {
        "in": "query",
        "name": "starting_after",
        "schema": {
          "type": "string"
        },
        "description": "This is an event id. If this is specified, the next page that starts with an event right AFTER the specified event id on the event timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that events older than the specified event id will be returned (shouldn't be set if ending_before is set)"
      },
      "EventEndingBeforeParameter": {
        "in": "query",
        "name": "ending_before",
        "schema": {
          "type": "string"
        },
        "description": "This is an event id. If this is specified, the previous page that ends with an event right BEFORE the specified event id on the event timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that events newer than the specified event id will be returned (shouldn't be set if starting_after is set)"
      },
      "PrefundedAccountHistoryStartingAfterParameter": {
        "in": "query",
        "name": "starting_after",
        "schema": {
          "type": "string"
        },
        "description": "This is a prefunded event id. If this is specified, the next page that starts with an event right AFTER the specified event id on the event timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that events older than the specified event id will be returned (shouldn't be set if ending_before is set)"
      },
      "PrefundedAccountHistoryEndingBeforeParameter": {
        "in": "query",
        "name": "ending_before",
        "schema": {
          "type": "string"
        },
        "description": "This is a prefunded event id. If this is specified, the previous page that ends with an event right BEFORE the specified event id on the event timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that events newer than the specified event id will be returned (shouldn't be set if starting_after is set)"
      },
      "BridgeWalletHistoryStartingAfterParameter": {
        "in": "query",
        "name": "starting_after",
        "schema": {
          "type": "string"
        },
        "description": "This is a bridge wallet event id. If this is specified, the next page that starts with an event right AFTER the specified event id on the event timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that events older than the specified event id will be returned (shouldn't be set if ending_before is set)"
      },
      "BridgeWalletHistoryEndingBeforeParameter": {
        "in": "query",
        "name": "ending_before",
        "schema": {
          "type": "string"
        },
        "description": "This is a bridge wallet event id. If this is specified, the previous page that ends with an event right BEFORE the specified event id on the event timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that events newer than the specified event id will be returned (shouldn't be set if starting_after is set)"
      },
      "BridgeWalletHistoryStartingTimeParameter": {
        "in": "query",
        "name": "starting_time",
        "required": false,
        "schema": {
          "type": "string"
        },
        "description": "The inclusive starting time in ISO8601 format. If specified, only Bridge Wallet history events created at or after this time are returned. Can be combined with ending_time to form a bounded time window or with an event ID cursor to paginate within the filtered results."
      },
      "BridgeWalletHistoryEndingTimeParameter": {
        "in": "query",
        "name": "ending_time",
        "required": false,
        "schema": {
          "type": "string"
        },
        "description": "The exclusive ending time in ISO8601 format. If specified, only Bridge Wallet history events created before this time are returned. Can be combined with starting_time to form a bounded time window or with an event ID cursor to paginate within the filtered results."
      },
      "WithdrawalStartingAfterParameter": {
        "in": "query",
        "name": "starting_after",
        "schema": {
          "type": "string"
        },
        "description": "This is a withdrawal id. If this is specified, the next page that starts with a withdrawal right AFTER the specified id on the timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that withdrawals older than the specified id will be returned (shouldn't be set if `ending_before` is set)"
      },
      "WithdrawalEndingBeforeParameter": {
        "in": "query",
        "name": "ending_before",
        "schema": {
          "type": "string"
        },
        "description": "This is a withdrawal id. If this is specified, the previous page that ends with a withdrawal right BEFORE the specified id on the timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that withdrawals newer than the specified id will be returned (shouldn't be set if `starting_after` is set)"
      },
      "FundsRequestStartingAfterParameter": {
        "in": "query",
        "name": "starting_after",
        "schema": {
          "type": "string"
        },
        "description": "This is a funds request id. If this is specified, the next page that starts with a funds request right AFTER the specified id on the timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that funds request older than the specified funds request id will be returned (shouldn't be set if `ending_before` is set)"
      },
      "FundsRequestEndingBeforeParameter": {
        "in": "query",
        "name": "ending_before",
        "schema": {
          "type": "string"
        },
        "description": "This is a funds request id. If this is specified, the previous page that ends with a funds request right BEFORE the specified id on the timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that funds request newer than the specified funds request id will be returned (shouldn't be set if `starting_after` is set)"
      },
      "RfiStartingAfterParameter": {
        "in": "query",
        "name": "starting_after",
        "schema": {
          "type": "string"
        },
        "description": "This is an RFI id. If this is specified, the next page that starts with an RFI right AFTER the specified id on the timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that RFIs older than the specified RFI id will be returned (shouldn't be set if `ending_before` is set)"
      },
      "RfiEndingBeforeParameter": {
        "in": "query",
        "name": "ending_before",
        "schema": {
          "type": "string"
        },
        "description": "This is an RFI id. If this is specified, the previous page that ends with an RFI right BEFORE the specified id on the timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that RFIs newer than the specified RFI id will be returned (shouldn't be set if `starting_after` is set)"
      },
      "EndorsementParameter": {
        "in": "query",
        "name": "endorsement",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "sepa",
            "spei",
            "cards"
          ]
        },
        "description": "An endorsement is the approval required for a customer to use a particular product or service offered by Bridge"
      },
      "RedirectUriParameter": {
        "in": "query",
        "name": "redirect_uri",
        "required": false,
        "schema": {
          "type": "string",
          "example": "http%3A%2F%2Fexample.com%2Fredirect"
        },
        "description": "An optional url encoded link that users will be redirected to after completing the hosted KYC flow."
      },
      "DedicatedParameter": {
        "in": "query",
        "name": "dedicated",
        "required": false,
        "schema": {
          "type": "boolean"
        },
        "description": "When `true`, the returned link opens the dedicated hosted flow, which collects only the information still outstanding for the customer (optionally scoped by `endorsement`). If nothing is left to collect, `url` is an empty string."
      },
      "WebhookIDParameter": {
        "name": "webhookID",
        "in": "path",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/Id"
        }
      },
      "KycLinkIDParameter": {
        "name": "kycLinkID",
        "in": "path",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/Id"
        }
      },
      "RfiIDParameter": {
        "name": "rfiID",
        "in": "path",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/Id"
        }
      },
      "RfiStateParameter": {
        "name": "state",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "on_developer",
            "on_bridge",
            "closed"
          ]
        },
        "description": "If specified, results will be filtered to RFIs with the given state only"
      },
      "KycLinksEmailParameter": {
        "name": "email",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string"
        },
        "description": "If included, filters to KYC links for the customer with the given email"
      },
      "KycLinksCustomerIDParameter": {
        "name": "customer_id",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string"
        },
        "description": "If included, filters to KYC links for the customer with the given id"
      },
      "FiatInstructionsActivationStatusParameter": {
        "in": "query",
        "required": false,
        "name": "status",
        "description": "Limit results to those with the given activation status",
        "example": "activated",
        "schema": {
          "$ref": "#/components/schemas/VirtualAccountActivationStatus"
        }
      },
      "CardAccountIDParameter": {
        "name": "cardAccountID",
        "in": "path",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/Id"
        }
      },
      "CardTransactionIDParameter": {
        "name": "transactionID",
        "in": "path",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/Id"
        }
      },
      "CardWithdrawalIDParameter": {
        "name": "cardWithdrawalID",
        "in": "path",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/Id"
        }
      },
      "StartingTimeParameter": {
        "in": "query",
        "name": "starting_time",
        "required": false,
        "schema": {
          "type": "string"
        },
        "description": "The starting time in ISO8601 format. Default is 50 days ago."
      },
      "EndingTimeParameter": {
        "in": "query",
        "name": "ending_time",
        "required": false,
        "schema": {
          "type": "string"
        },
        "description": "The exclusive ending time in ISO8601 format. Default is now."
      },
      "PageSizeParameter": {
        "in": "query",
        "name": "page_size",
        "required": false,
        "schema": {
          "type": "string"
        },
        "description": "The max number of items to return for the requested page, with a max of 200. The default is 100"
      },
      "PageNumberParameter": {
        "in": "query",
        "name": "page",
        "required": false,
        "schema": {
          "type": "string"
        },
        "description": "A specific page to fetch. If omitted, the first page (starting at 1) will be returned. Note that this is only supported for navigating posted transactions."
      },
      "CardAuthorizationStatusParameter": {
        "in": "query",
        "name": "status",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "approved",
            "denied"
          ]
        },
        "style": "form",
        "description": "A status to filter the authorizations by. If not provided, will default to `approved`."
      },
      "CardTransactionStatusParameter": {
        "in": "query",
        "name": "status",
        "required": false,
        "schema": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "pending",
              "posted"
            ]
          }
        },
        "style": "form",
        "explode": true,
        "description": "A status to filter the transactions by. If not provided, will default to `posted`."
      },
      "CardTransactionPaginationTokenParameter": {
        "in": "query",
        "name": "pagination_token",
        "required": false,
        "schema": {
          "type": "string"
        },
        "description": "A pagination token to fetch the next page of transactions."
      },
      "CardTransactionCategoryFamilyParameter": {
        "in": "query",
        "name": "category_family",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "cards",
            "crypto"
          ]
        },
        "description": "A category family to filter the transactions by. If set to `cards`, only card purchase related transactions will be returned. If set to `crypto`, only funding related transactions will be returned.` If not provided, all posted transactions will be returned."
      },
      "CardAuthorizationLimitParameter": {
        "in": "query",
        "name": "limit",
        "schema": {
          "type": "integer"
        },
        "description": "The number of pending card authorizations to return, with a max of 200. The default is 100"
      },
      "CardTransactionLimitParameter": {
        "in": "query",
        "name": "limit",
        "schema": {
          "type": "integer"
        },
        "description": "The number of transactions to return, with a max of 200. The default is 100"
      },
      "CardStatementPeriodParameter": {
        "in": "path",
        "name": "period",
        "required": true,
        "schema": {
          "type": "string"
        },
        "description": "A string in the `YYYYMM` format representing a card statement period"
      },
      "CardProgramSummaryPeriodParameter": {
        "in": "query",
        "name": "period",
        "required": true,
        "schema": {
          "type": "string",
          "enum": [
            "year",
            "month",
            "week",
            "day",
            "lifetime"
          ]
        },
        "description": "The type of period to summarize the card program by. If `lifetime` is specified, the `period_key` is not required."
      },
      "CardProgramSummaryPeriodKeyParameter": {
        "in": "query",
        "name": "period_key",
        "schema": {
          "type": "string"
        },
        "description": "A string to indicate the period to retrieve the card program summary for.\n- For `year`, the period key should be in the `YYYY` format\n- For `month`, the period key should be in the `YYYYMM` format\n- For `week`, the period key should be in the `YYYYMMDD` format indicating the beginning day of the week.\n- For `day`, the period key should be in the `YYYYMMDD` format\n- For `lifetime`, the period key is not required\nNote that if a specific period is specified, this endpoint currently only supports fetching for periods with complete data (e.g. only up to the previous year, month, week, or day).\n"
      },
      "BridgeWalletStartingAfterParameter": {
        "in": "query",
        "name": "starting_after",
        "schema": {
          "type": "string"
        },
        "description": "This is a bridge wallet id. If this is specified, the next page that starts with a bridge wallet right AFTER the specified bridge wallet id on the bridge wallet timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that bridge wallets older than the specified bridge wallet id will be returned (shouldn't be set if ending_before is set)"
      },
      "BridgeWalletEndingBeforeParameter": {
        "in": "query",
        "name": "ending_before",
        "schema": {
          "type": "string"
        },
        "description": "This is a bridge wallet id. If this is specified, the previous page that ends with a bridge wallet right BEFORE the specified bridge wallet id on the bridge wallet timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that bridge wallets newer than the specified bridge wallet id will be returned (shouldn't be set if starting_after is set)"
      },
      "RewardCurrencyParameter": {
        "in": "path",
        "name": "currency",
        "required": true,
        "schema": {
          "type": "string"
        },
        "description": "The stablecoin symbol"
      },
      "FraudParameter": {
        "in": "query",
        "name": "fraud",
        "required": false,
        "schema": {
          "type": "boolean"
        },
        "description": "If this is specified as either \"true\" or \"false\", then only fraudulent or non-fraudulent entries will be returned, respectively"
      },
      "NoticeDateStartingOnParameter": {
        "in": "query",
        "name": "notice_date_starting_on",
        "required": false,
        "schema": {
          "type": "string"
        },
        "description": "A date in the format YYYY-MM-DD. If specified, then only entries with a notice date on or after the provided date, inclusive, will be returned"
      },
      "NoticeDateEndingOnParameter": {
        "in": "query",
        "name": "notice_date_ending_on",
        "required": false,
        "schema": {
          "type": "string"
        },
        "description": "A date in the format YYYY-MM-DD. If specified, then only entries with a notice date on or before the provided date, inclusive, will be returned"
      }
    },
    "responses": {
      "BridgeWalletHistoryResponse": {
        "description": "List of transactions for this Bridge Wallet",
        "content": {
          "application/json": {
            "schema": {
              "title": "Bridge Wallet History",
              "type": "object",
              "required": [
                "count",
                "data"
              ],
              "properties": {
                "count": {
                  "type": "integer",
                  "description": "The number of events returned"
                },
                "data": {
                  "type": "array",
                  "minItems": 0,
                  "items": {
                    "$ref": "#/components/schemas/BridgeWalletEventResponse"
                  }
                }
              }
            },
            "examples": {
              "WithdrawalBridgeWalletEvent": {
                "$ref": "#/components/examples/WithdrawalBridgeWalletEvent"
              },
              "DepositDrainBridgeWalletEvent": {
                "$ref": "#/components/examples/DepositDrainBridgeWalletEvent"
              },
              "DepositStaticMemoEventBridgeWalletEvent": {
                "$ref": "#/components/examples/DepositStaticMemoEventBridgeWalletEvent"
              },
              "DepositVirtualAccountEventBridgeWalletEvent": {
                "$ref": "#/components/examples/DepositVirtualAccountEventBridgeWalletEvent"
              },
              "DepositTransferBridgeWalletEvent": {
                "$ref": "#/components/examples/DepositTransferBridgeWalletEvent"
              },
              "DirectDepositBridgeWalletEvent": {
                "$ref": "#/components/examples/DirectDepositBridgeWalletEvent"
              },
              "ReturnBridgeWalletEvent": {
                "$ref": "#/components/examples/ReturnBridgeWalletEvent"
              },
              "UndeliverableBridgeWalletEvent": {
                "$ref": "#/components/examples/UndeliverableBridgeWalletEvent"
              },
              "CardSpendBridgeWalletEvent": {
                "$ref": "#/components/examples/CardSpendBridgeWalletEvent"
              },
              "CardRefundBridgeWalletEvent": {
                "$ref": "#/components/examples/CardRefundBridgeWalletEvent"
              }
            }
          }
        }
      },
      "BadRequestError": {
        "description": "Request containing missing or invalid parameters.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "examples": {
              "BadCustomerRequestErrorExample": {
                "summary": "Bad customer request",
                "value": {
                  "code": "bad_customer_request",
                  "message": "fields missing from customer body.",
                  "name": "first_name,ssn"
                }
              }
            }
          }
        }
      },
      "DeveloperFeeConfigBadRequestError": {
        "description": "Request containing missing or invalid fee config parameters.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "examples": {
              "InvalidDefaultFeePercentageErrorExample": {
                "summary": "Invalid default_fee_percentage",
                "value": {
                  "code": "bad_request",
                  "message": "default_fee_percentage must be between [0.01, 100)"
                }
              },
              "InvalidSourceAssetFeeCurrencyErrorExample": {
                "summary": "Unrecognized source_asset_fee currency",
                "value": {
                  "code": "bad_request",
                  "message": "unrecognized currency: xyz"
                }
              }
            }
          }
        }
      },
      "ResourceStateConflictError": {
        "description": "The requested resource is temporarily in a conflicting state. Retry the same request later with the same idempotency key.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "examples": {
              "ResourceStateConflictErrorExample": {
                "summary": "Balance lock contention while creating a transfer",
                "value": {
                  "code": "resource_state_conflict",
                  "message": "Another transfer or balance update is currently in progress for this funding source. Please retry this request."
                }
              }
            }
          }
        }
      },
      "TransferAmlError": {
        "description": "The transfer has failed due to an AML violation (anti-money laundering).  Reach out to Bridge for more information",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "examples": {
              "TransferAmlErrorExample": {
                "summary": "An AML violation error response",
                "value": {
                  "code": "aml_violation",
                  "message": "Failed AML Screening"
                }
              }
            }
          }
        }
      },
      "UnverifiableInputError": {
        "description": "Request parameters not verified",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "NotFoundError": {
        "description": "No resource found",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "examples": {
              "NotFoundErrorExample": {
                "summary": "Invalid customer id",
                "value": {
                  "code": "Invalid",
                  "message": "Unknown customer id"
                }
              }
            }
          }
        }
      },
      "DeveloperFeeConfigNotFoundError": {
        "description": "No Developer Fee Config found for the given ID",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "examples": {
              "NotFoundErrorExample": {
                "summary": "Unknown developer fee config id",
                "value": {
                  "code": "not_found",
                  "message": "Entity not found."
                }
              }
            }
          }
        }
      },
      "UnexpectedError": {
        "description": "Unexpected error. User may try and send the request again.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "examples": {
              "UnexpectedError": {
                "summary": "An unexpected error",
                "value": {
                  "errors": [
                    {
                      "code": "unexpected",
                      "message": "An expected error occurred, you may try again later"
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "AuthenticationError": {
        "description": "Missing or invalid API key",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "examples": {
              "MissingTokenError": {
                "summary": "No Api-Key header",
                "description": "The header may be missing or misspelled.",
                "value": {
                  "code": "required",
                  "location": "header",
                  "name": "Api-Key",
                  "message": "Missing Api-Key header"
                }
              },
              "InvalidTokenError": {
                "summary": "Invalid key in Api-Key header",
                "value": {
                  "code": "invalid",
                  "location": "header",
                  "name": "Api-Key",
                  "message": "Invalid Api-Key header"
                }
              }
            }
          }
        }
      },
      "DeveloperFeeConfigAuthenticationError": {
        "description": "Missing or invalid API key, or the Developer Fees beta has not been enabled for this developer account",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "examples": {
              "MissingTokenError": {
                "summary": "No Api-Key header",
                "description": "The header may be missing or misspelled.",
                "value": {
                  "code": "required",
                  "location": "header",
                  "name": "Api-Key",
                  "message": "Missing Api-Key header"
                }
              },
              "InvalidTokenError": {
                "summary": "Invalid key in Api-Key header",
                "value": {
                  "code": "invalid",
                  "location": "header",
                  "name": "Api-Key",
                  "message": "Invalid Api-Key header"
                }
              },
              "NotAllowedError": {
                "summary": "Developer Fees beta not enabled",
                "description": "The Developer Fees beta has not been enabled for this developer account. Contact Bridge to request access.",
                "value": {
                  "code": "not_allowed",
                  "message": "This endpoint has not been enabled for your account, please reach out for more details"
                }
              }
            }
          }
        }
      },
      "BadExternalAccountUpdateError": {
        "description": "Request containing missing or invalid parameters.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "examples": {
              "BeneficiaryAddressAlreadyExistsExample": {
                "summary": "Beneficiary address already exists",
                "value": {
                  "code": "invalid_parameters",
                  "message": "Please resubmit the following parameters that are either missing or invalid.",
                  "source": {
                    "key": {
                      "address": "Beneficiary address already exists"
                    }
                  }
                }
              },
              "InvalidrequestExample": {
                "summary": "Bad External Account request",
                "value": {
                  "code": "invalid_parameters",
                  "message": "Please resubmit the following parameters that are either missing or invalid.",
                  "source": {
                    "key": {
                      "address.city": "must be set"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "BadExternalAccountReactivateError": {
        "description": "Request containing missing or invalid parameters.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "examples": {
              "ExternalAccountAlreadyActiveExample": {
                "summary": "External account already active",
                "value": {
                  "code": "invalid_parameters",
                  "message": "Please resubmit the following parameters that are either missing or invalid.",
                  "source": {
                    "key": {
                      "status": "External account already active"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "securitySchemes": {
      "ApiKey": {
        "type": "apiKey",
        "name": "Api-Key",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "ApiKey": []
    }
  ]
}
