Get Buy transaction

Retrieve a transaction by id. This call will return an error if no transaction with the supplied identifier exists.

Log in to see full request history
Path Params
string
required

A valid Buy transaction ID.

Responses

Response body
object
string

Unique identifier for the transaction.

string

Time at which the object was created. Returned as an ISO 8601 string.

string

Time at which the object was last updated. Returned as an ISO 8601 string.

number

A positive number representing how much the customer wants to spend. The minimum amount is 20.

number

A positive number representing the amount of cryptocurrency the customer will receive. Set when the purchase of cryptocurrency has been executed.

number

A positive number representing the fee for the transaction. It is added to baseCurrencyAmount, extraFeeAmount and networkFeeAmount when the customer's card is charged.

number

A positive number representing your extra fee for the transaction. It is added to baseCurrencyAmount and feeAmount when the customer's card is charged.

string

The transaction's payment method.

ach_bank_transfer credit_debit_card paypal gbp_bank_transfer gbp_open_banking_payment pix_instant_payment sepa_bank_transfer

number

A positive number representing the network fee for the transaction. It is added to baseCurrencyAmount, feeAmount and extraFeeAmount when the customer's card is charged.

boolean

A boolean indicating whether baseCurrencyAmount includes or excludes the feeAmount, extraFeeAmount and networkFeeAmount.

string

The transaction's status.
Possible values are waitingPayment (pending bank transfers where MoonPay is not in receipt), pending (transaction is in progress), waitingAuthorization (waiting for card approval, i.e. 3DS, bank side security), failed or completed.

waitingPayment pending waitingAuthorization failed completed

string | null

The transaction's failure reason. Set when transaction's status is failed.

  • Bank transfer timeout – The transaction was cancelled. The bank transfer was not received within 7 days or the transfer can't be accepted due to a mismatch.
  • Bank payout bounced back – Payout cannot be sent to destination bank account.
  • Bank payout failed – Payout failed to be sent to customer's bank account.
  • Card payout failed – Payout failed to be sent to customer's card.
  • Blocked customer – The transaction was cancelled because the customer was blocked for violating our terms and conditions.
  • Cancelled – The transaction was cancelled by MoonPay's support team per the customer's request or engineering team because of a technical issue.
  • Cancelled and refunded – The transaction was cancelled by MoonPay and the funds has been returned.
  • Cancelled by customer – The transaction was cancelled by customer.
  • Card not supported – The customer used an unsupported card brand or type.
  • Daily purchase limit exceeded – The customer reached their daily purchase limit or this transaction would put them over their limit.
  • Transaction declined – The transaction has been declined.
  • Deposit timeout – The transaction failed because customer did not deposit crypto within 7 days.
  • Deposit failed – The transaction failed because crypto transaction was not successful on chain.
  • Failed testnet withdrawal – For sandbox transactions only. The MoonPay testnet wallet doesn't have enough crypto for the test transaction and needs to be topped up before new transactions can be completed.
  • Rejection is final for user identity check – The customer's KYC or Proof of Address documents were rejected and their account was closed for safety purposes.
  • Identity check timeout – The customer's identity check timed out because they did not complete their KYC / Proof of Address / Proof of Income verification within 10 hours.
  • Open banking timeout – Transaction validation failed due to authentication delay with the banking provider.
  • Payment authorization declined – The payment was declined by the issuing bank of the customer's credit card. The customer should try again with another payment method or contact the bank for more details.
  • Payment authorization error – The Transaction validation failed due to various payment authorization problem.
  • Payout failed – The Payment authorization failed while executing payout.
  • Refund – The sell order was refunded by MoonPay. The order may have been rejected for safety purposes or fiat payout failure.
  • Deposit out of bounds (amount too low to refund) – The transaction failed but we failed to refund crypto because amount deposited was too small.
  • Requote timeout – The transaction experienced timeout because quote expired.
  • Ticket payment timeout – The Payment has expired.
  • Ticket payment failure – The Payment has failed.
  • Verification timeout – The transaction was cancelled because the customer did not perform the payment method verification on time.
  • Payment initialization failed – The transaction failed because of Payment authorization error.
  • Exchange order failed – The transaction failed because of issue with our internal system, deposit will be refunded.
  • Internal error – Internal error at MoonPay happened.
  • Travel rule failure – The transaction was declined by MoonPay due to their Travel Rule policies.
  • 3D Secure timeout – The customer did not authorize their 3D Secure transaction in time. The customer should place a new order and enter the authorization code in time (usually arrives through SMS or banking app), or contact their bank if they don't receive a code.
  • Refund deposit out of bounds – The transaction failed because customer sent amount that was either above MoonPay max amount or below MoonPay min amount, the deposit will be refunded back to customer.
  • Nft transaction error – Something went wrong during an NFT transaction, for instance during NFT delivery.
  • OnHold – The transaction is currently on hold.
  • Other – Other failure reason.
