---
description: "This endpoint initiates an on-chain cryptocurrency withdrawal."
title: "Create Withdraw Transaction"
---

# Create Withdraw Transaction

> This endpoint initiates an on-chain cryptocurrency withdrawal.

```http
POST /transactions/withdraw
```

- `https://api.sandbox.noah.com/v1/transactions/withdraw` — V1 Sandbox Server
- `https://api.noah.com/v1/transactions/withdraw` — V1 Production Server

## Authentication

- `X-Api-Key`: Your Noah API key. Required on all requests. See [API Keys](/api-concepts/authentication/api).
- `Api-Signature`: Digitally signed JWT used to verify request authenticity. Optional in sandbox when your API key has no associated signing public key; required in production for all requests. If sent, the signature is always validated. See [Request Signing](/api-concepts/authentication/signing).

## Request body

### `application/json`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `(body)` | object | Yes | Request to initiate an on-chain cryptocurrency withdrawal. |
| `CryptoCurrency` | string | Yes | Cryptocurrency: \| Environment \| BTC \| ETH \| USDC \| \|------------\|-----\|-------\|------\| \| Sandbox \| BTC_TEST \| ETH_TEST_SEPOLIA \| USDC_TEST \| \| Production \| BTC \| ETH \| USDC \| |
| `Network` | string | Yes | Payments network (prod/sandbox): * Base/BaseTestSepolia * Bitcoin/BitcoinTest * Celo/CeloTestSepolia * Ethereum/EthereumTestSepolia * FlowEvm/FlowEvmTest * Gnosis/GnosisTestChiado * PolygonPos/PolygonTestAmoy * Solana/SolanaDevnet * OffNetwork/OffNetwork |
| `Amount` | string | Yes | Amount received by the beneficiary at the destination address. When GrossAmount is true, this is instead the gross amount debited from the account (network fee included). (length 1-38; pattern `^[+]?([.]\d+\|\d+[.]?\d*)$`) |
| `DestinationAddress` | object | Yes | A destination address to transfer cryptocurrency |
| `DestinationAddress.Address` | string | Yes |  |
| `GrossAmount` | boolean | No | When true, Amount is the gross amount debited (incl. network fee). When false or omitted, Amount is the net amount the beneficiary receives and the fee is added on top. (default `false`) |
| `Nonce` | string | Yes | A string which must be unique each time a new transaction is created, like a UUID or operation sequence number. Request can be idempotently retried by using the same Nonce. (length 1-36) |
| `ExternalID` | string | No | A unique identifier used in the business system to store a reference for the transaction. This field allows businesses to track and manage transactions within their internal systems. (length 1-36) |
| `Metadata` | Record<string, string> | No | Optional key-value metadata to store additional information about the payment. |
| `TravelRule` | object | Yes | Travel-rule party and institution data for this withdrawal. |
| `TravelRule.Originator` | IndividualOriginator \| BusinessOriginator | No | The party on whose behalf the funds are sent. (discriminated by `Type`) |
| `TravelRule.Originator[IndividualOriginator]` | object | No | Individual originator. Requires a full name and at least one of: residential address, identity document, or date and country of birth together. |
| `TravelRule.Originator[IndividualOriginator].Type` | `Individual` | Yes |  |
| `TravelRule.Originator[IndividualOriginator].FullName` | object | Yes |  |
| `TravelRule.Originator[IndividualOriginator].FullName.FirstName` | string | Yes | user's first name (length 1-50) |
| `TravelRule.Originator[IndividualOriginator].FullName.LastName` | string | Yes | user's last name (family name) (length 1-50) |
| `TravelRule.Originator[IndividualOriginator].FullName.MiddleName` | string | No | user's middle name (length 1-50) |
| `TravelRule.Originator[IndividualOriginator].DateOfBirth` | string (date) | No | (length 10-10; pattern `^\d{4}-\d{2}-\d{2}$`) |
| `TravelRule.Originator[IndividualOriginator].CountryOfBirth` | string | No | ISO 3166-1 alpha-2 country code. |
| `TravelRule.Originator[IndividualOriginator].Identities` | object[] | No |  |
| `TravelRule.Originator[IndividualOriginator].Identities[].IssuingCountry` | string | No | ISO 3166-1 alpha-2 country code. |
| `TravelRule.Originator[IndividualOriginator].Identities[].IDNumber` | string | Yes | (length 1-36) |
| `TravelRule.Originator[IndividualOriginator].Identities[].IssuedDate` | string (date) | No | (length 10-10; pattern `^\d{4}-\d{2}-\d{2}$`) |
| `TravelRule.Originator[IndividualOriginator].Identities[].ExpiryDate` | string (date) | No | (length 10-10; pattern `^\d{4}-\d{2}-\d{2}$`) |
| `TravelRule.Originator[IndividualOriginator].Identities[].IDType` | string | No | Type of identification document: * DrivingLicense * NationalIDCard * Passport * AddressProof * ResidencePermit * TaxID |
| `TravelRule.Originator[IndividualOriginator].PrimaryResidence` | object | No | Physical address for travel-rule party data. All fields are optional. All string fields must be printable ASCII. |
| `TravelRule.Originator[IndividualOriginator].PrimaryResidence.Street` | string | No | Street: the primary name of an address's street. Printable ASCII only. (length 2-200) |
| `TravelRule.Originator[IndividualOriginator].PrimaryResidence.Street2` | string | No | Street2: the secondary name of an address's street. Optional. Printable ASCII only. (length 0-200) |
| `TravelRule.Originator[IndividualOriginator].PrimaryResidence.City` | string | No | City: name of an address's city or town. Printable ASCII only. (length 1-100) |
| `TravelRule.Originator[IndividualOriginator].PrimaryResidence.PostCode` | string | No | PostCode: the address's postcode or ZIP code. (length 1-20) |
| `TravelRule.Originator[IndividualOriginator].PrimaryResidence.State` | string | No | State: the address's state, province, or county. For USA and Canada, use the ISO 3166-2 subdivision code as two uppercase letters (e.g. CA). For other countries, use the local administrative division name. (length 1-100) |
| `TravelRule.Originator[IndividualOriginator].PrimaryResidence.Country` | string | No | ISO 3166-1 alpha-2 country code. |
| `TravelRule.Originator[IndividualOriginator].AccountNumber` | string | Yes | Account identifier for this party at their institution. |
| `TravelRule.Originator[IndividualOriginator].ExternalID` | string | No | Your reference for this party, for reconciliation in your systems. |
| `TravelRule.Originator[BusinessOriginator]` | object | No | Business originator. Requires a registered name and at least one of: registered address or registration number. |
| `TravelRule.Originator[BusinessOriginator].Type` | `Business` | Yes |  |
| `TravelRule.Originator[BusinessOriginator].RegisteredName` | string | Yes | Registered name of the business. (length 1-unbounded) |
| `TravelRule.Originator[BusinessOriginator].RegistrationNumber` | string | No | Company registration number or LEI. |
| `TravelRule.Originator[BusinessOriginator].RegistrationCountry` | string | No | ISO 3166-1 alpha-2 country code. |
| `TravelRule.Originator[BusinessOriginator].RegisteredAddress` | object | No | Physical address for travel-rule party data. All fields are optional. All string fields must be printable ASCII. |
| `TravelRule.Originator[BusinessOriginator].RegisteredAddress.Street` | string | No | Street: the primary name of an address's street. Printable ASCII only. (length 2-200) |
| `TravelRule.Originator[BusinessOriginator].RegisteredAddress.Street2` | string | No | Street2: the secondary name of an address's street. Optional. Printable ASCII only. (length 0-200) |
| `TravelRule.Originator[BusinessOriginator].RegisteredAddress.City` | string | No | City: name of an address's city or town. Printable ASCII only. (length 1-100) |
| `TravelRule.Originator[BusinessOriginator].RegisteredAddress.PostCode` | string | No | PostCode: the address's postcode or ZIP code. (length 1-20) |
| `TravelRule.Originator[BusinessOriginator].RegisteredAddress.State` | string | No | State: the address's state, province, or county. For USA and Canada, use the ISO 3166-2 subdivision code as two uppercase letters (e.g. CA). For other countries, use the local administrative division name. (length 1-100) |
| `TravelRule.Originator[BusinessOriginator].RegisteredAddress.Country` | string | No | ISO 3166-1 alpha-2 country code. |
| `TravelRule.Originator[BusinessOriginator].IncorporationDate` | string (date) | No | (length 10-10; pattern `^\d{4}-\d{2}-\d{2}$`) |
| `TravelRule.Originator[BusinessOriginator].AccountNumber` | string | Yes | Account identifier for this party at their institution. |
| `TravelRule.Originator[BusinessOriginator].ExternalID` | string | No | Your reference for this party, for reconciliation in your systems. |
| `TravelRule.Beneficiary` | IndividualBeneficiary \| BusinessBeneficiary | Yes | The party receiving the funds at the destination address. (discriminated by `Type`) |
| `TravelRule.Beneficiary[IndividualBeneficiary]` | object | No | Individual beneficiary. A full name is required; additional fields improve travel-rule data quality. |
| `TravelRule.Beneficiary[IndividualBeneficiary].Type` | `Individual` | Yes |  |
| `TravelRule.Beneficiary[IndividualBeneficiary].FullName` | object | Yes |  |
| `TravelRule.Beneficiary[IndividualBeneficiary].FullName.FirstName` | string | Yes | user's first name (length 1-50) |
| `TravelRule.Beneficiary[IndividualBeneficiary].FullName.LastName` | string | Yes | user's last name (family name) (length 1-50) |
| `TravelRule.Beneficiary[IndividualBeneficiary].FullName.MiddleName` | string | No | user's middle name (length 1-50) |
| `TravelRule.Beneficiary[IndividualBeneficiary].DateOfBirth` | string (date) | No | (length 10-10; pattern `^\d{4}-\d{2}-\d{2}$`) |
| `TravelRule.Beneficiary[IndividualBeneficiary].Identities` | object[] | No |  |
| `TravelRule.Beneficiary[IndividualBeneficiary].Identities[].IssuingCountry` | string | No | ISO 3166-1 alpha-2 country code. |
| `TravelRule.Beneficiary[IndividualBeneficiary].Identities[].IDNumber` | string | Yes | (length 1-36) |
| `TravelRule.Beneficiary[IndividualBeneficiary].Identities[].IssuedDate` | string (date) | No | (length 10-10; pattern `^\d{4}-\d{2}-\d{2}$`) |
| `TravelRule.Beneficiary[IndividualBeneficiary].Identities[].ExpiryDate` | string (date) | No | (length 10-10; pattern `^\d{4}-\d{2}-\d{2}$`) |
| `TravelRule.Beneficiary[IndividualBeneficiary].Identities[].IDType` | string | No | Type of identification document: * DrivingLicense * NationalIDCard * Passport * AddressProof * ResidencePermit * TaxID |
| `TravelRule.Beneficiary[IndividualBeneficiary].PrimaryResidence` | object | No | Physical address for travel-rule party data. All fields are optional. All string fields must be printable ASCII. |
| `TravelRule.Beneficiary[IndividualBeneficiary].PrimaryResidence.Street` | string | No | Street: the primary name of an address's street. Printable ASCII only. (length 2-200) |
| `TravelRule.Beneficiary[IndividualBeneficiary].PrimaryResidence.Street2` | string | No | Street2: the secondary name of an address's street. Optional. Printable ASCII only. (length 0-200) |
| `TravelRule.Beneficiary[IndividualBeneficiary].PrimaryResidence.City` | string | No | City: name of an address's city or town. Printable ASCII only. (length 1-100) |
| `TravelRule.Beneficiary[IndividualBeneficiary].PrimaryResidence.PostCode` | string | No | PostCode: the address's postcode or ZIP code. (length 1-20) |
| `TravelRule.Beneficiary[IndividualBeneficiary].PrimaryResidence.State` | string | No | State: the address's state, province, or county. For USA and Canada, use the ISO 3166-2 subdivision code as two uppercase letters (e.g. CA). For other countries, use the local administrative division name. (length 1-100) |
| `TravelRule.Beneficiary[IndividualBeneficiary].PrimaryResidence.Country` | string | No | ISO 3166-1 alpha-2 country code. |
| `TravelRule.Beneficiary[IndividualBeneficiary].AccountNumber` | string | No | Account identifier for this party at their institution. |
| `TravelRule.Beneficiary[IndividualBeneficiary].ExternalID` | string | No | Your reference for this party, for reconciliation in your systems. |
| `TravelRule.Beneficiary[BusinessBeneficiary]` | object | No | Business beneficiary. A registered name is required; additional fields improve travel-rule data quality. |
| `TravelRule.Beneficiary[BusinessBeneficiary].Type` | `Business` | Yes |  |
| `TravelRule.Beneficiary[BusinessBeneficiary].RegisteredName` | string | Yes | Registered name of the business. (length 1-unbounded) |
| `TravelRule.Beneficiary[BusinessBeneficiary].RegistrationNumber` | string | No | Company registration number or LEI. |
| `TravelRule.Beneficiary[BusinessBeneficiary].RegistrationCountry` | string | No | ISO 3166-1 alpha-2 country code. |
| `TravelRule.Beneficiary[BusinessBeneficiary].RegisteredAddress` | object | No | Physical address for travel-rule party data. All fields are optional. All string fields must be printable ASCII. |
| `TravelRule.Beneficiary[BusinessBeneficiary].RegisteredAddress.Street` | string | No | Street: the primary name of an address's street. Printable ASCII only. (length 2-200) |
| `TravelRule.Beneficiary[BusinessBeneficiary].RegisteredAddress.Street2` | string | No | Street2: the secondary name of an address's street. Optional. Printable ASCII only. (length 0-200) |
| `TravelRule.Beneficiary[BusinessBeneficiary].RegisteredAddress.City` | string | No | City: name of an address's city or town. Printable ASCII only. (length 1-100) |
| `TravelRule.Beneficiary[BusinessBeneficiary].RegisteredAddress.PostCode` | string | No | PostCode: the address's postcode or ZIP code. (length 1-20) |
| `TravelRule.Beneficiary[BusinessBeneficiary].RegisteredAddress.State` | string | No | State: the address's state, province, or county. For USA and Canada, use the ISO 3166-2 subdivision code as two uppercase letters (e.g. CA). For other countries, use the local administrative division name. (length 1-100) |
| `TravelRule.Beneficiary[BusinessBeneficiary].RegisteredAddress.Country` | string | No | ISO 3166-1 alpha-2 country code. |
| `TravelRule.Beneficiary[BusinessBeneficiary].IncorporationDate` | string (date) | No | (length 10-10; pattern `^\d{4}-\d{2}-\d{2}$`) |
| `TravelRule.Beneficiary[BusinessBeneficiary].AccountNumber` | string | No | Account identifier for this party at their institution. |
| `TravelRule.Beneficiary[BusinessBeneficiary].ExternalID` | string | No | Your reference for this party, for reconciliation in your systems. |
| `TravelRule.OriginatingVASP` | object | No | The institution originating the transfer. Provide when your integration acts on behalf of another VASP or financial institution as the originating party. |
| `TravelRule.OriginatingVASP.Name` | string | Yes | Legal name of the institution. (length 1-unbounded) |
| `TravelRule.OriginatingVASP.RegistrationNumber` | string | No | Registration number, LEI, or other institution identifier. |
| `TravelRule.OriginatingVASP.RegistrationCountry` | string | No | ISO 3166-1 alpha-2 country code. |
| `TravelRule.OriginatingVASP.RegisteredAddress` | object | No | Physical address for travel-rule party data. All fields are optional. All string fields must be printable ASCII. |
| `TravelRule.OriginatingVASP.RegisteredAddress.Street` | string | No | Street: the primary name of an address's street. Printable ASCII only. (length 2-200) |
| `TravelRule.OriginatingVASP.RegisteredAddress.Street2` | string | No | Street2: the secondary name of an address's street. Optional. Printable ASCII only. (length 0-200) |
| `TravelRule.OriginatingVASP.RegisteredAddress.City` | string | No | City: name of an address's city or town. Printable ASCII only. (length 1-100) |
| `TravelRule.OriginatingVASP.RegisteredAddress.PostCode` | string | No | PostCode: the address's postcode or ZIP code. (length 1-20) |
| `TravelRule.OriginatingVASP.RegisteredAddress.State` | string | No | State: the address's state, province, or county. For USA and Canada, use the ISO 3166-2 subdivision code as two uppercase letters (e.g. CA). For other countries, use the local administrative division name. (length 1-100) |
| `TravelRule.OriginatingVASP.RegisteredAddress.Country` | string | No | ISO 3166-1 alpha-2 country code. |
| `TravelRule.BeneficiaryVASP` | object | No | The institution receiving the transfer on the beneficiary's behalf, when known. |
| `TravelRule.BeneficiaryVASP.Name` | string | Yes | Legal name of the institution. (length 1-unbounded) |
| `TravelRule.BeneficiaryVASP.RegistrationNumber` | string | No | Registration number, LEI, or other institution identifier. |
| `TravelRule.BeneficiaryVASP.RegistrationCountry` | string | No | ISO 3166-1 alpha-2 country code. |
| `TravelRule.BeneficiaryVASP.RegisteredAddress` | object | No | Physical address for travel-rule party data. All fields are optional. All string fields must be printable ASCII. |
| `TravelRule.BeneficiaryVASP.RegisteredAddress.Street` | string | No | Street: the primary name of an address's street. Printable ASCII only. (length 2-200) |
| `TravelRule.BeneficiaryVASP.RegisteredAddress.Street2` | string | No | Street2: the secondary name of an address's street. Optional. Printable ASCII only. (length 0-200) |
| `TravelRule.BeneficiaryVASP.RegisteredAddress.City` | string | No | City: name of an address's city or town. Printable ASCII only. (length 1-100) |
| `TravelRule.BeneficiaryVASP.RegisteredAddress.PostCode` | string | No | PostCode: the address's postcode or ZIP code. (length 1-20) |
| `TravelRule.BeneficiaryVASP.RegisteredAddress.State` | string | No | State: the address's state, province, or county. For USA and Canada, use the ISO 3166-2 subdivision code as two uppercase letters (e.g. CA). For other countries, use the local administrative division name. (length 1-100) |
| `TravelRule.BeneficiaryVASP.RegisteredAddress.Country` | string | No | ISO 3166-1 alpha-2 country code. |

