---
title: "Fetch an e-wallet transaction"
method: POST
path: "/wallet/transaction/get"
tags: ["plaid"]
---

# Fetch an e-wallet transaction

`POST /wallet/transaction/get`

Fetch a specific e-wallet transaction

## Request body

- WalletTransactionGetRequest — WalletTransactionGetRequest defines the request schema for `/wallet/transaction/get`
  - `client_id` string — Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
  - `secret` string — Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
  - `transaction_id` string, required — The ID of the transaction to fetch

## Response `200`

OK

- WalletTransactionGetResponse — The transaction details
  - `transaction_id` string, required — A unique ID identifying the transaction
  - `wallet_id` string, required — The ID of the e-wallet that this transaction is associated with.
  - `reference` string, required — A reference for the transaction
  - `type` 'BANK_TRANSFER' | 'PAYOUT' | 'PIS_PAY_IN' | 'REFUND' | 'FUNDS_SWEEP' | 'RETURN' | 'RECALL' | 'ACCOUNT_FUNDING' | 'AUTO_REFUND', required — The type of the transaction. The supported transaction types that are returned are: `BANK_TRANSFER:` a transaction which credits an e-wallet through an external bank transfer. `PAYOUT:` a transaction which debits an e-wallet by disbursing funds to a counterparty. `PIS_PAY_IN:` a payment which credits an e-wallet through Plaid's Payment Initiation Services (PIS) APIs. For more information see the [Payment Initiation endpoints](https://plaid.com/docs/api/products/payment-initiation/). `REFUND:` a transaction which debits an e-wallet by refunding a previously initiated payment made through Plaid's [PIS APIs](https://plaid.com/docs/api/products/payment-initiation/). `FUNDS_SWEEP`: an automated transaction which debits funds from an e-wallet to a designated client-owned account. `RETURN`: an automated transaction where a debit transaction was reversed and money moved back to originating account. `RECALL`: a transaction where the sending bank has requested the return of funds due to a fraud claim, technical error, or other issue associated with the payment. `ACCOUNT_FUNDING`: an incoming transfer from an allowlisted account. Not automatically refunded. `AUTO_REFUND`: an outgoing refund automatically initiated by Plaid in response to an unexpected `BANK_TRANSFER`.
  - `scheme` 'null' | 'FASTER_PAYMENTS' | 'SEPA_CREDIT_TRANSFER' | 'SEPA_CREDIT_TRANSFER_INSTANT', nullable — The payment scheme used to execute this transaction. This is present only for transaction types `PAYOUT` and `REFUND`. `FASTER_PAYMENTS`: The standard payment scheme within the UK. `SEPA_CREDIT_TRANSFER`: The standard payment to a beneficiary within the SEPA area. `SEPA_CREDIT_TRANSFER_INSTANT`: Instant payment to a beneficiary within the SEPA area.
  - `amount` WalletTransactionAmount, required — The amount and currency of a transaction
    - `iso_currency_code` 'GBP' | 'EUR', required — An ISO-4217 currency code, used with e-wallets and transactions.
    - `value` number, double, required — The amount of the transaction. Must contain at most two digits of precision e.g. `1.23`.
  - `counterparty` WalletTransactionCounterparty, required — An object representing the e-wallet transaction's counterparty
    - `name` string, required — The name of the counterparty
    - `numbers` WalletTransactionCounterpartyNumbers, required — The counterparty's bank account numbers. Exactly one of IBAN or Bacs data is required.
      - `bacs` WalletTransactionCounterpartyBACS, nullable — An object containing a Bacs account number and sort code. If an IBAN is not provided or if you need to accept domestic GBP-denominated payments, Bacs data is required.
        - `account` string — The account number of the account. Maximum of 10 characters.
        - `sort_code` string — The 6-character sort code of the account.
      - `international` WalletTransactionCounterpartyInternational, nullable — International Bank Account Number for a Wallet Transaction
        - `iban` string — International Bank Account Number (IBAN).
    - `address` PaymentInitiationAddress, nullable — The optional address of the payment recipient's bank account. Required by most institutions outside of the UK.
      - `street` string[], required — An array of length 1-2 representing the street address where the recipient is located. Maximum of 70 characters.
      - `city` string, required — The city where the recipient is located. Maximum of 35 characters.
      - `postal_code` string, required — The postal code where the recipient is located. Maximum of 16 characters.
      - `country` string, required — The ISO 3166-1 alpha-2 country code where the recipient is located.
    - `date_of_birth` string, date, nullable — The counterparty's birthdate, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format.
  - `status` 'AUTHORISING' | 'INITIATED' | 'EXECUTED' | 'SETTLED' | 'BLOCKED' | 'FAILED', required — The status of the transaction. `AUTHORISING`: The transaction is being processed for validation and compliance. `INITIATED`: The transaction has been initiated and is currently being processed. `EXECUTED`: The transaction has been successfully executed and is considered complete. This is only applicable for debit transactions. `SETTLED`: The transaction has settled and funds are available for use. This is only applicable for credit transactions. A transaction will typically settle within seconds to several days, depending on which payment rail is used. `FAILED`: The transaction failed to process successfully. This is a terminal status. `BLOCKED`: The transaction has been blocked for violating compliance rules. This is a terminal status.
  - `created_at` string, date-time, required — Timestamp when the transaction was created, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
  - `last_status_update` string, date-time, required — The date and time of the last time the `status` was updated, in ISO 8601 format
  - `payee_verification_status` 'FULL_MATCH' | 'PARTIAL_MATCH' | 'NO_MATCH' | 'ERROR' | 'CHECK_NOT_POSSIBLE', nullable — Result of payee verification check for EUR payouts. Payee verification checks whether the payee name provided matches the account holder name at the destination institution. `FULL_MATCH`: The payee name fully matches the account holder. `PARTIAL_MATCH`: The payee name partially matches the account holder. `NO_MATCH`: The payee name does not match the account holder. `ERROR`: An error occurred during payee verification. `CHECK_NOT_POSSIBLE`: Payee verification could not be performed. This field is only populated for applicable EUR payout transactions and will be `null` for other transaction types.
  - `payment_id` string, nullable — The payment id that this transaction is associated with, if any. This is present only for transaction types `PIS_PAY_IN` and `REFUND`.
  - `failure_reason` 'EXTERNAL_SYSTEM' | 'EXPIRED' | 'CANCELLED' | 'INVALID' | 'ACCOUNT_INVALID' | 'AUTHENTICATION_FAILED' | 'UNKNOWN', nullable — The error code of a failed transaction. Error codes include: `EXTERNAL_SYSTEM`: The transaction was declined by an external system. `EXPIRED`: The transaction request has expired. `CANCELLED`: The transaction request was rescinded. `INVALID`: The transaction did not meet certain criteria, such as an inactive account or no valid counterparty, etc. `ACCOUNT_INVALID`: The transaction could not be processed because the wallet account is invalid or inactive. `AUTHENTICATION_FAILED`: The transaction could not be processed because authentication with the wallet provider failed. `UNKNOWN`: The transaction was unsuccessful, but the exact cause is unknown.
  - `error` PlaidError, nullable — Errors are identified by `error_code` and categorized by `error_type`. Use these in preference to HTTP status codes to identify and handle specific errors. HTTP status codes are set and provide the broadest categorization of errors: 4xx codes are for developer- or user-related errors, and 5xx codes are for Plaid-related errors, and the status will be 2xx in non-error cases. An Item with a non-`null` error object will only be part of an API response when calling `/item/get` to view Item status. Otherwise, error fields will be `null` if no error has occurred; if an error has occurred, an error code will be returned instead.
    - `error_type` 'INVALID_REQUEST' | 'INVALID_RESULT' | 'INVALID_INPUT' | 'INSTITUTION_ERROR' | 'RATE_LIMIT_EXCEEDED' | 'API_ERROR' | 'ITEM_ERROR' | 'ASSET_REPORT_ERROR' | 'BASE_REPORT_ERROR' | 'RECAPTCHA_ERROR' | 'OAUTH_ERROR' | 'PAYMENT_ERROR' | 'BANK_TRANSFER_ERROR' | 'INCOME_VERIFICATION_ERROR' | 'MICRODEPOSITS_ERROR' | 'SANDBOX_ERROR' | 'PARTNER_ERROR' | 'SIGNAL_ERROR' | 'TRANSACTIONS_ERROR' | 'TRANSACTION_ERROR' | 'TRANSFER_ERROR' | 'CHECK_REPORT_ERROR' | 'CONSUMER_REPORT_ERROR' | 'USER_ERROR' | 'IDEMPOTENCY_ERROR' | 'ASSETS_ERROR' | 'CRA_MONITORING_ERROR' | 'CREDIT_PROFILE_REPORT_ERROR' | 'ENCOMPASS_ERROR' | 'ENRICH_ERROR' | 'FRAUD_INSIGHTS_ERROR' | 'FREDDIE_MAC_ERROR' | 'LINK_DELIVERY_ERROR' | 'PROFILE_ERROR' | 'RECURRING_TRANSACTIONS_ERROR' | 'STATEMENTS_ERROR' | 'TRANSFER_RECURRING_ERROR' | 'TRANSFER_REFUND_ERROR', required — A broad categorization of the error. Safe for programmatic use.
    - `error_code` string, required — The particular error code. Safe for programmatic use.
    - `error_code_reason` string, nullable — The specific reason for the error code. Currently, reasons are only supported for OAuth-based item errors; `null` will be returned otherwise. Safe for programmatic use. Possible values: `OAUTH_INVALID_TOKEN`: The user's OAuth connection to this institution has been invalidated. `OAUTH_CONSENT_EXPIRED`: The user's access consent for this OAuth connection to this institution has expired. `OAUTH_USER_REVOKED`: The user's OAuth connection to this institution is invalid because the user revoked their connection.
    - `error_message` string, required — A developer-friendly representation of the error code. This may change over time and is not safe for programmatic use.
    - `display_message` string, nullable, required — A user-friendly representation of the error code. `null` if the error is not related to user action. This may change over time and is not safe for programmatic use.
    - `request_id` string — A unique ID identifying the request, to be used for troubleshooting purposes. This field will be omitted in errors provided by webhooks.
    - `causes` unknown[] — In this product, a request can pertain to more than one Item. If an error is returned for such a request, `causes` will return an array of errors containing a breakdown of these errors on the individual Item level, if any can be identified. `causes` will be provided for the `error_type` `ASSET_REPORT_ERROR` or `CHECK_REPORT_ERROR`. `causes` will also not be populated inside an error nested within a `warning` object.
      - unknown
    - `status` integer, nullable — The HTTP status code associated with the error. This will only be returned in the response body when the error information is provided via a webhook.
    - `documentation_url` string — The URL of a Plaid documentation page with more information about the error
    - `suggested_action` string, nullable — Suggested steps for resolving the error
    - `required_account_subtypes` string[] — A list of the account subtypes that were requested via the `account_filters` parameter in `/link/token/create`. Currently only populated for `NO_ACCOUNTS` errors from Items with `investments_auth` as an enabled product.
    - `provided_account_subtypes` string[] — A list of the account subtypes that were extracted but did not match the requested subtypes via the `account_filters` parameter in `/link/token/create`. Currently only populated for `NO_ACCOUNTS` errors from Items with `investments_auth` as an enabled product.
  - `related_transactions` WalletTransactionRelation[] — A list of wallet transactions that this transaction is associated with, if any.
    - `id` string — The ID of the related transaction.
    - `type` 'PAYOUT' | 'RETURN' | 'REFUND' | 'FUNDS_SWEEP' — The type of the transaction.
  - `request_id` string, required — A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.

## Other responses

- `default` — Error response

---

[API](https://skmtc.net/plaid/apis/the-plaid-api.md) · [All operations](https://skmtc.net/plaid/apis/the-plaid-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/plaid/the-plaid-api/versions/64c4514ea59b/schema)
