Skip to main content
El servicio de autorización Ecommerce permite procesar pagos de comercio electrónico mediante el endpoint POST /authorize.
Image
Esta trama debe utilizarse cuando la transacción proviene de un canal no presencial, como checkout web, mobile checkout, link de pago o integración server-to-server.

Endpoint

POST /authorize

Request

{
  "frame_type": "ecommerce",
  "merchant_identifier": "b656d278-f047-4e23-9fa5-96c5818b5c8d",
  "brand": "visa",
  "internal_operation_number": "ORDER-0000000079",
  "amount": "38980",
  "currency": "604",
  "card": {
    "pan": "Cifrado",
    "expiry_date": "cifrado",
    "security_code": "cifrado"
  },
  "card_holder": {
    "first_name": "Fabricio",
    "last_name": "Iman",
    "email_address": "fabricio.iman@pay-me.com",
    "line_1": "Rupertuups"
  },
  "installments": {
    "number_of_installments": "04",
    "id_plan": "145",
    "grace_period": "02"
  },
  "authentication": {
    "3d_secure": {
      "payment_implementation_mode_indicator": "08",
      "cavv": "kANvskBe2eEnngBkKwx45YQBV7E=",
      "version": "2.1.0"
    }
  },
  "metadata": {
    "sucursal": "Sucursal 1"
  }
}

Descripción de campos

CampoTipoObligatorioLongitudDescripción
frame_typestringenumCanal de la transacción. Para Ecommerce debe enviarse ecommerce.
merchant_identifierstring UUID36Identificador único del comercio. Se entrega al registrar el comercio durante el onboarding.
brandstringenumMarca de la tarjeta. Valores permitidos: visa, mscd.
internal_operation_numberstring1-40Referencia o número de orden del comercio. Debe ser único por comercio.
amountstring6-17Monto de la operación sin decimales. Ejemplo: 389.80 PEN = "38980".
currencystring3Código ISO 4217 numérico. Ejemplo: 604 = PEN, 840 = USD.
card.panstring13-19Número de tarjeta cifrado.
card.expiry_datestring4Fecha de expiración cifrada.
card.security_codestringNo3-4Código de seguridad cifrado.
card_holder.first_namestringNo1-26Nombre del tarjetahabiente. Puede ser utilizado para validaciones AVS.
card_holder.last_namestringNo1-26Apellido del tarjetahabiente. Puede ser utilizado para validaciones AVS.
card_holder.email_addressstringNoemailCorreo electrónico del tarjetahabiente.
card_holder.line_1stringNo1-40Dirección del tarjetahabiente. Puede ser utilizada para validaciones AVS.
installments.number_of_installmentsstringNo1-4Número de cuotas. Debe enviarse solo con dígitos. Ejemplo: 04.
installments.id_planstringNo1+Identificador del plan de cuotas configurado por el adquirente.
installments.grace_periodstringNo2Periodo de gracia expresado en meses. Ejemplo: 02.
authentication.3d_secure.payment_implementation_mode_indicatorstringNoenumIndicador de implementación 3DS.
authentication.3d_secure.cavvstringNo1-40Valor CAVV obtenido como resultado de la autenticación 3DS.
authentication.3d_secure.versionstringNo5-8Versión del protocolo 3DS. Ejemplo: 2.1.0.
metadataobjectNoCampos libres enviados por el comercio en formato key-value. Se almacenan con la transacción.

Valores permitidos

frame_type

ValorDescripción
ecommerceTransacción de comercio electrónico.

brand

ValorDescripción
visaTransacción con tarjeta Visa.
mscdTransacción con tarjeta Mastercard.

authentication.3d_secure.payment_implementation_mode_indicator

ValorDescripción
05Transacción 3DS con CAVV.
06Attempt Mastercard.
07Attempt Visa.
08Transacción con datos 3DS.

Consideraciones sobre montos

