Understanding Payment Orders
Every payment you process creates a payment order. Track the status, retrieve transaction details, and prevent duplicate charges automatically.Create a Payment Order
Create a payment order to process card payments, SPEI transfers, PayCash cash payments, CIE Cash Net deposits, or batch payments. Each payment type uses the same endpoint with different payment method configurations.Card Payment Example
Response
Required Fields
Card Payments
Accept credit and debit cards
SPEI Transfers
Immediate bank-to-bank transfers in Mexico
PayCash Payments
Offline cash payments with reference
CIE Cash Net
BBVA cash and bank deposits
Batch Payments
Process multiple payments
Order Status
Payment orders move through different states as they process:Common Statuses: Most card payments will only see
PENDING → PROCESSING → COMPLETED. Offline methods (SPEI, CIE, PayCash) sit in REFERENCE_GENERATED while the customer completes the deposit. The other statuses handle specific scenarios like 3DS authentication, authorizations, cancellations, and refunds.Status Flow
3D Secure Flow (Summary)
When 3DS is required, the flow adds three steps:- Collect device data (invisible iframe) when status is
PAYER_AUTHENTICATION_DEVICE_DATA_REQUIRED. - Check enrollment:
POST /v2/payment-orders/:id/payer-authentication→ result may beCOMPLETED,FAILED, orPAYER_AUTHENTICATION_CHALLENGE_REQUIRED. - If a challenge is required, display the challenge iframe using
stepUpUrlandjwt, then validate withPOST /v2/payment-orders/:id/payer-authentication/validate.
The authentication method (SMS, biometrics, app, etc.) is decided by the issuing bank, not by Cheqpay or the merchant, and can vary per transaction.
Full 3D Secure Guide
See detailed implementation steps and examples
Track Your Orders
Every payment order has two IDs:- Cheqpay ID - Our internal reference (e.g.,
ord_abc123) - External ID - Your order or transaction ID (e.g.,
order-12345)
Retrieve an Order
Use either ID to retrieve order details:Example Request
Example Response
What’s Included
Payment Status
Payment Status
Current status and timestamps for all state changes
Customer Information
Customer Information
Complete customer details including contact information
Payment Method Details
Payment Method Details
Masked card information or payment method used
Transaction Amounts
Transaction Amounts
Original amount, refunded amounts, and net total
Complete Timeline
Complete Timeline
Created, processed, completed, and updated timestamps
Prevent Duplicate Charges
Cheqpay automatically prevents duplicate payments using theexternalId field. If you send the same request twice, we’ll handle it intelligently:
Smart Duplicate Detection
Payment Successful
Returns existing payment (no duplicate charge)
Payment Pending
Returns pending payment (no new request)
Payment Failed
Creates new payment (allows retry)
How It Works
1
First Request
You create a payment with
externalId: "order-12345" and it succeeds.2
Duplicate Request
Network issue causes the request to be sent again with the same
externalId.3
Protected
Cheqpay recognizes the duplicate and returns the existing successful payment. No duplicate charge.
Best Practice
List Payment Orders
Retrieve a list of payment orders for reporting and reconciliation:Query Parameters
Monitoring Payment Status
You can check payment order status at any time using the GET endpoint to retrieve the latest information.Next Steps
Process Payments
Learn how to create payment orders
Handle Refunds
Issue full or partial refunds
Manage Customers
Track customer payment history
Error Handling
Handle failed payments gracefully