CHAPS (Clearing House Automated Payment System) — high-value, same-day GBP payments settling via the Bank of England's RTGS system.
Key facts
- No upper limit — suitable for property purchases, large corporate payments
- Settlement: Same business day (Bank of England operating hours only)
- Cut-off: Check Bank of England RTGS operating schedule
- Schema: ISO 20022 pacs.008 (customer payments)
Required creditor fields
ClearBank uses ISO 20022 structured address for CHAPS. The :creditor_address
must include :street_name, :building_number, :post_code, :town_name,
and :country (ISO 3166-1 alpha-2).
Examples
{:ok, result} = ClearBank.Payments.Chaps.send(client, %{
debtor_account_id: "acct-uuid",
amount: "500000.00",
currency: "GBP",
creditor_name: "Conveyancing Ltd",
creditor_sort_code: "200000",
creditor_account_number: "55779911",
creditor_address: %{
street_name: "High Street",
building_number: "1",
post_code: "SW1A 1AA",
town_name: "London",
country: "GB"
},
remittance_information: "PROP PURCHASE REF XYZ"
})
Summary
Functions
@spec return_payment(ClearBank.Client.t(), map()) :: ClearBank.HTTP.result()
Returns a received CHAPS payment.
Required params
:original_instruction_id- instruction ID of the payment to return:debtor_account_id- account from which to return the funds:return_reason_code- ISO 20022 reason code (e.g."AC03","CUST"):amount- amount to return:currency-"GBP"
@spec send(ClearBank.Client.t(), map()) :: ClearBank.HTTP.result()
Sends a CHAPS customer credit transfer (pacs.008).
Required params
:debtor_account_id- source account UUID:amount- decimal string:currency-"GBP":creditor_name- recipient name:creditor_sort_code- 6-digit sort code:creditor_account_number- 8-digit account number:creditor_address- structured address map (see module docs):remittance_information- payment narrative
Optional params
:end_to_end_id- your end-to-end reference:instruction_id- unique instruction ID:debtor_name- override debtor name:debtor_address- structured address map for debtor