POST /subscriptions/v1/card/tokens with the card data and currency. Returns a one-time token used to create the subscription.{
"card": {
"name": "Juan García",
"number": "5451951574925480",
"expiryMonth": "05",
"expiryYear": "28",
"cvv": "123"
},
"currency": "MXN"
}POST /subscriptions/v1/card with the token, plan details, and contact information. Kushki runs a small validation charge and automatically reverses it — this confirms the card can be charged.{
"token": "gV3ox6100000sAxClU033646vnnJsT83",
"planName": "Plan Mensual",
"periodicity": "monthly",
"startDate": "2026-06-01",
"amount": {
"subtotalIva": 0,
"subtotalIva0": 500,
"iva": 0,
"ice": 0,
"currency": "MXN"
},
"contactDetails": {
"documentType": "CURP",
"documentNumber": "GACJ800101HDFRRN09",
"firstName": "Juan",
"lastName": "García",
"email": "user@example.com",
"phoneNumber": "+525512345678"
}
}subscriptionId — store it to manage future charges.startDate before this time if you want the first charge on the same day.startDate.retryConfiguration:retryType | Behavior |
|---|---|
scheduled | Retries every N days for the entire period |
fixed | Retries only on specific days of the month |
{
"retryConfiguration": {
"retryType": "fixed",
"value": [5, 15, 25]
}
}POST /subscriptions/v1/card/{subscriptionId}{
"amount": {
"subtotalIva": 0,
"subtotalIva0": 500,
"iva": 0,
"ice": 0,
"currency": "MXN"
}
}| Currency | Code | Notes |
|---|---|---|
| Mexican Peso | MXN | Two decimal places — amounts use cents (e.g., 500.00) |
| Value | Description |
|---|---|
CURP | Clave Única de Registro de Población 🇲🇽 |
RFC | Registro Federal de Contribuyentes 🇲🇽 |
PP | Pasaporte 🇲🇽 |
CC | Identity Document 🇲🇽 |
deferred object with creditType: "03", graceMonths: "00", and the number of months in the charge request.| Months | Minimum amount |
|---|---|
| 3 | $300 MXN |
| 6 | $600 MXN |
| 9 | $900 MXN |
| 12 | $1,200 MXN |
| 18 | $1,800 MXN |
{
"amount": {
"subtotalIva": 0,
"subtotalIva0": 900,
"iva": 0,
"ice": 0,
"currency": "MXN"
},
"deferred": {
"creditType": "03",
"graceMonths": "00",
"months": 9
}
}POST /subscriptions/v1/card/{subscriptionId}/authorize — Reserves funds on the registered card. Returns a ticketNumber.POST /subscriptions/v1/card/{subscriptionId}/capture — Captures the reserved amount. Pass the ticketNumber from the pre-authorization.| Operation | Endpoint | Description |
|---|---|---|
| Get info | GET /subscriptions/v1/card/search/{subscriptionId} | Retrieve current status and configuration |
| Update card | PUT /subscriptions/v1/card/{subscriptionId}/card | Replace the card without canceling the subscription |
| Update plan | PATCH /subscriptions/v1/card/{subscriptionId} | Modify amount, frequency, or dates |
| Add temporary charge | PUT /subscriptions/v1/card/{subscriptionId} | Apply a one-time extra charge or discount to the next cycle |
| Cancel | DELETE /subscriptions/v1/card/{subscriptionId} | Cancel and deactivate the subscription |
| Value | Description |
|---|---|
daily | Charged every day |
weekly | Charged every week |
biweekly | Charged every two weeks |
monthly | Charged every month |
bimonthly | Charged every two months |
quarterly | Charged every three months |
biannual | Charged every six months |
annual | Charged every year |
custom | Custom interval — specify periodDays |
Idempotency-Key header to safely retry operations:| Rule | Detail |
|---|---|
| Validity window | 24 hours |
| Maximum length | 56 characters |
| Format | UUIDv4 recommended |
https://api.kushkipagos.com/555 for MXN transactions.Got a suggestion on this documentation? Contact us.