Skip to main content
Esta página reúne las principales recomendaciones técnicas y operativas para integrar correctamente el servicio de autorización mediante el endpoint POST /authorize. Aplica para los canales:
  • Ecommerce
  • POS

Endpoint

POST /authorize

Alcance

El servicio de autorización permite procesar transacciones de pago enviadas por un comercio, terminal, PinPad, checkout o integración server-to-server. La autorización puede originarse desde distintos canales según el valor enviado en frame_type.
CanalValor frame_typeDescripción
EcommerceecommerceTransacción no presencial. Aplica para checkout web, mobile checkout, link de pago o integración server-to-server.
POSposTransacción presencial. Aplica para terminal POS, PinPad, Android POS o captura física de tarjeta.

Flujo general de autorización


Pasos del flujo

PasoDescripción
1El comercio genera una orden de compra o una operación de pago.
2El comercio captura u obtiene los datos de pago según el canal.
3El comercio construye la trama de autorización.
4El comercio invoca el endpoint POST /authorize.
5La plataforma valida la estructura, el comercio, la moneda, el monto y los datos enviados.
6La plataforma procesa la transacción con la marca correspondiente.
7La plataforma devuelve la respuesta de autorización.
8El comercio almacena los identificadores de trazabilidad.

Canales soportados

CanalUso recomendado
EcommercePagos en checkout web, mobile checkout, link de pago o integración directa desde backend.
POSPagos presenciales con lectura de tarjeta física, chip, contactless, banda magnética o entrada manual.

Marcas soportadas

ValorMarca
visaVisa
mscdMastercard

Monedas soportadas

El campo de moneda debe enviarse en formato ISO 4217 numérico.
MonedaCódigo ISO 4217 numérico
PEN604
USD840

Formato de montos

Todos los montos deben enviarse sin punto decimal, sin separadores de miles y como string. El monto se calcula aplicando el exponente de la moneda.
Monto enviado = monto real × 10^exponente de la moneda
Ejemplo para moneda PEN:
Monto realCódigo monedaValor enviado
10.006041000
389.8060438980
1,250.50604125050
50,000.006045000000

Ejemplos incorrectos de monto

Valor enviadoMotivo
389.80No debe enviarse con punto decimal.
1,250.50No debe enviarse con separador de miles ni punto decimal.
S/ 389.80No debe enviarse con símbolo de moneda.
38980.00No debe enviarse con decimales.

Ejemplos correctos de monto

Monto realValor correcto
1.00100
10.501050
389.8038980
1,250.50125050

Identificador de operación

El campo internal_operation_number identifica la operación del comercio. Debe ser único por comercio y debe mantenerse para consultas, trazabilidad, soporte y conciliación.
CampoDescripción
internal_operation_numberReferencia o número de orden generado por el comercio.
transaction.meta.internal_operation_numberReferencia o número de operación enviado en tramas POS.

Reglas para internal_operation_number

ReglaDescripción
UnicidadDebe ser único por comercio.
LongitudDebe cumplir la longitud definida en la guía del canal correspondiente.
TrazabilidadDebe poder relacionarse con la orden o venta del comercio.
ReutilizaciónNo debe reutilizarse para una nueva compra.

Idempotencia y duplicidad

El campo internal_operation_number permite controlar la duplicidad de operaciones. No se recomienda reutilizar el mismo identificador de operación para más de una autorización, ya que puede generar rechazos por duplicidad o inconsistencias en la conciliación.
EscenarioRecomendación
Nueva compraGenerar un nuevo internal_operation_number.
Reintento por timeoutConsultar primero el estado de la operación antes de enviar una nueva autorización.
Error de validaciónCorregir la trama y reenviar solo si la operación no fue procesada.
Operación aprobadaNo reenviar la misma operación.
Operación rechazadaPermitir nuevo intento según la regla del comercio.

Datos sensibles

Los datos sensibles de tarjeta deben enviarse cifrados antes de invocar el servicio de autorización.
CampoCanalCifrado requerido
card.panEcommerce
card.expiry_dateEcommerce
card.security_codeEcommerce
payment_method.card[].panPOS
payment_method.card[].expiry_datePOS
payment_method.card[].card_sequence_numberPOSSí, cuando aplique

Información que no debe enviarse en campos libres

No se debe enviar información sensible dentro de campos libres como metadata o additional_fields.
Tipo de informaciónPuede enviarse en metadata
Número de tarjetaNo
CVV o código de seguridadNo
Fecha de expiraciónNo
PIN o PIN blockNo
Documento de identidad sensibleNo
Número de pedido
Código de sucursal
Canal de venta
Identificador de carrito
Código de vendedor

Uso recomendado de metadata

El campo metadata permite enviar información adicional del comercio para fines de trazabilidad, reportería o conciliación.
{
  "metadata": {
    "sucursal": "Sucursal 1",
    "canal": "web",
    "numero_pedido": "PED-123456",
    "codigo_vendedor": "VEN-001"
  }
}
Campo sugeridoUso
sucursalIdentificar la tienda, agencia o punto de venta.
canalIdentificar el canal de origen de la operación.
numero_pedidoRelacionar la transacción con el pedido del comercio.
codigo_vendedorIdentificar al vendedor o asesor asociado.
identificador_carritoRelacionar la operación con un carrito de compra.

