Debit order bill payments

Overview


Debit orders are a facility whereby a merchant can collect money from a customer's bank account without the customer having to do anything other than giving a merchant written, electronic or recorded voice approval to do so.


🚧

EFT Debit order payments are only available in South Africa


While debit orders are highly regulated in South Africa, merchants who responsibly collect from customers will be able to collect recurring revenue with little friction.


Tokenised EFT Debit order subscription payments


To sign-up a subscriber using EFT debit order as a recurring payment method requires three basic steps:

  1. Create a billing template using the Billing template endpoint

  2. Add subscriber to billing template using the Add subscriber endpoint

  3. Tokenise your customer's bank account details** using Custom payment flow or Revio payment flow flows


❗️

To create an EFT debit order token, additional fields will be required to successfully lodge payment instructions at Revio's acquiring bank.


Creating a billing template to a billing template


  • Profile code - A set code that connects Revio to its acquiring bank to process EFT debit order
    transactions

  • MID/Abbreviated name - A unique merchant identifier that will identify the transaction on the customers bank statement

  • Account number - The target clearing account where customer payments are collected to

"payment_method_details": {
        "direct_debit": {
            "profile_code": "{{Revio profile code provide by Revio}}",
            "abbreviated_name": "{{Merchant MID/Abbreviated name provided by Revio}}",
            "account_number": "{{Clearing account provided by Revio}}"
        }

Adding a subscriber to a billing template to a billing template


  • Subscription first deduction amount - Used when you want to collect a first amount different from the recurring subscription amount. Typically used for pro-rata payments

  • Subscription first deduction date - Used when you want to collect the first collection amount on a date different from the recurring subscription deduction date. Typically used for pro-rata payments

  • Subscription deduction date - The monthly recurring date on which the customer will be charged

  • Subscription release date - The date when the customer subscription ends and Revio needs to stop charging the customer


{
  	"client_id": "{{Your customers client_id}}",
    "payment_method_whitelist": ["eft"],
    "subscription_first_deduction_amount": 110,
    "subscription_first_deduction_date": "2022-03-01",
    "subscription_deduction_date": "2022-03-28",
    "subscription_release_date": "2023-02-28"
}

Tokenised EFT Debit order subscription payments - Custom payment flow


The Revio custom payment flow allows you to create a subscription, add a subscriber and tokenise account details, all from your back-end and keeping with your target user experience.


curl -X 'POST' \
  'https://gate.reviopay.com/api/v1/billing_templates/' \
  -H 'Authorization: Bearer {{Your Revio Bearer token}}' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "title": "Recurring EFT debit order example",
  "purchase": {
    "currency": "ZAR",
    "products": [
      {
        "name": "Recurring EFT debit order example",
        "price": 100
      }
    ],
    "payment_method_details": {
        "direct_debit": {
            "profile_code": "{{Revio profile code}}",
            "abbreviated_name": "{{Revio MID}}",
            "account_number": "{{Clearing account number}}"
        }
    }
  },
  "brand_id": "{{Your Revio brand_id}}",
  "is_subscription": true,
  "subscription_active": true,
  "subscription_period": 1,
  "subscription_period_units": "months",
  "subscription_due_period": 1,
  "subscription_due_period_units": "days",
  "subscription_charge_period_end": false,
  "subscription_trial_periods": 0,
  "force_recurring": true
}'
curl -X 'POST' \
  'https://gate.reviopay.com/api/v1/billing_templates/65035aaf-34fb-49c2-b9b7-bd1f15eb4233/add_subscriber/' \
  -H 'Authorization: Bearer {{Your Revio Bearer token}}' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "client_id": "c78b198b-20bd-4782-95ea-6f4f1320ac3e",
  "payment_method_whitelist": ["eft"],
  "subscription_first_deduction_amount": 110,
  "subscription_first_deduction_date": "2022-09-21",
  "subscription_deduction_date": "2022-10-01",
  "subscription_release_date": "2023-10-01"
}'
pm:debicheck // or eft
PayceFirstName:Test
PayceLastName:Test
PaycePhoneNumber:0768887009 // needs to be this form
PayceIdType:idNumber // or passportNumber
PayceIdNumber:2001014800086 // needs to be valid SA ID number
PayceBranchCode:123456 // needs to be 6 digits
PayceAccountType:Current // or Savings or Transmission (case sensitive)
PayceAccount:123456781 // valid South Africa bank account

🚧

When using the Direct charge payment method, ensure that the URL you use for tokenising customers banking details are: https://gate.reviopay.com/api/v1/p/{{Purchase_id generated from add-subscriber call}}/


The first deduction or recurring deduction date must be four days in the future when adding the subscriber to the subscription billing template.


❗️

You will always receive a 200 response as this call returns HTML. The best way to check for success/errors is to GET the purchase and check the status and attempts.

When using postman to test this request, make sure to select x-www-form-urlencoded.


Tokenised EFT Debit order subscription payments - Revio payment flow


The Revio payment flow allows customers to be redirected to the Revio payments page to tokenise their bank account details.


Pro tip

Send your customer a payment-link via email, SMS or text to allow them to securely tokenise their banking details without having to provide them to a call centre agent or your website.


Amending Debit order Tokens


You can amend Debit order tokens by calling PATCH /billing_templates/{id}/clients/{id}/


Here is the full list of fields you can amend:


'subscription_reference_number',
'subscription_debtor_account_number',
'subscription_debtor_account_type',
'subscription_debtor_branch_code',
'subscription_debtor_first_name',
'subscription_debtor_last_name',
'subscription_debtor_id_number',
'subscription_debtor_phone_number',
'subscription_release_date',