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 type = ach
The ach_relationship created for the account_id here
bank_id string/UUID
Required if type = wire
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