Send ACH Payment


API Refs

Request body

filebinaryThe payment attachment. You can download it in the transaction history in the web
recipientEmailstringInsured email.
If insured does not exist, create an invite
amountnumberThe amount of money being transferred. Amounts should have either 0 or 2 decimal places. Max limit is based on most current agreements with SnapRefund. Minimum limit is $0.01.yes
memostringA string with a maximum length of 280
bankIdstringInsured’s bank idyes

Response body

idnumberId of payment. Can be used for any payment operations.yes
transactionIdstringPayment transaction Id. It can be seen in the application in the transaction history.yes
amountnumberPayment amount without any fees.yes
customerIdnumberThe Id of the insured who will receive the payment or has already received it.yes
customerNamestringName of the insured who will receive the payment or has already received it.yes
merchantNamestringName of the insurer who will send the payment or has already sent it.yes
feenumberFee for the payment amount. It will only be different from zero when this payment is sent.yes
feeDeductFromstringWhich side of the transfer will pay the fee.yes
statusstringStatus of payment. Main statuses: Awaiting-cash-out, Canceled, Preparing to mail, In-transit, Settledyes
typestringType of payment. Can be only of two types: ACH or paper check with delivery type.yes
memostringA string with a maximum length of 280
createdAtDateCreation dateyes


  1. Get list of insured’s banks Request with userId = 1;
  2. Get list of insured’s banks Response:
        "id": "11a111a1-1111-1111-11a1-11a1a1aa11aa",
        "name": "Bank_995",
        "accountType": "checking",
        "type": "bank",
        "status": "unverified"
        "id": "22a222a1-2222-2222-22a2-22a2a2aa22aa",
        "name": "Bank_996",
        "accountType": "savings",
        "type": "bank",
        "status": "unverified"
  3. Send ACH Transfer Request:
      "recipientEmail": "[email protected]",
      "amount": 12.34,
      "memo": "Test memo",
      "bankId": "11a111a1-1111-1111-11a1-11a1a1aa11aa"
  4. Send ACH Transfer Response:
      "id": 1,
      "transactionId": "a444aa44-aaa4-4a4a-aaaa-a44a44444a44",
      "amount": 12.34,
      "createdAt": "2023-08-09T15:00:00.000Z",
      "customerId": 2,
      "customerName": "John Smith",
      "merchantName": "Jake Merchant",
      "fee": "0.79",
      "feeDeductFrom": "recipient",
      "status": "In-transit",
      "type": "ACH",
      "memo": "Test memo"



You can send ACH transfers only for your insureds. If you want to send ACH transfer for non insured, go to Send pending payment


Where to get insured's email?

You can get list of all created insureds. Go to Get list of all insureds


Where to get bank id?

You can get all existing banks for any you insured. Go to Get list of insured’s banks for more information about it.

When accepting a pending payment as an ACH transaction, you must always indicate the bank Id that you intend to use on the insured's side.

When a transaction is created, the payment changes to the LOCK status.
If the transaction is successfully created, the pending payment status will change to In-transit.

Such a payment has the following statuses:

  • In-transit - transaction in progress;
  • Settled - transaction completed successfully;
  • Failed - the transaction did not complete successfully;
  • Canceled - the transaction has been canceled.