PesaBridge

Changelog

Changes to the PesaBridge API and the developer portal, newest first. API status

2026-10-28 · Version 2026-10-28

Test mode for online payments, team sign-in and API versions

  • NewTest mode for online payments on the live platform: test keys create simulated payments, payment links, refunds, disputes and payouts. The test card, phone or bank number picks the outcome; no real money moves.
  • NewTrigger any webhook event for a test payment with POST /partner/test/trigger, and read every test number and outcome at GET /test/scenarios.
  • NewTeam members sign in with their own email, password and one-time code. The admin, developer and viewer roles are enforced on every call: 403 role_denied.
  • NewEvery reply carries the PesaBridge-Version header. Send the header to pin a version for one call, or pin one for the app in Settings; an unknown version gets 400 unsupported_version.
  • NewThe changelog and the list of guides are served by the API (GET /docs/changelog and GET /docs/guides) in 12 languages, so the website and this portal show the same text.
  • NewPayments that score into review send payment.review_required, then payment.review_approved or payment.review_declined; the payment carries a risk object. A blocked payment gets 402 risk_blocked.
  • NewBilling API under /partner/billing: plans, customers, subscriptions, cancelling and invoices, with 11 subscription.* and 5 invoice.* webhook events.
  • NewTeam sign-in calls are in the reference: invite, accept, sign in, one-time code and the member's own profile.
  • ChangedBreaking: GET /partner/me no longer returns the callback signing secret, only webhook_signing_secret_masked. Read the secret in the portal (Webhooks > Show secret) or with POST /partner/webhooks/secret/reveal from a portal session after a one-time code; server keys get 403 portal_only.
  • ChangedTest keys on the live platform no longer get 403 test_key_live_money for online payments, payment links and refunds: those calls now run in test mode. No code change is needed.
2026-10 · Version 2026-10-01

Online payments, remittance, webhooks and repeat-safe calls

  • NewOnline payments (gateway) API: create and read payments, refunds, payment links, payouts and disputes under /partner/gateway, with webhook events payment.*, refund.*, settlement.* and dispute.*.
  • NewRemittance partner API: credit money sent from abroad (/partner/remit/inbound), read and list transfers.
  • NewWebhook endpoints now get every event they subscribe to (prompt-to-pay, online payments, payouts), in their own mode. Subscribe with the real event names; old names are refused.
  • NewDefault callback URL on the Webhooks page, test events of any type, endpoint editing and new signing secrets.
  • NewIdempotency-Key header on every money call: a repeat returns the first reply with Idempotent-Replayed: true; a reused key with another body gets 409 idem_reused.
  • New429 replies carry Retry-After and the code rate_limited.
  • NewSecret rotation with an overlap of up to 48 hours, and ending server tokens without rotating.
  • NewRequest logs keep a masked copy of the request and reply and the idempotency key.
  • NewTest publishable keys open checkout pages on the test platform.
  • NewDocs in this portal: guides, a reference page per API group, every event and every error code, all built from the API contract.
  • ChangedEndpoints subscribed to the old names (charge.success, payout.success, …) received nothing; they were moved to the matching real names.
  • ChangedOn the live platform, test keys can no longer send a real payment prompt from an invoice, make a payment link or a till-to-till request: 403 test_key_live_money.
2026-10 · Version 2026-10-01

Key limits, sandbox outcomes and owner approval

  • NewAllowed server addresses: live keys can be limited to your servers' addresses or ranges (Credentials → API access). Calls from anywhere else get 403 ip_not_allowed.
  • NewPer-product key limits: tick the products your keys may use (collect, pay out, pay businesses and tax, reverse). Other products answer 403 scope_denied. Status, balance and logs stay open.
  • NewSandbox outcomes: test payers 254796000001 to 254796000005 play paid, cancelled, not enough money, no answer and a duplicate callback, so you can test every branch of your code.
  • NewGoing live now needs the approval of the business you collect for: give its short code when you ask, and its owner or a manager approves with a one-time code.
  • NewJava examples on every API page, next to cURL, Node, Python and PHP, and a Java webhook signature check.
  • NewThis changelog and a public status page.
  • ChangedNo code change is needed: keys with no address list and no product limits behave exactly as before.