Send Same Day ACH Payment

šŸ“˜

API Refs

Request body

NameTypeDescriptionRequired
filebinaryThe payment attachment. You can download it in the transaction history in the web app.no
recipientEmailstringInsured email.
If insured does not exist, create an invite
yes
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 characters.no
bankIdstringInsuredā€™s bank idyes
senderBankIdstringThe sender's bank to be used for the ACH dwolla transfer. The id value can be retrieved by the endpoint: /api/public/my-info/banks.no

Response body

NameTypeDescriptionRequired
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.yes
memostringA string with a maximum length of 280 characters.no
createdAtDateCreation dateyes

Example

  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 Same Day ACH Transfer Request:
    {
      "recipientEmail": "[email protected]",
      "amount": 12.34,
      "memo": "Test memo",
      "bankId": "11a111a1-1111-1111-11a1-11a1a1aa11aa"
    }
    
  4. Send Same Day 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": "Same Day ACH",
      "memo": "Test memo"
    }
    

Description

ā—ļø

You can only send Same Day ACH transfers to insureds you've created. If you want to send a Same Day ACH transfer to a user that hasn't been created yet, you must send a pending payment instead 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 Same Day 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.

ā—ļø

This functionality must be enabled for your account upon request. Reach out to our customer success team at [email protected] if you'd like to enable Same Day ACH payments