Saltar al contenido
SendIt está en desarrollo y todavía no opera comercialmente · SendIt is in development and not yet commercially available.
SendItdocs
Español
Esc
navigateopen⌘Jpreview
En esta página

Monedero y fondeo

Tu saldo prepagado en MXN: fondea por SPEI, tarjeta o PayPal y consulta cada transacción.

El monedero es tu saldo prepagado en pesos: cada guía se debita de él al precio cotizado. Fondéalo por transferencia SPEI a tu CLABE dedicada, con tarjeta o con PayPal.

Endpoints

Método Ruta Descripción
POST /v1/wallet/funding-instructions Provisionar tu CLABE (idempotente)
GET /v1/wallet/funding-instructions Consultar tu CLABE
POST /v1/wallet/fund/card Iniciar fondeo con tarjeta
POST /v1/wallet/fund/paypal Iniciar fondeo con PayPal
POST /v1/wallet/fund/oxxo Generar un vale de pago en efectivo (OXXO)
GET /v1/wallet/fund/:paymentIntentId/status Estado de un pago
GET /v1/wallet/balance Saldo actual
GET /v1/wallet/summary Resumen de ingresos/egresos/neto por periodo
GET /v1/wallet/transactions Historial de transacciones
PATCH /v1/wallet/settings Configurar el umbral de saldo bajo (ADMIN+)
POST /v1/wallet/test/reset Restablecer el saldo de prueba (solo con sesión del dashboard)

Fondea por SPEI (recomendado)

Cada organización recibe una CLABE dedicada: cualquier transferencia SPEI a esa cuenta se acredita automáticamente a tu monedero, sin conciliación manual.

curl -X POST https://api.sendit.mx/v1/wallet/funding-instructions \
  -H "Authorization: Bearer <jwt>"
{
  "success": true,
  "data": {
    "id": "clxfund123abc",
    "type": "mx_bank_transfer",
    "clabe": "646180111812345678",
    "bankName": "STP",
    "bankCode": "646",
    "status": "ACTIVE",
    "createdAt": "2026-07-17T01:00:00.000Z"
  }
}

El endpoint es idempotente: llamarlo de nuevo devuelve la misma CLABE. Comparte la CLABE con tu equipo de finanzas y fondea por SPEI desde cualquier banco. El crédito aparece en minutos como una transacción CREDIT.

Fondea con tarjeta

curl -X POST https://api.sendit.mx/v1/wallet/fund/card \
  -H "Authorization: Bearer <jwt>" \
  -H "Idempotency-Key: 9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d" \
  -H "Content-Type: application/json" \
  -d '{ "amount": 500 }'
{
  "success": true,
  "data": {
    "paymentIntentId": "pi_3QyAbc123xyz",
    "clientSecret": "pi_3QyAbc123xyz_secret_def456",
    "amount": 500,
    "currency": "MXN",
    "publishableKey": "pk_test_xxxxx"
  }
}

Parámetros del cuerpo

PropType
amountnumber

Monto a fondear en MXN. Mínimo $20, máximo $50,000 por operación.

Typenumber
returnUrl?string

Solo fund/paypal: a dónde regresar al usuario tras la aprobación.

Typestring

Usa el clientSecret con Stripe.js en tu frontend para capturar la tarjeta y completar 3D Secure. Confirmado el pago, el monedero se acredita automáticamente.

El fondeo con PayPal funciona igual vía POST /v1/wallet/fund/paypal (acepta un returnUrl opcional para el regreso tras la aprobación).

Consulta el estado del pago

GET /v1/wallet/fund/pi_3QyAbc123xyz/status
{
  "success": true,
  "data": {
    "paymentIntentId": "pi_3QyAbc123xyz",
    "status": "succeeded",
    "amount": 500,
    "currency": "MXN",
    "paymentMethodType": "card",
    "walletCredited": true
  }
}

Cuando status es succeeded y walletCredited es true, el saldo ya refleja el fondeo.

Fondea con OXXO (efectivo)

Para pagar en efectivo, usa POST /v1/wallet/fund/oxxo. Genera un vale con código de barras: muéstralo o imprímelo y paga en cualquier tienda OXXO. El vale vence en 3 días. El monedero se acredita cuando OXXO confirma el pago, así que trátalo como pendiente hasta entonces. Consulta el estado del pago con /v1/wallet/fund/:paymentIntentId/status.

Parámetros del cuerpo

PropType
amountnumber

Monto a fondear en MXN. Mínimo $20, máximo $10,000, que es el tope del vale OXXO.

Typenumber
curl -X POST https://api.sendit.mx/v1/wallet/fund/oxxo \
  -H "Authorization: Bearer <jwt>" \
  -H "Content-Type: application/json" \
  -d '{ "amount": 500 }'
{
  "success": true,
  "data": {
    "paymentIntentId": "pi_3Oxxo123xyz",
    "hostedVoucherUrl": "https://payments.stripe.com/oxxo/voucher/...",
    "expiresAfter": 1800000000,
    "amount": 500,
    "currency": "MXN"
  }
}

hostedVoucherUrl es el vale imprimible. expiresAfter es la fecha de vencimiento, en segundos epoch Unix. El saldo se actualiza cuando el pago en efectivo se libera. Hasta entonces la transacción queda pendiente.

Consulta tu saldo

GET /v1/wallet/balance
{
  "success": true,
  "data": {
    "id": "clxwallet123",
    "balance": "1500.00",
    "currency": "MXN",
    "lowBalanceThreshold": "100.00",
    "lowBalanceAlertSent": false,
    "hasFundingSource": true
  }
}

Los montos son cadenas decimales. Nunca hagas aritmética flotante con dinero.

Con una llave sk_test_ este endpoint devuelve el saldo de prueba. Ver Modo de prueba.

Configura la alerta de saldo bajo

PATCH /v1/wallet/settings define a partir de qué saldo quieres recibir un aviso. Requiere rol ADMIN o superior, y el alcance wallet:write si usas una llave de API.

curl -X PATCH https://api.sendit.mx/v1/wallet/settings \
  -H "X-API-Key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "lowBalanceThreshold": 500 }'

Manda null para desactivar la alerta.

Resumen de movimientos

Para tarjetas de “ingresos vs. egresos” sin recorrer todas las transacciones, GET /v1/wallet/summary agrega el periodo que pidas. Ambos parámetros de fecha son opcionales (from inclusivo, to exclusivo):

GET /v1/wallet/summary?from=2026-07-01&to=2026-08-01
{
  "success": true,
  "data": {
    "income": "1050.00",
    "expenses": "730.50",
    "net": "314.50",
    "adjustments": "-5.00",
    "transactionCount": 7,
    "currency": "MXN",
    "byType": {
      "CREDIT": { "count": 2, "amount": "1000.00" },
      "REFUND": { "count": 1, "amount": "50.00" },
      "DEBIT": { "count": 3, "amount": "-730.50" },
      "ADJUSTMENT": { "count": 1, "amount": "-5.00" }
    }
  }
}

income suma créditos y reembolsos. expenses es la magnitud de los débitos, que se guardan en negativo. Todos los montos son cadenas decimales.

El resumen respeta el modo de la petición. Con ?livemode=false agrega los movimientos de prueba.

Revisa tus transacciones

GET /v1/wallet/transactions?type=CREDIT&page=1&limit=20
{
  "success": true,
  "data": [
    {
      "id": "clxtx_spei_456",
      "type": "CREDIT",
      "amount": "1000.00",
      "currency": "MXN",
      "balanceAfter": "2500.00",
      "description": "Depósito vía transferencia bancaria SPEI",
      "referenceType": "stripe_bank_transfer",
      "status": "COMPLETED",
      "createdAt": "2026-07-17T10:00:00.000Z"
    },
    {
      "id": "clxtx_label_789",
      "type": "DEBIT",
      "amount": "326.82",
      "currency": "MXN",
      "balanceAfter": "1500.00",
      "description": "Compra de guía DHL Express Nacional",
      "referenceType": "label_purchase",
      "referenceId": "clxq1w2e3r4t5y6u7i8o9p0a",
      "metadata": { "carrierCode": "DHL" },
      "status": "COMPLETED",
      "createdAt": "2026-07-17T09:00:00.000Z"
    }
  ],
  "meta": { "page": 1, "limit": 20, "total": 143, "totalPages": 8 }
}
Parámetro Valores
type CREDIT, DEBIT, REFUND, ADJUSTMENT
referenceType stripe_bank_transfer (SPEI), stripe_payment_intent (tarjeta, PayPal u OXXO), label_purchase, label_purchase_refund, label_void_refund
page Número de página. Por defecto 1
limit Elementos por página. Por defecto 20, máximo 100
sortOrder asc o desc. Por defecto desc

Los fondeos con tarjeta, PayPal y OXXO comparten el referenceType stripe_payment_intent. Para distinguirlos, lee metadata.funding_method: vale card, paypal u oxxo.

Cada transacción trae balanceAfter. El historial es un estado de cuenta completo y auditable.

Errores

Código Cuándo ocurre Cómo resolverlo
400 INVALID_INPUT El monto o los parámetros no son válidos Corrige la petición y vuelve a intentar
400 LIVE_MODE_REQUIRED Intentaste fondear o consultar un pago en modo TEST Cambia a una sesión o llave LIVE
402 INSUFFICIENT_BALANCE Una operación requiere más saldo del disponible Fondea el monedero

¿Te ha resultado útil esta página?