ACH Transfers Methods
ACH Transfers Methods
Making a Transfer
A simple workflow for making a transfer to an external bank account looks like:
- Make a POST /customers/{customerid} request as documented at POST /customers to create a new customer. If holding an existing account, retrieve its AccountID from the Registration API.
- Make a POST/customers/{customerid}/links/type/{fundingtype} request using CustomerID from the previous response to create a funding link. Make a second similar request to setup a destination link. If using a Green Dot bank account for either the source or destination, skip establishing that link.
- Make a POST/transfers/{transferid} request using CustomerID from the previous response to create a funding source.
- Make a POST/transfers/confirm/{transferId} request using TransferId from the previous response to confirm or void the associated Transfer. (This step is only used for a 2-phase commit or void Transfer Process).
POST /transfers/{transferId}
Creates a transfer request to move funds from a source link to a destination link. The transferId is optional. If transferId is not passed, the Disbursement Platform will create one. The partner generated transferid must be unique for a given partner program and meet the following format criteria:
- Length = 6-40 and allowable characters include alphanumeric and , - _ ~
The transfer status can be in one of the following statuses. The status of a transfer can be retrieved by checking Status on the response object of GET /transfers/TransferID.
Status | Description |
---|---|
Pending | The transfer request is pending, and the funds have NOT been deposited to the recipient. |
Completed | The transfer request is complete, and the funds have been deposited to the recipient. |
Failed | The transfer request failed, and the funds have NOT been deposited to the recipient. |
Rejected | The transfer request is rejected, and the funds have NOT been deposited to the recipient. |
Request
Field | Type | Format | Required | Description |
---|---|---|---|---|
transferobjects:sourceuri | string | Max 255 characters | Yes | The LinkURI of the funding source. |
transferobjects:destinationuri | string | Max 255 characters | Yes | The LinkURI of the destination. |
transaction:amount | string | Max 8 characters (99999.99) | Yes | Amount to be transferred. |
transaction:currency | string | Max 3 characters | Yes | USD - US Dollar. |
transaction:description | string | Max 250 characters | No | Optional transaction description. |
transaction:transactiondate | string | ISO 8601 | Yes | Transaction date time of transfer. |
options | string | Array of key/value pair | No | Array of Key/Value pair that partner can use to pass any special options for the transfer. |
retailer:retailerkey | string | Max 5 characters | Conditional | Retailer object is mandatory for POS transactions. Retailer identifier for this transaction (Provided by Green Dot). This field is Mandatory if retailer complex object is passed with a non-null value. |
retailer:storenumber | string | Max 50 characters | No | Store number or Store ID of the retailer where the transaction was initiated. |
retailer:terminalid | string | Max 10 characters | No | Register/Terminal ID of the POS system where the transaction was initiated. |
retailer:statecode | string | Max 2 characters | No | State where the transaction was initiated. |
retailer:storename | string | Max 50 characters | No | Store where the transaction was initiated. |
Response
- transferid: The unique identifier for this transfer.
- status: See the status table above.
- claimcode: Optional. For Cash transactions, the recipient will use this claim code to claim cash at the register.
- claimexpirationdate: Optional. For Cash transactions, the date and time the claim code expires.
- fees: Complex object. See example below.
- allowedamount: Maximum amount allowed for this transfer.
- fundsavailability: Funds availability can conditionally be any one of the following:
- IMMEDIATE
- NEXT_BUSINESS_DAY
- TWO_TO_FIVE_BUSINESS_DAYS
- externalreferenceid: The transaction reference ID shared with the Card Issuer.
- responsecode: Response code associated to the Transfer.
- If 0 – Success, refer to transaction status to confirm is ‘Completed’ or ‘Pending.’
- If not 0 – Success, it provides the code explaining why transaction failed.
- responsemessage: Description of response code.
- responsedate: The response date and time.
- responsedetailcode: Detail code associated to Transfer Request.
- responsedetailcodedescription: Detail description of detail code.
Request Sample
Creates a transfer request from source to destination.
{
"transferobjects":{
"sourceuri":"https://partners.greendotonline.com/customers/950e4868-9f51-4a08-96a7-fcad96c4458e",
"destinationuri":"https://partners.greendotonline.com/customers/950e4868-9f51-4a08-96a7-fcad96c4458e/links/gdaccounts/0739196f-6d05-4dd2-b8c3-576cd997ce17"
},
"transaction":{
"amount":"25.00",
"currency":"USD",
"description":"Payroll",
"transactiondate":"2015-11-16T15:20:000Z"
},
"options":[
{
"key":"Sample-Key1",
"value":"Sample-Value1"
},
{
"key":"Sample-Key2",
"value":"Sample-Value2"
}
]
}
Response Sample (Success)
{
"transferid":"a359722c-78a6-4034-b77a-a5745153f79b",
"status":"Completed",
"claimcode":"3f8a377d-c834-4a41-840a-db37a93f89c6",
"claimexpirationdate":null,
"fees":null,
"allowedamount":null,
"fundsavailability":"IMMEDIATE",
"externalreferenceid":"710400478098",
"responsecode":0,
"responsemessage":"Success",
"responsedate":"2017-04-14T23:35:23.7061123Z",
"responsedetail":{
"responsedetailcode":0,
"responsedetaildescription":"Success"
}
}
POST/transfers Request (ACH)
{
"transferobjects":{
"sourceuri":"https://partners.greendotonline.com/customers/950e4868-9f51-4a08-96a7-fcad96c4458e",
"destinationuri":"https://partners.greendotonline.com/customers/950e4868-9f51-4a08-96a7-fcad96c4458e/links/950e4868-9f51-4a08-96a7-fcad96c4458e"
},
"transaction":{
"amount":"350.00",
"currency":"USD",
"description":"ACH deposit to customer X",
"transactiondate":"2015-11-16T15:20:000Z"
},
"retailer":null,
"options":[
{
"key":"Sample-Key1",
"value":"Sample-Value1"
},
{
"key":"Sample-Key2",
"value":"Sample-Value2"
}
]
}
POST/transfers Response (ACH) (Success)
{
"transferid":"a359722c-78a6-4034-b77a-a5745153f79b",
"status":"Completed",
"claimcode":"3f8a377d-c834-4a41-840a-db37a93f89c6",
"claimexpirationdate":null,
"fees":null,
"allowedamount":null,
"fundsavailability":"IMMEDIATE",
"externalreferenceid":"710400478098",
"responsecode":0,
"responsemessage":"Success",
"responsedate":"2017-04-14T23:35:23.7061123Z",
"responsedetail":{
"responsedetailcode":0,
"responsedetaildescription":"Success"
}
}
Updated 2 days ago