Tu primer pago
Antes de empezar
Sección titulada «Antes de empezar»Tres cosas, cinco minutos:
- Un token de prueba. Genéralo en Documentación → API key.
- El id de tu sucursal. Está en la misma pantalla, o pídelo con
GET /api/v1/offices/get. curlo el cliente HTTP que prefieras.
La URL base es https://sag.efipay.co/api/v1 y no cambia entre prueba y producción:
lo que cambia es el token.
Comprueba que todo está en orden:
curl -X GET \'/api/v1/offices/get' \-H 'Authorization: Bearer TU_TOKEN_DE_PRUEBA' \-H 'Content-type: application/json'Si ves tus sucursales, ya puedes cobrar.
Elige tu modalidad
Sección titulada «Elige tu modalidad»redirect |
api |
|
|---|---|---|
| Quién captura la tarjeta | Nosotros | Tú |
| Peticiones | 2 | 3 |
| Requiere certificación PCI DSS | No | Sí |
| Diseño del checkout | El nuestro, con tu logo | El tuyo |
Camino A · redirect, en dos pasos
Sección titulada «Camino A · redirect, en dos pasos»Paso 1 · Genera el cobro
Sección titulada «Paso 1 · Genera el cobro»curl -X POST \'/api/v1/payment/generate-payment' \-H 'Authorization: Bearer TU_TOKEN_DE_PRUEBA' \-H 'Content-type: application/json' \-d '{ "payment": { "description": "Mi primer cobro", "amount": 50000, "currency_type": "COP", "checkout_type": "redirect" }, "advanced_options": { "has_comments": false, "result_urls": { "approved": "https://mi-tienda.com/gracias", "rejected": "https://mi-tienda.com/error", "pending": "https://mi-tienda.com/procesando", "webhook": "https://mi-tienda.com/webhooks/efipay" } }, "office": 1}'{ "saved": true, "payment_id": "9dc12b03-5833-496a-83e6-4dfb8eb2570b", "url": "https://sag.efipay.co/Checkout/PaymentGateway/9dc12b03-...?signature=e7e333..."}Guarda el payment_id junto a tu pedido: es cómo vas a reconocer el pago cuando
llegue el webhook.
Paso 2 · Manda a tu cliente al link
Sección titulada «Paso 2 · Manda a tu cliente al link»Redirige a url. Ahí tu cliente elige medio de pago y paga.
Prueba con una tarjeta que aprueba:
| Franquicia | Número | CVV | Vencimiento |
|---|---|---|---|
| Visa | 4485 9021 7887 7927 |
963 |
cualquiera futura |
Al terminar vuelve a la result_urls que corresponda, y tú recibes el
webhook con el resultado.
Camino B · api, en tres pasos
Sección titulada «Camino B · api, en tres pasos»Paso 1 · Genera el cobro, pidiendo un token
Sección titulada «Paso 1 · Genera el cobro, pidiendo un token»Igual que antes, pero con checkout_type: "api":
curl -X POST \'/api/v1/payment/generate-payment' \-H 'Authorization: Bearer TU_TOKEN_DE_PRUEBA' \-H 'Content-type: application/json' \-d '{ "payment": { "description": "Mi primer cobro", "amount": 50000, "currency_type": "COP", "checkout_type": "api" }, "advanced_options": { "has_comments": false, "result_urls": { "approved": "https://mi-tienda.com/gracias", "rejected": "https://mi-tienda.com/error", "pending": "https://mi-tienda.com/procesando", "webhook": "https://mi-tienda.com/webhooks/efipay" } }, "office": 1}'{ "saved": true, "payment_id": "9dc12b26-dc55-474c-8602-5d9e00af129e", "token": "ZQZ82Ifn5fAuzKL"}Paso 2 · Cobra con la tarjeta
Sección titulada «Paso 2 · Cobra con la tarjeta»curl -X POST \'/api/v1/payment/transaction-checkout/card' \-H 'Authorization: Bearer TU_TOKEN_DE_PRUEBA' \-H 'Content-type: application/json' \-d '{ "payment": { "id": "9dc12b26-dc55-474c-8602-5d9e00af129e", "token": "ZQZ82Ifn5fAuzKL" }, "customer_payer": { "name": "Ana Gomez", "email": "ana@ejemplo.com", "address_1": "Calle 100 # 20-30", "city": "Bogota", "state": "Cundinamarca", "country": "COL", "zip_code": "110111" }, "payment_card": { "number": "4485902178877927", "name": "ANA GOMEZ", "expiration_date": "2030-12", "cvv": "963", "installments": 1, "dialling_code": "+57", "cellphone": "3001234567" }}'Paso 3 · Lee el resultado
Sección titulada «Paso 3 · Lee el resultado»La respuesta trae el estado de la transacción. Si activaste 3D Secure, en su lugar recibirás las instrucciones para continuar la autenticación: ver el flujo de 3DS.
Prueba también un rechazo —4315 8923 8199 8014 con CVV 950, o las
tarjetas por causal como fondos insuficientes— y comprueba que tu
sistema no deja el pedido a medias. Es la mitad del trabajo y la que suele quedar sin
probar.
Y ahora, ¿qué?
Sección titulada «Y ahora, ¿qué?»En este orden:
- Recibe el webhook y verifica su firma. Es lo que hace que tu integración sea confiable.
- Prueba los rechazos y el estado
Pendiente. - Consulta el estado como respaldo, para cuando un webhook no llegue.
- Recorre la lista de verificación antes de cambiar al token de producción.
Y según lo que cobres:
| Si necesitas | Ve a |
|---|---|
| Cobros recurrentes | Suscripciones |
| No conocer el monto final por adelantado | Reserva de cupo |
| Que tu cliente no repita la tarjeta | Tokenizado |
| Recaudar facturas | Recauda ERP |
| Integrar sin escribir código | Integraciones |