Olympus PayDevelopers

Changelog

Format: Added, Changed, Fixed, Security, Deprecated, Removed. Breaking changes are marked.

2026-09-26#

Added#

  • X-Request-Id header on API responses, and code and request_id fields on error bodies. The existing error field is unchanged. See Errors.
  • Idempotency-Key header on POST /payouts. A repeat returns the original payout with idempotentReplay: true. See Idempotency.
  • POST /account/verification is now in the OpenAPI specification.
  • The OpenAPI specification is checked against the implementation on every change, so an endpoint cannot be added or removed without the specification changing.
  • Developer portal rebuilt: quickstart, guides, webhooks, errors, changelog and a searchable reference.

Changed#

  • Potentially breaking. POST /payouts with destinationType: provider_bank now pays only to your saved settlement account. bankDetails is optional; if sent, it must match that account or the request fails with 403. Integrations that sent a different bank account each time must change the saved account in the dashboard instead.
  • Amounts are bounded: payout and payment link amounts from 0.01 to 100,000,000 (major units), QR code amounts up to 10,000,000,000 (minor units). Values outside these ranges return 400.
  • Payouts and refunds in a currency with no configured approval threshold now always require a second approver.
  • Refund failures return 400, 404 or 409 for rule violations and 502 for provider failures, with a fixed message instead of provider text.
  • Webhook endpoint URLs must be public https:// addresses. Redirects are treated as delivery failures.
  • 429 responses carry code and request_id.

Fixed#

  • The OpenAPI specification listed the refund amount as major units. It is an integer in minor units, as the endpoint has always behaved.
  • Responses no longer include database error messages.
  • Two simultaneous refunds of the same payment can no longer both succeed.

Security#

  • Role checks are now enforced in the database as well as the API, so a team member without the right role cannot create API keys or webhooks by any route.
  • Incoming payment confirmations are checked against the amount and currency recorded when the payment was created.
  • Sensitive changes (payouts, settlement details, team access) are recorded in an audit log.

Removed#

  • The System Documentation page and the Postman collections for non-merchant products are no longer published. They described internal systems, not the public API.

1.0.0#

Initial public version of the Merchant API: payment links, QR codes, payments, refunds, payouts, split recipients, settlements, webhooks and account verification.