Olympus AscendOur official launch event, 12 November 202612 Nov 2026Learn more
Olympus Pay

Banking and embedded finance for startups.

Open a business account, take your first payment, then embed accounts, payments and payouts in your own product on the same platform.

What startups do with Olympus.

Bank the business

A business account and team access from day one.

Accept payments

Payment links and QR codes need no integration to start.

Issue cards

Virtual cards for tools and contractors, with limits.

Build on the API

Sandbox keys let engineering start before the business is verified.

Embed financial services

Offer your users accounts, payments, payouts and splits.

Operate the back office

Statements, reconciliation and approvals as you hire.

A typical path.

  1. Day one

    Open the business account and invite a co-founder as Admin.

  2. First customers

    Send payment links and invoices. No engineering needed.

  3. First hires

    Add Members and Viewers; turn on approval thresholds for larger payments.

  4. First integration

    Create a sandbox key, register a webhook, and connect checkout to your product.

  5. Scale

    Split payments to recipients, bulk payouts, and embedded flows.

Engineers can start on day one.

Sandbox keys work like live ones without touching a real processor, so a product team can build and test the whole flow while the business completes verification.

# Create a payment link (sandbox key)
curl -X POST https://merchant.olympuspay.co/api/v1/payment-links \
  -H "Authorization: Bearer olp_test_…" \
  -H "Idempotency-Key: 7f3c1a52-order-1042" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Invoice 1042",
    "amount": 126.00,
    "currency": "BWP",
    "returnUrl": "https://example.com/thanks"
  }'
const res = await fetch("https://merchant.olympuspay.co/api/v1/payment-links", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.OLYMPUS_KEY}`,
    "Idempotency-Key": "7f3c1a52-order-1042",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    title: "Invoice 1042",
    amount: 126.00,
    currency: "BWP",
  }),
});
const link = await res.json();
// 200 OK - the payment link object (fields shown are illustrative)
{
  "id": "…",
  "title": "Invoice 1042",
  "amount": 126,
  "currency": "BWP",
  "url": "https://…"
}