Changelog
API changes worth knowing about. Newest first.
We follow semver at the API level. Breaking changes only ship behind a new major version (/v2), never on the current one.
Unreleased
- Full OpenAPI 3.1 spec at
https://api.soxara.com/openapi.yaml— coming next
v1 (current)
-
No-code payroll connectors — not part of the API-key surface: a webhook URL + signing secret from the business dashboard (Settings → Developers → Payroll connectors) that a no-code automation (Zapier, Make, a Google Apps Script, n8n) can trigger directly, no API key or developer required. See Run payroll with no code.
-
Payouts —
POST /v1/api/payoutsdisburses to a MoMo/Orange payee the business owner already PIN-approved from the dashboard (Settings → Developers → Payout payees, each with its own per-payout and daily cap). Newpayouts:create/payouts:readscopes. See the reference. -
Return the payer to your site —
POST /v1/api/payment-linksaccepts an optionalredirect_url. Hosted checkout sends the payer there after the payment finishes, withsoxara_payment_id,soxara_linkandsoxara_statusappended. Confirm the order from the webhook, not from the redirect. See the reference. -
Recurring billing — payment mandates + charges. Card (hosted card-save) and wallet (in-app PIN) rails:
POST /v1/api/mandates,POST /v1/api/charges,DELETE /v1/api/mandates/{id}. See the reference. -
Transaction history + metrics —
GET /v1/api/payments(paged list) andGET /v1/api/payments/summary(per-currency roll-up).GET /v1/api/payments/{id}now resolves recurring charges too, not just link payments. -
Self-serve webhook registration on the key surface —
POST /v1/api/webhook-endpoints(previously dashboard-only). -
Sandbox
simulate—POST /v1/api/payment-links/{id}/simulatesettles a test payment through the real webhook fan-out, no real money. -
sxm_live_*/sxm_test_*API key prefixes. One base URL; the key sets the environment. -
Idempotency-Keyheader on all mutations. -
Standard
{ success, data }/{ success: false, error }envelope; snake_case bodies. -
Webhook signature:
Soxara-Signature: t=<unix>,v1=<hmac-sha256>— Stripe wire format. -
Webhook events today:
payment.completed,payment.failed,payroll_run.completed,payroll_run.partial,payroll_run.failed,catalog.published,inventory.low_stock. -
Sub-merchants —
POST /v1/api/sub-merchants/start+/complete,GET /v1/api/sub-merchants. Route a payment link to a sub-merchant withsub_merchant_id. See the reference. -
Payroll API —
POST /v1/api/payroll/runs,GET /v1/api/payroll/runs/{id}. Always landspending_approval; execution is PIN-gated by the business owner. See the reference. -
Gift card / fleet card redemption —
POST /v1/gift-cards/redeem,POST /v1/fleet-cards/redeem. Not under/v1/api/*— see the reference for why.
Have you noticed a behavior change in the API that isn’t documented here? Tell us — we’d rather hear from you than have you debug it.