---
title: "Get payment details"
method: POST
path: "/payment_initiation/payment/get"
tags: ["plaid"]
---

# Get payment details

`POST /payment_initiation/payment/get`

The `/payment_initiation/payment/get` endpoint can be used to check the status of a payment, as well as to receive basic information such as recipient and payment amount. In the case of standing orders, the `/payment_initiation/payment/get` endpoint will provide information about the status of the overall standing order itself; the API cannot be used to retrieve payment status for individual payments within a standing order.

## Request body

- PaymentInitiationPaymentGetRequest — PaymentInitiationPaymentGetRequest defines the request schema for `/payment_initiation/payment/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.
  - `payment_id` string, required — The `payment_id` returned from `/payment_initiation/payment/create`.

## Response `200`

OK

- PaymentInitiationPaymentGetResponse — PaymentInitiationPayment defines a payment initiation payment
  - `payment_id` string, required — The ID of the payment. Like all Plaid identifiers, the `payment_id` is case sensitive.
  - `amount` PaymentAmount, required — The amount and currency of a payment
    - `currency` 'GBP' | 'EUR' | 'PLN' | 'SEK' | 'DKK' | 'NOK', required — The ISO-4217 currency code of the payment. For standing orders and payment consents, `"GBP"` must be used. For Poland, Denmark, Sweden and Norway, only the local currency is currently supported.
    - `value` number, double, required — The amount of the payment. Must contain at most two digits of precision e.g. `1.23`. Minimum accepted value is `1`.
  - `status` 'PAYMENT_STATUS_INPUT_NEEDED' | 'PAYMENT_STATUS_PROCESSING' | 'PAYMENT_STATUS_INITIATED' | 'PAYMENT_STATUS_COMPLETED' | 'PAYMENT_STATUS_INSUFFICIENT_FUNDS' | 'PAYMENT_STATUS_FAILED' | 'PAYMENT_STATUS_BLOCKED' | 'PAYMENT_STATUS_UNKNOWN' | 'PAYMENT_STATUS_EXECUTED' | 'PAYMENT_STATUS_SETTLED' | 'PAYMENT_STATUS_AUTHORISING' | 'PAYMENT_STATUS_CANCELLED' | 'PAYMENT_STATUS_ESTABLISHED' | 'PAYMENT_STATUS_REJECTED', required — The status of the payment. `PAYMENT_STATUS_INPUT_NEEDED`: This is the initial state of all payments. It indicates that the payment is waiting on user input to continue processing. A payment may re-enter this state later on if further input is needed. `PAYMENT_STATUS_INITIATED`: The payment has been successfully authorised and accepted by the financial institution. For successful payments, this is a potential terminal status. Further status transitions can be to REJECTED and, when supported by the institution, to EXECUTED. `PAYMENT_STATUS_INSUFFICIENT_FUNDS`: The payment has failed due to insufficient funds. `PAYMENT_STATUS_FAILED`: The payment has failed to be initiated. This error may be caused by transient system outages and is retryable once the root cause is resolved. `PAYMENT_STATUS_BLOCKED`: The payment has been blocked by Plaid. This can occur, for example, due to Plaid flagging the payment as potentially risky. This is a retryable error. `PAYMENT_STATUS_AUTHORISING`: The payment is currently being processed. The payment will automatically exit this state when the financial institution has authorised the transaction. `PAYMENT_STATUS_CANCELLED`: The payment was cancelled (typically by the end user) during authorisation. `PAYMENT_STATUS_EXECUTED`: The funds have successfully left the payer account and payment is considered complete. Not all institutions support this status: support is more common in the UK, and less common in the EU. For institutions where this status is not supported, the terminal status for a successful payment will be `PAYMENT_STATUS_INITIATED`. `PAYMENT_STATUS_SETTLED`: The payment has settled and funds are available for use. A payment will typically settle within seconds to several days, depending on which payment rail is used. This status is only available to customers using [Plaid Virtual Accounts](https://plaid.com/docs/virtual-accounts/). `PAYMENT_STATUS_ESTABLISHED`: Indicates that the standing order has been successfully established. This state is only used for standing orders. `PAYMENT_STATUS_REJECTED`: The payment was rejected by the financial institution. Deprecated: These statuses will be removed in a future release. `PAYMENT_STATUS_UNKNOWN`: The payment status is unknown. `PAYMENT_STATUS_PROCESSING`: The payment is currently being processed. The payment will automatically exit this state when processing is complete. `PAYMENT_STATUS_COMPLETED`: Indicates that the standing order has been successfully established. This state is only used for standing orders.
  - `recipient_id` string, required — The ID of the recipient
  - `reference` string, required — A reference for the payment.
  - `adjusted_reference` string, nullable — The value of the reference sent to the bank after adjustment to pass bank validation rules.
  - `last_status_update` string, date-time, required — The date and time of the last time the `status` was updated, in IS0 8601 format
  - `schedule` ExternalPaymentScheduleGet, nullable — The schedule that the payment will be executed on. If a schedule is provided, the payment is automatically set up as a standing order. If no schedule is specified, the payment will be executed only once.
    - `interval` 'WEEKLY' | 'MONTHLY', required — The frequency interval of the payment.
    - `interval_execution_day` integer, required — The day of the interval on which to schedule the payment. If the payment interval is weekly, `interval_execution_day` should be an integer from 1 (Monday) to 7 (Sunday). If the payment interval is monthly, `interval_execution_day` should be an integer indicating which day of the month to make the payment on. Integers from 1 to 28 can be used to make a payment on that day of the month. Negative integers from -1 to -5 can be used to make a payment relative to the end of the month. To make a payment on the last day of the month, use -1; to make the payment on the second-to-last day, use -2, and so on.
    - `start_date` string, date, required — A date in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD). Standing order payments will begin on the first `interval_execution_day` on or after the `start_date`. If the first `interval_execution_day` on or after the start date is also the same day that `/payment_initiation/payment/create` was called, the bank *may* make the first payment on that day, but it is not guaranteed to do so.
    - `end_date` string, date, nullable, required — A date in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD). Standing order payments will end on the last `interval_execution_day` on or before the `end_date`. If the only `interval_execution_day` between the start date and the end date (inclusive) is also the same day that `/payment_initiation/payment/create` was called, the bank *may* make a payment on that day, but it is not guaranteed to do so.
    - `adjusted_start_date` string, date, nullable, required — The start date sent to the bank after adjusting for holidays or weekends. Will be provided in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD). If the start date did not require adjustment, this field will be `null`.
  - `refund_details` ExternalPaymentRefundDetails, nullable — Details about external payment refund
    - `name` string, required — The name of the account holder.
    - `iban` string, nullable, required — The International Bank Account Number (IBAN) for the account.
    - `bacs` RecipientBACSNullable, nullable, required — The account number and sort code of the recipient's account.
      - `account` string — The account number of the account. Maximum of 10 characters.
      - `sort_code` string — The 6-character sort code of the account.
  - `bacs` SenderBACSNullable, nullable, required — The account number and sort code of the sender's account, if specified in the `/payment_initiation/payment/create` call.
    - `account` string — The account number of the account. Maximum of 10 characters.
    - `sort_code` string — The 6-character sort code of the account.
  - `iban` string, nullable, required — The International Bank Account Number (IBAN) for the sender, if specified in the `/payment_initiation/payment/create` call.
  - `refund_ids` string[], nullable — Refund IDs associated with the payment.
  - `amount_refunded` PaymentAmountRefunded, nullable — The amount that has been refunded already. Subtract this from the payment amount to calculate the amount still available to refund.
    - `currency` 'GBP' | 'EUR' | 'PLN' | 'SEK' | 'DKK' | 'NOK', required — The ISO-4217 currency code of the payment. For standing orders and payment consents, `"GBP"` must be used. For Poland, Denmark, Sweden and Norway, only the local currency is currently supported.
    - `value` number, double, required — The amount of the payment. Must contain at most two digits of precision e.g. `1.23`.
  - `wallet_id` string, nullable — The EMI (E-Money Institution) wallet that this payment is associated with, if any. This wallet is used as an intermediary account to enable Plaid to reconcile the settlement of funds for Payment Initiation requests.
  - `scheme` 'null' | 'LOCAL_DEFAULT' | 'LOCAL_INSTANT' | 'SEPA_CREDIT_TRANSFER' | 'SEPA_CREDIT_TRANSFER_INSTANT', nullable — Payment scheme. If not specified - the default in the region will be used (e.g. `SEPA_CREDIT_TRANSFER` for EU). Using unsupported values will result in a failed payment. `LOCAL_DEFAULT`: The default payment scheme for the selected market and currency will be used. `LOCAL_INSTANT`: The instant payment scheme for the selected market and currency will be used (if applicable). Fees may be applied by the institution. If the market does not support an Instant Scheme (e.g. Denmark), the default in the region will be used. `SEPA_CREDIT_TRANSFER`: The standard payment to a beneficiary within the SEPA area. `SEPA_CREDIT_TRANSFER_INSTANT`: Instant payment within the SEPA area. May involve additional fees and may not be available at some banks.
  - `adjusted_scheme` 'null' | 'LOCAL_DEFAULT' | 'LOCAL_INSTANT' | 'SEPA_CREDIT_TRANSFER' | 'SEPA_CREDIT_TRANSFER_INSTANT', nullable — Payment scheme. If not specified - the default in the region will be used (e.g. `SEPA_CREDIT_TRANSFER` for EU). Using unsupported values will result in a failed payment. `LOCAL_DEFAULT`: The default payment scheme for the selected market and currency will be used. `LOCAL_INSTANT`: The instant payment scheme for the selected market and currency will be used (if applicable). Fees may be applied by the institution. If the market does not support an Instant Scheme (e.g. Denmark), the default in the region will be used. `SEPA_CREDIT_TRANSFER`: The standard payment to a beneficiary within the SEPA area. `SEPA_CREDIT_TRANSFER_INSTANT`: Instant payment within the SEPA area. May involve additional fees and may not be available at some banks.
  - `consent_id` string, nullable — The payment consent ID that this payment was initiated with. Is present only when payment was initiated using the payment consent.
  - `transaction_id` string, nullable — The transaction ID that this payment is associated with, if any. This is present only when a payment was initiated using virtual accounts.
  - `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.

## Changes

- **2024-02-21** `5de70cc1e6ca` — 2 warning
  - removed the optional property `allOf[#/components/schemas/PaymentInitiationPayment]/end_to_end_id` from the response with the `200` status
  - removed the optional property `allOf[#/components/schemas/PaymentInitiationPayment]/error` from the response with the `200` status

[Change history](https://skmtc.dev/plaid/apis/the-plaid-api/changes/payment_initiation/payment/get/post.md)

---

[API](https://skmtc.dev/plaid/apis/the-plaid-api.md) · [All operations](https://skmtc.dev/plaid/apis/the-plaid-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/plaid/the-plaid-api/revisions/a5b45bccb4e8/schema)
