Regular ACH

Regular ACH (Automated Clearing House) is widely used to transfer funds between US-based bank accounts. It is reliable and cost-effective but processes transactions in batches, making it slightly slower than Same-day ACH or Realtime ACH. Regular ACH is often used for recurring payments, payroll, and other routine transactions, offering a dependable method for managing domestic payouts.

The usual workflow for integrating with the non-hosted solution involves the following steps:

Step 1: Authenticate: Obtain an API token by validating your credentials.

Step 2: Create Beneficiary: Create and manage beneficiary's accounts using API calls.

Step 3: Create Transfer Method: Add and manage transfer methods for your beneficiaries.

Step 4: Create Transfer: Execute and manage transfers between accounts.

API Endpoints Used

This guide will demonstrate step-by-step instructions using the API integration method. In this guide, you will use the following API endpoints:

Below, you will go through the necessary API calls to achieve the steps above within the i-payout system.

📘

Recipe

You can also follow our recipe by clicking the link below:

Step 1: Authenticate

To start using i-payout solutions, you will need to authenticate with your API Token. Refer to the Get a Token guide to learn how to:

Step 2: Create Beneficiary

A beneficiary is an individual designated to receive funds or payments through the i-payout system. To create a beneficiary, you will need to provide detailed information about the individual, such as their name, address, and payment details.

Use the Create Beneficiary endpoint to create a new beneficiary. The request should include all necessary details about the beneficiary in the request body and, as shown in Step 1, include the authentication to access the i-payout API. Below, you will find an example request to create a new beneficiary:

curl --request POST \
     --url "https://merchantapi.testewallet.com/api/v1/beneficiaries" \
     --header 'Authorization: Bearer <YOUR_API_TOKEN>' \
     --header 'X-MerchantId: <YOUR_MERCHANT_ID>' \
     --header 'accept: application/json' \
     --header 'content-type: application/*+json' \
     --data '{
        "username": "john_doe",
        "firstName": "John",
        "lastName": "Doe",
        "emailAddress": "[email protected]"
    }'
{
  "data": {
    "customerToken": "e0e4764b-9619-4deb-95c4-108ce9f0fe04"
  },
  "isSuccess": true,
  "message": "Customer created successfully",
  "statusCode": 0,
  "logIdentifier": "497b73624c0d47bfb0abf58df5dd99ca"
}

Step 3: Create Transfer Method

To manage how funds are transferred to beneficiaries, you need to create a transfer method. To add a Regular ACH transfer method for your beneficiary, use the Add Bank Account endpoint. This method requires a US bank account and the relevant ACH details:

curl --request POST \
     --url "https://merchantapi.testewallet.com/api/v1/transfermethods/beneficiaries/<BENEFICIARY_TOKEN_FROM_STEP_2>/bank-accounts" \
     --header 'Authorization: Bearer <YOUR_API_TOKEN>' \
     --header 'X-MerchantId: <YOUR_MERCHANT_ID>' \
     --header 'accept: application/json' \
     --header 'content-type: application/*+json' \
     --data '{
        "beneficiaryToken": "<beneficiaryToken_from_step_2>",
        "accountHolderName": "John Doe",
        "accountNickName": "John Personal Account",
        "accountCurrency": "USD",
        "accountNumber": "123456789",
        "accountType1": "personal",
        "accountType2": "checking",
        "bankName": "Bank of America",
        "bankCountry": "US",
        "routingNumber": "987654321",
        "branchAddress": "1234 Bank Street, Suite 567",
        "beneficiaryFirstName": "John",
        "beneficiaryLastName": "Doe",
        "beneficiaryCountry": "US",
        "beneficiaryAddress1": "1234 Elm St",
        "beneficiaryState": "CA",
        "beneficiaryCity": "Los Angeles",
        "beneficiaryZipCode": "90001",
     }'
{
  "isSuccess": true,
  "message": "Bank account added successfully",
  "statusCode": 200,
  "logIdentifier": "def456ghi789",
  "token": "bankAcc123Token",
  "dateCreated": "2024-07-20T10:00:00.000Z",
  "dateUpdated": "2024-07-20T10:00:00.000Z"
}

Step 4: Create Transfer

With the new beneficiaries created in the system, you can now pay them. This is done by transferring funds to them. The Create Transfer endpoint will be used to make the transfer from you to your beneficiary by linking the transfer with the beneficiaryToken created on Step 2. To transfer through Regular ACH, the destinationType should be RegularACH. Below, you will find an example request to create a new transfer:

curl --request POST \
     --url "https://merchantapi.testewallet.com/api/v1/transfers" \
     --header 'Authorization: Bearer <YOUR_API_TOKEN>' \
     --header 'X-MerchantId: <YOUR_MERCHANT_ID>' \
     --header "accept: application/json" \
     --header "Content-Type: application/json" \
     --data '{
          "merchantTransactionId": "TX123456",
          "beneficiaryToken": "<beneficiaryToken_from_step_2>",
          "autoApprove": True,
          "comments": "Payment for services",
          "dateExpire": "2024-12-31T23:59:59.999Z",
          "destinationAmount": 100.00,
          "destinationCurrency": "USD",
          "destinationType": "RegularACH",
          "bankAccount": {
              "accountNickName": "John Personal Account",
              "accountCurrency": "USD",
              "accountNumber": "123456789",
              "accountType1": "personal",
              "accountType2": "checking",
              "bankName": "Bank of America",
              "bankCountry": "US",
              "routingNumber": "987654321",
              "branchAddress": "1234 Bank Street, Suite 567",
              "beneficiaryCountry": "US",
              "beneficiaryAddress1": "1234 Elm St",
              "beneficiaryState": "CA",
              "beneficiaryCity": "Los Angeles",
              "beneficiaryZipCode": "90001",
          },
     }'
{
  "isSuccess": true,
  "message": "Transfer created successfully",
  "statusCode": 200,
  "logIdentifier": "abc123def456",
  "token": "trans789token",
  "dateCreated": "2024-07-09T16:17:00.548Z",
  "dateUpdated": "2024-07-09T16:17:00.548Z",
  "statusId": 1,
  "fxRate": 1.05,
  "customerFee": 2.50,
  "merchantFee": 1.00
}

Other Available Payout Methods

Follow the links below to learn more about other available payout methods: