Transactions are funds transfers processed immediately, without Recipient interaction.
Transaction Statuses
APPROVAL_REQUIRED
- Approval required by Payer, based on Payer configurationCANCELLED
- Cancelled/voidedFAILED
- Failed due to decline or account errorPAID
- Transaction was successfully processedPENDING_KYC
- Transaction under review by compliance teamPROCESSING
- Transaction is in process and waiting confirmation on completion or failureRETRY
- Transaction will be re-attempted based on scheduled process or manually through support channelsREFUNDED
- Transaction has been refunded based on refunds against the originating transactionREFUNDED_PARTIAL
- Transaction has been partially refunded based on refunds against the originating transactionREVERSED
- Transaction reversedREVERSAL_PENDING
- Transaction reversal requested and under reviewUNKNOWN
- Transaction processed but final status is unknown, based on Payer configuration forUNKNOWN
response, otherwise will be consideredPAID
until final status is determined. Only applicable toINSTANT_DEPOSIT
Transaction Types
Transaction Type indicates the direction of funds. CREDIT
indicates you are sending funds to a Recipient. DEBIT
indicates you are accepting funds from a Recipient.
Transaction Methods
Transaction Method indicates how to disperse or accept funds. Transaction Type indicates the direction of funds, either CREDIT
or DEBIT
the user (recipient).
Portal and Reporting may show a more detailed description of PREPAID
based on the account type they are funding.
Method | Type | Description | Recipient Requirements |
---|---|---|---|
ACH_FUNDING | DEBIT | ACH Transaction processed on the same day if submitted before 3:30PM Eastern during business days. | Bank account |
ACH_FUNDING_PLUS | DEBIT | ACH Transaction processed on the same day if submitted before 3:30PM Eastern during business days. Failed transactions due to R01 ACH Return Code will be automatically retried at a configured interval. | Bank account |
ACH_REFUND | CREDIT | ACH Transaction processed on the same day if submitted before 3:30PM Eastern during business days. Must reference an originating transaction ID. | Bank account |
ACH_SAME_DAY | CREDIT | ACH Transaction processed on the same day if submitted before 3:30PM Eastern during business days. | Bank account |
ACH_STANDARD | CREDIT | ACH Transaction processed in 3-5 business days. | Bank account |
CHECK | CREDIT | Paper Check | Address |
ECHECK | CREDIT | Electronic Check | |
INSTANT_DEPOSIT | CREDIT | Funds transferred to an account via Debit Card | Debit card account |
PAYPAL | CREDIT | Funds transferred via PayPal | PayPal Account |
PREPAID | CREDIT | Funds loaded onto a Prepaid Account | Prepaid account |
RTP | CREDIT | Funds transferred to a Bank Account | Bank account |
VENMO | CREDIT | Funds transferred via Venmo | Venmo Account |
Transaction Request Schemas
The following parameters are applicable for every Transaction method. A subset of Transaction methods have optional request parameters identified in their respective areas below.
Parameter | Type | Required | Description |
---|---|---|---|
recipient_id | String | Yes | Recipient ID |
account_id | String | Yes | Payment Account ID |
type | String | Yes | Direction of funds |
method | String | Yes | Transaction method |
amount | Double | Yes | Transaction amount |
reference_id | String | No | Transaction reference ID |
memo | String | No | Transaction memo |
location_id | String | Maybe | Valid State or US Territory Possibly required for compliance purposes |
meta_params | JSON | No | JSON string of values to include for reporting requirements Please consult with technical team on usage |
ECheck
Parameter | Type | Required | Description |
---|---|---|---|
String | No | Email override for ECHECK transactions |
ACH Funding / ACH Funding Plus
ACH Funding / ACH Funding Plus allows for a funding_options
request object with risk-associated parameters.
Parameter | Type | Required | Description |
---|---|---|---|
funding_option.risk_check | Boolean | No | Evaluate the risk profile of the user/bank Default: false |
funding_options.risk_level | String | No | Define the risk threshold to compare against Default: STANDARD |
funding_options.balance_check | Boolean | No | Check the user's bank account balance before initiating a transaction Default: false |
funding_options.ip_address | String | No | User's IP address, can help mitigate against fraudulent transactions |
funding_options.user_agent | String | No | User agent of user's device, can help mitigate against fraudulent transactions |
ACH Refund
ACH Refund request requires the originating Transaction ID to match against the original transaction.
Parameter | Type | Required | Description |
---|---|---|---|
originating_transaction_id | String | Yes | Originating Transaction ID to be referenced |
Transaction Webhooks
Webhooks are essential to knowing the latest status of a transaction. A Transaction webhook will be sent with the initial Transaction request and all subsequent status updates. Review the Webhooks documentation page for samples and further details.
Transaction Error Codes
A comprehensive list of error codes and descriptions can be found at API Error Codes. 4xx
responses follow a consistent format shown below. Under certain conditions the error response will contain a transaction_id
and/or additional risk metrics associated with the transaction.
{
"http_status": 4xx,
"error_code": "{error code}",
"error_message": "{error description}"
}
ACH Funding Error Codes
Specific to ACH Funding, there are additional error codes as a result of pre-transaction checks for velocity, bank balance lookup, and risk score evaluation. Risk-related error codes will include a funding_options_response
object with configured threshold values and actual values.
Error Code | Details |
---|---|
ERR_ACCOUNT_BALANCE_THRESHOLD | Balance does not meet required threshold for transaction |
ERR_ACCOUNT_BALANCE_UNAVAILABLE | Plaid bank account balance is unavailable, a new transaction request can be issued with balance_check : false to bypass the balance check |
ERR_ACCOUNT_RE_AUTH_REQUIRED | Plaid account requires re-authorization and the user will have to go through the Bank Account Widget workflow |
ERR_ACCOUNT_RISK_BANK_BALANCE_THRESHOLD | Bank risk threshold was exceeded and the bank balance multiplier was not met. The bank balance requirement then starts at 200% and increases an additional 100% for every PROCESSING transaction |
ERR_ACCOUNT_RISK_LEVEL_NOT_CONFIGURED | Client incorrectly configured for risk_level passed into the funding_options object or is not setup with default risk threshold levels |
ERR_ACCOUNT_RISK_METRICS_UNAVAILABLE | Plaid risk data is unavailable, a new transaction request can be issued with risk_check : false to bypass the risk check |
ERR_ACCOUNT_RISK_THRESHOLD | Consumer risk threshold was exceeded |
ERR_PROVIDER_ACCOUNT_MISCONFIGURATION | Client incorrectly configure for Plaid integration |
ERR_VELOCITY_LIMIT | Velocity limit reached |
ACH Refund Error Codes
Error Code | Details |
---|---|
ERR_INVALID_ORIGINATING_TRANSACTION_ID | The originating Transaction ID is invalid or not found |
ERR_REFUND_INVALID_ORIGINATING_METHOD | The originating Transaction method is not an ACH_FUNDING or ACH_FUNDING_PLUS transaction |
ERR_REFUND_INVALID_ORIGINATING_STATUS | The originating Transaction status is not PAID or REFUNDED_PARTIAL |
ERR_REFUND_AMOUNT_EXCEEDED | The refund request amount plus any previous refunds towards the original transaction exceeds the original transaction amount |