# Lista de transacciones --- - [Lista de transacciones](#transaction-list) - [Overview](#overview) - [Filtrar por herramienta](#source-tool) - [Filtros de fecha y sucursal](#filtros-base) - [Filtros de búsqueda](#filtros-busqueda) - [Ejemplo y respuesta](#ejemplo) ## Overview [#overview] Devuelve tus transacciones, paginadas. Es el endpoint para conciliar: te deja cruzar lo que cobraste con lo que registró tu sistema, filtrando por fecha, sucursal, estado, últimos dígitos de tarjeta, código de autorización o tus propias referencias. El ambiente (**pruebas** o **producción**) lo decide el token: `api-access:test` o `api-access:production`. No hace falta enviar `production` como parámetro; si lo envías, se ignora. Una transacción de prueba nunca aparece con un token de producción. ## Filtrar por herramienta [#source-tool] `GET /api/v1/payment/get-transactions/{sourceTool?}` El segmento final es opcional y limita el resultado a una herramienta: | Valor | Herramienta | | - | - | | *(omitido)* o `All` | Todas | | `Cobra` | [Cobra](https://sag.efipay.co) — link o QR de pago único | | `CobraPlus` | Cobra Plus — link con formulario propio | | `Recauda` | Recauda — recaudo por referencia | | `SimpleApi` | Los pagos que generas por [API](/generate-transaction) | | `Suscripcion` | Cobros de [suscripciones](/subscription) | | `ReservaCupo` | [Reservas de cupo](/mit-pre-authorization) | ## Filtros de fecha y sucursal [#filtros-base] | Nombre del campo | Descripción | Reglas | | - | - | - | | start_date | Desde qué fecha | `['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](/commercio) | `['nullable', 'array']` | | offices.* | Cada id debe ser de una de tus sucursales | `['required', 'exists:offices,id']` | ## Filtros de búsqueda [#filtros-busqueda] Todos son opcionales y **buscan por coincidencia parcial**: enviar `card_number=1313` encuentra cualquier tarjeta que termine —o contenga— esos dígitos. Se combinan entre sí. | Nombre del campo | Busca en | | - | - | | transaction_id | El número consecutivo de la transacción | | status | El estado. Ver [estados de transacción](/resources#status-transaction) | | errors | El mensaje de error registrado | | amount | El valor en la moneda original | | amount_cop | El valor en pesos | | currency | Símbolo, nombre o código ISO de la moneda | | trm | La tasa de cambio aplicada | | network | La red que procesó: `Credibanco` o `Redeban` | | payment_method | Medio de pago (`credit`, `pse`, `cash`…) o su franquicia (`Visa`, `Mastercard`…) | | card_number | La tarjeta enmascarada | | authorization_code | El código de autorización de la red | | references | Cualquiera de las tres referencias de la transacción | | customs | Cualquiera de los dos campos personalizados | | customer_name | Nombre de quien pagó | | customer_email | Correo de quien pagó | | document_type | Tipo de documento de quien pagó | | number_document | Número de documento de quien pagó | | contact_phone | Teléfono de quien pagó | | country | País registrado en el detalle del pago | | tokenized_payment | Si el pago se hizo con [tarjeta tokenizada](/tokenized) | ## Ejemplo y respuesta [#ejemplo] `GET /api/v1/payment/get-transactions/SimpleApi` Cuerpo de ejemplo: ```json { "network": "Credibanco" } ``` ```bash curl -X GET \ '/api/v1/payment/get-transactions/SimpleApi?start_date=2026-07-01&finish_date=2026-07-31&status=Aprobada' \ -H 'Authorization: Bearer ACCESS_TOKEN' \ -H "Content-type: application/json" ``` :::tip Respuesta satisfactoria ::: Código de respuesta: 200 ```json { "data": [ { "transaction_id": 20481, "amount": 120000, "currency_type": "COP", "value_cop": 120000, "payment_method": "credit", "payment_method_source": "Visa", "trazability_id": "320000303129", "authorization_code": "005077", "reference_1": "ana@ejemplo.com", "reference_2": null, "reference_3": null, "transaction_details": { "name": "ANA GOMEZ", "identification_type": "CC", "identification_number": "1020304050", "email": "ana@ejemplo.com", "number_card": "491617******1313", "installments": "1", "franchise": "Visa", "status_message": "00" }, "status": "Aprobada", "url_response": "https://sag.efipay.co/Checkout/Transaction/9af329f1-e96a-40ab-b466-94a412f12c4a/Response", "approved_at": "2026-07-15T14:32:10.000000Z", "production": true, "created_at": "2026-07-15T14:32:05.000000Z", "customer_payer": { "id": "9a80a7b1-950f-486a-ac84-b36fb852a6c9", "name": "Ana Gómez", "email": "ana@ejemplo.com" }, "currency_rate_conversion": { "id": 1, "usd_to_cop": 0.000244, "eur_to_cop": 0.000231 }, "description": "Aprobada" } ], "links": { "first": "https://sag.efipay.co/api/v1/payment/get-transactions/SimpleApi?page=1", "last": "https://sag.efipay.co/api/v1/payment/get-transactions/SimpleApi?page=8", "prev": null, "next": "https://sag.efipay.co/api/v1/payment/get-transactions/SimpleApi?page=2" }, "meta": { "current_page": 1, "from": 1, "last_page": 8, "per_page": 15, "to": 15, "total": 118 } } ``` :::note `description` es el mensaje que mejor explica en qué quedó la transacción: el mensaje al cliente si existe, el del detalle del medio de pago si no, y el estado como último recurso. Úsalo para mostrarle algo legible a tu operador. :::