This API is used to send money to the customer's saved bank account (ACH credit).
It returns 201 with the transfer status (usually pending) and the transaction. The final status (settled or returned) arrives later through the ach.status.changed webhook and shows in List transactions.
Note: Requires the Idempotency-Key header: an ACH credit can't be undone, so the same key never sends money twice. If the request fails before anything is sent, you can retry with the same key. Amounts are in cents.
URL
{{interface_url}}/{{version}}/customers/{{customer_id}}/transfers/out
Method
POST
Headers
Authorization: Bearer {access_token} (or Api-Key), Idempotency-Key: {unique value per operation}
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| payment_method_id | Integer | Yes | A saved bank account of the customer. |
| amount | Integer | Yes | Amount to send, in cents. |
URL Parameters
| Parameter | Required/Optional | Type | Description |
|---|---|---|---|
| customer_id | Required | Integer | Our customer ID (id returned by Create customer). |
Example Request (cURL)
curl --location --request POST '{{interface_url}}/{{version}}/customers/{{customer_id}}/transfers/out' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{access_token}}' \
--header 'Idempotency-Key: {{$guid}}' \
--data '{
"payment_method_id": 90312,
"amount": 1000
}'
Example Response (JSON) — 201
{
"status": "pending",
"amount": 1000,
"payment_method_id": 90312,
"transaction": {
"id": 1048830,
"date": "2026-11-05T18:30:00Z",
"type": "ach_transfer",
"status": "pending",
"amount": 1000,
"method": {
"type": "ach",
"last4": "6789"
}
}
}
Error Responses
Format: { "error": { "code", "name", "message", "details" } }
| Status | Error | When |
|---|---|---|
| 400 | idempotency_key_required | Missing Idempotency-Key header. |
| 409 | idempotency_key_conflict | Key reused with a different body, or the first request is still running. |
| 404 | payment_method_not_found | Not a saved bank account of this customer. |
| 422 | payment_declined | The gateway rejected the transfer (see error.details). |
| 422 | processor_configuration_not_found | The location has no ACH processor. |

