Bancontact · Authentication Profile
Bancontact Authentication
Authentication
Bancontact secures its APIs with apiKey across 2 declared security schemes, as derived from its OpenAPI definitions.
BankingBelgiumDebit CardsE-CommerceFintechPaymentsQR CodesRefundsReconciliationMobile Payments
Methods: apiKey
Schemes: 2
OAuth flows:
API key in: header
Security Schemes
api_key_payment_profile apiKey
· in: header (Authorization)
JWS-Request-Signature apiKey
· in: header (Signature)
Source
Authentication Profile
generated: '2026-09-17'
method: searched
docs: https://docs.bancontactpro.com/guides/general/gettingstarted052025v4
source: >-
securitySchemes of the three first-party OpenAPI 3.1 bundles (openapi/*.yml), upgraded with the
Getting Started, Callback and Refunds guides on docs.bancontactpro.com (2026-09-17).
summary:
types: [apiKey]
api_key_in: [header]
oauth2: false
openid_connect: false
mutual_tls: false
request_signing: detached JWS (RFC 7797), ES256, keys exchanged as JWKS (RFC 7517)
environments:
preprod: https://merchant.api.preprod.bancontact.net
prod: https://merchant.api.bancontact.net
transport: TLS 1.2 or 1.3 only; plain HTTP fails
onboarding: >-
Credentials are issued by Bancontact, not self-served. Production: the API key and Company ID
are read from the Bancontact Pro portal (portal.bancontactpro.com, Settings) after a merchant
contract; PREPROD: email devsupport@bancontact.com with company name, Merchant ID, contact and
integration type — provisioning takes up to 2 weeks. One API key and one Product Profile ID
(PPID) are issued per product.
schemes:
- name: api_key_payment_profile
type: apiKey
in: header
parameter: Authorization
format: Bearer <api-key>
description: >-
Per-product API key generated by Bancontact's API Manager, sent as a Bearer token in the
Authorization header. The key carries the profileId, subjectType (INTEGRATOR:{CCV_ID} or
MERCHANT:{ID}), resource (PAYMENTPROFILE:{profileId}) and authority (MERCHANT_PAYMENT or
MERCHANT_REFUND) that each operation checks.
applies_to: [merchant-get-payment, cancel_payment, search, create, create_static_qr_payment, merchant-acknowledge, create-refund]
sources: [openapi/bancontact-payment-v3-api-openapi.yml]
- name: JWS-Request-Signature
type: apiKey
in: header
parameter: Signature
description: >-
Detached JSON Web Signature (RFC 7797) over the request body, alg ES256, with a JOSE header
carrying kid, typ jose+json and the critical claims https://payconiq.com/sub (merchant
profile id), /iss, /iat (ISO 8601 UTC), /jti (unique request id) and /path (request path).
The merchant hosts its public key as a JWKS and shares the URL with Bancontact during
integration; Bancontact publishes its own keys at https://jwks.bancontact.net/ (PROD) and
https://jwks.preprod.bancontact.net/ (PREPROD) so merchants can verify signed responses
(SignatureBank header) and callbacks. Refund creation must additionally be activated by
Bancontact support before the JWS-signed endpoint accepts calls.
variants:
- {name: JWS-Request-Signature-Payment, spec: openapi/bancontact-payment-v3-api-openapi.yml, note: added in Payment API 3.6.4 (2025-08-26) for all payment calls}
- {name: JWS-Request-Signature-Refund, spec: openapi/bancontact-payment-refund-service-api-openapi.yml}
- {name: JWS-Request-Signature, spec: openapi/bancontact-merchant-reconciliation-api-openapi.yml}
applies_to: [createRefund, getRefundById, getPayoutList, getPayments, getRefunds, create, merchant-get-payment, cancel_payment, search, create_static_qr_payment]
sources:
- openapi/bancontact-merchant-reconciliation-api-openapi.yml
- openapi/bancontact-payment-refund-service-api-openapi.yml
- openapi/bancontact-payment-v3-api-openapi.yml
inbound_verification:
callbacks: >-
Status callbacks POSTed to the merchant carry a detached JWS in the `signature` header signed
by Bancontact (kid resolved against the published JWKS); merchants must verify origin,
integrity, audience (sub) and all crit claims before trusting the body. Bancontact rotates
keys without notice — a new JWK is published 24 h before the old one is removed; cache JWKS
for at most 12 h and re-fetch on verification failure.
docs: https://docs.bancontactpro.com/guides/general/callback052025
related:
scopes: none — no OAuth scopes; authorities (MERCHANT_PAYMENT, MERCHANT_REFUND) are baked into the issued key
conventions: conventions/bancontact-conventions.yml
sandbox: sandbox/bancontact-sandbox.yml
Work with this as data
Every security artifact here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for security posture
4 MCP tools reach this
find_securityBrowse and filter every security artifact in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This security artifact
curl "https://apis.io/api/v1/security/bancontact-authentication"
All security posture
curl "https://apis.io/api/v1/security?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.