Crear un Pago en un Solo Paso con Tarjeta
Esta guía le orienta en el procesamiento de una transacción completa de pago en un solo paso utilizando la Global API de Getnet. El flujo implica la captura directa del pago sin una autorización previa.
Requisitos
Antes de seguir los pasos, necesita:
- Crear su cuenta poniéndose en contacto con el equipo de Soporte de Integración para obtener sus credenciales de la API
client_idyclient_secret. - Generar su token con sus credenciales utilizando el endpoint de Authentication.
Getnet proporciona una Postman Collection para ayudarle a replicar estos casos de uso localmente. También puede probar la API en el entorno sandbox utilizando la API Reference disponible en la documentación.
Especificidades de los Casos de Uso
Al integrar cualquier solución de Getnet, se aplican requisitos específicos del mercado. Asegúrese de revisar los recursos a continuación antes de pasar a producción:
También puede utilizar tarjetas de prueba para simular escenarios específicos. Puede encontrar más información sobre los requisitos específicos para cada país en la sección de Developer Resources de la documentación de Getnet.
Proceso de Pago en un Solo Paso
Esta sección le orienta en el proceso de creación de una transacción de pago en un solo paso con la Global API de Getnet. Aprenderá cómo capturar el pago directamente en un paso y, opcionalmente, verificar el estado de la transacción.
Tokenizar los Datos de la Tarjeta (Opcional)
En lugar de enviar el número de la tarjeta en formato original (raw) en su petición de pago, puede utilizar la tokenización para mejorar la seguridad y reducir el alcance del cumplimiento del PCI DSS. Para utilizar una tarjeta tokenizada:
- Tokenice la tarjeta llamando al endpoint de Card Tokenization con el
card_numbery elcustomer_id. - En su petición de pago, reemplace el campo
card.numberporcard.number_tokenutilizando el valor del token recibido del endpoint de tokenización.
Al utilizar number_token, debe excluir la propiedad card.number de la petición. Para obtener todos los detalles sobre la tokenización, consulte la documentación de Tokenización y Vault.
Paso 1: Capturar el Pago
Un pago en un solo paso implica la captura de un pago utilizando el endpoint de Create - Authorize. Este paso valida los detalles de pago del cliente y transfiere directamente los fondos.
Requisitos específicos del país: Algunos mercados pueden requerir campos obligatorios adicionales. En Uruguay debe incluir un array
rates, proporcionar unregional_regulation_codey establecerdata.payment.transaction_typeenFULL. Elregional_regulation_codees un array donde cada entrada tiene uncodey uninvoice. Elinvoiceacepta hasta 9 caracteres alfanuméricos. Recomendamos usar solo números. Revise la referencia de Taxes and Regulations para obtener más información.
Para el proceso de un solo paso, debe establecer el atributo data.payment.payment_method en su petición en CREDIT o DEBIT. Esto garantiza que los fondos se capturen inmediatamente. La siguiente tabla enumera los campos mínimos que necesita enviar:
| Atributo | Descripción | Requerido |
|---|---|---|
idempotency_key | Identificador único para evitar cargos duplicados. | Sí |
order_id | ID de referencia del comercio utilizado para la conciliación. | Sí |
request_id | Identificador de rastreo para auditorías de idempotencia y seguimiento de soporte. | Recomendado |
data.amount | Importe de la transacción en céntimos. | Sí |
data.currency | Código de la divisa ISO utilizado en la transacción. | Sí |
data.customer | Detalles del cliente (nombre, correo electrónico, teléfono, documento, dirección de facturación completa). Obligatorio en producción para evitar bloqueos del antifraude. | Sí (Prod) |
data.payment.payment_method | Debe ser CREDIT o DEBIT para un flujo de un solo paso. | Sí |
data.payment.transaction_type | Define cómo se procesa la transacción (FULL, INSTALL_NO_INTEREST, INSTALL_WITH_INTEREST). | Sí |
data.payment.number_installments | Número de plazos (utilice 1 para un solo pago). | Sí |
data.payment.card | Conjunto de datos de la tarjeta (number, brand, expiration_month, expiration_year, security_code, cardholder_name). | Sí |
data.additional_data.device | Información del fingerprint del dispositivo (ip_address, device_id, finger_print) para análisis de antifraude. | Sí (Prod) |
Los objetos necesarios para la validación del antifraude deben incluir los siguientes campos:
| Objeto / Campo | Descripción |
|---|---|
customer.first_name | Nombre del cliente |
customer.last_name | Apellido del cliente |
customer.email | Dirección de correo electrónico del cliente |
customer.phone_number | Número de teléfono (formato internacional) |
customer.document_type | Tipo de documento (ej., CPF, DNI, etc.) |
customer.document_number | Número de documento (sin puntuación) |
customer.billing_address.street | Nombre de la calle |
customer.billing_address.number | Número de la dirección |
customer.billing_address.district | Distrito o barrio |
customer.billing_address.city | Ciudad |
customer.billing_address.state | Estado o provincia |
customer.billing_address.country | Código del país (ISO) |
customer.billing_address.postal_code | Código postal |
additional_data.device.ip_address | Dirección IP del cliente |
additional_data.device.device_id | ID de la sesión del fingerprint del dispositivo (UUIDv4) |
additional_data.device.finger_print | Hash del fingerprint generado por el script de antifraude |
Los datos de antifraude son obligatorios para entornos de producción. Las transacciones que carezcan del fingerprint del dispositivo o de la información del cliente serán bloqueadas automáticamente por los equipos de antifraude para prevenir el fraude. Consulte la documentación de Antifraude para obtener detalles completos sobre la implementación.
Al final de una autorización exitosa, recibirá un payment_id, que se utiliza para identificar esta transacción.
El siguiente bloque de código muestra una petición de un pago en un solo paso:
curl --request POST \
--url https://api-sbx.globalgetnet.com/dpm/payments-gwproxy/v2/payments \
--header 'authorization: Bearer ' \
--header 'content-type: application/json' \
--header 'x-seller-id: 54f88e68-7764-4e87-8830-756b1e2c02f8' \
--header 'x-transaction-channel-entry: XX' \
--data'{
"idempotency_key": "63c7f8ee-51a6-470d-bb76-ef762b62bfb9",
"request_id": "daac03dc-73db-453f-9bea-b1391669d5d3",
"order_id": "ORDER-10187383",
"data": {
"amount": 118708,
"currency": "BRL",
"customer_id": "test",
"customer": {
"first_name": "John",
"last_name": "Doe",
"email": "john.doe@example.com",
"document_type": "CPF",
"document_number": "12345678900",
"phone_number": "+5511999999999",
"billing_address": {
"street": "Av. Paulista",
"number": "1000",
"complement": "Apto 101",
"district": "Bela Vista",
"city": "São Paulo",
"state": "SP",
"country": "BR",
"postal_code": "01310-100"
}
},
"payment": {
"payment_method": "CREDIT",
"save_card_data": false,
"transaction_type": "FULL",
"number_installments": 1,
"soft_descriptor": "LOJA*TESTE*COMPRA-123",
"dynamic_mcc": 1799,
"card": {
"number": "5155901222260000",
"expiration_month": "09",
"expiration_year": "30",
"cardholder_name": "Card Holder",
"security_code": "517"
}
},
"additional_data": {
"device": {
"ip_address": "192.168.1.1",
"device_id": "63c7f8ee-51a6-470d-bb76-ef762b62bfb9",
"finger_print": "1a2b3c4d5e6f7g8h9i0j"
}
}
}
}'Ejemplo de respuesta con status como APPROVED:
{
"idempotency_key": "63c7f8ee-51a6-470d-bb76-ef762b62bfb9",
"seller_id": "e0ed6f00-fdc5-46d6-9557-6a2cac641b09",
"payment_id": "053de7f9-3725-437b-bdfc-bbf3ed0acb75",
"order_id": "ORDER-10187383",
"amount": 118708,
"currency": "BRL",
"status": "APPROVED",
"payment_method": "CREDIT",
"received_at": "2025-10-31T13:40:47.382Z",
"transaction_id": "MCC50205G1020",
"original_transaction_id": "MCC50205G1020",
"authorized_at": "2025-10-31T13:40:47.382Z",
"reason_code": "00",
"reason_message": "captured",
"acquirer": "GETNET",
"soft_descriptor": "LOJA*TESTE*COMPRA-123",
"brand": "MASTERCARD",
"authorization_code": "204050",
"acquirer_transaction_id": "405030304060404030501060"
}Paso 2: Comprobar el Estado del Pago (Opcional)
La respuesta de Create - Authorize mostrará el estado como APPROVED.
Debido a que algunos pagos se procesan de forma asíncrona, el estado puede cambiar con el tiempo. Para obtener el estado más reciente de una transacción, utilice el endpoint de Get Transaction.
Para obtener actualizaciones en tiempo real sin necesidad de hacer polling, se recomienda utilizar Webhooks para recibir notificaciones sobre cada cambio de estado.
Próximos Pasos
Ahora que ha creado con éxito un pago de un solo paso, puede explorar más funciones de la Global API de Getnet:
- Aprenda cómo crear un Pago de Dos Pasos.
- Lea acerca de los Pagos con 3DS.