Pay

Developers/Guías

Cuentas y CVU

Creá cuentas de pago con CVU sobre Coinag/Coelsa. Podés usar la API nativa Gallo (/v1) o la fachada wallet (/wallet/v1).

Entornos

  • Homolog: https://api.dev.gallo-pay.com · key gpk_test_…
  • Producción: https://api.prod.gallo-pay.com · key gpk_live_…

Dos familias de paths

  • /v1/accounts — API nativa: alta CVU, alias, balance, movimientos, comprobantes.
  • /wallet/v1 — fachada estilo Bind: Cuenta, CVU, saldos y comprobantes en PascalCase.

Ambas usan el mismo tenant (tu x-api-key). Elegí una familia y mantené consistencia; no mezcles IDs entre capas sin mapear.

Alta de CVU

Nativa — curl

curl -X POST https://api.dev.gallo-pay.com/v1/accounts \
  -H "x-api-key: gpk_test_…" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "cuit": "20370994049",
    "titular": "JUAN PEREZ",
    "tipoPersona": "F",
    "alias": "gallo.juan.perez",
    "pep": false,
    "nationality": "AR"
  }'

Respuesta típica (201):

{
  "cvu": "0000003100000000000147",
  "cuit": "20370994049",
  "titular": "JUAN PEREZ",
  "tipoPersona": "F",
  "alias": "gallo.juan.perez",
  "status": "active"
}

Wallet — Cuenta → CVU

# 1) Alta de cuenta (titular)
curl -X POST https://api.dev.gallo-pay.com/wallet/v1/Cuenta \
  -H "x-api-key: gpk_test_…" \
  -H "Content-Type: application/json" \
  -d '{
    "cuitCuil": "20370994049",
    "nombre": "Juan",
    "apellido": "Perez",
    "razonSocial": "Juan Perez",
    "email": "juan@example.com",
    "celular": "1168599999",
    "actividadAfip": "000012",
    "habilitado": true,
    "esPep": false,
    "esFatca": false,
    "esUif": false,
    "nacionalidad": "AR"
  }'

# 2) Emitir CVU (usar id de la respuesta anterior)
curl -X POST https://api.dev.gallo-pay.com/wallet/v1/CVU \
  -H "x-api-key: gpk_test_…" \
  -H "Content-Type: application/json" \
  -d '{ "idCuenta": 123, "nombreCVU": "Juan Perez", "aliasAutomatico": true }'

Schemas completos: referencia OpenAPI.

Perfil PLAFT / Regis (opcional)

El alta wallet (POST /wallet/v1/Cuenta) acepta campos opcionales de perfil PLAFT que Gallo informa a Regis (Coinag) en el onboarding. Si no los enviás aplicamos defaults conservadores.

{
  "tipoPersona": "F",              // F | J
  "sujetoObligado": 0,
  "nse": 3,                        // nivel socioeconómico (catálogo Regis)
  "nivelRiesgo": 1,
  "perfilTransaccional": 2,
  "ingresosAnuales": 12000000,     // ingresos anuales declarados
  "montoAnualInvertir": 1000000,
  "facturacionEstimada": 25000000, // facturación estimada declarada
  "pepDetalle": {                  // solo si esPep = true
    "parentesco": "titular",
    "funcionCargo": "Diputado",
    "fechaAlta": "2026-01-01",
    "fechaBaja": null
  },
  "domicilio": { "…": "…", "pais": 1 }   // código país Regis (1 = AR)
}

Todos estos campos vuelven en el detalle de la cuenta (GET /wallet/v1/Cuenta/:id), junto con tipoPersona y nacionalidad.

Múltiples CVU por cuenta

Una cuenta wallet puede tener más de un CVU activo. El detalle de la cuenta incluye el array cvus[] con todos los CVUs activos (id, cvu, alias, nombreCvu, fechaAlta). Los campos planos cvu / alias / cuentaCVUId siguen apuntando al CVU primario (el más antiguo).

  • Un segundo POST /wallet/v1/CVU sobre una cuenta con CVU activo responde 422 (“La cuenta ya tiene un CVU activo”). El alta de CVUs adicionales la gestiona Gallo (ops) a pedido.
  • Con alias automático, los CVUs adicionales reciben un sufijo de secuencia para no colisionar con el alias del primario.
  • El lookup GET /wallet/v1/CuentaCVUByCbuCvuOrAlias ahora devuelve tipoCuenta (p. ej. CVU, CC, CA) para cuentas propias y externas.

Saldos

curl https://api.dev.gallo-pay.com/v1/accounts/0000003100000000000147/balance \
  -H "x-api-key: gpk_test_…"

curl "https://api.dev.gallo-pay.com/v1/accounts/0000003100000000000147/balance/historical?date=2026-08-01" \
  -H "x-api-key: gpk_test_…"

Wallet: GET /wallet/v1/SaldoActualByCVU/:cvu, SaldoHistoricoByCVU, SaldosActuales.

El saldo es ledger Gallo (disponible / retenido). Ver comprobantes.

Eventos

Tras el alta y los cash-in recibís account.created, account.alias.updated, account.credited, account.closed. Detalle: webhooks.