string

The cryptocurrency wallet address the purchased funds will be sent to.

string | null

The secondary cryptocurrency wallet address identifier for coins such as EOS, XRP and XMR.

string | null

The cryptocurrency transaction identifier representing the transfer to the customer's wallet. Set when the withdrawal has been executed.

string | null

The URL provided to you, when required, to which to redirect the customer as part of a redirect authentication flow.

string

The URL the customer is returned to after they authenticate or cancel their payment on the payment method's app or site. If you are using our widget implementation, this is always our transaction tracker page, which provides the customer with real-time information about their transaction.

string | null

An optional URL used in a widget implementation. It is passed to us by you in the query parameters, and we include it as a link on the transaction tracker page.

number

The exchange rate between the transaction's base currency and Euro at the time of the transaction.

number

The exchange rate between the transaction's base currency and US Dollar at the time of the transaction.

number

The exchange rate between the transaction's base currency and British Pound at the time of the transaction.

object | null

For bank transfer transactions, the information about our bank account to which the customer should make the transfer.

string | null

The IBAN of the bank account.

string | null

The BIC of the bank account.

string | null

The account number of the bank account.

string | null

The sort code of the bank account.

string | null

The name of the bank.

string | null

The address of the bank.

string

The account name of the bank account.

string

The address of the bank account.

string | null

For bank transfer transactions, the reference code the customer should cite when making the transfer.

string

The identifier of the cryptocurrency the customer wants to purchase.

currency
object
string

Unique identifier for the currency.

string

Time at which the object was created. Returned as an ISO 8601 string.

string

Time at which the object was last updated. Returned as an ISO 8601 string.

string

Always crypto

crypto

string

The currency's name.

string

The currency's code.

number

The currency's precision (number of digits after decimal point).

number | null

Represents the minimum amount of cryptocurrency you can buy.

number | null

Represents the maximum amount of cryptocurrency you can buy.

number | null

The minimum amount of cryptocurrency you can sell.

number | null

The maximum amount of cryptocurrency you can sell.

string

A regular expression which you can test against your end user's wallet addresses.

string

A regular expression which you can test against your end user's testnet wallet addresses.

boolean

Whether the currency supports address tags.

string | null

A regular expression which you can test against a wallet address tag. Defined only if the currency supports address tags.

boolean

Whether the currency supports test mode.

boolean

Whether purchases for this currency are suspended. If the currency is suspended, exchange rates may not be available and it is not possible to create a transaction with this currency.

boolean

Whether purchases for this currency are supported in the US.

boolean

Whether sales for this currency are supported.

notAllowedUSStates
array of strings

A list with all the US states for this currency that are not supported.

notAllowedUSStates
notAllowedCountries
array of strings

A list with all the ISO 3166-1 alpha-2 country codes for this currency that are not supported.

notAllowedCountries
metadata
object

Additional metadata for the currency.

string

The identifier of the fiat currency the customer wants to use for the transaction.

baseCurrency
object
string

Unique identifier for the currency.

string

Time at which the object was created. Returned as an ISO 8601 string.

string

Time at which the object was last updated. Returned as an ISO 8601 string.

string

Always fiat

fiat

string

The currency's name.

string

The currency's code.

number

The currency's precision (number of digits after decimal point).

number | null

Represents the minimum transaction buy amount when using this currency as a base currency.

number | null

Represents the maximum transaction buy amount when using this currency as a base currency.

boolean

Whether sales for this currency are supported.

string

The identifier of the customer the transaction is associated with.

string | null

For token or card transactions, the identifier of the payment card used for this transaction.

string | null

For bank transfer transactions, the identifier of the bank account used for this transaction.

string | null

An identifier associated with the customer, provided by you.

string | null

An identifier associated with the transaction, provided by you.

string

The customer's country. Returned as an ISO 3166-1 alpha-3 code.

string | null

The customer's state, if the customer is from the USA. Returned as a two-letter code.

string | null

The card type used for the transaction.

apple_pay google_pay samsung_pay card

string | null

The card payment type used for the transaction.

credit debit unknown

stages
array of objects

An array of four objects, each representing one of the four stages of the purchase process.

stages
object
string

Stage type

stage_one_ordering stage_two_verification stage_three_processing stage_four_delivery

string

Status of the stage

not_started in_progress success failed

string | null

The reason for the failure of the stage. Set when the stage's status is failed.

card_not_supported daily_purchase_limit_exceeded payment_authorization_declined timeout_3d_secure timeout_bank_transfer timeout_kyc_verification timeout_card_verification rejected_kyc rejected_card rejected_other cancelled refund failed_testnet_withdrawal error

actions
array of objects
actions
object
string
string

Language
Credentials