Build the Blinc integration
Start here. Build secure institution endpoints that implement the Blinc payment contract.
Blinc sends requests to HTTPS endpoints provided by a participating financial institution. This guide shows you how to build those endpoints, confirm that each request is genuine, perform the requested action, and return a secure response.
An endpoint is a web address in your system that receives one type of request. JSON is the text format used for request and response data. You do not need to know the shortened financial field names before you start. Each page explains them where they appear.
Read these pages in order
If this is your first time here, follow this path:
- Follow the integration journey to see one payment from start to finish.
- Set up security and keys.
- Decrypt a request from Blinc, then encrypt the response for Blinc.
- Format identifiers and date-times so messages can be traced and processed once.
- Understand common payment fields to learn the small JSON shapes reused by the operations.
- Understand code values so values such as
CLRG,P2P, andACSCare never guessed. - Build only the operations required for the institution's payment role.
- Return clear errors and handle repeated deliveries, then run certification tests.
Choose what you want to do
| Goal | Start here |
|---|---|
| Understand the complete flow | Follow the integration journey |
| Exchange keys and protect messages | Set up security and keys |
| Open a request received from Blinc | Decrypt a request from Blinc |
| Protect a response returned to Blinc | Encrypt a response for Blinc |
| See working security code | Use the security examples |
| Format IDs and date-times correctly | Format identifiers and date-times |
| Understand reusable JSON objects | Read the common field reference |
| Understand short code values | Read the code-values reference |
| Let a customer connect an account | Build Account Linking |
| Cancel a connected account | Build Account Unlinking |
| Accept or reject a debit | Build Debit Authorization |
| Return a completed debit | Build Reversal |
| Receive notice of a credit | Build Credit Notification |
| Post money to a beneficiary | Build Credit Instruction |
| Return errors and prevent duplicate processing | Return clear errors and handle repeated deliveries |
| Prove my endpoints are ready | Run certification tests |
| Look up an unfamiliar term | Read the glossary |
The request in plain English
Every call follows the same pattern:
- Blinc creates a readable JSON message describing one banking action.
- Blinc signs that exact message. The signature proves Blinc sent it and the message was not changed.
- Blinc encrypts the message with the institution public key. Only the matching institution private key can open it.
- Blinc sends the encrypted body to the endpoint URL supplied during onboarding.
- Decrypt the body before verifying the signature in the HTTP headers.
- Validate the fields and perform the action once.
- Sign the response, encrypt it for Blinc, and return the response signature in HTTP headers.
- Blinc decrypts and verifies the response before trusting the business result.
Blinc Institution endpoint
| |
| POST your configured endpoint |
| Headers: timestamp + signature |
| Body: encrypted data |
| -----------------------------------------> |
| | decrypt
| | verify signature
| | validate fields
| | process once
| | sign + encrypt result
| <----------------------------------------- |
| Headers: response signature |
| Body: encrypted data |What you supply
Before testing, send Blinc these values through the agreed secure onboarding channel:
| Value | What it means | Why Blinc needs it |
|---|---|---|
| Endpoint URL for each operation | The complete HTTPS address Blinc calls, such as https://sandbox.examplebank.com/blinc/debit-authorizations | Each institution controls its own routes, so Blinc needs the complete URL. |
| Institution public key | The shareable half of the institution's P-256 key pair | Blinc uses it to encrypt requests and verify responses signed by the institution. |
| Test customer and accounts | Fictional or approved non-production data | Both teams need known records for predictable certification results. |
| Network access requirements | For example, IP allow-list or mutual TLS requirements | Blinc must be allowed to reach your non-production endpoints. |
| Support contact | Team or person who can investigate failed test calls | Certification failures often require both sides to compare correlation IDs. |
Blinc supplies its public key and issues the institution's six-digit member code during onboarding. The member code identifies the institution in message IDs and routing fields. Do not create or obtain this code from another source. Neither side ever shares a private key.
Rules that apply to every operation
- Accept
POSTrequests withContent-Type: application/json. - Require
x-timestampandx-signature. - Decrypt the body before verifying the signature because the signature covers the readable plaintext.
- Reject an expired timestamp or a replayed message.
- Treat message and transaction identifiers as idempotency keys.
- Return a signed and encrypted response, including business rejections.
- Do not treat HTTP
200as proof that the banking action succeeded. The decrypted business status is the final result. - Never log private keys, complete tokens, plaintext customer/payment messages, or raw customer signatures.
The example used in every guide
| Item | Example value | What it represents |
|---|---|---|
| Customer | Ada Okafor | The person who owns the account and approves the debit. |
| Customer identifier | 12345678901 | Ada's bank-verifiable identity value in the example. |
| Institution member code | 000001 | The routing code for Example Bank. |
| Customer account | 0123456789 | Ada's account at Example Bank. |
| Creditor | Example Store | The business Ada authorises to receive money. |
| Creditor scheme ID | CREDITOR-001 | The stable identifier for Example Store in the linking and debit messages. |
| Authenticator ID | 42 | The numeric database ID of Ada's active registered authenticator. |
| Link request ID | MANDATE-REQ-0001 | The unique request to connect Ada's account. |
| Account link ID | BLINC-EXAMPLE-MANDATE-0001 | The institution-generated ID returned after a successful link. |
| Debit end-to-end ID | DD-E2E-0001 | The identifier used to trace one debit across systems. |
| Amount | NGN 2,500.00 | The amount Ada approves and the issuing institution debits. |
These are fictional values. Use approved non-production data during certification.
Next
Start with Follow the integration journey.
Updated 3 days ago