Module and release scope
This guide covers GoCardless Instant Bank Pay 1.0.1, Extension API 1, from the reviewed product source. Its declared core range is 1.3.6–1.3.99. Use the matching released core and signed provider package; a version label alone does not install the required contracts. Source availability does not mean the module is bundled in every currently downloadable product, installed on your server, enabled or certified for your merchant/server account. Nothing in this guide enables a provider or changes your existing connections.
Open System → Payment gateways (newer source may group these as Payments, Domain services or Hosting services). Install the reviewed signed package through Modules & addons or the integration workspace's Install tab, enable the module separately, add an account/connection, save its own credentials, run its stated Test and explicitly enable the connection. Saving or retesting disables the connection until you enable it again. Start with the provider's test environment where supported; otherwise use an isolated account or server.
Exact connection fields
These are the fields declared by this module. Secret values are entered privately and encrypted by the application. Defaults are configuration hints, not approved live merchant settings. Internal fields are populated by the module and are not operator-editable.
| Key / label | Type | Required | Default / guidance |
|---|---|---|---|
mode — Environment |
select | Yes | Default: "sandbox" Choices: sandbox = Sandbox, live = Live |
access_token — Payments API access token |
secret | Yes | Read-write Payments token for Billing Requests, Billing Request Flows, Payments and Creditors. Bank Account Data credentials are different. |
creditor_id — Creditor ID |
text | Yes | Use the account-specific value described below. |
webhook_secret — Webhook endpoint secret |
secret | Yes | Use the account-specific value described below. |
currencies — Enabled invoice currencies |
text | Yes | Default: "GBP" GBP and/or EUR approved for Instant Bank Pay. No currency conversion or future mandate debits are performed. |
This module creates a Billing Request and a provider-hosted Billing Request Flow for a single immediate bank payment in GBP or EUR. It does not schedule future mandate debits, subscriptions or unattended renewals. The merchant must have Instant Bank Pay enabled by GoCardless. Other GoCardless direct-debit schemes need separate mandate lifecycle support and are not advertised here.
- Obtain a read-write Payments API token for the selected sandbox or live organisation. Bank Account Data credentials are a different product.
- Enter the creditor ID receiving the funds. Test retrieves that creditor without creating a payment.
- Enable only GBP and/or EUR approved for the account.
- In the GoCardless dashboard create a webhook endpoint using the exact callback URL shown on the EmailaBiller connection page. Subscribe to payment confirmed/paid-out notifications and save the endpoint secret here. The same central callback serves all storefront domains using this connection.
- Complete an Instant Bank Pay sandbox flow and verify the invoice updates only after the payment is confirmed collected. A fulfilled request or a submitted debit is not payment.
Webhooks use the raw-body HMAC-SHA256 Webhook-Signature. Every actionable payment in a batch is retrieved with the merchant token, matched to the creditor, invoice metadata, amount and currency, and deduplicated by payment ID. Refunded, charged-back, pending or failed payments do not produce new paid evidence. Browser returns and staff reconciliation retrieve the original billing request and its linked payment. Late bank failures can occur even after collection; dispute/refund bookkeeping is handled separately.
Version 1.0.1 accepts signed deliveries containing up to 250 total events within a 1 MiB body limit, including events that do not concern payment collection. Each distinct actionable payment is retrieved once per delivery. A valid delivery containing only unrelated events is acknowledged without provider API calls; invalid or missing signatures, malformed deliveries and batches exceeding 250 events are rejected with a non-success response, so they cannot be mistaken for verified ignored events. EmailaBiller's webhook batch bridge must support the same 250-event bound.
Official references: Billing Requests, Billing Request Flows, Payments, Webhooks.
Install this signed package under System → Payment gateways → Install module. New installations are disabled. Create a separate connection, enter your own merchant credentials, run Test, and explicitly enable that connection after completing sandbox checkout and callback testing. No merchant credentials or business settings are included in this package.
The module uses verified HTTPS with fixed official provider endpoints, no redirects or automatic API retries, bounded uncompressed responses, exact two-decimal invoice accounting, and credential-safe errors. Network timeouts leave payment under review: inspect the provider before retrying. Provider methods depend on merchant approval, payer location, currency and device; installing this module does not promise every payment method. The module never collects card numbers, expiry dates or CVV.

