RISE Holdings Payment API Documentation¶
Overview¶
The RISE Holdings Payment API provides comprehensive access to Mexican payment services including mobile topups, bill payments, bank transfers (SPEI), and cash collection services. This RESTful API uses secure authentication and supports real-time transaction processing.
Table of Contents¶
- Authentication
- API Endpoints
- Account Management
- Mobile Topups
- Bill Payments
- SPEI Bank Transfers
- Cash Collection (OXXO & SipeCash)
- Response Codes
- Error Handling
- Webhooks
- Testing
Authentication¶
All API requests require authentication using API keys passed in the request headers.
Authentication Headers¶
Your Credentials¶
⚠️ Security Note: Never expose your API keys in client-side code or public repositories.
Base URL¶
Production: https://latcom-fix-production.up.railway.app
Test: Contact support for sandbox environment access
API Endpoints¶
Account Management¶
Get Account Balance¶
Retrieve your current account balance and credit information.
Endpoint: GET /api/balance
Headers:
Response:
{
"success": true,
"customer_id": "RISE_HOLDINGS_001",
"company_name": "RISE Holdings",
"current_balance": 45678.50,
"credit_limit": 50000.00,
"available_credit": 50000.00,
"currency": "USD"
}
Mobile Topups¶
Send mobile airtime directly to any Mexican phone number.
Available Operators¶
- Telcel
- AT&T
- Movistar
- Unefon
- Virgin Mobile
Get Topup Operators¶
Endpoint: GET /api/muwe/topup-operators
Response:
{
"success": true,
"count": 5,
"operators": [
{
"name": "Telcel",
"sku": "4002851028",
"minAmount": 10,
"maxAmount": 1000,
"currency": "MXN"
}
]
}
Process Mobile Topup¶
Endpoint: POST /api/enviadespensa/topup
Headers:
Request Body:
Field Descriptions:
- phone (string, required): Mexican phone number (10 digits, no country code)
- amount (number, required): Topup amount in MXN (min: 10, max: 1000)
- reference (string, optional): Your internal reference/order ID
Response:
{
"success": true,
"transactionId": "TXN_1234567890",
"providerTransactionId": "PROV_9876543210",
"phone": "5512345678",
"amount": 50,
"currency": "MXN",
"status": "completed",
"message": "Topup completed successfully",
"processedAt": "2025-11-17T10:30:00Z",
"responseTime": 1250
}
Possible Status Values:
- completed: Topup successful
- pending: Processing
- failed: Topup failed
Bill Payments¶
Pay utilities, services, and other bills in Mexico.
Get Bill Payment Companies¶
Retrieve the list of available billers and service providers.
Endpoint: GET /api/muwe/bill-payment/companies
Response:
{
"success": true,
"count": 100,
"companies": [
{
"name": "CFE (Comisión Federal de Electricidad)",
"sku": "4000035024",
"category": "electricity",
"billerType": "electricity",
"requiresAccountValidation": true
},
{
"name": "Telmex",
"sku": "4000037020",
"category": "landline",
"billerType": "phone"
},
{
"name": "Sky",
"sku": "4000040024",
"category": "satellite",
"billerType": "tv"
}
]
}
Available Bill Categories¶
- Electricity: CFE
- Water: SIAPA, CESPT, CEA, and municipal water services
- Gas: Ecogas, Maxigas, Z Gas, etc.
- Cable/Internet: Megacable, Totalplay, Izzi
- Satellite TV: Sky, Dish, StarTV
- Phone: Telmex, Telnor
- Mobile Postpaid: AT&T, Movistar
- Tolls: Televia, Mueve DF
- Government: CDMX services
- Insurance: Various providers
Check Bill Balance¶
Check the balance due on a bill before payment.
Endpoint: POST /api/muwe/bill-payment/check-balance
Request Body:
Response:
{
"success": true,
"balance": 856.50,
"billTotal": 856.50,
"currency": "MXN",
"dueDate": "2025-11-25",
"maxPaymentAmount": 856.50
}
Pay Bill¶
Process a bill payment.
Endpoint: POST /api/muwe/bill-payment/pay
Request Body:
{
"accountNumber": "1234567890",
"amount": 856.50,
"companySku": "4000035024",
"reference": "BILL_PAY_12345"
}
Field Descriptions:
- accountNumber (string, required): Bill account/reference number
- amount (number, required): Payment amount in MXN
- companySku (string, required): Biller SKU from companies list
- reference (string, optional): Your internal reference ID
Response:
{
"success": true,
"transactionId": "BILL_1234567890",
"message": "Bill payment successful",
"billTotal": 856.50,
"externalId": "EXT_9876543210",
"processedAt": "2025-11-17T10:35:00Z",
"responseTime": 2100
}
SPEI Bank Transfers¶
Send instant bank transfers to any Mexican bank account using SPEI (Sistema de Pagos Electrónicos Interbancarios).
Send SPEI Transfer¶
Endpoint: POST /api/spei/transfer
Request Body:
{
"clabe": "014180606053616829",
"amount": 500.00,
"beneficiaryName": "JUAN PEREZ GARCIA",
"beneficiaryBank": "Santander",
"reference": "PAYMENT_ORDER_123",
"concept": "Payment for services",
"notifyUrl": "https://your-domain.com/webhooks/spei"
}
Field Descriptions:
- clabe (string, required): 18-digit CLABE number (Mexican bank account identifier)
- amount (number, required): Transfer amount in MXN (min: 10.00)
- beneficiaryName (string, required): Recipient name (must match bank account)
- beneficiaryBank (string, optional): Bank name for reference
- reference (string, optional): Your internal reference
- concept (string, required): Transfer concept/description (max 40 chars)
- notifyUrl (string, optional): Webhook URL for payment confirmation
Response:
{
"success": true,
"transactionId": "SPEI_1234567890",
"trackingKey": "TK_9876543210",
"clabe": "014180606053616829",
"amount": 500.00,
"currency": "MXN",
"beneficiaryName": "JUAN PEREZ GARCIA",
"status": "completed",
"processedAt": "2025-11-17T10:40:00Z",
"settlementDate": "2025-11-17",
"responseTime": 3200
}
SPEI Transfer Times: - Business Hours (9 AM - 6 PM, Mon-Fri): Instant (typically under 30 seconds) - Outside Business Hours: Processed in next business day batch - Holidays: Processed on next business day
Important Notes: - SPEI transfers are irreversible once completed - Ensure CLABE and beneficiary name are correct before sending - Transfers are subject to bank fraud detection and may be delayed - Minimum amount: 10 MXN, Maximum: 8,000,000 MXN per transaction
Cash Collection¶
Generate payment references that customers can pay at convenience stores.
Available Services¶
- OXXO: Mexico's largest convenience store chain (20,000+ locations)
- SipeCash (Enefevo): Alternative cash collection network
OXXO Cash Payment¶
Generate an OXXO payment voucher that customers can pay at any OXXO store.
Endpoint: POST /api/muwe/cash-collection/create
Request Body:
{
"amount": 10000,
"orderNo": "ORDER_12345",
"customerId": "CUST_001",
"service": "OXXO",
"notifyUrl": "https://your-domain.com/webhooks/oxxo",
"metadata": {
"customerEmail": "customer@example.com",
"orderDescription": "Product purchase"
}
}
Field Descriptions:
- amount (integer, required): Amount in centavos (10000 = 100 MXN, min: 1000, max: 1000000)
- orderNo (string, optional): Your order/reference number (auto-generated if not provided)
- customerId (string, optional): Your customer identifier
- service (string, required): "OXXO" or "ENEFEVO"
- notifyUrl (string, optional): Webhook URL for payment notifications
- metadata (object, optional): Additional information
Response:
{
"success": true,
"reference": "93000011234567890123",
"amount": 100.00,
"currency": "MXN",
"service": "OXXO",
"barcode": "https://api.sipelatam.mx/barcode/93000011234567890123",
"paymentUrl": "https://pay.oxxopay.com/file/93000011234567890123",
"expiresAt": "2025-11-20T23:59:59Z",
"instructions": "Present this reference at any OXXO store to complete payment"
}
OXXO Payment Instructions for Your Customers: 1. Go to any OXXO store in Mexico 2. Tell the cashier you want to make an OXXO payment 3. Provide the reference number: 93000011234567890123 4. Pay the exact amount in cash 5. Keep your receipt as proof of payment
OXXO Limits: - Minimum: 10 MXN (1000 centavos) - Maximum: 10,000 MXN (1000000 centavos) per transaction - Voucher expiration: 72 hours (3 days)
SipeCash (Enefevo) Payment¶
Generate a SipeCash/Enefevo payment reference for alternative cash collection points.
Endpoint: POST /api/muwe/cash-collection/create
Request Body:
{
"amount": 15000,
"orderNo": "ORDER_12346",
"customerId": "CUST_002",
"service": "ENEFEVO",
"notifyUrl": "https://your-domain.com/webhooks/sipecash"
}
Response:
{
"success": true,
"reference": "ENEFEVO_1234567890",
"amount": 150.00,
"currency": "MXN",
"service": "ENEFEVO",
"paymentUrl": "https://pay.enefevo.com/ref/ENEFEVO_1234567890",
"expiresAt": "2025-11-20T23:59:59Z",
"instructions": "Present this reference at participating stores"
}
SipeCash (Enefevo) Limits: - Minimum: 10 MXN - Maximum: 10,000 MXN per transaction - Voucher expiration: 72 hours
Check Payment Status¶
Check the status of a cash collection payment.
Endpoint: GET /api/muwe/cash-collection/status/:reference
Response:
{
"success": true,
"reference": "93000011234567890123",
"status": "paid",
"amount": 100.00,
"paidAt": "2025-11-17T14:30:00Z",
"paidAmount": 100.00
}
Status Values:
- pending: Waiting for payment
- paid: Payment completed
- expired: Voucher expired without payment
- cancelled: Payment cancelled
Response Codes¶
| HTTP Code | Meaning |
|---|---|
| 200 | Success |
| 400 | Bad Request - Invalid parameters |
| 401 | Unauthorized - Invalid API key |
| 403 | Forbidden - Insufficient permissions |
| 404 | Not Found - Endpoint doesn't exist |
| 429 | Too Many Requests - Rate limit exceeded |
| 500 | Internal Server Error |
| 503 | Service Unavailable - Temporary maintenance |
Error Handling¶
All error responses follow this format:
{
"success": false,
"error": "Description of what went wrong",
"code": "ERROR_CODE",
"details": {
"field": "Specific error details"
}
}
Common Error Codes¶
INVALID_API_KEY: API key is missing or invalidINSUFFICIENT_BALANCE: Account balance too lowINVALID_PHONE: Phone number format is invalidINVALID_CLABE: CLABE number is invalidAMOUNT_TOO_LOW: Amount below minimum thresholdAMOUNT_TOO_HIGH: Amount exceeds maximum thresholdSERVICE_UNAVAILABLE: Provider temporarily unavailableDUPLICATE_REFERENCE: Reference ID already used
Webhooks¶
Receive real-time notifications when payments are completed.
Webhook Configuration¶
Contact support to configure your webhook URLs.
Webhook Payload¶
{
"event": "payment.completed",
"transactionId": "TXN_1234567890",
"reference": "YOUR_REF_123",
"amount": 100.00,
"currency": "MXN",
"status": "completed",
"service": "OXXO",
"paidAt": "2025-11-17T14:30:00Z",
"metadata": {
"customerId": "CUST_001"
}
}
Webhook Events¶
payment.completed: Payment successfully processedpayment.failed: Payment attempt failedpayment.expired: Payment voucher expiredtransfer.completed: SPEI transfer completedtransfer.returned: SPEI transfer returned by bank
Webhook Security¶
All webhooks include a signature header for verification:
Verification Example (Node.js):
const crypto = require('crypto');
function verifyWebhook(payload, signature, secretKey) {
const hmac = crypto.createHmac('sha256', secretKey);
const digest = 'sha256=' + hmac.update(JSON.stringify(payload)).digest('hex');
return crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(digest));
}
Testing¶
Test Credentials¶
Use your production credentials. All test transactions will be clearly marked in the dashboard and will not affect real accounts.
Test Data¶
Test Phone Numbers¶
5512345678- Always succeeds5512345679- Always fails (insufficient balance)5512345680- Returns pending status
Test CLABE Numbers¶
014180606053616829- Test Santander account (always succeeds in test mode)012180001234567897- Test BBVA account (simulates delay)
Test Bill Accounts¶
- Use any 10-12 digit number in test mode
- Results will be simulated
Rate Limits¶
- Production: 100 requests per minute per API key
- Burst: Up to 200 requests per minute for short periods
Support¶
For technical support, questions, or to report issues:
- Email: support@riseholdings.com
- Technical Docs: Contact your account manager
- Emergency Support: Available 24/7 for production issues
Changelog¶
Version 1.0.0 (November 2025)¶
- Initial API release
- Mobile topups support
- Bill payments support
- SPEI transfers support
- OXXO cash collection support
- SipeCash (Enefevo) support
Best Practices¶
- Idempotency: Always include a unique
referencein your requests to prevent duplicate charges - Error Handling: Implement retry logic with exponential backoff for failed requests
- Webhooks: Use webhooks for payment confirmations instead of polling
- Security: Never log or store API keys in plain text
- Testing: Test thoroughly in test mode before going live
- Monitoring: Monitor your API usage and error rates in the dashboard
API Libraries¶
Currently, we provide a REST API. Client libraries for popular languages coming soon:
- Node.js / JavaScript
- Python
- PHP
- Java
- C# / .NET
For now, use any HTTP client library in your preferred language.
© 2025 RISE Holdings Payment API - All Rights Reserved
This documentation is confidential and intended only for RISE Holdings authorized personnel.