If you still call
POST /api/v1/payin, that endpoint is deprecated. Use POST /api/v2/payin for all new integrations.Overview
The PayIn API for Mexico enables customer deposit transactions through multiple payment methods including card payments, OXXO cash vouchers, and SPEI bank transfers. Transactions are processed in real-time with webhook notifications for status updates.Key Features
- Multiple Payment Methods:
CARD,CASH_BANK,CASH_STORE,CASH_ALL,SPEI,OXXO - Currency: Mexican Peso (
MXN) - Real-time Processing: Immediate transaction validation and processing
- Webhook Notifications: Asynchronous status updates via IPN
- Secure Redirect Flow: Customer completes payment on a secure hosted page
Quick Reference
Request Parameters
Required Fields
Customer Data Object
Optional Fields
The
customer_address field is required when using CASH_BANK or CASH_STORE.CASH_ALL displays a hosted form showing only the available cash options (CASH_BANK, CASH_STORE). The customer selects their preferred channel on that page.Payment experiences (v2)
Sendcountry in every request body (e.g. "PE"). All methods below use Checkout unless noted.
For SPEI, the API returns transfer instructions in
payment_information at creation time and a hosted payment_url (spei-payment) as fallback. All dates are UTC (Y-m-d H:i:s).Response fields by method
SPEI β Hybrid
CASH_BANK / CASH_STORE / CARD β Checkout
Mode: Checkout Β· You get:payment_url only (no payment_information).
Direct Integrations (Back to Back β deprecated)
When Direct SPEI activation was enabled for your merchant account, you could create a PayIn withpayment_method: "SPEI" and receive transfer instructions directly in the API response β without redirecting the customer to a hosted checkout page.
Direct SPEI mode had to be enabled by TumiPay before using this flow in production.
v1 vs v2 response shape
Request example (v1 β SPEI direct)
Response example (v1 β SPEI direct)
In v1 direct SPEI,
payment_url was often omitted. The integration used clabe_number and expiration_date from data.transaction. In v2, use data.payment_information instead β see Payment experiences (v2).Response Structure
Success Response
Data Object
SPEI response fields (payment_information)
Use
payment_information to render SPEI instructions in your UI. Optionally redirect the customer to payment_url for the hosted SPEI page.Examples
Request Example
cURL