Skip to main content
All requests require the standard x-api-key + x-timestamp headers — see Authentication.

Create Payment

POST /api/v1/payments

Request body

FieldTypeRequiredDefaultNotes
pricenumberYesAmount in IDR. Minimum 15,000.
playerIdstringYesYour payer/player identifier.
flowstringNoembedCheckout flow.
expiresInintegerNo900Seconds until expiry. Maximum 3600.
curl -X POST https://live.launcx.com/api/v1/payments \
  -H "Content-Type: application/json" \
  -H "x-api-key: {{your-v3-api-key}}" \
  -H "x-timestamp: {{unix_timestamp_in_milliseconds}}" \
  -d '{
    "price": 20000,
    "playerId": "payer_id",
    "flow": "embed",
    "expiresIn": 900
  }'

Response

{
  "success": true,
  "data": {
    "orderId": "130e1a1d-9e61-42ca-b57a-4854eae7878f",
    "checkoutUrl": "https://payment.launcx.com/order/130e1a1d-9e61-42ca-b57a-4854eae7878f",
    "qrPayload": "QR_CODE",
    "playerId": "payer_id",
    "totalAmount": 20000
  }
}

Get Payment

GET /api/v3/payments/{id}
This endpoint is under /api/v3, not /api/v1.
curl -X GET https://live.launcx.com/api/v3/payments/{id} \
  -H "x-api-key: {{your-v3-api-key}}" \
  -H "x-timestamp: {{unix_timestamp_in_milliseconds}}"

Response

FieldTypeNotes
idstringPayment UUID.
client_idstringYour client UUID.
payer_idstringThe playerId from creation.
amountstringDecimal string (precision-preserving).
currencystringIDR.
expired_atstringISO 8601 UTC.
statusstringPENDING | SUCCESS | EXPIRED | FAILED.
platform_feestringDecimal string.
net_amountstringDecimal string.
paid_atstring | nullISO 8601 UTC.
settled_atstring | nullISO 8601 UTC.
retrieval_reference_nostring | null
created_atstringISO 8601 UTC.
updated_atstringISO 8601 UTC.
client_wallet_namestring | nullPresent if a wallet name is configured.
All amounts are decimal strings; all timestamps are ISO 8601 UTC.