API reference
KulPay — Public API
Every operation of this gateway, with its parameters, body fields, an example request and an example of every response, errors included. Generated from openapi.json (OpenAPI 3.1, version 1.0.0).
Basics
- Base URL:
https://gateway.fnb.kulpay.pavulla.com. The examples use$KULPAY_URLfor it and$KULPAY_KEYfor your API key. - Authentication:
Authorization: Bearer <key>. A test key only sees test data; a live key only live data. Each operation names the scope it needs. - Idempotency: operations that move money take an
Idempotency-Keyheader. Retrying with the same key never acts twice. - Errors: a stable
codein every error body; see errors and codes for what each means and what to do. Why a payment failed, as opposed to why a request was refused, is itsfailure_code, listed on the same page.
Endpoints
Partners 4
Bill payments 100
- GET
/pay/invoice/{token}An invoice's payment page - POST
/pay/invoice/{token}Pay an invoice from its page - GET
/pay/invoice/{token}/qr.svgThe payment page's QR - PUT
/v1/admin/accounts/{id}/bill-balance-alertA channel's low-balance alert - GET
/v1/admin/bill-commissionsA channel's commission statement - GET
/v1/admin/bill-paymentsBill payments across channels - GET
/v1/admin/bill-payments/{id}A bill payment (operators) - POST
/v1/admin/bill-payments/{id}/artifactsSee tokens and PINs in clear (operators) - POST
/v1/admin/bill-payments/{id}/resolveResolve a bill payment in review - GET
/v1/admin/bill-reconSupplier reconciliation runs - GET
/v1/admin/billersBillers (operators) - POST
/v1/admin/billersRegister a biller - GET
/v1/admin/billers/{code}A biller with its products - PATCH
/v1/admin/billers/{code}Change a biller's details - GET
/v1/admin/billers/{code}/accounts/{reference}/qrA meter's or account's QR (operators) - GET
/v1/admin/billers/{code}/accounts/{reference}/qr.pngA meter's or account's QR, PNG (operators) - GET
/v1/admin/billers/{code}/accounts/{reference}/qr.svgA meter's or account's QR, rendered (operators) - POST
/v1/admin/billers/{code}/productsConfigure a product - PATCH
/v1/admin/billers/{code}/products/{product}Change a product - PUT
/v1/admin/billers/{code}/products/{product}/channelsRestrict a product to channels - GET
/v1/admin/billers/{code}/products/{product}/integrationA product's notification and report (admin) - PUT
/v1/admin/billers/{code}/products/{product}/integrationSet a product's notification and report (admin) - GET
/v1/admin/billers/{code}/products/{product}/integration/deliveriesA product's notifications and reports sent (admin) - GET
/v1/admin/billers/{code}/products/{product}/integration/deliveries/{id}One delivery and its exact body (admin) - POST
/v1/admin/billers/{code}/products/{product}/integration/deliveries/{id}/retrySend a delivery again (admin) - POST
/v1/admin/billers/{code}/products/{product}/integration/previewPreview a notification's body (admin) - POST
/v1/admin/billers/{code}/products/{product}/limitsChange a product's daily limits - POST
/v1/admin/billers/{code}/products/{product}/offersCreate or change an offer - POST
/v1/admin/billers/{code}/products/{product}/offers/refreshRefresh offers from the supplier - GET
/v1/admin/billers/{code}/products/{product}/reports/{day}A product's report for a day (admin) - POST
/v1/admin/billers/{code}/remittancesRemit a biller now - POST
/v1/admin/billers/{code}/statusActivate, suspend or retire a biller - GET
/v1/admin/commission-plansCommission plans - POST
/v1/admin/commission-plansPropose a commission plan - GET
/v1/admin/float-topupsFloat top-ups - GET
/v1/admin/reference-routesWhere a reference would be routed (operators) - GET
/v1/admin/remittancesRemittances to billers - POST
/v1/admin/remittances/{id}/paidRecord a remittance as paid - GET
/v1/admin/remittances/{id}/report.csvA remittance report - GET
/v1/admin/supply-connectorsSupply connectors - POST
/v1/admin/supply-connectorsAdd a supply connector - PATCH
/v1/admin/supply-connectors/{name}Change a supply connector - POST
/v1/admin/supply-connectors/{name}/float-topupsRecord a float top-up - POST
/v1/admin/supply-connectors/{name}/probeProbe a supply connector - POST
/v1/admin/supply-connectors/{name}/reconcileReconcile a day with a supplier - GET
/v1/admin/supply-driversSupply drivers - GET
/v1/bill-commissionsYour commission statement - GET
/v1/bill-invoices/{id}/documentDownload a bill's document - POST
/v1/bill-invoices/{id}/engagementsReport what a payer did with a bill - GET
/v1/bill-invoices/{id}/qr.pngA bill's QR as PNG (channel) - GET
/v1/bill-invoices/{id}/qr.svgA bill's QR (channel) - GET
/v1/bill-paymentsYour bill payments - POST
/v1/bill-paymentsPay a quote - POST
/v1/bill-payments/lookupsLook up a customer reference - POST
/v1/bill-payments/quotesQuote a bill payment - POST
/v1/bill-payments/quotes/{id}/refreshRefresh a bill quote - GET
/v1/bill-payments/{id}A bill payment - GET
/v1/bill-payments/{id}/receipt.pdfA printable receipt - POST
/v1/bill-payments/{id}/resendSend the payer their token or receipt again - GET
/v1/biller/accounts/{ref}/qrA customer account's QR (biller) - GET
/v1/biller/accounts/{ref}/qr.pngA customer account's QR, PNG (biller) - GET
/v1/biller/accounts/{ref}/qr.svgA customer account's QR, rendered (biller) - POST
/v1/biller/invoice-filesUpload an invoice file - GET
/v1/biller/invoicesYour invoices - POST
/v1/biller/invoicesPresent invoices - GET
/v1/biller/invoices/{number}One of your invoices - PATCH
/v1/biller/invoices/{number}Change or cancel an invoice - GET
/v1/biller/invoices/{number}/documentDownload an invoice's document - PUT
/v1/biller/invoices/{number}/documentAttach an invoice's document - DELETE
/v1/biller/invoices/{number}/documentRemove an invoice's document - GET
/v1/biller/invoices/{number}/eventsAn invoice's timeline - POST
/v1/biller/invoices/{number}/payment-linkReissue an invoice's payment link - GET
/v1/biller/invoices/{number}/qr.pngAn invoice's QR as PNG (biller) - GET
/v1/biller/invoices/{number}/qr.svgAn invoice's QR (biller) - GET
/v1/biller/payersYour enrolled customers - POST
/v1/biller/payersEnrol your customers - DELETE
/v1/biller/payers/{ref}Remove an enrolment - GET
/v1/biller/productsYour products (biller) - GET
/v1/biller/products/{product}/integrationA product's notification and report (biller) - PUT
/v1/biller/products/{product}/integrationSet a product's notification and report (biller) - GET
/v1/biller/products/{product}/integration/deliveriesA product's notifications and reports sent (biller) - GET
/v1/biller/products/{product}/integration/deliveries/{id}One delivery and its exact body (biller) - POST
/v1/biller/products/{product}/integration/deliveries/{id}/retrySend a delivery again (biller) - POST
/v1/biller/products/{product}/integration/previewPreview a notification's body (biller) - GET
/v1/biller/products/{product}/reports/{day}A product's report for a day (biller) - GET
/v1/biller/remittancesYour remittances - GET
/v1/biller/remittances/{id}/report.csvYour remittance report - GET
/v1/billersBillers and products you may sell - GET
/v1/billers/{code}One biller you may sell - GET
/v1/billers/{code}/products/{product}/offersA product's offers - POST
/v1/payersRegister or update a payer - GET
/v1/payers/{id}A payer - GET
/v1/payers/{id}/invoicesA payer's open bills - GET
/v1/payers/{id}/subscriptionsA payer's subscriptions - POST
/v1/payers/{id}/subscriptionsOpt a payer in to a biller's bills - DELETE
/v1/payers/{id}/subscriptions/{sid}Opt a payer out - GET
/v1/payers/{id}/subscriptions/{sid}/autopayA payer's autopay - PUT
/v1/payers/{id}/subscriptions/{sid}/autopaySet up a payer's autopay - DELETE
/v1/payers/{id}/subscriptions/{sid}/autopayCancel a payer's autopay - POST
/v1/payers/{id}/subscriptions/{sid}/autopay/skipSkip one invoice's autopay
Charges 9
- POST
/chargesCreate a charge - POST
/charges/{id}/captureCapture an authorised charge - POST
/charges/{id}/complete-actionComplete a customer-action step - POST
/charges/{id}/voidVoid an uncaptured charge - GET
/v1/service/payablesA payment's payable and deductions, read by a trusted service - GET
/v1/service/payments/{provider_payment_id}A payment, read back by a trusted service - POST
/v1/service/payments/{provider_payment_id}/fee-adjustmentsAdjust an assessment of a payment's fee instruction (trusted service) - PUT
/v1/service/payments/{provider_payment_id}/fee-instructionSend a payment's fee instruction (trusted service) - GET
/v1/service/settlements/{batch_id}A settlement batch and its payments, read by a trusted service
Refunds 1
Payouts 9
- POST
/payoutsCreate a payout - GET
/payouts/{provider_payout_id}Read a payout snapshot - GET
/v1/balanceAvailable balance - POST
/v1/name-lookupsLook up a beneficiary name - GET
/v1/payoutsList payouts - POST
/v1/payoutsSend a payout - GET
/v1/payouts/{id}Get a payout - POST
/v1/payouts/{id}/approveApprove a payout - POST
/v1/payouts/{id}/rejectReject a payout
Payments 14
- GET
/paymentsFind a payment by your payment_id - GET
/payments/{provider_payment_id}Read a payment snapshot - POST
/v1/admin/payments/{id}/approveConfirm a manual payment - GET
/v1/cash-deposits/intentsYour deposit intents - POST
/v1/cash-deposits/intentsInitiate a cash deposit from a reference lookup - GET
/v1/cash-deposits/intents/{id}A deposit intent - POST
/v1/cash-deposits/intents/{id}/confirmConfirm an initiated cash deposit - POST
/v1/name-lookups/{id}/selectChoose a bill reference's option - GET
/v1/psp/transactionsFind a transaction by your reference - POST
/v1/psp/transactionsSubmit a transaction as an originator PSP - GET
/v1/psp/transactions/{id}A transaction you submitted - POST
/v1/qr/resolveResolve a scanned bill QR - GET
/v1/transactions/{id}/reversalsA transaction's reversals - POST
/v1/transactions/{id}/reversalsReverse a transaction
Manual evidence 1
Admin 25
- GET
/v1/admin/callbacksProvider callbacks: dead-letter queue and rejected - POST
/v1/admin/callbacks/{id}/replayReplay a dead-lettered callback - GET
/v1/admin/catalogs/{code}/versionsA catalogue's versions - POST
/v1/admin/catalogs/{code}/versionsPropose a catalogue version - GET
/v1/admin/credentialsThe PSP credential register - POST
/v1/admin/credentialsStore a PSP credential - POST
/v1/admin/credentials/{id}/rotateRotate a PSP credential - GET
/v1/admin/psps/{id}/circuitsA PSP's circuits - GET
/v1/admin/residencyWhere this region's data lives - GET
/v1/admin/statusPosture snapshot - POST
/v1/admin/webhooks/verifyVerify a signed webhook body - GET
/v1/api-keysThe account's API keys - POST
/v1/api-keysIssue an API key - PATCH
/v1/api-keys/{id}Restrict an API key - DELETE
/v1/api-keys/{id}Revoke an API key - POST
/v1/api-keys/{id}/rollRoll an API key with an overlap window - GET
/v1/api-keys/{id}/usageAn API key's usage - GET
/v1/client-caThe region's client CA certificate - GET
/v1/client-certificatesThe account's client certificates - POST
/v1/client-certificatesIssue a client certificate from a CSR - DELETE
/v1/client-certificates/{id}Revoke a client certificate - PUT
/v1/mtlsRequire mutual TLS - GET
/v1/oauth-clientsThe account's OAuth clients - POST
/v1/oauth-clientsRegister an OAuth client - DELETE
/v1/oauth-clients/{id}Revoke an OAuth client
Audit 11
- GET
/v1/admin/accounts/{id}/timelineTimeline of a PSP or merchant account - GET
/v1/admin/auditRead the audit feed - GET
/v1/admin/audit/anchorsSigned daily anchors - GET
/v1/admin/audit/chainsAudit chains and their verification state - POST
/v1/admin/audit/chains/verifyVerify the chains now - POST
/v1/admin/audit/exportsExport a signed audit bundle - GET
/v1/admin/audit/public-keyThe audit signing key - GET
/v1/admin/audit/verifyVerify the audit hash chain - GET
/v1/payments/{id}/auditRead the audit feed for one payment - GET
/v1/transactions/{id}/stagesProcessing stages of a transaction - GET
/v1/transactions/{id}/timelineUnified timeline of a transaction
Reconciliation 47
- POST
/callbacks/{psp_id}/{binding_id}/statements/{profile_id}Per-entry statement webhook - PUT
/v1/admin/accounts/{id}/cash-in-incomingRecord an account's cash deposits as incoming transfers - PUT
/v1/admin/accounts/{id}/deposit-tagSet an account's deposit tag - POST
/v1/admin/cash-deposits/{id}/resolveAssign or return a suspended deposit - GET
/v1/admin/custody/accountsCustody accounts - POST
/v1/admin/custody/accountsRegister a custody account - GET
/v1/admin/custody/reconciliationsCustody reconciliation results - POST
/v1/admin/custody/reconciliations/runRun the custody reconciliation - GET
/v1/admin/custody/reconciliations/{id}A custody reconciliation result - GET
/v1/admin/outcome-queriesPayments of unknown outcome - GET
/v1/admin/payment-exceptionsList payment exceptions - POST
/v1/admin/payment-exceptions/{id}/resolveResolve a payment exception - POST
/v1/admin/psps/{id}/statement-profiles/{profile_id}/fetchFetch a pull profile now - GET
/v1/admin/reconciliation/fee-claimsFee claim file - GET
/v1/admin/reconciliation/healthReconciliation dashboard - POST
/v1/admin/reconciliation/lines/{lineID}/resolveResolve an exception - GET
/v1/admin/reconciliation/periodsMonth-end closes - GET
/v1/admin/reconciliation/periods/{period}/checklistMonth-end checklist - POST
/v1/admin/reconciliation/periods/{period}/closePrepare a month-end close - GET
/v1/admin/reconciliation/periods/{period}/reportSigned month-end report - GET
/v1/admin/reconciliation/statementsList imported statements - POST
/v1/admin/reconciliation/statementsImport a provider settlement file - GET
/v1/admin/reconciliation/statements/{id}Statement summary with line counts and run history - POST
/v1/admin/reconciliation/statements/{id}/closeClose a fully worked statement - GET
/v1/admin/reconciliation/statements/{id}/linesList statement lines - POST
/v1/admin/reconciliation/statements/{id}/runRun a matching pass - GET
/v1/admin/statement-cyclesExpected statements - GET
/v1/admin/statement-filesEvery PSP's received statements - GET
/v1/cash-depositsCash deposits - POST
/v1/cash-depositsConfirm a cash deposit (banks) - GET
/v1/cash-deposits/{id}A cash deposit - GET
/v1/psp-settlementsSettlement reports - POST
/v1/psp-settlementsSend a settlement report - GET
/v1/reconciliation/exceptionsReconciliation exceptions - GET
/v1/reconciliation/exceptions/{id}An exception with its comments - POST
/v1/reconciliation/exceptions/{id}/actionsAct on an exception - POST
/v1/reconciliation/exceptions/{id}/assignAssign an owner - POST
/v1/reconciliation/exceptions/{id}/commentsComment - POST
/v1/reconciliation/matchesMatch by hand - GET
/v1/statementsReceived statements - POST
/v1/statementsSend a statement - GET
/v1/statements/{id}A received statement and its parse versions - GET
/v1/statements/{id}/linesCanonical lines of a statement - POST
/v1/statements/{id}/matchMatch a statement - GET
/v1/statements/{id}/matchesA statement's matches - GET
/v1/statements/{id}/originalThe original file - POST
/v1/statements/{id}/reparseRe-parse a statement
Ledger 40
- GET
/v1/admin/accounts/{id}/funds-flowA merchant's funds-flow model - PUT
/v1/admin/accounts/{id}/funds-flowRequest a funds-flow change - POST
/v1/admin/accounts/{id}/managed-settlementsBuild a managed settlement batch now - GET
/v1/admin/accounts/{id}/payablesA merchant's payables - GET
/v1/admin/accounts/{id}/receivablesWhat a merchant owes back - GET
/v1/admin/accounts/{id}/settlementA merchant's settlement cycle and destination - PUT
/v1/admin/accounts/{id}/settlementRequest a settlement change - GET
/v1/admin/accounts/{id}/settlement-arrangementsA merchant's settlement arrangement versions - POST
/v1/admin/accounts/{id}/settlement-arrangementsPropose a settlement arrangement version - GET
/v1/admin/fee-schedulesFee schedule versions - POST
/v1/admin/fee-schedulesPropose a fee schedule version - POST
/v1/admin/fee-schedules/quotePrice a transaction - GET
/v1/admin/fee-schedules/{id}A fee schedule version - POST
/v1/admin/ledger/journals/{id}/reverseCorrect a journal by reversing it - GET
/v1/admin/payables/{id}A merchant payable - GET
/v1/admin/regulatory/runsGenerated regulatory reports - GET
/v1/admin/regulatory/runs/{id}/fileA report's signed file - POST
/v1/admin/regulatory/runs/{id}/submitMark a report submitted - GET
/v1/admin/regulatory/templatesRegulatory report templates - POST
/v1/admin/regulatory/templatesCreate a regulatory report template - PUT
/v1/admin/regulatory/templates/{id}New version of a template - POST
/v1/admin/regulatory/templates/{id}/runGenerate a report now - GET
/v1/admin/safeguarding/accountsSafeguarding accounts - POST
/v1/admin/safeguarding/accountsRegister a safeguarding account - GET
/v1/admin/safeguarding/checksDaily safeguarding checks - POST
/v1/admin/safeguarding/checks/runRun today's check now - GET
/v1/admin/safeguarding/checks/{id}/reportSigned safeguarding report - GET
/v1/admin/settlement-arrangements/{id}A settlement arrangement version - POST
/v1/admin/settlements/runBuild the settlement batches due now - POST
/v1/admin/settlements/{id}/confirmationsRecord a ready batch settled outside the gateway - GET
/v1/ledger/accountsChart of accounts and balances - GET
/v1/ledger/journalsJournals - GET
/v1/ledger/journals/{id}A journal with its lines - GET
/v1/payablesThe caller's merchant payables - GET
/v1/payables/{id}A merchant payable - GET
/v1/receivablesWhat the caller owes back - GET
/v1/settlement-arrangementsThe caller's settlement arrangements - GET
/v1/settlementsSettlement batches - GET
/v1/settlements/{id}A settlement batch with its lines - GET
/v1/settlements/{id}/reportSettlement report (CSV or PDF)
Events 24
- GET
/v1/admin/service-event-sinksList the service event sinks - POST
/v1/admin/service-event-sinksCreate a mode's service event sink - GET
/v1/admin/service-event-sinks/{id}A service event sink - PATCH
/v1/admin/service-event-sinks/{id}Change a service event sink - GET
/v1/admin/service-event-sinks/{id}/deliveriesThe service event sink's deliveries - POST
/v1/admin/service-event-sinks/{id}/replayReplay the service event sink's deliveries - POST
/v1/admin/service-event-sinks/{id}/roll-secretRoll the service event sink's secret - GET
/v1/event-typesEvent types an endpoint can subscribe to - GET
/v1/eventsList events, or catch up after an event - GET
/v1/events/{id}Get one event - POST
/v1/webhook-deliveries/{id}/replayReplay one delivery - GET
/v1/webhook-endpointsThe account's webhook endpoints - POST
/v1/webhook-endpointsSubscribe an endpoint to events - GET
/v1/webhook-endpoints/{id}A webhook endpoint - PATCH
/v1/webhook-endpoints/{id}Change an endpoint's subscription - DELETE
/v1/webhook-endpoints/{id}Remove a webhook endpoint - PUT
/v1/webhook-endpoints/{id}/contactsWho is alerted about an endpoint - GET
/v1/webhook-endpoints/{id}/deliveriesAn endpoint's delivery history - POST
/v1/webhook-endpoints/{id}/enableEnable a disabled endpoint - POST
/v1/webhook-endpoints/{id}/pausePause an endpoint - POST
/v1/webhook-endpoints/{id}/replayReplay an endpoint's deliveries - POST
/v1/webhook-endpoints/{id}/roll-secretRoll an endpoint's signing secret - PUT
/v1/webhook-endpoints/{id}/signingEd25519 signatures - POST
/v1/webhook-endpoints/{id}/testSend a test event
Event pipeline 6
- GET
/v1/admin/events/dead-lettersList dead-lettered events - POST
/v1/admin/events/dead-letters/{id}/replayReplay a dead-lettered event - GET
/v1/admin/events/pipelineOutbox, consumers and dead-letter summary - GET
/v1/admin/events/replaysList projection replays - POST
/v1/admin/events/replaysRebuild a projection from the event store - GET
/v1/admin/jobsSingleton jobs and their leaders
PSP onboarding 65
- POST
/callbacks/{psp_id}/{binding_id}A PSP callback to its own binding - GET
/v1/admin/approvalsMaker-checker requests - POST
/v1/admin/approvals/{id}/decideApprove or reject a request - GET
/v1/admin/psp-reviewsReview queue - GET
/v1/admin/pspsList PSPs - GET
/v1/admin/psps/{id}A PSP and its lifecycle - GET
/v1/admin/psps/{id}/certification/runsCertification runs - POST
/v1/admin/psps/{id}/certification/runsStart a certification run - GET
/v1/admin/psps/{id}/certification/runs/{run}A run with its cases - GET
/v1/admin/psps/{id}/certification/runs/{run}/eventsFollow a run live - GET
/v1/admin/psps/{id}/certification/runs/{run}/report.jsonSigned report (JSON) - GET
/v1/admin/psps/{id}/certification/runs/{run}/report.pdfReport (PDF) - GET
/v1/admin/psps/{id}/configsConfiguration versions - POST
/v1/admin/psps/{id}/configs/{kind}Create a configuration version - GET
/v1/admin/psps/{id}/configs/{kind}/diffCompare two versions - GET
/v1/admin/psps/{id}/configs/{kind}/{version}One configuration version - POST
/v1/admin/psps/{id}/configs/{kind}/{version}/rollbackRoll back to a version - POST
/v1/admin/psps/{id}/contractRecord the signed contract - GET
/v1/admin/psps/{id}/go-livePilot and go-live state - POST
/v1/admin/psps/{id}/go-livePrepare go-live (maker) - GET
/v1/admin/psps/{id}/go-live/checklistGo-live checklist - POST
/v1/admin/psps/{id}/incidentsRecord an incident - POST
/v1/admin/psps/{id}/incidents/{incident}/resolveResolve an incident - GET
/v1/admin/psps/{id}/kybKYB review state - POST
/v1/admin/psps/{id}/kyb/decisionDecide KYB - POST
/v1/admin/psps/{id}/kyb/documentsUpload a KYB document (operator) - GET
/v1/admin/psps/{id}/kyb/documents/{doc}Download a KYB document - POST
/v1/admin/psps/{id}/kyb/documents/{doc}/reviewAccept or reject a document - POST
/v1/admin/psps/{id}/kyb/risk-tierSet the risk tier - POST
/v1/admin/psps/{id}/kyb/screeningsRecord a manual sanctions or PEP check - POST
/v1/admin/psps/{id}/kyb/screenings/runScreen with a provider - GET
/v1/admin/psps/{id}/offboardingWhat offboarded waits for - POST
/v1/admin/psps/{id}/offboardingPrepare offboarding (maker) - POST
/v1/admin/psps/{id}/offboarding/completeComplete offboarding - PUT
/v1/admin/psps/{id}/pilotPilot limits, merchants and routing weight - POST
/v1/admin/psps/{id}/pilot/setupRetry the pilot setup - POST
/v1/admin/psps/{id}/reinstateReinstate a suspended PSP - GET
/v1/admin/psps/{id}/requirementsA partner's requirements - POST
/v1/admin/psps/{id}/reviewsComplete a periodic review - POST
/v1/admin/psps/{id}/sandboxOpen the sandbox - POST
/v1/admin/psps/{id}/suspensionSuspend a PSP - GET
/v1/admin/psps/{id}/technicalSandbox technical setup - POST
/v1/admin/psps/{id}/transitionsMove a PSP in its lifecycle - POST
/v1/psps/applicationsStart a PSP application - GET
/v1/psps/applications/{id}Read an application - PUT
/v1/psps/applications/{id}Save the draft - POST
/v1/psps/applications/{id}/documentsUpload a KYB document (applicant) - POST
/v1/psps/applications/{id}/submitSubmit the application - GET
/v1/psps/{id}/capabilitiesYour capability matrix - PUT
/v1/psps/{id}/capabilitiesChange your capability matrix - GET
/v1/psps/{id}/keysTransport keys - POST
/v1/psps/{id}/keysRegister an SSH or PGP public key - DELETE
/v1/psps/{id}/keys/{key_id}Revoke a transport key - GET
/v1/psps/{id}/orientationA PSP's orientation profile - PUT
/v1/psps/{id}/orientationDeclare a PSP's orientation profile - GET
/v1/psps/{id}/requirementsYour requirements - GET
/v1/psps/{id}/retry-policyA PSP's effective retry policies - PUT
/v1/psps/{id}/retry-policyTune retries, timeouts and circuits - GET
/v1/psps/{id}/statement-endpointsWhere to send statements - GET
/v1/psps/{id}/statement-profilesStatement profiles - PUT
/v1/psps/{id}/statement-profilesDeclare statement profiles - POST
/v1/psps/{id}/statement-profiles/previewPreview a sample statement - GET
/v1/service/partners/lsp/{external_ref}Read a provisioned LSP (trusted service) - PUT
/v1/service/partners/lsp/{external_ref}Provision a biller KulOffice approved, as an LSP in technical setup (trusted service) - POST
/v1/service/partners/lsp/{external_ref}/invitationSend the technical contact a new invitation (trusted service)
Reference 10
- GET
/.well-known/kulpay-appsWhere KulPay's apps live - GET
/.well-known/kulpay-webhook-keysWebhook verification keys - POST
/oauth/tokenOAuth 2.0 token (client credentials) - POST
/secret-scanning/githubGitHub secret scanning partner endpoint - GET
/v1/admin/code-mappingsProvider code mappings - GET
/v1/admin/code-mappings/{provider}A provider's code table - POST
/v1/admin/code-mappings/{provider}Propose a mapping version - GET
/v1/catalogsThe catalogues in force - GET
/v1/catalogs/{code}One catalogue in force - GET
/v1/transaction-typesTransaction type catalogue
Incoming transfers 7
- GET
/v1/admin/incoming-transfersEvery incoming transfer - POST
/v1/admin/incoming-transfers/{id}/resolutionsResolve an incoming transfer - GET
/v1/incoming-transfersFind incoming transfers by partner reference - POST
/v1/incoming-transfersReport an incoming transfer - GET
/v1/incoming-transfers/{id}An incoming transfer - POST
/v1/incoming-transfers/{id}/creditReport the credit of a transfer - POST
/v1/incoming-transfers/{id}/finalityConfirm a transfer final
Payment acceptance 19
- GET
/connector-setupThe hosted credentials page - POST
/connector-setupSubmit the hosted credentials form - GET
/v1/admin/application-projectionsApplication projections pushed to KulOffice - POST
/v1/admin/application-projections/{application_id}/pushPush an application's projection again - GET
/v1/connector-bindingsList binding projections - GET
/v1/connector-bindings/{id}Get a binding projection - PUT
/v1/connector-bindings/{id}/applicationsSet a binding's application allowlist - POST
/v1/connector-sessionsOpen a secure connector-configuration session - POST
/v1/connector-sessions/submitSubmit credentials to a session - GET
/v1/connector-sessions/{id}Get a connector-configuration session - GET
/v1/merchant-applicationsList merchant applications - POST
/v1/merchant-applicationsCreate a merchant application - GET
/v1/merchant-applications/{id}Get a merchant application - PATCH
/v1/merchant-applications/{id}Rename, disable or enable an application - GET
/v1/service/accountsFind a merchant tenant by external_ref (trusted service) - POST
/v1/service/accountsCreate or find a merchant tenant by external_ref (trusted service) - GET
/v1/service/api-keysList a merchant's application-bound API keys (trusted service) - POST
/v1/service/api-keysIssue a merchant's application-bound API key (trusted service) - DELETE
/v1/service/api-keys/{id}Revoke a merchant's application-bound API key (trusted service)
Files 5
Diagnostics 1
Methods 1
Transactions 1
Connectors 3
Authentication 4
Routing 6
- GET
/v1/admin/launch-matrixThe launch capability matrix - GET
/v1/admin/routingRouting rules in force - POST
/v1/admin/routing/dry-runDry-run routing rules on recent traffic - POST
/v1/admin/routing/versionsPrepare a routing rules version - GET
/v1/admin/routing/versions/{version}One routing rules version - POST
/v1/admin/routing/versions/{version}/rollbackRoll back to a routing rules version
Risk 7
- GET
/v1/admin/riskRisk rules in force - GET
/v1/admin/risk/blocklistThe risk block list - POST
/v1/admin/risk/blocklistBlock a beneficiary, phone or card - DELETE
/v1/admin/risk/blocklist/{id}Unblock an entry - GET
/v1/admin/risk/reviewsPayments held for review - POST
/v1/admin/risk/reviews/{id}/decideApprove or decline a held payment - POST
/v1/admin/risk/versionsPrepare a risk rules version