---
title: "createTransaction"
method: POST
path: "/finances/transfers/wallet/2024-03-01/transactions"
tags: ["Seller Wallet v2024-03-01"]
---

# createTransaction

`POST /finances/transfers/wallet/2024-03-01/transactions`

Create a transaction request from a Seller Wallet account to another customer-provided account.

## Query parameters

- `marketplaceId` string, required

## Headers

- `destAccountDigitalSignature` string, required
- `amountDigitalSignature` string, required

## Request body

- TransactionInitiationRequest — Request body to initiate a transaction from a Seller Wallet bank account to another customer-defined bank account.
  - `sourceAccountId` string, required — The unique identifier of the source Amazon Seller Wallet bank account from which the money is debited.
  - `destinationAccountId` string — The unique identifier of the destination bank account where the money is deposited.
  - `destinationTransactionInstrument` TransactionInstrumentDetails, required — Details of the destination bank account in the transaction request.
    - `bankAccount` BankAccount, required — Details of an Amazon Seller Wallet bank account. This account is used to hold the money that a Seller Wallet customer earns by selling items.
      - `accountId` string — The unique bank account identifier provided by Amazon. To initiate a `SELF` transaction with Seller Wallet, you must choose `BANK_ACCOUNT` as the payment method type in the [getPaymentMethod](https://developer-docs.amazon.com/sp-api/reference/getpaymentmethods) request. Your Amazon Seller Wallet bank account identifier should match the `paymentMethodId` in the response. This field is required.
      - `accountHolderName` string — The bank account holder's name (expected to be an Amazon customer). There is a 50 character limit.
      - `bankAccountNumberFormat` 'IBAN' | 'BBAN' — The format of the bank account number.
      - `bankName` string — The name of the bank. This value is Amazon Seller Wallet for Amazon Seller Wallet accounts.
      - `bankAccountOwnershipType` 'THIRD_PARTY' | 'SELF', required — The destination bank account's ownership type.
      - `routingNumber` string — Routing number for automated clearing house transfers for `THIRD_PARTY` transaction requests. This value is nine consecutive zeros for Amazon Seller Wallet accounts.
      - `bankNumberFormat` 'BIC' | 'BASIC' — The format of the bank number. Also known as the routing number type.
      - `accountCountryCode` string, required — The two-digit country code in ISO 3166 format.
      - `accountCurrency` string, required — Bank account currency code in ISO 4217 format.
      - `bankAccountNumberTail` string, required — The last 3 digit of the bank account number. This value is three consecutive zeros for Amazon Seller Wallet accounts.
      - `bankAccountHolderStatus` 'ACTIVE' | 'INACTIVE' | 'UNDER_REVIEW' | 'VERIFICATION_FAILED' — The status of the Amazon Seller Wallet account holder.
    - `bankAccountNumber` string, required — The bank account number of the destination payment method. **Note:** This field is encrypted before Amazon receives it, so should not be used to generate `destAccountDigitalSignature`, and should not be included in the request signature.
    - `accountHolderName` string, required — The bank account holder's name (expected to be an Amazon customer). **Note:** This field is encrypted before Amazon receives it, so should not be used to generate `destAccountDigitalSignature`, and should not be included in the request signature.
  - `transactionDescription` string — A description of the transaction.
  - `customerPaymentReference` string — If the payment is for VAT (Value-Added-Tax) then enter VAT identification number in this field which will be mandatory. The length constraint is 140 characters and do not allow user to enter any sensitive information other than VAT-ID.
  - `payeeContactInformation` PayeeContactInformation — The contact information of the payee. This field is required when the request `bankAccountOwnershipType` is `THIRD_PARTY`. The contact information is used for payee verification and registration purposes.
    - `payeeFirstName` string, required — First name of the payee. There is a 50 character limit.
    - `payeeMiddleName` string — Middle name of the payee. There is a 50 character limit.
    - `payeeLastName` string, required — Last name of the payee. There is a 50 character limit.
    - `addressLine1` string, required — Address Line 1 of the public address.
    - `addressLine2` string — Address Line 2 of the public address.
    - `city` string, required — City name of the public address.
    - `state` string, required — State name of the public address. This is the state or region for China-based addresses.
    - `postalCode` string, required — Postal code of the public address.
    - `country` string — Country name of the public address.
    - `countryCode` string, required — The two digit country code, in ISO 3166 format.
    - `emailAddress` string, required — Email address of the payee.
    - `phoneNumber` string, required — Valid phone number of the payee.
    - `payeeEntityType` 'INDIVIDUAL' | 'BUSINESS' | 'TAX_AUTHORITY', required — The entity type of the transaction payee when the bank account ownership type is `THIRD_PARTY`.
  - `sourceAmount` Currency, required — A currency type and amount.
    - `currencyCode` string — The three-digit currency code in ISO 4217 format.
    - `currencyAmount` number — A decimal number, such as an amount or FX rate.
  - `transferRateDetails` TransferRatePreview — The fees and foreign exchange rates that apply to the transaction. If the fees are in terms of the `baseAmount` (source account) currency, then the effective rate is equal to **1 - (fees * `baseRate` / `baseAmount`)**. If the fees are in terms of the `transferAmount` (destination account) currency, then the effective rate is equal to **`baseRate` - (fees / `baseAmount`)**. In the preceding expressions, **fees** is equal to the sum of all `feeAmount.currencyAmount` values in the `fees` array.
    - `baseAmount` Currency, required — A currency type and amount.
      - `currencyCode` string — The three-digit currency code in ISO 4217 format.
      - `currencyAmount` number — A decimal number, such as an amount or FX rate.
    - `fxRateDetails` FxRateDetails, required — Foreign exchange rate details.
      - `fxRateId` string, required — The unique identifier assigned to the fees / foreign exchange rate of a transaction.
      - `baseRate` number, required — A decimal number, such as an amount or FX rate.
      - `effectiveFxRate` number, required — A decimal number, such as an amount or FX rate.
      - `rateDirection` 'BUY' | 'SELL', required — Whether the customer is buying or selling the source currency.
    - `transferAmount` Currency, required — A currency type and amount.
      - `currencyCode` string — The three-digit currency code in ISO 4217 format.
      - `currencyAmount` number — A decimal number, such as an amount or FX rate.
    - `fees` Fee[], required — A list of fees.
      - `feeId` string, required — The unique identifier assigned to the fee.
      - `feeType` 'MISCELLANEOUS_FEE' | 'TAX' | 'TRANSACTION_FEE', required — The type of fee on the transaction.
      - `feeRateValue` string, required — The value of the fee in percentage format.
      - `feeAmount` Currency, required — A currency type and amount.
        - `currencyCode` string — The three-digit currency code in ISO 4217 format.
        - `currencyAmount` number — A decimal number, such as an amount or FX rate.
  - `requestTime` string, date-time, required — The time at which the transaction was initiated in [ISO 8601 date time format](https://developer-docs.amazon.com/sp-api/docs/iso-8601).

## Response `200`

Success

- CreateTransactionResponse — The transaction response and historical details related to it.
  - `transaction` Transaction, required — The transaction status.
    - `transactionId` string, required — The unique identifier returned in the 'transactionId' field in response to the post request of a specific transaction.
    - `status` 'Failure' | 'Processing' | 'Success', required — Current processing status of the transaction.
    - `errors` Error[] — A list of error responses returned when a request is unsuccessful.
      - `code` string, required — An error code that identifies the type of error that occurred.
      - `message` string, required — A message that describes the error condition.
      - `details` string — Additional details that can help the caller understand or fix the issue.
  - `callBackURL` string, required — The callback URL for the transaction which the user have to click to approve/consent the transaction

## Other responses

- `400` — Request has missing or invalid parameters and cannot be parsed.
- `403` — Indicates that access to the resource is forbidden. Possible reasons include Access Denied, Unauthorized, Expired Token, or Invalid Signature.
- `404` — The resource specified does not exist.
- `408` — Request Timed Out.
- `413` — The request size exceeded the maximum accepted size.
- `415` — The request payload is in an unsupported format.
- `422` — The request was well-formed (i.e., syntactically correct) but could not be processed because of some restrictions like insufficient funds, transaction limit breach, etc.
- `429` — The frequency of requests was greater than allowed.
- `500` — An unexpected condition occurred that prevented the server from fulfilling the request.
- `503` — Temporary overloading or maintenance of the server.

---

[API](https://skmtc.net/aws-samples/apis/a-content-management-v2020-11-01.md) · [All operations](https://skmtc.net/aws-samples/apis/a-content-management-v2020-11-01/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/aws-samples/a-content-management-v2020-11-01/revisions/815a5b6dbaa6/schema)
