Skip to main content
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)

Send country 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)

This flow applied to PayIn v1 (POST /api/v1/payin) with Direct SPEI activation enabled in the TumiPay backoffice. It is deprecated β€” use SPEI Hybrid (v2) with POST /api/v2/payin instead. No backoffice flag is required in v2.
When Direct SPEI activation was enabled for your merchant account, you could create a PayIn with payment_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

Response Example