- List your organization’s races and show them on your own website, with ticket types, prices and the exact fees a participant pays.
- Take registrations and payment for those races: MTN Mobile Money and Airtel Money today, card coming soon. Laces handles the money, the tickets and the receipts.
- Hear about payment outcomes through signed webhooks.
One organization has its own API clients, and a credential only ever sees
its own organization’s events and orders. There are no multi-organization
partner accounts.
Three ways to integrate
Hosted checkout
Add a Register button. The buyer pays on a Laces page and comes back to
your site. Works on a static site.
Embedded checkout
Add one
<script> tag. Laces checkout opens in a modal on top of your page.
New.Custom UI
Build your own event pages and checkout form. Your server calls the API with
an OAuth token.
Which should I pick?
- Start with hosted checkout if you want the least work. It is the most battle-tested path, handles every payment method, and your site never touches payment details.
- Pick embedded checkout if you want the same Laces checkout without the buyer leaving your page.
- Pick custom UI if you need full control of the look and flow, and you have a server to hold the client secret.
How the pieces fit
Two kinds of credential
See Getting your API keys and Authentication.
Base URL
Every path in these docs is relative to the base URL, so
POST /oauth/token means POST https://connect.laces.run/v1/oauth/token.
Code samples use $BASE (or LACES_BASE) for it. There is one environment:
you build and test against production with your live keys. See
Testing your integration.
Conventions
- JSON in, JSON out,
snake_casefield names. - Money is an integer in minor units, never a float. Always read the
event’s
currency. (UGX has no minor unit, so50000UGX is fifty thousand shillings.) - Timestamps are ISO 8601 UTC strings, for example
2026-11-15T04:00:00.000Z. - Every response carries
Cache-Control: private, no-storeand anX-Request-Idheader. Quote the request id when you contact support. - Every route except the token endpoint uses the Laces response envelope
(
code,message,data, and on failureerrorplus a stableerror_code). See Errors.
Next steps
Quickstart
Keys, your first event list and a working checkout in about ten minutes.
API reference
Every endpoint, with a live “Try it” playground.