5. Payment processing – direct debit

Direct debit errors

Below is a table of test data and associated errors that can be used to simulate various problems during testing failed Direct Debit payments.

Sort code Account number Error code Error message
400002 31001001 dd_no_instruction No instruction held with the paying bank.
400002 31001002 dd_amount_differs Payer states the amount of the Direct Debit differs from the amount in the advance notice to payer.
400002 31001003 dd_account_closed Payer has closed their account for an unknown reason.
400002 31002001 dd_paying_bank_canceled_ddi Paying bank has cancelled instruction.
400002 31002002 dd_account_transferred Account transferred to a different branch of the bank/building society.
400002 31002003 dd_instruction_amended Instruction amended.

Any other provided values for sort code & account number will lead to successful Direct Debit payment (taking into account test data from “Funding source validation” table).

Direct debit errors that occur later

Note that it’s not all possible errors that could occur in Api’s live mode, For example, a client has created a Direct Debit funding source with 400002 as the sort code and 31001001 as an account number, this funding source was marked as valid. Now the client creates a payment using that funding source, Customate Api takes some time to process this payment and after a while the client will be notified with similar webhook event:

{ "id": "d353ad23-79e9-487d-9ea6-9c31b239db91", "type": "payment.updated", "creation_datetime": "2020-04-22T16:00:00.000Z", "data": { "id": "5e614f0b-f57c-4a42-a24d-8412c84e29ad", "status": "failed", "amount": 100, "profile": { "id": "025e371d-c76d-4b97-be8a-743f343416da" }, "funding_source": { "id": "e16b0c85-8b1c-4f33-9835-1b9c01dfbec1" }, "payee": { "id": "4dba13e4-cbec-42e8-9875-c3c85ef80e93" }, "error_code": "no_instruction", "error_message": "No Instruction held with paying bank" } }