---
title: "Retrieve a transfer"
method: POST
path: "/transfer/get"
tags: ["plaid"]
---

# Retrieve a transfer

`POST /transfer/get`

The `/transfer/get` endpoint fetches information about the transfer corresponding to the given `transfer_id`.

## Request body

- TransferGetRequest — Defines the request schema for `/transfer/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.
  - `transfer_id` string, required — Plaid’s unique identifier for a transfer.
  - `originator_client_id` string, nullable — The Plaid client ID of the transfer originator. Should only be present if `client_id` is a third-party sender (TPS).

## Response `200`

OK

- TransferGetResponse — Defines the response schema for `/transfer/get`
  - `transfer` Transfer, required — Represents a transfer within the Transfers API.
    - `id` string, required — Plaid’s unique identifier for a transfer.
    - `authorization_id` string, required — Plaid’s unique identifier for a transfer authorization.
    - `ach_class` 'ccd' | 'ppd' | 'tel' | 'web' — Specifies the use case of the transfer. Required for transfers on an ACH network. Codes supported for credits: `ccd`, `ppd` Codes supported for debits: `ccd`, `tel`, `web` `"ccd"` - Corporate Credit or Debit - fund transfer between two corporate bank accounts `"ppd"` - Prearranged Payment or Deposit - the transfer is part of a pre-existing relationship with a consumer, e.g. bill payment `"tel"` - Telephone-Initiated Entry `"web"` - Internet-Initiated Entry - debits from a consumer’s account where their authorization is obtained over the Internet
    - `account_id` string — The Plaid `account_id` corresponding to the end-user account that will be debited or credited.
    - `funding_account_id` string, nullable, required — The id of the associated funding account, available in the Plaid Dashboard. If present, this indicates which of your business checking accounts will be credited or debited.
    - `type` 'debit' | 'credit', required — The type of transfer. This will be either `debit` or `credit`. A `debit` indicates a transfer of money into the origination account; a `credit` indicates a transfer of money out of the origination account.
    - `user` TransferUserInResponse, required — The legal name and other information for the account holder.
      - `legal_name` string, required — The user's legal name.
      - `phone_number` string, nullable, required — The user's phone number.
      - `email_address` string, nullable, required — The user's email address.
      - `address` TransferUserAddressInResponse, nullable, required — The address associated with the account holder.
        - `street` string, nullable, required — The street number and name (i.e., "100 Market St.").
        - `city` string, nullable, required — Ex. "San Francisco"
        - `region` string, nullable, required — The state or province (e.g., "CA").
        - `postal_code` string, nullable, required — The postal code (e.g., "94103").
        - `country` string, nullable, required — A two-letter country code (e.g., "US").
    - `amount` string, required — The amount of the transfer (decimal string with two digits of precision e.g. "10.00"). When calling `/transfer/authorization/create`, specify the maximum amount to authorize. When calling `/transfer/create`, specify the exact amount of the transfer, up to a maximum of the amount authorized. If this field is left blank when calling `/transfer/create`, the maximum amount authorized in the `authorization_id` will be sent.
    - `description` string, required — The description of the transfer.
    - `created` string, date-time, required — The datetime when this transfer was created. This will be of the form `2006-01-02T15:04:05Z`
    - `status` 'pending' | 'posted' | 'settled' | 'funds_available' | 'cancelled' | 'failed' | 'returned', required — The status of the transfer. `pending`: A new transfer was created; it is in the pending state. `posted`: The transfer has been successfully submitted to the payment network. `settled`: Credits are available to be withdrawn or debits have been deducted from the Plaid linked account. `funds_available`: Funds from the transfer have been released from hold and applied to the ledger's available balance. (Only applicable to ACH debits.) `cancelled`: The transfer was cancelled by the client. `failed`: The transfer failed, no funds were moved. `returned`: A posted transfer was returned.
    - `sweep_status` 'null' | 'unswept' | 'swept' | 'swept_settled' | 'return_swept', nullable — The status of the sweep for the transfer. `unswept`: The transfer hasn't been swept yet. `swept`: The transfer was swept to the sweep account. `swept_settled`: Credits are available to be withdrawn or debits have been deducted from the customer’s business checking account. `return_swept`: The transfer was returned, funds were pulled back or pushed back to the sweep account. `null`: The transfer will never be swept (e.g. if the transfer is cancelled or returned before being swept)
    - `network` 'ach' | 'same-day-ach' | 'rtp' | 'wire', required — The network or rails used for the transfer. For transfers submitted as `ach`, the next-day cutoff is 5:30 PM Eastern Time. For transfers submitted as `same-day-ach`, the same-day cutoff is 3:30 PM Eastern Time. If the transfer is submitted after this cutoff but before the next-day cutoff, it will be sent over next-day rails and will not incur same-day charges; this will apply to both legs of the transfer if applicable. For transfers submitted as `rtp`, Plaid will automatically route between Real Time Payment rail by TCH or FedNow rails as necessary. If a transfer is submitted as `rtp` and the counterparty account is not eligible for RTP, the `/transfer/authorization/create` request will fail with an `INVALID_FIELD` error code. To pre-check to determine whether a counterparty account can support RTP, call `/transfer/capabilities/get` before calling `/transfer/authorization/create`.
    - `wire_details` TransferWireDetails, nullable — Information specific to wire transfers.
      - `message_to_beneficiary` string, nullable — Additional information from the wire originator to the beneficiary. Max 140 characters.
    - `cancellable` boolean, required — When `true`, you can still cancel this transfer.
    - `failure_reason` TransferFailure, nullable, required — The failure reason if the event type for a transfer is `"failed"` or `"returned"`. Null value otherwise.
      - `ach_return_code` string, nullable — The ACH return code, e.g. `R01`. A return code will be provided if and only if the transfer status is `returned`. For a full listing of ACH return codes, see [Transfer errors](https://plaid.com/docs/errors/transfer/#ach-return-codes).
      - `description` string — A human-readable description of the reason for the failure or reversal.
    - `metadata` TransferMetadata, nullable, required — The Metadata object is a mapping of client-provided string fields to any string value. The following limitations apply: The JSON values must be Strings (no nested JSON objects allowed) Only ASCII characters may be used Maximum of 50 key/value pairs Maximum key length of 40 characters Maximum value length of 500 characters
    - `origination_account_id` string, required — Plaid’s unique identifier for the origination account that was used for this transfer.
    - `guarantee_decision` 'GUARANTEED' | 'NOT_GUARANTEED' | 'null', nullable, required — Indicates whether the transfer is guaranteed by Plaid (Guarantee customers only). This field will contain either `GUARANTEED` or `NOT_GUARANTEED` indicating whether Plaid will guarantee the transfer. If the transfer is not guaranteed, additional information will be provided in the `guarantee_decision_rationale` field. Refer to the `code` field in `guarantee_decision_rationale` for details.
    - `guarantee_decision_rationale` TransferAuthorizationGuaranteeDecisionRationale, nullable, required — The rationale for Plaid's decision to not guarantee a transfer. Will be `null` unless `guarantee_decision` is `NOT_GUARANTEED`.
      - `code` 'RETURN_BANK' | 'RETURN_CUSTOMER' | 'GUARANTEE_LIMIT_REACHED' | 'RISK_ESTIMATE_UNAVAILABLE' | 'REQUIRED_PARAM_MISSING', required — A code representing the reason Plaid declined to guarantee this transfer: `RETURN_BANK`: The risk of a bank-initiated return (for example, an R01/NSF) is too high to guarantee this transfer. `RETURN_CUSTOMER`: The risk of a customer-initiated return (for example, a R10/Unauthorized) is too high to guarantee this transfer. `GUARANTEE_LIMIT_REACHED`: This transfer is low-risk, but Guarantee has exhausted an internal limit on the number or rate of guarantees that applies to this transfer. `RISK_ESTIMATE_UNAVAILABLE`: A risk estimate is unavailable for this Item. `REQUIRED_PARAM_MISSING`: Required fields are missing.
      - `description` string, required — A human-readable description of why the transfer cannot be guaranteed.
    - `iso_currency_code` string, required — The currency of the transfer amount, e.g. "USD"
    - `standard_return_window` string, date, nullable, required — The date 3 business days from settlement date indicating the following ACH returns can no longer happen: R01, R02, R03, R29. This will be of the form YYYY-MM-DD.
    - `unauthorized_return_window` string, date, nullable, required — The date 61 business days from settlement date indicating the following ACH returns can no longer happen: R05, R07, R10, R11, R51, R33, R37, R38, R51, R52, R53. This will be of the form YYYY-MM-DD.
    - `expected_settlement_date` string, date, nullable, required — The expected date when the full amount of the transfer settles at the consumers’ account, if the transfer is credit; or at the customer's business checking account, if the transfer is debit. Only set for ACH transfers and is null for non-ACH transfers. Only set for ACH transfers. This will be of the form YYYY-MM-DD.
    - `originator_client_id` string, nullable, required — The Plaid client ID that is the originator of this transfer. Only present if created on behalf of another client as a [Platform customer](https://plaid.com/docs/transfer/application/#originators-vs-platforms).
    - `refunds` TransferRefund[], required — A list of refunds associated with this transfer.
      - `id` string, required — Plaid’s unique identifier for a refund.
      - `transfer_id` string, required — The ID of the transfer to refund.
      - `amount` string, required — The amount of the refund (decimal string with two digits of precision e.g. "10.00").
      - `status` 'pending' | 'posted' | 'cancelled' | 'failed' | 'settled' | 'returned', required — The status of the refund. `pending`: A new refund was created; it is in the pending state. `posted`: The refund has been successfully submitted to the payment network. `settled`: Credits have been refunded to the Plaid linked account. `cancelled`: The refund was cancelled by the client. `failed`: The refund has failed. `returned`: The refund was returned.
      - `failure_reason` TransferRefundFailure, nullable, required — The failure reason if the event type for a refund is `"failed"` or `"returned"`. Null value otherwise.
        - `ach_return_code` string, nullable — The ACH return code, e.g. `R01`. A return code will be provided if and only if the refund status is `returned`. For a full listing of ACH return codes, see [Transfer errors](https://plaid.com/docs/errors/transfer/#ach-return-codes).
        - `description` string — A human-readable description of the reason for the failure or reversal.
      - `created` string, date-time, required — The datetime when this refund was created. This will be of the form `2006-01-02T15:04:05Z`
      - `network_trace_id` string, nullable — The trace identifier for the transfer based on its network. This will only be set after the transfer has posted. For `ach` or `same-day-ach` transfers, this is the ACH trace number. For `rtp` transfers, this is the Transaction Identification number. For `wire` transfers, this is the IMAD (Input Message Accountability Data) number.
    - `recurring_transfer_id` string, nullable, required — The id of the recurring transfer if this transfer belongs to a recurring transfer.
    - `expected_sweep_settlement_schedule` TransferExpectedSweepSettlementScheduleItem[] — The expected sweep settlement schedule of this transfer, assuming this transfer is not `returned`. Only applies to ACH debit transfers.
      - `sweep_settlement_date` string, date, required — The settlement date of a sweep for this transfer.
      - `swept_settled_amount` string, required — The accumulated amount that has been swept by `sweep_settlement_date`.
    - `credit_funds_source` 'sweep' | 'prefunded_rtp_credits' | 'prefunded_ach_credits' | 'null', nullable, required — This field is now deprecated. You may ignore it for transfers created on and after 12/01/2023. Specifies the source of funds for the transfer. Only valid for `credit` transfers, and defaults to `sweep` if not specified. This field is not specified for `debit` transfers. `sweep` - Sweep funds from your funding account `prefunded_rtp_credits` - Use your prefunded RTP credit balance with Plaid `prefunded_ach_credits` - Use your prefunded ACH credit balance with Plaid
    - `facilitator_fee` string — The amount to deduct from `transfer.amount` and distribute to the platform’s Ledger balance as a facilitator fee (decimal string with two digits of precision e.g. "10.00"). The remainder will go to the end-customer’s Ledger balance. This must be less than or equal to the `transfer.amount`.
    - `network_trace_id` string, nullable — The trace identifier for the transfer based on its network. This will only be set after the transfer has posted. For `ach` or `same-day-ach` transfers, this is the ACH trace number. For `rtp` transfers, this is the Transaction Identification number. For `wire` transfers, this is the IMAD (Input Message Accountability Data) number.
  - `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

## Changes

- **2024-04-17** `943c632a075c` — 1 warning
  - added the new `funds_available` enum value to the `transfer/status` response property for the response status `200`
- **2024-02-21** `5de70cc1e6ca` — 3 breaking, 14 warning, 18 info
  - the request property `transfer_id` became required
  - the response property `transfer/guarantee_decision` became nullable for the status `200`
  - the `transfer/guarantee_decision` response's property type changed from no type to `string` for status `200`
  - removed the request property `authorization_id`
  - …31 more

[Change history](https://skmtc.dev/plaid/apis/the-plaid-api/changes/transfer/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)