Uso recomendado de additional_fields

En POS, el objeto transaction.meta.additional_fields permite enviar información complementaria de la operación.
{
  "transaction": {
    "currency": "604",
    "amount": "5000000",
    "meta": {
      "internal_operation_number": "123554",
      "additional_fields": {
        "sucursal": "Sucursal 1",
        "terminal_logical_id": "TERM-001"
      }
    }
  }
}

Timeout y reintentos

Si el comercio no recibe respuesta por timeout o error de comunicación, no debe asumir automáticamente que la operación fue rechazada. En estos casos, se recomienda consultar el estado de la operación antes de enviar una nueva autorización.
CasoAcción recomendada
Timeout sin respuestaConsultar estado antes de reintentar.
Error HTTPValidar si la operación fue registrada.
Respuesta aprobadaNo reenviar la misma operación.
Respuesta rechazadaPermitir nuevo intento según regla del comercio.
Sin registro de operaciónGenerar un nuevo intento según la política del comercio.

Flujo recomendado ante timeout


Campos recomendados para almacenamiento

El comercio debe almacenar los identificadores de respuesta necesarios para consultas, reversos, soporte, conciliación y trazabilidad.
CampoUso recomendado
tk_transaction_identifierIdentificador único interno de la transacción.
authorization_identification_responseCódigo de autorización de la operación.
retrieval_reference_codeTrazabilidad, soporte y conciliación.
system_trace_auditIdentificador STAN para seguimiento operativo.
brand_transaction_identifierIdentificador asignado por la marca.
response_codeValidación del resultado de la operación.
date_settlementFecha estimada de liquidación.
internal_operation_numberRelación con la orden del comercio.

Uso operativo de los identificadores

IdentificadorUso
tk_transaction_identifierConsultas internas dentro de la plataforma.
brand_transaction_identifierValidaciones con la marca.
authorization_identification_responseConfirmación de autorización aprobada.
retrieval_reference_codeConciliación, soporte y seguimiento operativo.
system_trace_auditAuditoría y rastreo transaccional.
date_settlementEstimación de liquidación.

Interpretación general del response

Una autorización aprobada debe validar tanto la respuesta de la marca como el estado interno de la plataforma.
CampoValor esperadoInterpretación
successtrueLa petición fue procesada por el servicio.
processor_response.message.code00La marca respondió con aprobación.
processor_response.response_code00Código ISO de aprobación.
meta.status.codesuccess_operationEstado interno exitoso.

Estados internos referenciales

Los siguientes estados son referenciales y pueden variar según la configuración del servicio.
EstadoDescripción
success_operationLa operación fue procesada correctamente.
invalid_requestLa petición contiene campos inválidos o incompletos.
merchant_not_foundEl comercio no fue encontrado.
merchant_disabledEl comercio no se encuentra habilitado para operar.
duplicated_operationLa referencia de operación ya fue utilizada.
processor_errorOcurrió un error al procesar la operación con la marca o procesador.
timeoutNo se recibió respuesta dentro del tiempo esperado.

Errores comunes

EscenarioCausa probableAcción recomendada
Monto incorrectoEl monto fue enviado con decimales o separadoresEnviar el monto sin punto decimal. Ejemplo: 389.80 debe enviarse como 38980.
Comercio no habilitadoEl merchant_identifier no existe o no está activoValidar el comercio en el proceso de onboarding.
Marca inválidaSe envió un valor distinto a visa o mscdValidar el valor del campo brand.
Operación duplicadaEl internal_operation_number ya fue utilizadoGenerar una nueva referencia única por comercio o consultar la operación original.
Datos de tarjeta inválidosLos campos sensibles no fueron cifrados correctamenteVerificar el mecanismo de cifrado antes de enviar la autorización.
Datos EMV incompletosLa operación POS chip/contactless no envió icc_related_dataEnviar los campos EMV obligatorios cuando aplique.
Moneda inválidaSe envió una moneda no soportada o con formato incorrectoEnviar el código ISO 4217 numérico.
Terminal no reconocidoEl terminal_id no existe o no está habilitadoValidar el registro del terminal.

Validaciones previas recomendadas

Antes de enviar una autorización, se recomienda validar los siguientes puntos.
ValidaciónEcommercePOS
Comercio activo
Marca válida
Monto sin decimales
Moneda en ISO 4217 numérico
Identificador de operación único
Datos sensibles cifrados
Terminal habilitadoNo aplica
Modo de captura correctoNo aplica
Datos EMV completosNo aplicaSí, si es chip/contactless
Datos 3DS válidosSí, si aplicaNo aplica

Recomendaciones Ecommerce

