---
title: "Process Transaction"
method: POST
path: "/process/"
tags: ["Direct Integration"]
---

# Process Transaction

`POST /process/`

Process both payments and withdrawals through a single API call. This unified endpoint 
handles all transaction types based on the `operation_type` field.

## Request body

- DirectTransactionRequest
  - `operation_type` 'payment' | 'withdrawal', required — Type of transaction to process
  - `amount` number, required — Transaction amount
  - `currency` 'MXN' | 'USD' — Currency code
  - `customer` DirectCustomer, required
    - `name` string, required — Customer full name
    - `email` string, email, required — Customer email address
  - `client_reference` string — Your reference identifier
  - `metadata` object — Additional data for your records
  - `return_url` string, uri — URL for redirection after 3DS processing
  - `payment_method` DirectPaymentMethod
    - `type` 'CARD' | 'SPEI' | 'OXXO' | 'mercadopago' | 'SAFETYPAY', required — Payment method type
    - `token` string — Tokenized card ID (for card payments)
    - `card_number` string — Card number (if not using token)
    - `cardholder_name` string — Cardholder name (for raw card data)
    - `cvv` string — Security code (for raw card data)
    - `expiration_month` string — Expiration month (for raw card data)
    - `expiration_year` string — Expiration year (for raw card data)
  - `transfer_method` 'SPEI' | 'DEBIT_CARD' — Transfer method for withdrawals
  - `reference` string — Your withdrawal reference
  - `description` string — Withdrawal description
  - `beneficiary` DirectBeneficiary
    - `account` string, required — Account number or CLABE (18 digits)
    - `name` string, required — Beneficiary full name
    - `rfc` string, required — Mexican tax ID (RFC)
    - `institution` string, required — Bank institution code
    - `email` string, email, required — Beneficiary email

## Response `200`

Transaction processed successfully

- DirectTransactionResponse
  - `id` string, uuid — Unique transaction identifier
  - `operation_type` 'payment' | 'withdrawal' — Type of transaction
  - `status` 'pending' | 'on_hold' | 'processing' | 'sent_to_provider' | 'success' | 'paid_full' | 'in_transit' | 'authorized' | 'canceled' | 'declined' | 'rejected' | 'failed' | 'Unknown' | 'expired' — Current transaction status
  - `amount` number — Transaction amount
  - `currency` string — Currency code
  - `client_reference` string — Your reference identifier
  - `payment_id` integer — Payment ID (for payments)
  - `transaction_id` string — Provider transaction ID
  - `provider` string — Payment provider used
  - `created_at` string, date-time — ISO 8601 timestamp of creation
  - `status_code` integer — HTTP status code
  - `next_action` DirectNextAction
    - `redirect_to_url` object
      - `url` string, uri — URL to redirect customer for 3DS authentication
      - `return_url` string, uri — URL to return after 3DS completion
      - `verify_transaction_status_url` string — URL to check transaction status after 3DS
  - `payment_instructions` DirectPaymentInstructions
    - `reference` string — Payment reference code
    - `account_number` string — Account number for transfer
    - `bank_name` string — Bank name
    - `amount` number — Amount to pay
    - `expires_at` string, date-time — Payment expiration time
    - `reference_code` string — Reference code for cash payments
    - `barcode` string — Barcode for cash payments
    - `store_name` string — Store name for cash payments
    - `expiration_date` string, date-time — Payment expiration date
    - `instructions` string[] — Payment instructions
    - `voucher_pdf` string, uri — URL to payment voucher PDF

## Other responses

- `201` — Transaction created successfully
- `202` — Transaction accepted for processing
- `400` — Bad Request
- `401` — Unauthorized
- `402` — Payment Required
- `422` — Validation Error
- `429` — Rate Limited
- `500` — Server Error

---

[API](https://skmtc.net/tonderio/apis/tonder.md) · [All operations](https://skmtc.net/tonderio/apis/tonder/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tonderio/tonder/revisions/aface34fb9b2/schema)