El campo amount debe enviarse sin punto decimal. El monto se calcula aplicando el exponente de la moneda:
Monto enviado = monto real × 10^exponente de la moneda
Ejemplo para moneda PEN:
Monto realCurrencyValor enviado
10.006041000
389.8060438980
1,250.50604125050

Consideraciones sobre moneda

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

Consideraciones sobre tarjeta

Los datos sensibles de tarjeta deben enviarse cifrados.
CampoCifrado requerido
card.pan
card.expiry_date
card.security_code

Consideraciones sobre cuotas

El objeto installments debe enviarse únicamente cuando la operación aplique a un pago en cuotas.
{
  "installments": {
    "number_of_installments": "04",
    "id_plan": "145",
    "grace_period": "02"
  }
}

Reglas

ReglaDescripción
Número de cuotasnumber_of_installments debe contener solo dígitos.
Plan de cuotasid_plan debe corresponder a un plan habilitado para el comercio.
Periodo de graciagrace_period debe enviarse en formato de dos dígitos.
Operación sin cuotasSi la operación no aplica a cuotas, el objeto installments puede omitirse.

Consideraciones sobre 3DS

El objeto authentication.3d_secure debe enviarse cuando la transacción cuente con información de autenticación 3DS.
{
  "authentication": {
    "3d_secure": {
      "payment_implementation_mode_indicator": "08",
      "cavv": "kANvskBe2eEnngBkKwx45YQBV7E=",
      "version": "2.1.0"
    }
  }
}

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"
  }
}

Validaciones principales

Antes de enviar una autorización Ecommerce, validar lo siguiente:
ValidaciónRegla
Comerciomerchant_identifier debe estar activo y habilitado para operar.
Canalframe_type debe ser ecommerce.
Marcabrand debe ser visa o mscd.
Ordeninternal_operation_number debe ser único por comercio.
Montoamount debe enviarse sin decimales.
Monedacurrency debe enviarse en formato ISO 4217 numérico.
TarjetaLos campos sensibles deben enviarse cifrados.
CuotasSi se envía installments, el plan debe estar habilitado para el comercio.
3DSSi se envía información 3DS, debe incluir datos válidos de autenticación.
MetadataLos campos enviados en metadata deben respetar formato key-value.

Ejemplo mínimo

{
  "frame_type": "ecommerce",
  "merchant_identifier": "b656d278-f047-4e23-9fa5-96c5818b5c8d",
  "brand": "visa",
  "internal_operation_number": "ORDER-0000000080",
  "amount": "1000",
  "currency": "604",
  "card": {
    "pan": "Cifrado",
    "expiry_date": "cifrado",
    "security_code": "cifrado"
  }
}

Ejemplo con cuotas

{
  "frame_type": "ecommerce",
  "merchant_identifier": "b656d278-f047-4e23-9fa5-96c5818b5c8d",
  "brand": "visa",
  "internal_operation_number": "ORDER-0000000081",
  "amount": "38980",
  "currency": "604",
  "card": {
    "pan": "Cifrado",
    "expiry_date": "cifrado",
    "security_code": "cifrado"
  },
  "installments": {
    "number_of_installments": "04",
    "id_plan": "145",
    "grace_period": "02"
  }
}

Ejemplo con 3DS

{
  "frame_type": "ecommerce",
  "merchant_identifier": "b656d278-f047-4e23-9fa5-96c5818b5c8d",
  "brand": "visa",
  "internal_operation_number": "ORDER-0000000082",
  "amount": "38980",
  "currency": "604",
  "card": {
    "pan": "Cifrado",
    "expiry_date": "cifrado",
    "security_code": "cifrado"
  },
  "authentication": {
    "3d_secure": {
      "payment_implementation_mode_indicator": "08",
      "cavv": "kANvskBe2eEnngBkKwx45YQBV7E=",
      "version": "2.1.0"
    }
  }
}

Response

La respuesta de una autorización Ecommerce se encuentra documentada en la página de respuesta general para autorizaciones.

Response de autorización

Ver estructura de respuesta para Ecommerce y POS.