POST
/
projects
/
{projectId}
/
checkout
/
sessions
cURL
curl -X POST https://sandbox.api.simiz.io/v1/projects/{projectId}/checkout/sessions \
  -H "Authorization: Bearer smz_test_sk_abc123" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 5000,
    "currency": "XAF",
    "successUrl": "https://merchant.com/success",
    "cancelUrl": "https://merchant.com/cancel"
  }'
{
  "id": "cs_abc123",
  "url": "https://pay.simiz.io/cs/abc123",
  "amount": 5000,
  "currency": "XAF",
  "description": "Order #1234",
  "status": "idle",
  "expiresAt": "2024-01-15T11:30:00Z",
  "createdAt": "2024-01-15T10:30:00Z",
  "merchantName": "My Store",
  "successUrl": "https://merchant.com/payment/success",
  "cancelUrl": "https://merchant.com/payment/cancel"
}

Authorizations

Authorization
string
header
required

Use your Simiz API key as the Bearer token. Keys starting with smz_test_sk_ target sandbox, smz_live_sk_ target production.

Headers

Idempotency-Key
string

Unique key for idempotent requests. Same key within 24h returns original response.

Example:

"idem_a1b2c3d4e5"

Path Parameters

projectId
string<uuid>
required

UUID of the project

Body

application/json
amount
number
required

Payment amount (minimum: 100)

Required range: x >= 100
Example:

5000

currency
enum<string>
required
Available options:
XAF,
XOF
Example:

"XAF"

successUrl
string<uri>
required

Redirect URL after successful payment

Example:

"https://merchant.com/payment/success"

cancelUrl
string<uri>
required

Redirect URL if payment is cancelled

Example:

"https://merchant.com/payment/cancel"

description
string

Payment description shown to the customer

Example:

"Order #1234"

customer
object
metadata
object

Custom key-value metadata

Response

Checkout session created

id
string

Checkout session ID

Example:

"cs_abc123"

url
string<uri>

Payment URL for the customer

Example:

"https://pay.simiz.io/cs/abc123"

amount
number
Example:

5000

currency
string
Example:

"XAF"

description
string | null
status
enum<string>

Checkout session lifecycle:

  • idle — Session created, waiting for payment initiation
  • processing — Payment being processed
  • pending_ussd — Waiting for USSD confirmation from payer
  • success — Payment completed
  • failed — Payment failed
  • expired — Session expired
  • cancelled — Session cancelled
Available options:
idle,
processing,
pending_ussd,
success,
failed,
expired,
cancelled
expiresAt
string<date-time>
createdAt
string<date-time>
merchantName
string
merchantLogo
string<uri> | null
successUrl
string<uri>
cancelUrl
string<uri>
paymentMethod
enum<string>

Checkout-specific payment methods (broader than core):

  • ORANGE_MONEY, MTN_MOMO, WAVE, MOOV_MONEY
Available options:
ORANGE_MONEY,
MTN_MOMO,
WAVE,
MOOV_MONEY
paymentId
string | null

Payment ID once payment is initiated

customer
object