Transferencias


Qué es una transferencia

Una transferencia es el envío de dinero desde tu cuenta virtual de Efipay hacia una cuenta bancaria. Es el paso final del ciclo: cobras a tus clientes, el dinero se acumula en tu cuenta virtual como movimientos, y de ahí sale al banco.

{info} La API es de solo lectura. No hay endpoint para crear una transferencia ni una dispersión: se solicitan desde el panel de Efipay. Este endpoint existe para que puedas conciliar lo que ya salió.

Listar transferencias

Descripción: Devuelve las transferencias asociadas a tus sucursales, paginadas. Todos los filtros son opcionales; sin filtros trae todo.

GET /api/v1/transfer

Nombre del campo Descripción Reglas
start_date Desde qué fecha, sobre la fecha de creación ['nullable', 'date_format:Y-m-d', 'before_or_equal:finish_date']
finish_date Hasta qué fecha. No puede ser futura ['nullable', 'date_format:Y-m-d', 'before_or_equal:today', 'after_or_equal:start_date']
offices Ids de las sucursales a incluir. Sin este filtro se incluyen todas las tuyas ['nullable', 'array']
offices.* Cada id debe ser de una de tus sucursales ['required', 'exists:offices,id']

{warning} Este endpoint no acepta per_page: siempre devuelve 15 por página, y no garantiza un orden. Si necesitas las más recientes primero, ordena por created_at de tu lado después de recorrer todas las páginas.

curl -X GET \
'/api/v1/transfer?start_date=2026-07-01&finish_date=2026-07-31&offices[]=1' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Accept: application/json'

{success} Respuesta satisfactoria code: 200

{
"data": [
{
"id": "9b0f2a13-2c44-4a1a-9f2e-1d3b4c5d6e7f",
"amount": 1500000,
"transfer_charge": 7500,
"gravamen": 6000,
"total": 1486500,
"status": "Transferido",
"comments": null,
"transferable_type": "Transferencia Manual",
"transferable": {
"amount": 1500000,
"transfer_charge": 7500,
"office_id": 1,
"economic_group_id": null
},
"bankable": {
"bank_name": "Bancolombia",
"account_holder": "Comercio de Prueba S.A.S.",
"last_four_numbers": "4321",
"identification_number": "901234567",
"is_approved": true
},
"created_at": "2026-07-15T09:00:00.000000Z"
}
],
"links": {
"first": "https://sag-qa.efipay.co/api/v1/transfer?page=1",
"last": "https://sag-qa.efipay.co/api/v1/transfer?page=3",
"prev": null,
"next": "https://sag-qa.efipay.co/api/v1/transfer?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 3,
"per_page": 15,
"to": 15,
"total": 42
}
}

Qué es cada monto

Campo Significado
amount Lo que se solicitó transferir
transfer_charge Costo de la transferencia
gravamen Gravamen a los movimientos financieros (4×1000), cuando aplica
total Lo que efectivamente llegó al banco: amount − transfer_charge − gravamen
comments Nota interna. Cuando una transferencia se cancela, aquí suele estar el motivo

De dónde salió: transferable_type

Valor Qué fue
Transferencia Manual La solicitaste tú desde el panel
Transferencia Programada Salió de una programación recurrente
Transferencia a terceros Una dispersión hacia cuentas que no son la tuya

El objeto transferable cambia de forma según ese tipo, y bankable describe la cuenta de destino (last_four_numbers son los últimos cuatro dígitos; nunca devolvemos el número completo).

Estados

Estado Qué significa
Recibido La solicitud entró y está en cola
En Proceso Se está enviando al banco
Transferido El dinero salió. Es el estado final de una transferencia exitosa
Cancelado No se realizó. El motivo suele venir en comments

{danger} Rango de fechas inválido code: 422

{
"message": "El campo finish_date debe ser una fecha anterior o igual a hoy.",
"errors": {
"finish_date": [
"El campo finish_date debe ser una fecha anterior o igual a hoy."
]
}
}