CentraPoint

Guides

Debit orders & reconciliation

Overview of Netcash debit orders and statement reconciliation in the CentraPoint dashboard, and what is available via the API.

On this page

Overview#

CentraPoint collects recurring bank debit orders in South Africa through Netcash, and reconciles money received against transactions by importing statements.

Requirements#

  • A plan that includes Debit orders and/or Reconciliation (Business and higher by default).
  • A Netcash account with the debit order and account services, configured as a Netcash Debit Orders provider under Settings → Payment providers (debit order service key and account service key).

Mandates#

A mandate is a customer's authority to debit their bank account. In the dashboard under Debit orders you can:

  • create a mandate with the account holder, bank, branch code, account number and type, amount, frequency (monthly, quarterly, bi-annually, annually), debit day and start/end dates;
  • send the customer a Netcash e-mandate to sign;
  • pause, resume or cancel mandates.

Each mandate gets an account reference of the form DO followed by 10 upper-case hex characters, e.g. DO7F3A1C9B2E. Bank account numbers are stored encrypted and only the last 4 digits are displayed.

Mandate statuses
StatusMeaning
pendingCreated, awaiting signature.
activeWill be included in batches when due.
pausedSkipped. Set manually, or automatically after 3 consecutive unpaids.
cancelledStopped permanently (or its end date has passed).

Batches and collection#

Due mandates are grouped into a Netcash batch for an action date, using the Two-day or Same-day instruction configured on the provider, and uploaded to Netcash. Depending on your Netcash profile, batches are authorised automatically or by you in the Netcash portal. CentraPoint then reads Netcash's load report to see which lines were accepted or rejected.

Batch statuses
StatusMeaning
uploadedSent to Netcash, waiting for the load report.
accepted / partially_acceptedAll / some lines were accepted by Netcash.
rejectedNo lines were accepted.
settledAccepted lines were marked collected after the settlement period.
failedThe upload failed.

Debit order transactions#

Every line in a batch creates a transaction with type: "debit_order", currency ZAR, and a reference made of the mandate's account reference and the action date:

  • DO7F3A1C9B2E-20261001

The transaction starts pending, becomes failed if Netcash rejects the line, and becomes complete a configurable number of days after the action date ("Mark collected after", default 3) unless an unpaid arrives first.

Unpaids#

When a debit is returned unpaid (found through reconciliation or marked manually in the dashboard), its transaction becomes failed and the mandate's failure count increases. After 3 consecutive unpaids the mandate is paused.

Reconciliation#

Under Reconciliation in the dashboard, CentraPoint imports statement lines and matches them to transactions:

  • Netcash merchant statements are fetched automatically using the account service key.
  • CSV statements from other gateways or your bank can be imported manually.
  • Lines are categorised as collections, unpaids, fees, payouts, refunds or other. Collections confirm the matching transaction; unpaids mark debit orders unpaid; fees and payouts are recorded for reporting.
  • Matching uses CentraPoint references found in the statement (CP-… payment references, legacy GSS-… references and DO… debit order references). Lines that cannot be matched go to a Needs attention queue.
  • Re-importing the same statement does not create duplicate lines.
  • Results are available through the Reconciliation results API and the reconciliation.completed webhook.

What you can do via the API#

API support for debit orders
TaskAPI
Check the outcome of a debit order collectionGET /api/v1/transactions/{reference} with the DO…-YYYYMMDD reference
Create, change or cancel mandatesDashboard only
Run batches, mark unpaidsDashboard only
Read reconciliation results (totals, matches, exceptions)GET /api/v1/reconciliation/runs
Import statements, resolve reconciliation exceptionsDashboard only