Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This guide will allow you to implement the collection of Bank Account payment data to process debits through the BECS (Bulk Electronic Clearing System) / ACH (Automated Clearing House). The technical aspects of implementation are quite simple however due to the compliance regulations a DDR (Direct Debit Request) agreement must be in place with the payer.

Info

Refer to our eDDR and Payment Page Requirement guides to assist in compliance. When collecting Bank Account payment details through your own Payment Page a few key details are highlighted below:

  • Form fields:

    • Bank Account Name

    • Bank Account BSB

    • Bank Account Number

  • Minimum payer contact information:

    • First Name

    • Last Name

    • Email Address

  • A copy of the DDR agreement must be emailed to the payer.

  • A copy of the DDR agreement email confirmation must be saved by the merchant as this form and email may be required to prove direct debit acceptance in the case of a claim or chargeback request.

  • A new DDR agreement must be entered if there is a change of payment details.

In order to begin and understand the API workflow of saving Bank Account data to a payer record, the typical API flow is outlined below:

  1. Create a Payer Record - POST Add a new Payer

  2. Collect Bank Account Details via form fields - POST Add or update payers bank account details

  3. Schedule single or multiple payments - Implement Scheduling API to debit payer

  4. Determine result of scheduled debit - GET Search for transaction status change

  5. Remove transaction from data set - POST Acknowledge transaction status change


Step 1 - Create a Payer Record

API

...

Sample

POST Add a new Payer

  • Minimum fields in Payer Property:

    • UniqueReference

    • FamilyorBusinessName

    • GivenName

    • Email

Info

Refer to Payer Input Model for more information around the API properties.

Sample

Example Request

Code Block
languagejson
{{url}}/businesses/{{business-id}}/payers
Code Block
languagejson
{
    "UniqueReference": "P1-UNIQUE-REF",
    "GroupReference": "P1-GROUP-REF",
    "FamilyOrBusinessName": "Surname",
    "GivenName": "First Name",
    "Email": "test@test.com",
    "Phone": "0733331111",
    "Mobile": "0411123123",
    "Address": {
      "Line1": "1 Test St",
      "Line2": "Test Building",
      "Suburb": "Testville",
      "State": "QLD",
      "PostCode": "4001",
      "Country": "AUS"
    },
    "ExtraInfo": {
      "XeroAutoDebitEnabled": false
    },
    "Audit": {
      "Username": "Example-User",
      "UserIP": "1.2.3.4"
    }
  }

Example Response

Code Block
languagejson
{
  "payerId": "135032",
  "uniqueReference": "P1-UNIQUE-REF"
}

Step 2 - Add or Update Payer Bank Account Details

API

...

POST Add or update payers bank account details

Minimum property fields:

  • ‘accountBranch’

  • ‘accountNumber’

  • ‘accountName’

Info

Refer to Bank Account Model for more information around the API properties.

Sample

Example Request

Code Block
languagejson
{{url}}/businesses/{{business-id}}/payers/{{payer-reference}}/accounts/bank-account
Code Block
languagejson
{
    "AccountBranch": "123456",
    "AccountNumber": "123456789",
    "AccountName": "Test Bank Account",
    "AccountType": null,
    "Audit": {
      "Username": "Example-User",
      "UserIP": "1.2.3.4"
    }
}

Example Response

Code Block
languagejson
{
  "accountId": "135032-3",
  "type": "BANKACCOUNT",
  "card": null,
  "bankAccount": {
    "accountBranch": "123456",
    "accountNumber": "123xxx789",
    "accountName": "Test Bank Account",
    "accountType": null
  }
}

Step 3 - Initiate a scheduled debit via API to debit payer

Refer to Implement Scheduling API to debit payer


This concludes the API workflow of implementing the Bank Account Payments through your own payment page and implementing schedule debits once data recorded. Refer to the next steps in implementation or our other methods available for accepting payments.