Getnet DocsGetnet Docs

PSE

pse logo

PSE es un método de pago por transferencia bancaria online en tiempo real en Colombia. En el momento de pago, el cliente selecciona el nombre de su banco e inicia sesión en su entorno de banca online. Revisa los detalles de pago precompletados, autoriza el pago y luego simplemente espera a que llegue la compra.

Esta guía proporciona instrucciones para los pagos con PSE, incluyendo ejemplos de peticiones, gestión de redirecciones y procesamiento de notificaciones.

Requisitos

Antes de integrar PSE debe:

  • Generar un token de acceso a través del endpoint de Autenticación.
  • Configurar una callback_url HTTPS pública que reciba actualizaciones de estado una vez que los clientes completen la transacción.
  • Recuperación de la lista de bancos: Llame al endpoint banklookup para obtener la lista de bancos activos y mostrarla al cliente.

PSE solo está disponible en Colombia y espera la moneda COP.

Especificidades de Casos de Uso

Al integrar PSE a través de Getnet, se aplican requisitos específicos del mercado. Para obtener más información sobre los requisitos específicos de Colombia, asegúrese de revisar los siguientes recursos antes de pasar a producción (go live):

Características

La siguiente tabla resume el comportamiento y los requisitos de los pagos con PSE.

CapacidadDetalles
Interacción con el clienteEl cliente selecciona el banco, es redirigido al portal de PSE/Banco, inicia sesión y autoriza el pago.
ConfirmaciónAsíncrona: estado inicial PENDING, luego APPROVED o DECLINED mediante webhook.
NotificacionesLos webhooks son necesarios para confirmar el estado final de la transacción.

Funcionalidades disponibles

Utilice la siguiente matriz para confirmar los escenarios actualmente soportados para PSE.

Flujo de pagoPaíses soportadosComprasReembolsosReembolsos parcialesReembolsos múltiplesPreautorizaciones
RedirectColombia✅❌❌❌❌

Flujo de Pago

Esta sección le guía a través del proceso completo de implementación de pagos con PSE. El siguiente diagrama ofrece una visión general del proceso de pago con PSE:

Flujo Soportado

Este es el flujo de pago actualmente soportado por Getnet:

  • Transferencia PSE (INSTANT_TRANSFER): El usuario selecciona su banco y es redirigido para autorizar el cargo. El flujo se basa en redirección.

Esta operación es asíncrona; el estado final solo se confirma cuando Getnet recibe el webhook.

1. Recuperar la lista de bancos

Antes de iniciar el pago, debe recuperar la lista actual de instituciones financieras participantes para mostrarla al cliente.

Petición para recuperar los bancos disponibles:


curl --location --request GET 'https://api.pre.globalgetnet.com/dpm/payments-gwproxy/v2/banklookup' \
--header 'Authorization: Bearer <ACCESS_TOKEN>' \
--header 'Content-Type: application/json'

Ejemplo de respuesta:

{
  "banks": [
    {
      "name": "BANCO DE BOGOTA",
      "code": "1039"
    },
    {
      "name": "BANCO DAVIVIENDA",
      "code": "1051"
    },
    {
      "name": "BANCO UNION COLOMBIANO",
      "code": "1022"
    }
  ]
}

Capture el code del banco seleccionado (por ejemplo: 1022) para utilizarlo en la petición de pago posterior.

2. Crear la petición de pago

Para iniciar un pago, llame al endpoint Create - Authorize.

Debe especificar WALLET como método de pago y proporcionar la brand como PSE. El código bancario seleccionado por el usuario debe pasarse en additional_data.

La tabla resume los campos mínimos obligatorios para un pago con PSE.

AtributoDescripciónValor obligatorio
payment_methodIdentificador del método de pagoWALLET
brandIdentificador de la marcaPSE
amountImporte de la transacción en céntimosEntero (ej. 400 para 4,00 $)
currencyCódigo de moneda ISOCOP
payment.instant_transfer.bank_codeCódigo del Banco SeleccionadoCadena (ej., 1022)
customer.document_typeTipo de Documento del ClienteCC, NIT, etc.
customer.document_numberNúmero de Documento del ClienteCadena
customer.emailEmail del ClienteDirección de email válida

Ejemplo de Petición PSE

curl --location --request POST 'https://api.pre.globalgetnet.com/dpm/payments-gwproxy/v2/payments' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <ACCESS_TOKEN>' \
--data-raw '{
    "idempotency_key": "uuid-pse-v2-unique",
    "request_id": "req-id-v2-unique",
    "order_id": "1234123423128",
    "data": {
        "amount": 400,
        "currency": "COP",
        "customer_id": "customer-uuid",
        "payment": {
            "instant_transfer": {
                "bank_code": "1022"
            },
            "payment_id": "payment-uuid",
            "payment_method": "WALLET",
            "brand": "PSE",
            "soft_descriptor": "PSE TEST"
        },
        "additional_data": {
            "callback_url": "https://your-store.com/webhooks/pse",
            "customer": {
                "email": "[email protected]",
                "document_number": "50506468",
                "document_type": "NIT",
                "name": "Jose da Silva",
                "phone_number": "34700000000",
                "billing_address": {
                    "street": "Avenida Siempre Viva",
                    "number": "123",
                    "city": "Bogota",
                    "state": "DC",
                    "country": "CO",
                    "postal_code": "110111"
                }
            }
        }
    }
}'

La respuesta contiene la redirect_url, que debe utilizarse para redirigir al cliente al portal de PSE.

{
  "payment_id": "47b9163c-64f3-41d1-8bd2-69512b9c1419",
  "status": "PENDING",
  "payment_method": "WALLET",
  "redirect_url": "https://gateway.pse.com.co/redirect/token-xyz",
  "reason_message": "Waiting for bank authorization."
}

2. Experiencia del Usuario

  1. El usuario es redirigido a la página de PSE.
pse redirect
  1. El usuario introduce su email.
  2. El usuario es redirigido a su banco para completar el depósito. Se recibe una notificación de pago.

3. Verificar el estado del pago

Cuando el cliente completa el pago, se envía una notificación de webhook a su callback_url configurada con el estado actualizado del pago (APPROVED o DECLINED).

Confíe siempre en el webhook para conocer el estado final, ya que el cliente podría cerrar el navegador antes de volver a su sitio web.

Reglas de Negocio

  • payment_method debe ser WALLET.
  • brand debe ser PSE.
  • Monedas soportadas: COP.
  • El pago es una operación asíncrona.
  • Reembolsos: No soportados para este método de pago.
  • Selección de Banco: El bank_code es obligatorio y debe obtenerse del endpoint banklookup.

Más información