Changelog
Changes to the API and to the portal, newest first.
Every change to the v3 OpenAPI is recorded here before release: CI refuses a portal whose reference is older than the OpenAPI in the repository.
API v3: payment timeline and webhook history (lot 2.1b)
GET /payments/{reference}/timeline(session or API key): every fact of the payment in order (creation, checkout opens, provider choice, attempts and their status changes, callbacks, payer returns, final status, anomalies, e-mails, webhooks and each HTTP try), keyset paginated, filtercategory(repeatable). It also returns the attempts with their normalised result and the webhook deliveries with every try.GET /admin/payments/{reference}/timeline(Konnect admin only): the same view with the redacted raw provider payloads.GET /payments/{reference}gainsresult: final status, provider,failureCode(closed list), authorisation code, masked instrument, attempts, duration andmerchantConfirmationwith its reason. Webhook bodies do not carryresult.GET /checkout/{reference}takesview(paymentby default,result,attempt): onlypaymentcounts as an open of the checkout.GET /checkout/{reference}/return?outcome=success|fail(public) records the payer's return and redirects to the merchant's success or fail URL.POST /payments/{reference}/cancelaccepts an optionalreason.POST /organisations/{id}/webhooks/deliveries/{deliveryId}/retrynow replays any delivery that is not pending, once, as a manual try (it answered 409webhook_delivery_not_failedbefore; now 409webhook_delivery_pending). Deliveries gainlastOutcome,nextRetryAtandmanualTries.
API v3: hosted checkout on the engine (lot 2.2)
- Checkout (public):
GET /checkout/{reference}/attempts/{attemptId}shows an attempt again (kind, status, redirect URL, QR code or form parameters);GET /checkout/{reference}/logoserves the payment account logo, andmerchant.logoUrlpoints to it. - The browser return of a provider (
GET /callbacks/{provider}/{attemptId}) now redirects to the result page with?attempt=<attemptId>. - The public checkout and callback routes are rate limited per client IP and per payment reference (callbacks per attempt) and answer
429 rate_limitedwithRetry-After.
API v3: admin console, organisations (lot 1.7)
GET /admin/organisationsandGET /admin/organisations/{id}: organisations with their status facts (KYB, contract,canCollect), reserved to Konnect staff (admin, support, compliance).
API v3: payments, attempts and webhooks (lot 2.1)
- Payments:
POST /payments(API key, or session withorganisationId;Idempotency-Keyhonoured) returns the reference (24 hexadecimal characters) andpayUrl;GET /payments,GET /payments/{reference},POST /payments/{reference}/cancel,GET /payments/{reference}/attemptswith the timeline of each attempt. - Checkout (public):
GET /checkout/{reference},POST /checkout/{reference}/attempts,GET /checkout/{reference}/status. Provider callbacks onGET|POST /callbacks/{provider}/{attemptId}. - Webhooks: endpoints under
/organisations/{id}/webhookswith a signing secret shown once, delivery log and retry. The signatureKonnect-Signature: t=<unix>,v1=<hex>is final (ADR 0008); the guide is no longer provisional. Eventspayment.succeeded,payment.failed,payment.expired,payment.canceled,attempt.duplicate_success.
API v3: affiliations (lot 1.6)
- Affiliations under
/organisations/{organisationId}/affiliations: list and read with masked secrets (last four characters), creation verified through the connector, verify again, credential rotation (PUT /{affiliationId}/credentials), suspend, resume, revoke, audit timeline of the affiliation. - Creation and rotation need a recent re-authentication for a session (
403 reauth_required); an API key of the organisation passes. Permissionsaffiliations.viewandaffiliations.manage. - Every affiliation lists the payment accounts routed to it (
paymentAccounts), to show before a revoke. - Konnect support:
GET /admin/affiliationswithorganisation,providerandstatusfilters.
API v3: payment accounts (lot 1.14)
- Payment accounts under
/organisations/{id}/payment-accounts: list, read, create, update (name, slug, branding, URLs, pause and resume, default account), archive. - Routing:
GETandPUT /organisations/{id}/payment-accounts/{accountId}/routingchoose, per provider and label, the affiliation each account uses (shared or its own). - Members can be scoped to some payment accounts;
accounts.viewandaccounts.managepermissions.
2026-10-03: developer portal (lot 1.15)
- v3 API reference generated from
packages/sdk/openapi.json, with samples in cURL, PHP, Node (@konnect/sdk) and Python. - v2 compatibility reference:
init-payment,GET /payments/{paymentId},x-api-keyauthentication. - Guides: quick start, webhooks, errors and idempotency, migrating from v2 to v3, sandbox, going live.
- Plugins page: WooCommerce 2.8.3, PrestaShop 2.0.3, with SHA-256 sums; WHMCS coming soon.
API v3: identity, organisations, providers (lots 1.2, 1.3, 1.13, 1.4)
- Authentication:
/auth/*(login, two-factor, password) for the dashboard, andGET /auth/api-keyto check an API key. - API keys:
GET,POSTandDELETE /organisations/{id}/api-keys;x-api-keyheader, new keyskpk_<prefix>:<secret>shown once. - Organisations, members, invitations, roles, documents and ownership transfer under
/organisations/{id}. - Provider catalogue:
GET /providers,GET /providers/{code}.
API v3 0.1.0 (lot 1.1)
GET /health: status of the API, the database, the secrets provider and the outbox.GET /organisations/{organisationId}/audit: audit log of an organisation, cursor pagination. Closed (401) until lot 1.2.GET /admin/outbox: outbox events, for Konnect support. Closed (401) until lot 1.2.Idempotency-Keyheader honoured by thePOSTroutes that opt in.
API v2 (compatibility)
- No change: the v2 routes are served as they are by the new platform for migrated organisations, and relayed for the others.
addPaymentFeesToAmountis accepted and ignored; legacy payment methods (wallet,konnect,MCOIN,wire_transfer,Paypal) are ignored.