Creating Orders
Create digital or physical product orders with Scalev API v3.
Digital Product Orders
1. Select a store
Use GET /v3/stores/simplified.
Runtime currently supports these filters:
search: filter by store namedomain: filter by store domain
The response also includes:
payment_methods
payment_methods contains the canonical values accepted by order APIs. Virtual
accounts use flat codes such as va_bca, va_bni, and va_bri.
If you want a dedicated payment-method lookup for a specific store, use:
GET /v3/stores/{store_id}/payment-methods
2. Select products or bundles
Use:
GET /v3/stores/{store_id}/productsto retrieve individual productsGET /v3/stores/{store_id}/bundlesto retrieve bundles
3. Build the order payload
For digital product orders, the minimal payload is:
{
"store_unique_id": "store_xxx",
"customer_name": "John Doe",
"customer_phone": "62812345678",
"customer_email": "[email protected]",
"ordervariants": [
{
"quantity": 1,
"variant_unique_id": "variant_xxx"
}
],
"payment_method": "payment_link"
}Or if you want to use bundles instead of products:
{
"store_unique_id": "store_xxx",
"customer_name": "John Doe",
"customer_phone": "62812345678",
"customer_email": "[email protected]",
"orderbundles": [
{
"quantity": 1,
"bundle_price_option_unique_id": "bpo_xxx"
}
],
"payment_method": "payment_link"
}4. Send the request
Call POST /v3/orders with the payload above.
5. Redirect the customer to the payment page
The response includes:
id- the canonical UUIDv7 order primary keyorder_id- the business-facing order numbersecret_slugpublic_order_urlpayment_url
Use id for later business API calls such as GET /v3/orders/{id} or PATCH /v3/orders/{id}. Legacy numeric order IDs for migrated orders are still accepted on ID routes, but new order responses return UUIDs.
Use payment_url for the customer redirect.
When payment_method is payment_link, the customer selects the final payment
method on Scalev's PayLink page. The order keeps its PayLink
origin while the paid order exposes the canonical method that was actually
used.
Physical Product Orders
1–2. Same as digital orders
3. Add shipping information
Required additional fields:
addresslocation_idwarehouse_unique_idshipping_costcourier_service_id
Optional fields:
postal_codeshipment_provider_code
How to obtain them:
address-> provide the street address only, without district/city/province detailslocation_id-> search district usingGET /v3/locationspostal_code-> if needed, useGET /v3/locations/{location_id}/postal-codesor provide the known postal code directlywarehouse_unique_id-> usePOST /v3/shipping-costs/search-warehousecourier_service_id,shipping_cost,shipment_provider_code-> usePOST /v3/shipping-costs/search-courier-service
4. Build the order payload
Minimal example:
{
"store_unique_id": "store_xxx",
"customer_name": "John Doe",
"customer_phone": "62812345678",
"customer_email": "[email protected]",
"ordervariants": [
{
"quantity": 1,
"variant_unique_id": "variant_xxx"
}
],
"payment_method": "payment_link",
"address": "Jl. Pegangsaan Timur No. 28",
"location_id": 1,
"postal_code": "12345",
"warehouse_unique_id": "warehouse_xxx",
"courier_service_id": 1,
"shipping_cost": 20000,
"shipment_provider_code": "lincah"
}5. Send the request
Call POST /v3/orders with the payload above.
6. Redirect the customer to the payment page
Use id for later business API calls such as GET /v3/orders/{id} or PATCH /v3/orders/{id}. Legacy numeric order IDs for migrated orders are still accepted on ID routes, but new order responses return UUIDs.
Use payment_url from the order-create response.
Updated 26 days ago
