Transfer out (ACH)

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

FieldTypeRequiredDescription
payment_method_idIntegerYesA saved bank account of the customer.
amountIntegerYesAmount to send, in cents.

URL Parameters

ParameterRequired/OptionalTypeDescription
customer_idRequiredIntegerOur 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" } }

StatusErrorWhen
400idempotency_key_requiredMissing Idempotency-Key header.
409idempotency_key_conflictKey reused with a different body, or the first request is still running.
404payment_method_not_foundNot a saved bank account of this customer.
422payment_declinedThe gateway rejected the transfer (see error.details).
422processor_configuration_not_foundThe location has no ACH processor.
Path Params
string
required
string
required
Body Params
Headers
string

A new key per attempt. Repeating the same key + body returns the same result.

Response

Language
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json