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:

  1. Follow the integration journey to see one payment from start to finish.
  2. Set up security and keys.
  3. Decrypt a request from Blinc, then encrypt the response for Blinc.
  4. Format identifiers and date-times so messages can be traced and processed once.
  5. Understand common payment fields to learn the small JSON shapes reused by the operations.
  6. Understand code values so values such as CLRG, P2P, and ACSC are never guessed.
  7. Build only the operations required for the institution's payment role.
  8. Return clear errors and handle repeated deliveries, then run certification tests.

Choose what you want to do

GoalStart here
Understand the complete flowFollow the integration journey
Exchange keys and protect messagesSet up security and keys
Open a request received from BlincDecrypt a request from Blinc
Protect a response returned to BlincEncrypt a response for Blinc
See working security codeUse the security examples
Format IDs and date-times correctlyFormat identifiers and date-times
Understand reusable JSON objectsRead the common field reference
Understand short code valuesRead the code-values reference
Let a customer connect an accountBuild Account Linking
Cancel a connected accountBuild Account Unlinking
Accept or reject a debitBuild Debit Authorization
Return a completed debitBuild Reversal
Receive notice of a creditBuild Credit Notification
Post money to a beneficiaryBuild Credit Instruction
Return errors and prevent duplicate processingReturn clear errors and handle repeated deliveries
Prove my endpoints are readyRun certification tests
Look up an unfamiliar termRead the glossary

The request in plain English

Every call follows the same pattern:

  1. Blinc creates a readable JSON message describing one banking action.
  2. Blinc signs that exact message. The signature proves Blinc sent it and the message was not changed.
  3. Blinc encrypts the message with the institution public key. Only the matching institution private key can open it.
  4. Blinc sends the encrypted body to the endpoint URL supplied during onboarding.
  5. Decrypt the body before verifying the signature in the HTTP headers.
  6. Validate the fields and perform the action once.
  7. Sign the response, encrypt it for Blinc, and return the response signature in HTTP headers.
  8. 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:

ValueWhat it meansWhy Blinc needs it
Endpoint URL for each operationThe complete HTTPS address Blinc calls, such as https://sandbox.examplebank.com/blinc/debit-authorizationsEach institution controls its own routes, so Blinc needs the complete URL.
Institution public keyThe shareable half of the institution's P-256 key pairBlinc uses it to encrypt requests and verify responses signed by the institution.
Test customer and accountsFictional or approved non-production dataBoth teams need known records for predictable certification results.
Network access requirementsFor example, IP allow-list or mutual TLS requirementsBlinc must be allowed to reach your non-production endpoints.
Support contactTeam or person who can investigate failed test callsCertification 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 POST requests with Content-Type: application/json.
  • Require x-timestamp and x-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 200 as 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

ItemExample valueWhat it represents
CustomerAda OkaforThe person who owns the account and approves the debit.
Customer identifier12345678901Ada's bank-verifiable identity value in the example.
Institution member code000001The routing code for Example Bank.
Customer account0123456789Ada's account at Example Bank.
CreditorExample StoreThe business Ada authorises to receive money.
Creditor scheme IDCREDITOR-001The stable identifier for Example Store in the linking and debit messages.
Authenticator ID42The numeric database ID of Ada's active registered authenticator.
Link request IDMANDATE-REQ-0001The unique request to connect Ada's account.
Account link IDBLINC-EXAMPLE-MANDATE-0001The institution-generated ID returned after a successful link.
Debit end-to-end IDDD-E2E-0001The identifier used to trace one debit across systems.
AmountNGN 2,500.00The 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.


Did this page help you?