Merchant API v1
Let customers who don't know your brand yet buy with confidence. Their money is held until they receive the order, and your store stays in sync through signed webhooks.
POST /api/v1/checkout/sessions
Authorization: Bearer sce_…
Idempotency-Key: order-1001
{ "title": "Order #1001", "amount": "149.99",
"external_reference": "1001" }201 Created
{ "id": "cs_5b1e0c9a7d3f4e2a1b6c8d0e",
"object": "checkout.session",
"status": "OPEN",
"url": "https://smartcontractsescrow.net/checkout/Zt4…" }Install the plugin, paste two secrets, done. Orders update themselves from webhooks.
A small bridge app creates the escrow link from order webhooks and marks orders paid.
Any stack that can make an HTTPS request. Use the Node SDK or call the API directly.
Base URL https://smartcontractsescrow.net/api/v1. Read core concepts first if you're new to escrow.
Complete seller onboarding, then open Seller dashboard → Integrations:
sce_… secret: it is shown once.whsec_… signing secret.curl https://smartcontractsescrow.net/api/v1/checkout/sessions \
-H "Authorization: Bearer $SCE_API_KEY" \
-H "Idempotency-Key: order-1001" \
-H "Content-Type: application/json" \
-d '{
"title": "Order #1001",
"amount": "149.99",
"external_reference": "1001",
"customer_email": "buyer@example.com",
"line_items": [{"name": "Canon EOS R50", "quantity": 1, "unit_amount": "149.99"}],
"success_url": "https://shop.example.com/thank-you/1001",
"cancel_url": "https://shop.example.com/cart"
}'
urlThey sign in, review the order and fees, and pay with mobile money, card or bank.
Ship when you receive escrow.funded, then submit the milestone
with tracking details. Mark the order complete on escrow.completed.
Always verify the signature.
Bearer API keys, stored hashed. Revoke one without touching the others.
Send an Idempotency-Key and retry safely after a timeout.
HMAC-SHA256 with timestamps, so replays and forgeries are rejected.
At-least-once delivery with backoff, plus an events feed to reconcile.
Funds are held on a double-entry ledger until the buyer approves.
Import into Postman or generate a client in your language.