Developers

Splitt API documentation

Create split orders, track their status, and react when they confirm — from your own site, booking system, or checkout.

Overview

Splitt is built around one object: the split order. An order has a total amount, a number of shares, and an expiry. You create it, share its link with the group, and Splitt handles claiming, payment, confirmation, and refunds.

The core rule is all-or-nothing: an order only completes when every share is paid before expiry. Otherwise it expires and all payments are refunded automatically.

No-code setup

You don't need the API to use Splitt. Most merchants start here:

  1. Create your account — sign up and verify your email.
  2. Connect your bank— complete Stripe's secure onboarding so payouts have somewhere to go. Takes about five minutes.
  3. Create your first order — from the dashboard: total, shares, deadline. Splitt generates the link.
  4. Share the link — drop it in your booking confirmation email, SMS, or send it directly to the organiser.
The API below is for merchants who want split orders created automatically from their own website or booking system — for example, generating a Splitt link the moment a customer chooses "split with friends" at checkout. No developer? Your dashboard can also build a signed no-code split link to put behind a button in your cart or booking emails — the shopper picks how many ways to split, and the order creates itself.

Authentication

Authenticate with your secret API key in the Authorization header. Find your keys in the dashboard under Settings → API keys. Never expose your secret key in client-side code.

# All requests are HTTPS to:
https://www.splitt.com.au/api/v1

# Header on every request:
Authorization: Bearer splitt_sk_xxxxxxxxxxxx

Create an order

POST /v1/orders

Creates a split order and returns its shareable payment link. Amounts are in cents.

curl https://www.splitt.com.au/api/v1/orders \
  -H "Authorization: Bearer splitt_sk_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Harbour cruise — Sat 2pm",
    "amount_total": 140000,
    "currency": "aud",
    "shares": 4,
    "expires_in_hours": 24,
    "metadata": { "booking_id": "bk_5521" }
  }'

Response:

{
  "id": "ord_9f2K3nD8sL",
  "status": "open",
  "url": "https://www.splitt.com.au/o/x7k2mp4a",
  "amount_total": 140000,
  "shares": 4,
  "shares_paid": 0,
  "expires_at": "2026-07-20T14:00:00Z"
}

Send url to the group — that single link handles claiming and payment for every participant.

Retrieve an order

GET /v1/orders/{id}

Fetch an order's current state at any time — useful for showing live "3 of 4 paid" status inside your own UI.

curl https://www.splitt.com.au/api/v1/orders/{id} \
  -H "Authorization: Bearer splitt_sk_xxxxxxxxxxxx"

Webhooks

Rolling out to founding merchants — until your endpoint is enabled, poll GET /v1/orders/{id} for status. Register a webhook endpoint and Splitt will notify you the moment an order changes state:

  • order.share_paid — a participant paid their share
  • order.completed — all shares paid; the order is confirmed and funds are on their way to you
  • order.expired — the deadline passed; all payments have been refunded
# Example payload for order.completed
{
  "event": "order.completed",
  "data": {
    "id": "ord_9f2K3nD8sL",
    "amount_total": 140000,
    "metadata": { "booking_id": "bk_5521" }
  }
}

Verify webhook signatures using the signing secret shown when you create the endpoint. Treat order.completed as your source of truth for confirming bookings.

Order statuses

  • open — accepting payments; shares remain unclaimed or unpaid
  • completed — every share paid before expiry; merchant payout initiated
  • expired — deadline passed with unpaid shares; all payments refunded
  • cancelled — cancelled by the merchant before completion; paid shares refunded

Test mode

Every account has a parallel test environment. Use your sk_test_key and test orders behave identically — pay shares with Stripe's test card 4242 4242 4242 4242 and expire orders instantly from the dashboard to see refund behaviour, without any real money moving.

The API is currently in early access for founding merchants. Contact us for a key and we'll help you integrate directly.