v4

latestOpenAPI 3.0.3Proprietary2026-08-083483431.1 MB
Customer Checkout

Create an authenticated customer checkout order

Customer-authenticated storefront endpoint. Create an order from direct items, from a customer cart referenced by cart_id, or from direct items while clearing the referenced cart after successful order creation. Carts must belong to the authenticated customer and current store. Product prices, discounts, shipping, Other Income, the Store customer-fee policy, and service fees are recalculated from current backend data during creation. Preview values are not confirmation inputs and do not produce a quote-conflict response.

post/v3/stores/{store_id}/customers/me/checkout

Path parameters

store_idstring required

Store unique_id.

Request body

addressstring
postal_codestring
payment_methodstring

Customer checkout payment method code selected by the buyer. Required for normal checkout. May be omitted when the store uses strict two-step Payment Link checkout; Scalev resolves it to payment_link. Virtual Accounts use flat method codes such as va_bca.

warehouse_unique_idstring nullable
courier_aggregator_codestring nullable
discount_code_codestring nullable
notesstring nullable

Example request

{
  "payment_method": "va_bca"
}

Response

Customer checkout order

idstring uuid required

Canonical UUIDv7 order primary key returned by the partitioned orders table.

secret_slugstring required
public_order_urlstring uri nullable required
payment_urlstring uri nullable required
order_idstring required
statusstring required
payment_statusstring nullable required

Buyer-facing payment status. A settled payment is exposed as paid; this field never returns settled.

post_payment_redirect_urlstring uri

Canonical post-payment destination exposed only after a buyer-paid outcome (internal payment status paid or settled) when a valid redirect snapshot exists. Omitted before payment and when Scalev's hosted success flow applies.

is_probably_spamboolean nullable
draft_timestring date-time nullable
paid_timestring date-time nullable
transfer_timestring date-time nullable
transferproof_urlstring nullable
handler_phonestring nullable
chat_messagestring nullable
customer_idinteger nullable
discount_code_codestring nullable
other_income_namestring nullable

Other Income label. For payment_link, the winning concrete Payment Request's frozen Store label is reconciled after payment.

pg_payment_infoobject required

Buyer-facing payment gateway payload. Manual methods such as bank_transfer and cod can return an empty object. Virtual account methods expose provider reference and account details under the provider's payment_method object. QRIS responses expose QR data or a QR image payload. E-wallet, card, and invoice methods may expose provider actions or hosted provider URLs. SingaPay payments use normalized keys such as payment_url, deeplink_url, qr_string, qr_image_url, va_number, and va_name.

status_historyobject[]
payment_methodstring required
epayment_providerstring nullable

E-payment provider. xendit is the current/managed Xendit provider; xendit_legacy is the owned legacy Xendit provider. Other possible values include duitku, midtrans, durianpay, and singapay.

payment_account_holderstring nullable
payment_account_numberstring nullable
shipment_receiptstring nullable
variantsobject
bundle_price_optionsobject
payment_expiration_atstring date-time nullable

Example response

{
  "payment_method": "bank_transfer"
}