Transfers #
Transfers allow you to transfer money/balance into your end customers' account (deposits) or out (withdrawal).
It’s important to note that certain transfers, depending on the type and direction, will have fees associated with them. We currently support automated processing of fees on outgoing wires. For further information on this click here.
The Transfer Object #
Sample Object #
{
"id": "be3c368a-4c7c-4384-808e-f02c9f5a8afe",
"relationship_id": "0f08c6bc-8e9f-463d-a73f-fd047fdb5e94",
"account_id": "c8f1ef5d-edc0-4f23-9ee4-378f19cb92a4",
"type": "ach",
"status": "COMPLETE",
"reason": null,
"amount": "498",
"direction": "INCOMING",
"created_at": "2021-05-05T07:55:31.190788Z",
"updated_at": "2021-05-05T08:13:33.029539Z",
"expires_at": "2021-05-12T07:55:31.190719Z",
"requested_amount": "500",
"fee": "2",
"fee_payment_method": "user"
}
Attributes #
Attribute | Type | Notes |
---|---|---|
id |
string/UUID | The transfer ID |
relationship_id |
string/UUID | The ACH relationship ID (can also be bank_id in the case of wire) |
account_id |
string/UUID | The account ID |
type |
ENUM.TransferType | |
status |
ENUM.TransferStatus | |
reason |
string (nullable) | Cause of the status |
amount |
string/decimal | The amount the recipient will receive after any applicable fees are deducted |
direction |
ENUM.TransferDirection | |
created_at |
string/timedate | Timedate when transfer was created |
updated_at |
string/timedate | Timedate when transfer was updated |
expires_at |
string/timedate | Timedate when transfer was expired |
additional_information |
string | Additional information. Only applies to wire. |
requested_amount |
string/decimal | amount entered upon creation of a transfer entity |
fee |
string/decimal | Dollar amount of any applicable fees |
fee_payment_method |
ENUM.FeePaymentMethod | Denotes how any applicable fees will be paid |
ENUM.TransferType #
Attribute | Description |
---|---|
ach |
Transfer via ACH (US Only) |
wire |
Transfer via wire (international) |
ENUM.TransferStatus #
Attribute | Description |
---|---|
QUEUED |
Transfer is in queue to be processed |
APPROVAL_PENDING |
Transfer is pending approval |
PENDING |
Transfer is pending processing |
SENT_TO_CLEARING |
Transfer is being processed by the clearing firm |
REJECTED |
Transfer is rejected |
CANCELED |
Client initiated transfer cancellation |
APPROVED |
Transfer is approved |
COMPLETE |
Transfer is completed |
RETURNED |
The bank issued an ACH return for the transfer |
ENUM.TransferDirection #
Attribute | Description |
---|---|
INCOMING |
Funds incoming to user’s account (deposit) |
OUTGOING |
Funds outgoing from user’s account (withdrawal) |
ENUM.FeePaymentMethod #
Only outgoing wire fees are currently supported for automated processing.
Attribute | Description |
---|---|
user |
The end user will pay any applicable fees |
invoice |
Any applicable fees will be billed to the client in the following monthly invoice |
Fixtures #
Transfer API supports fixtures in Sandbox Environment. You can pass the desired transfer status in the optional additional_information
field when creating a transfer.
Attribute | Description |
---|---|
QUEUED |
/fixtures/status=QUEUED/fixtures/ |
PENDING |
/fixtures/status=PENDING/fixtures/ |
REJECTED |
/fixtures/status=REJECTED/fixtures/ |
CANCELED |
/fixtures/status=CANCELED/fixtures/ |
RETURNED |
/fixtures/status=RETURNED/fixtures/ |
APPROVED |
/fixtures/status=APPROVED/fixtures/ |
Sample Fixture #
Simulating a rejected account.
{
"additional_information": "/fixtures/status=REJECTED/fixtures/"
}
Creating a Transfer Entity #
POST /v1/accounts/{account_id}/transfers
Create a new transfer to an account to fund it.
In the sandbox environment, you can instantly deposit to or withdraw from an account with a virtual money amount. In the production environment, this endpoint is used only for requesting an outgoing (withdrawal) wire transfer at this moment. For the wire transfer (in production), you need to create a bank resource first using the Bank API. For more on how to fund an account in sandbox please check out this tutorial here.
Request #
Sample Request #
{
"transfer_type": "ach",
"relationship_id": "<relationship_id UUID>",
"amount": "500",
"direction": "INCOMING"
}
Parameters #
Parameter | Type | Required | Notes |
---|---|---|---|
transfer_type |
ENUM.TransferType | Required |
Sandbox currently only supports ach |
relationship_id |
string/UUID |
Required if
|
The ach_relationship created for the account_id here |
bank_id |
string/UUID |
Required if
|
The bank_relationship created for the account_id here |
amount |
string/decimal | Required |
Must be > 0.00. Any applicable fees will be deducted from this value. |
direction |
ENUM.TransferDirection | Required |
|
timing |
ENUM.TransferTiming | Required |
Only immediate |
additional_information |
string | Optional - Applies only to wires |
Additional wire details |
fee_payment_method |
ENUM.FeePaymentMethod | Optional |
Determines how any applicable fees will be paid. Default value is invoice . |
Response #
If successful, will return a newly Transfer Entity.
Retrieving All Transfers by Account #
GET /v1/accounts/{account_id}/transfers
You can query a list of transfers for an account.
Request #
Parameters #
Attribute | Type | Notes |
---|---|---|
direction |
ENUM | Optional - INCOMING , OUTGOING |
limit |
int | Optional |
offset |
int | Optional |
Response #
Returns a list of transfer entities ordered by created_at
.
Deleting a Transfer #
DELETE /v1/accounts/{account_id}/transfers/{transfer_id}
Request #
N/A
Response #
204
- Success (No Content)
Error Codes #
404
- Transfer Not Found