RecomendaciónDescripción
Enviar email del tarjetahabienteUsar card_holder.email_address cuando esté disponible para trazabilidad y soporte.
Enviar datos 3DSEnviar authentication.3d_secure cuando la operación haya pasado por autenticación.
Usar metadataRegistrar datos como sucursal, canal, número de pedido o identificador de carrito.
Mantener referencia únicaAlinear internal_operation_number con la orden del comercio.
No enviar datos sensiblesNo incluir PAN, CVV o datos cifrados dentro de metadata.

Recomendaciones POS

RecomendaciónDescripción
Validar modo de capturapan_entry_mode debe reflejar el método real de captura de la tarjeta.
Enviar datos EMVPara operaciones chip o contactless EMV, debe enviarse icc_related_data.
Validar terminalterminal_id debe corresponder a un terminal registrado y habilitado.
Enviar PIN cuando apliqueSi la operación requiere PIN, debe enviarse pin_block.
No mezclar contextosNo enviar datos EMV cuando la captura sea manual o banda magnética, salvo que aplique según configuración del terminal.

Reglas para POS según tipo de captura

Tipo de capturapan_entry_modeRequiere icc_related_dataRequiere pin_block
Manual01NoNo, salvo regla del comercio o emisor
Chip05Sí, si aplica
Contactless EMV07Según reglas de monto, comercio o emisor
Banda magnética90NoSí, si aplica

Buenas prácticas de integración

Buena prácticaDescripción
Validar campos obligatoriosEl comercio debe validar la trama antes de enviarla.
No almacenar datos sensiblesNo almacenar PAN, CVV, fecha de expiración ni PIN.
Registrar request y responseRegistrar información útil para soporte, excluyendo datos sensibles.
Guardar identificadoresAlmacenar los identificadores de trazabilidad devueltos en la respuesta.
Manejar timeoutImplementar consulta posterior antes de reintentar una autorización.
Evitar duplicidadNo duplicar autorizaciones ante errores de comunicación.
Usar metadata correctamenteEnviar solo información operativa o comercial no sensible.
Separar flujosDiferenciar Ecommerce y POS según el valor de frame_type.
Validar montosEnviar montos sin decimales y con moneda correcta.
Validar terminalesPara POS, confirmar que el terminal esté registrado y habilitado.

Checklist de integración Ecommerce

ÍtemValidación
frame_typeDebe ser ecommerce.
merchant_identifierDebe corresponder a un comercio activo.
brandDebe ser visa o mscd.
internal_operation_numberDebe ser único por comercio.
amountDebe enviarse sin decimales.
currencyDebe enviarse en formato ISO 4217 numérico.
card.panDebe enviarse cifrado.
card.expiry_dateDebe enviarse cifrado.
card.security_codeDebe enviarse cifrado cuando aplique.
installmentsDebe enviarse solo si aplica pago en cuotas.
authentication.3d_secureDebe enviarse solo si la transacción cuenta con datos 3DS.
metadataNo debe contener datos sensibles.

Checklist de integración POS

ÍtemValidación
frame_typeDebe ser pos.
merchant_identifierDebe corresponder a un comercio activo.
brandDebe ser visa o mscd.
payment_method.card[].panDebe enviarse cifrado.
payment_method.card[].expiry_dateDebe enviarse cifrado.
payment_method.terminal.terminal_idDebe corresponder a un terminal registrado.
context.pos.pan_entry_modeDebe reflejar el método real de captura.
context.pos.pin_entry_capabilityDebe reflejar la capacidad real del terminal.
transaction.amountDebe enviarse sin decimales.
transaction.currencyDebe enviarse en formato ISO 4217 numérico.
transaction.meta.internal_operation_numberDebe ser único por comercio.
icc_related_dataDebe enviarse si la operación es chip o contactless EMV.

Recomendaciones para conciliación

Para facilitar la conciliación, el comercio debe conservar la relación entre su orden interna y los identificadores devueltos por la plataforma.
Dato del comercioDato de la plataforma / marca
Número de pedidointernal_operation_number
ID interno de transaccióntk_transaction_identifier
Código de autorizaciónauthorization_identification_response
RRNretrieval_reference_code
STANsystem_trace_audit
ID de marcabrand_transaction_identifier
Fecha estimada de liquidacióndate_settlement

Recomendaciones para soporte

Cuando se reporte una incidencia, se recomienda incluir los siguientes datos.
DatoDescripción
merchant_identifierIdentificador del comercio.
internal_operation_numberNúmero de orden u operación del comercio.
tk_transaction_identifierIdentificador interno de la transacción.
retrieval_reference_codeRRN de la operación.
system_trace_auditSTAN de la operación.
authorization_identification_responseCódigo de autorización, si existe.
brandMarca de la tarjeta.
amountMonto enviado.
currencyMoneda enviada.
Fecha y horaMomento aproximado de la transacción.

Relación con las guías de autorización

Ecommerce

Ver trama de autorización Ecommerce.

POS

Ver trama de autorización POS.

Response

Ver estructura de respuesta de autorización.