## Responses

### 202 — Withdraw request successful

#### `application/json`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `(body)` | object | No | Response returned when a withdrawal has been accepted for processing. |
| `Transaction` | object | Yes |  |
| `Transaction.ID` | string (uuid) | Yes | NOAH's unique identifier for the transaction. |
| `Transaction.PublicID` | string | No | The public blockchain transaction id or hash. This identifier is only available for transactions that are broadcast to a public network. |
| `Transaction.Network` | string | Yes | Payments network (prod/sandbox): * Base/BaseTestSepolia * Bitcoin/BitcoinTest * Celo/CeloTestSepolia * Ethereum/EthereumTestSepolia * FlowEvm/FlowEvmTest * Gnosis/GnosisTestChiado * PolygonPos/PolygonTestAmoy * Solana/SolanaDevnet * OffNetwork/OffNetwork |
| `Transaction.Created` | string (date-time) | Yes | When was this transaction created. |
| `Transaction.Status` | `Pending` \| `Failed` \| `Settled` | Yes | Statuses for transactions. |
| `Transaction.SubStatus` | string | No | Additional detail about the transaction status: * TransactionMonitoring * Confirming |
| `Transaction.RFI` | object | No | Request-for-information details. |
| `Transaction.RFI.Status` | string | Yes | Status of a request for information: * AwaitingCustomer * UnderReview * Closed * Completed |
| `Transaction.RFI.Type` | string | Yes | Type of request for information: * Manual * ProofOfAddress |
| `Transaction.Direction` | `In` \| `Out` | Yes | Whether the transactions was a credit (in) or a debit (out) in your account |
| `Transaction.CustomerID` | string | No | A unique ID which identifies the customer in the Business' internal system and in NOAH. (length 1-42) |
| `Transaction.ExternalID` | string | No | A unique identifier used in the business system to store a reference for the transaction. This field allows businesses to track and manage transactions within their internal systems. (length 1-36) |
| `Transaction.Amount` | string | No | The net crypto amount transacted, affecting the balance. This amount **excludes** the `NetworkFee`. For buy transactions, this is the amount after payment fees. For sell transactions, this is the amount before payment fees. (length 1-38; pattern `^[+]?([.]\d+\|\d+[.]?\d*)$`) |
| `Transaction.NetworkFee` | string | No | Amount paid to cover the onchain network or gas fee associated with the transaction, if applicable. (length 1-38; pattern `^[+]?([.]\d+\|\d+[.]?\d*)$`) |
| `Transaction.CryptoCurrency` | string | Yes | Cryptocurrency: \| Environment \| BTC \| ETH \| USDC \| \|------------\|-----\|-------\|------\| \| Sandbox \| BTC_TEST \| ETH_TEST_SEPOLIA \| USDC_TEST \| \| Production \| BTC \| ETH \| USDC \| |
| `Transaction.DestinationAddress` | object | No | A destination address to transfer cryptocurrency |
| `Transaction.DestinationAddress.Address` | string | Yes |  |
| `Transaction.FiatPayment` | object | No | * For buy transactions, `Transaction.Amount = (FiatPayment.Amount - FiatPayment.FeeAmount) / FiatPayment.Rate` * For sell transactions, `Transaction.Amount = (FiatPayment.Amount + FiatPayment.FeeAmount) / FiatPayment.Rate` |
| `Transaction.FiatPayment.Amount` | string | Yes | The final amount that has been debited (for buy transactions) or credited (for sell transactions) from the payment method. (length 1-38; pattern `^[+]?([.]\d+\|\d+[.]?\d*)$`) |
| `Transaction.FiatPayment.FeeAmount` | string | Yes | The fee applied to this payment. (length 1-38; pattern `^[+]?([.]\d+\|\d+[.]?\d*)$`) |
| `Transaction.FiatPayment.Rate` | string | No | Crypto/Fiat exchange rate. (length 1-38; pattern `^[+]?([.]\d+\|\d+[.]?\d*)$`) |
| `Transaction.FiatPayment.FiatCurrency` | string | Yes | Supported fiat ISO_4217 3 letter currency codes. |
| `Transaction.FiatPayment.FiatDepositID` | string | No | The ID of the deposit when the payment originated from a deposit. |
| `Transaction.FiatPayment.PaymentSystemID` | string | No | The transaction ID in the payment system (e.g., IMAD for Wire, UETR for Swift, Trace Number for ACH). |
| `Transaction.Orchestration` | object | No | Orchestration details for the transaction. |
| `Transaction.Orchestration.RuleID` | string | Yes | Unique identifier for the rule that is matched for the transaction. |
| `Transaction.Orchestration.RuleExecutionID` | string | Yes | Unique identifier for the execution of the rules that is matched for the transaction. |
| `Transaction.FiatPaymentMethod` | object | No | Information about the fiat payment method used to facilitate this transaction. |
| `Transaction.FiatPaymentMethod.ID` | string | Yes |  |
| `Transaction.FiatPaymentMethod.CustomerID` | string | No | A unique ID which identifies the customer in the Business' internal system and in NOAH. (length 1-42) |
| `Transaction.FiatPaymentMethod.Country` | string | Yes | ISO 3166-1 alpha-2 country code. |
| `Transaction.FiatPaymentMethod.PaymentMethodCategory` | string | Yes | Categorizes one or more `PaymentMethodType`s into broader groups. Useful for listing channels, displaying payment methods: * Bank * Card * Identifier |
| `Transaction.FiatPaymentMethod.DisplayDetails` | FiatPaymentMethodBankDisplay \| FiatPaymentMethodCardDisplay \| FiatPaymentMethodIdentifierDisplay | Yes | Contains information to display each payment method, with fields tailored to the specific type (e.g., last four digits or account number) to help identify the payment method. (discriminated by `Type`) |
| `Transaction.FiatPaymentMethod.DisplayDetails[FiatPaymentMethodBankDisplay]` | object | No |  |
| `Transaction.FiatPaymentMethod.DisplayDetails[FiatPaymentMethodBankDisplay].Type` | `FiatPaymentMethodBankDisplay` | Yes |  |
| `Transaction.FiatPaymentMethod.DisplayDetails[FiatPaymentMethodBankDisplay].AccountNumber` | string | No |  |
| `Transaction.FiatPaymentMethod.DisplayDetails[FiatPaymentMethodBankDisplay].BankCode` | string | No |  |
| `Transaction.FiatPaymentMethod.DisplayDetails[FiatPaymentMethodBankDisplay].RoutingNumber` | string | No | The routing number of the sender's financial institution (e.g., ODFI routing number for ACH deposits). |
| `Transaction.FiatPaymentMethod.DisplayDetails[FiatPaymentMethodBankDisplay].SwiftCode` | string | No |  |
| `Transaction.FiatPaymentMethod.DisplayDetails[FiatPaymentMethodBankDisplay].BankingSystems` | string[] | No |  |
| `Transaction.FiatPaymentMethod.DisplayDetails[FiatPaymentMethodBankDisplay].BankName` | string | No |  |
| `Transaction.FiatPaymentMethod.DisplayDetails[FiatPaymentMethodBankDisplay].BankAddress` | object | No | Physical postal address. All string fields must be printable ASCII. State and PostCode are required for every country. See [Address Validation](/api-concepts/address-validation) for country-specific rules and payment-form differences. |
| `Transaction.FiatPaymentMethod.DisplayDetails[FiatPaymentMethodBankDisplay].BankAddress.Street` | string | Yes | Street: the primary name of an address's street. Printable ASCII only. (length 2-200) |
| `Transaction.FiatPaymentMethod.DisplayDetails[FiatPaymentMethodBankDisplay].BankAddress.Street2` | string | No | Street2: the secondary name of an address's street. Optional. Printable ASCII only. (length 0-200) |
| `Transaction.FiatPaymentMethod.DisplayDetails[FiatPaymentMethodBankDisplay].BankAddress.City` | string | Yes | City: name of an address's city or town. Printable ASCII only. (length 1-100) |
| `Transaction.FiatPaymentMethod.DisplayDetails[FiatPaymentMethodBankDisplay].BankAddress.PostCode` | string | Yes | PostCode: the address's postcode or ZIP code. Required for all countries (1-20 characters). Use the format from the customer's official documents. Placeholder values such as 00000 or NA are not accepted. (length 1-20) |
| `Transaction.FiatPaymentMethod.DisplayDetails[FiatPaymentMethodBankDisplay].BankAddress.State` | string | Yes | State: the address's state, province, or county. Required for all countries (1-100 characters). For USA and Canada, use the ISO 3166-2 subdivision code as two uppercase letters (e.g. CA). For other countries, use the local administrative division name. Placeholders such as NA or None are not accepted. (length 1-100) |
| `Transaction.FiatPaymentMethod.DisplayDetails[FiatPaymentMethodBankDisplay].BankAddress.Country` | string | Yes | ISO 3166-1 alpha-2 country code. |
| `Transaction.FiatPaymentMethod.DisplayDetails[FiatPaymentMethodCardDisplay]` | object | No |  |
| `Transaction.FiatPaymentMethod.DisplayDetails[FiatPaymentMethodCardDisplay].Type` | `FiatPaymentMethodCardDisplay` | Yes |  |
| `Transaction.FiatPaymentMethod.DisplayDetails[FiatPaymentMethodCardDisplay].Last4` | string | Yes |  |
| `Transaction.FiatPaymentMethod.DisplayDetails[FiatPaymentMethodCardDisplay].Scheme` | string | Yes | The card scheme: * Mastercard * Visa |
| `Transaction.FiatPaymentMethod.DisplayDetails[FiatPaymentMethodIdentifierDisplay]` | object | No |  |
| `Transaction.FiatPaymentMethod.DisplayDetails[FiatPaymentMethodIdentifierDisplay].Type` | `FiatPaymentMethodIdentifierDisplay` | Yes |  |
| `Transaction.FiatPaymentMethod.DisplayDetails[FiatPaymentMethodIdentifierDisplay].IdentifierType` | string | Yes | Identifier type: * PhoneNumber * Email * TaxID |
| `Transaction.FiatPaymentMethod.DisplayDetails[FiatPaymentMethodIdentifierDisplay].Identifier` | string | Yes |  |
| `Transaction.FiatPaymentMethod.Capabilities` | object | No |  |
| `Transaction.FiatPaymentMethod.Capabilities.PayoutFrom` | boolean | Yes | internally generated, can take money out of the system |
| `Transaction.FiatPaymentMethod.Capabilities.PayinTo` | boolean | Yes | user supplied, can add money into the system |
| `Transaction.FiatPaymentMethod.Capabilities.PayoutTo` | boolean | Yes | user supplied, can take money out of the system |
| `Transaction.FiatPaymentMethod.AccountHolderDetails` | object | No | Details of the account holder associated with the payment method. |
| `Transaction.FiatPaymentMethod.AccountHolderDetails.Type` | `Individual` \| `Business` | No | Type of account holder. |
| `Transaction.FiatPaymentMethod.AccountHolderDetails.Name` | object | No | Name of the individual account holder. Used when Type is Individual. |
| `Transaction.FiatPaymentMethod.AccountHolderDetails.Name.FirstName` | string | Yes | user's first name (length 1-50) |
| `Transaction.FiatPaymentMethod.AccountHolderDetails.Name.LastName` | string | Yes | user's last name (family name) (length 1-50) |
| `Transaction.FiatPaymentMethod.AccountHolderDetails.Name.MiddleName` | string | No | user's middle name (length 1-50) |
| `Transaction.FiatPaymentMethod.AccountHolderDetails.BusinessName` | string | No | Name of the business account holder. Used when Type is Business. |
| `Transaction.FiatPaymentMethod.IssuerDetails` | object | No | Details of the issuer of the payment method (e.g. the bank for bank transfers). |
| `Transaction.FiatPaymentMethod.IssuerDetails.Name` | string | No | Name of the issuer (e.g. the bank or financial institution). |
| `Transaction.Breakdown` | object[] | No | This list explains how the transaction amount was calculated. |
| `Transaction.Breakdown[].Type` | string | Yes | What does the breakdown item amount refer to: * ChannelFee: amount withheld by the system from the fiat payment * BusinessFee: amount withheld on behalf of the business from its customers transactions * Remaining: net amount after all fees have been deducted |
| `Transaction.Breakdown[].Amount` | string | Yes | (length 1-38; pattern `^[+]?([.]\d+\|\d+[.]?\d*)$`) |
| `Transaction.Breakdown[].FixedAmount` | string | No | Fixed base portion of this fee line (same unit as Amount). (length 1-38; pattern `^[+]?([.]\d+\|\d+[.]?\d*)$`) |
| `Transaction.Breakdown[].VariableAmount` | string | No | Variable percentage portion of this fee line (same unit as Amount). (length 1-38; pattern `^[+]?([.]\d+\|\d+[.]?\d*)$`) |
| `Transaction.AdjustmentFor` | object | No | Identifies a transaction that this transaction adjusts and details about the adjustment. |
| `Transaction.AdjustmentFor.AdjustedTransactionID` | string (uuid) | Yes | ID of the transaction being adjusted. |
| `Transaction.AdjustmentFor.AdjustmentID` | string (uuid) | Yes | A unique identifier linking related transactions that are involved in a single Adjustment. For Adjustments involving multiple transactions, this ID is shared across all associated records. |
| `Transaction.AdjustmentFor.Reason` | string | Yes | Why the adjustment was made: * ExchangeRateCorrection * Refund |
| `Transaction.Refunds` | object[] | No | Refund attempts associated with this transaction. |
| `Transaction.Refunds[].RefundID` | string | Yes | Identifier of the refund payment. |
| `Transaction.Refunds[].RefundedAmount` | string | Yes | Amount requested to refund. May be equal, less or greater than the original amount. It could be greater if the AssetID from refund is different from the AssetID from the original transaction. (length 1-38; pattern `^[+]?([.]\d+\|\d+[.]?\d*)$`) |
| `Transaction.Refunds[].Currency` | string | Yes | Currency of the refund payment. |
| `Transaction.Refunds[].RequestTime` | string (date-time) | Yes | Timestamp when the refund was requested. |
| `Transaction.Refunds[].Status` | `Pending` \| `Failed` \| `Settled` | Yes | Statuses for transactions. |
| `Transaction.Reverses` | string (uuid) | No | If present, this transaction is a reversal of the transaction identified by this ID. |

### 400 — Bad request

### 401 — Client is not authorized to perform this action

### 500 — Internal server error

Error responses share one `Error` envelope across the whole API. See https://docs.noah.com/api-concepts/errors.md for its fields, the `Type` values, and the field-level validation details in `RequestExtension` and `DenyExtension`.

## See also

- Rendered reference: https://docs.noah.com/api-reference/create-withdraw-transaction
- OpenAPI document: https://docs.noah.com/files/oas-schema.generated.json
