Skip to main content
POST

Authorizations

merchant-key
string
header
required

Merchant key for store identification. Required for all API requests.

Body

application/json
amount
number
required

Order amount. Must be greater than 0.

Required range: x >= 0.01
Example:

50000

description
string
required

Order description displayed to the buyer during checkout.

Required string length: 1 - 255
Example:

"Premium subscription - Monthly"

payment_gateway
object
required
currency
string

ISO 4217 currency code. Defaults to store currency if omitted.

Required string length: 3
Pattern: ^[A-Z]{3}$
Example:

"COP"

shopper
object

Buyer data. Required for Nequi and Daviplata direct orders, where email, phone_number, country, id_number and id_type must all be present (a missing one returns 422). Optional for Breb: omit it or send only the fields you have; fields you send are validated for format.

order_key
string

Your reference for this order, used to correlate Wava orders with your system. It is also the idempotency key of the order, scoped to your store: resending an order_key with the same amount and currency resolves to the existing order (an already paid one answers 200 with already_processed: true and starts no new payment), and resending it with a different amount or currency answers 409 ORDER_KEY_CONFLICT. Use a unique order_key per order.

Maximum string length: 100
Example:

"order-12345"

URL to redirect buyer after successful payment.

Example:

"https://mystore.com/success"

URL to redirect buyer if payment is cancelled.

Example:

"https://mystore.com/cancel"

URL to redirect buyer if payment fails.

Example:

"https://mystore.com/error"

device_key
string

Device identifier for session tracking.

Maximum string length: 100
Example:

"device-12345"

Response

Order created and payment initiated successfully

result
object