Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.wava.co/llms.txt

Use this file to discover all available pages before exploring further.

Creating Orders

Once you have discovered the available gateways via Gateway Discovery, you can create an order to initiate a payment.

Request body

FieldTypeRequiredDescription
amountnumberYesPayment amount in the smallest currency unit (COP has no decimals).
descriptionstringYesDescription shown to the buyer during payment.
currencystringYesCurrency code. Currently COP for Colombian gateways.
shopper.first_namestringYesBuyer’s first name.
shopper.last_namestringYesBuyer’s last name.
shopper.emailstringYesBuyer’s email address.
shopper.phone_numberstringYesBuyer’s phone number. Used as the payment identifier for Nequi.
shopper.countrystringYesISO country code, e.g. CO.
shopper.id_numberstringYesBuyer’s national ID number (cedula).
shopper.id_typeintegerYesDocument type ID from Document Types endpoint. e.g. 1 for CC.
payment_gateway.id_payment_gatewaynumberYesGateway ID from Gateway Discovery.
order_keystringNoYour unique reference for this order (idempotency key).
redirect_linkstringNoURL to redirect buyer after successful payment.
redirect_link_cancelstringNoURL to redirect buyer if payment is cancelled.
redirect_link_failurestringNoURL to redirect buyer if payment fails.
National ID fields are always required. Every direct API order must include id_number and id_type in the shopper object, regardless of the payment gateway. This is required for compliance and buyer identification. Omitting these fields will return a validation error.
The API also accepts national_id_number and id_national_document_type as aliases for id_number and id_type respectively. Both formats are interchangeable.

Examples

Nequi uses the buyer’s phone_number to send a push notification. National ID fields are still required for compliance.
curl -X POST "https://api.wava.co/v1/orders" \
  -H "merchant-key: YOUR_MERCHANT_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 50000,
    "description": "Premium subscription",
    "currency": "COP",
    "shopper": {
      "first_name": "Juan",
      "last_name": "Perez",
      "email": "juan@email.com",
      "phone_number": "+573001234567",
      "country": "CO",
      "id_number": "1234567890",
      "id_type": 1
    },
    "payment_gateway": {
      "id_payment_gateway": 1
    },
    "order_key": "order-12345"
  }'
Response:
{
  "data": {
    "id_order": 12345,
    "status": "processing",
    "payment_gateway": {
      "nequi": {
        "phone_number": "****567"
      }
    }
  }
}

Document types

The id_type field requires the integer ID of the document type. Use GET /v1/national-document-types/{countryCode} to retrieve valid values. See Document Types for details. For Colombia, the most common types are:
IDCodeDescriptionAccepted by
1CCCédula de CiudadaníaAll gateways
2CECédula de ExtranjeríaAll gateways
3TITarjeta de IdentidadAll gateways
Daviplata and Breb only accept CC, CE, and TI document types. Sending a different document type for these gateways will result in a payment error.

What happens next

After creating the order, the payment flow depends on the selected gateway:

Nequi

Buyer receives a push notification and approves in the Nequi app.

Daviplata

Buyer receives an OTP via SMS and submits it to confirm.

Breb

Buyer completes a transfer using a QR code or transfer key.

Stripe

Buyer is redirected to complete the card payment.
To track the order result, see Order Status.

Partners

If you are a partner creating orders on behalf of a store, the request body is identical. The only difference is the authentication headers. See Partners — Creating Orders for details.