Skip to main content
Usa este flujo para procesar pagos ecommerce con tarjeta desde el API de autorización de PayIn.
POST /charges
endpoint
Este flujo utiliza el mismo endpoint base de autorización. Revisa los ambientes y la configuración general en el Overview.

Características del flujo

Tipo de flujo

Síncrono o con autenticación adicional, según la configuración del comercio y del emisor.

Método de pago

Permite procesar pagos ecommerce con tarjeta.

Validación final

La confirmación del resultado debe realizarse desde backend.

PCI

Si el flujo envía o recibe datos sensibles de tarjeta, debes contar con cumplimiento PCI.

Checkout Web (Flex)

Si utilizas Checkout Web (Flex), en esta página también se documenta la estructura de respuesta que recibirás en responseCallback.

Consideraciones

Este flujo puede operar en tres escenarios: autorización sin autenticación, autorización con autenticación 3DS Redirect y autorización con datos de autenticación 3DS obtenidos previamente.
Si trabajas con autenticación 3DS en un único flujo, revisa también las Consideraciones para métodos con Redirect.
No expongas datos sensibles de pago en frontend, logs o herramientas sin enmascaramiento. Si tu integración procesa directamente PAN, CVV o datos equivalentes, valida previamente la habilitación PCI de tu comercio.

Request

Antes de consumir este endpoint, solicita tu Access Token en Autenticación.

Headers

CampoDescripciónValorTipoObligatorio
AuthorizationToken Bearer obtenido desde autenticaciónBearer {access_token}StringSI
Content-TypeFormato del requestapplication/jsonStringSI
ALG-API-VERSIONVersión del API1709847567StringSI
Authorization: Bearer {access_token}
Content-Type: application/json
ALG-API-VERSION: 1709847567

Body

Objeto raíz del request

CampoDescripciónEjemploTipoObligatorio
actionAcción a ejecutarauthorizeStringSI
channelCanal de la operaciónecommerceStringSI
merchant_codeCódigo del comercioyour_merchant_codeStringSI
merchant_operation_numberIdentificador único de la operación en el comercio. Debe ser diferente en cada transacción.2391645StringSI
payment_methodObjeto con la información del método de pagoObjectObjectSI
payment_detailsObjeto con el detalle del pago y datos del clienteObjectObjectSI

Objeto payment_method

CampoDescripciónEjemploTipoObligatorio
method_nameNombre del método de pagoCARDStringSI
method_detailsObjeto con la información específica de la tarjetaObjectObjectSI

Objeto payment_method.method_details

CampoDescripciónEjemploTipoObligatorio
panNúmero de la tarjeta4051420006041115StringSI
expiry_dateFecha de expiración en formato MMYY1231StringSI
security_codeCódigo de seguridad de la tarjeta (CVV)123StringSI
card_holderObjeto con información del titular de la tarjetaObjectObjectSI
redirect_urlURL de retorno al finalizar la autenticaciónhttps://pay-me.comStringNO
callback_urlURL para notificación host to hosthttps://pay-me.com/callbackStringNO
authentication_resultResultado de autenticación 3DS obtenida previamenteObjectObjectNO
installmentsObjeto con información de plan y cuotasObjectObjectNO

Objeto payment_method.method_details.card_holder

CampoDescripciónEjemploTipoObligatorio
first_nameNombres del titularPedroStringSI
last_nameApellidos del titularMirandaStringSI
emailCorreo electrónico del titularpedro@pay-me.comStringSI
phoneObjeto con el teléfono del titularObjectObjectSI

Objeto payment_method.method_details.card_holder.phone

CampoDescripciónEjemploTipoObligatorio
prefixCódigo de país del teléfono51StringSI
numberNúmero del teléfono999835685StringSI

Objeto payment_method.method_details.authentication_result.3ds_secure

CampoDescripciónEjemploTipoObligatorio
versionVersión del protocolo 3DS2.1.0StringNO
electronic_commerce_indicatorValor del ECI05StringNO
cardholder_authentication_verification_valueValor del CAVVAJkBB5NBeQAAAD3MYENQdAAAAAA=StringNO
ds_transaction_idDirectory Server Transaction IDABC123StringNO
three_ds_server_transaction_id3DS Server Transaction IDABC123StringNO
trans_statusResultado de autenticaciónYStringNO

Objeto payment_method.method_details.installments

CampoDescripciónEjemploTipoObligatorio
planPlan de cuotas a usar en la autorización01StringNO
numberCantidad de cuotas3StringNO
Valores para installments.plan:
  • 01: Normal
  • 02: Diferido (no disponible)

Ejemplo 1: sin autenticación

{
  "action": "authorize",
  "channel": "ecommerce",
  "merchant_code": "your_merchant_code",
  "merchant_operation_number": "2391645",
  "payment_method": {
    "method_name": "CARD",
    "method_details": {
      "pan": "4051420006041115",
      "expiry_date": "1231",
      "security_code": "123",
      "card_holder": {
        "first_name": "Pedro",
        "last_name": "Miranda",
        "email": "pedro@pay-me.com",
        "phone": {
          "prefix": "51",
          "number": "999835685"
        }
      },
      "installments": {
        "plan": "01",
        "number": "3"
      }
    }
  },
  "payment_details": {
    "amount": "15000",
    "currency": "604",
    "billing": {
      "first_name": "Pedro",
      "last_name": "Miranda",
      "email": "pedro@pay-me.com",
      "phone": {
        "country_code": "+51",
        "subscriber": "999835685"
      },
      "location": {
        "line_1": "Av. Casimiro Ulloa 333",
        "line_2": "Miraflores",
        "city": "Lima",
        "state": "Lima",
        "country": "Peru"
      }
    },
    "shipping": {
      "first_name": "Pedro",
      "last_name": "Miranda",
      "email": "pedro@pay-me.com",
      "phone": {
        "country_code": "+51",
        "subscriber": "999835685"
      },
      "location": {
        "line_1": "Av. Casimiro Ulloa 333",
        "line_2": "Miraflores",
        "city": "Lima",
        "state": "Lima",
        "country": "Peru"
      }
    },
    "customer": {
      "first_name": "Pedro",
      "last_name": "Miranda",
      "email": "pedro@pay-me.com",
      "phone": {
        "country_code": "+51",
        "subscriber": "999835685"
      },
      "location": {
        "line_1": "Av. Casimiro Ulloa 333",
        "line_2": "Miraflores",
        "city": "Lima",
        "state": "Lima",
        "country": "Peru"
      }
    },
    "product_details": []
  }
}

Ejemplo 2: con autenticación Redirect

{
  "action": "authorize",
  "channel": "ecommerce",
  "merchant_code": "your_merchant_code",
  "merchant_operation_number": "2391645",
  "payment_method": {
    "method_name": "CARD",
    "method_details": {
      "pan": "4051420006041115",
      "expiry_date": "1231",
      "security_code": "123",
      "card_holder": {
        "first_name": "Pedro",
        "last_name": "Miranda",
        "email": "pedro@pay-me.com",
        "phone": {
          "prefix": "51",
          "number": "999835685"
        }
      },
      "redirect_url": "https://pay-me.com",
      "callback_url": "https://pay-me.com/callback",
      "installments": {
        "plan": "01",
        "number": "3"
      }
    }
  },
  "payment_details": {
    "amount": "15000",
    "currency": "604",
    "billing": {
      "first_name": "Pedro",
      "last_name": "Miranda",
      "email": "pedro@pay-me.com",
      "phone": {
        "country_code": "+51",
        "subscriber": "999835685"
      },
      "location": {
        "line_1": "Av. Casimiro Ulloa 333",
        "line_2": "Miraflores",
        "city": "Lima",
        "state": "Lima",
        "country": "Peru"
      }
    },
    "shipping": {
      "first_name": "Pedro",
      "last_name": "Miranda",
      "email": "pedro@pay-me.com",
      "phone": {
        "country_code": "+51",
        "subscriber": "999835685"
      },
      "location": {
        "line_1": "Av. Casimiro Ulloa 333",
        "line_2": "Miraflores",
        "city": "Lima",
        "state": "Lima",
        "country": "Peru"
      }
    },
    "customer": {
      "first_name": "Pedro",
      "last_name": "Miranda",
      "email": "pedro@pay-me.com",
      "phone": {
        "country_code": "+51",
        "subscriber": "999835685"
      },
      "location": {
        "line_1": "Av. Casimiro Ulloa 333",
        "line_2": "Miraflores",
        "city": "Lima",
        "state": "Lima",
        "country": "Peru"
      }
    },
    "product_details": []
  }
}
Para recibir el resultado final en flujos con autenticación Redirect, revisa las Consideraciones para métodos con Redirect.

Ejemplo 3: con datos de autenticación 3DS previos

{
  "action": "authorize",
  "channel": "ecommerce",
  "merchant_code": "your_merchant_code",
  "merchant_operation_number": "2391645",
  "payment_method": {
    "method_name": "CARD",
    "method_details": {
      "pan": "4051420006041115",
      "expiry_date": "1231",
      "security_code": "123",
      "card_holder": {
        "first_name": "Pedro",
        "last_name": "Miranda",
        "email": "pedro@pay-me.com",
        "phone": {
          "prefix": "51",
          "number": "999835685"
        }
      },
      "authentication_result": {
        "3ds_secure": {
          "version": "2.1.0",
          "electronic_commerce_indicator": "05",
          "cardholder_authentication_verification_value": "AJkBB5NBeQAAAD3MYENQdAAAAAA=",
          "ds_transaction_id": "ABC123",
          "three_ds_server_transaction_id": "ABC123",
          "trans_status": "Y"
        }
      },
      "installments": {
        "plan": "01",
        "number": "3"
      }
    }
  },
  "payment_details": {
    "amount": "15000",
    "currency": "604",
    "billing": {
      "first_name": "Pedro",
      "last_name": "Miranda",
      "email": "pedro@pay-me.com",
      "phone": {
        "country_code": "+51",
        "subscriber": "999835685"
      },
      "location": {
        "line_1": "Av. Casimiro Ulloa 333",
        "line_2": "Miraflores",
        "city": "Lima",
        "state": "Lima",
        "country": "Peru"
      }
    },
    "shipping": {
      "first_name": "Pedro",
      "last_name": "Miranda",
      "email": "pedro@pay-me.com",
      "phone": {
        "country_code": "+51",
        "subscriber": "999835685"
      },
      "location": {
        "line_1": "Av. Casimiro Ulloa 333",
        "line_2": "Miraflores",
        "city": "Lima",
        "state": "Lima",
        "country": "Peru"
      }
    },
    "customer": {
      "first_name": "Pedro",
      "last_name": "Miranda",
      "email": "pedro@pay-me.com",
      "phone": {
        "country_code": "+51",
        "subscriber": "999835685"
      },
      "location": {
        "line_1": "Av. Casimiro Ulloa 333",
        "line_2": "Miraflores",
        "city": "Lima",
        "state": "Lima",
        "country": "Peru"
      }
    },
    "product_details": []
  }
}

Response

Objeto transaction

CampoDescripciónEjemploTipoObligatorio
transaction_idIdentificador único de la transacción5hk8rwa3h3cq9oyfs3a28v1msStringSI
channelCanal de la transacciónecommerceStringSI
stateEstado actual de la transacciónAUTORIZADOStringSI
state_reasonMotivo o descripción del estado actualApproval and completed successfullyStringSI
amountMonto de la transacción15000StringSI
currencyCódigo de moneda604StringSI
payment_methodObjeto con información del método de pagoObjectObjectSI
continue_urlURL para continuar el proceso de autenticaciónhttps://api.dev.alignet.io/payment/continue/card/...StringNO
expiration_dateFecha de expiración de la transacciónObjectObjectNO
processor_responseResultado devuelto por la procesadoraObjectObjectNO
authentication_resultResultado de autenticación aplicado a la transacciónObjectObjectNO
risk_evaluationResultado de evaluación antifraudeObjectObjectNO
additional_fieldsDatos adicionales enviados en el requestObjectObjectNO
lifecycleHistorial de estados de la transacciónArrayArraySI
continue_url y expiration_date se muestran cuando la transacción queda en estado PENDIENTE.

Objeto transaction.payment_method

CampoDescripciónEjemploTipoObligatorio
method_nameMétodo de pago utilizadoCARDStringSI
method_detailsObjeto con información detallada del métodoObjectObjectNO

Objeto transaction.payment_method.method_details

CampoDescripciónEjemploTipoObligatorio
masked_panTarjeta enmascarada411111********1111StringNO
brandMarca de la tarjetaVISAStringNO
binBIN de la tarjeta411111StringNO
last_panÚltimos dígitos de la tarjeta9268StringNO
card_typeTipo de tarjetaDEBITStringNO
card_countryPaís de la tarjetaPEStringNO
issuerBanco emisorBANCO DE CREDITO DEL PERU - BCPStringNO
installmentsInformación de plan y cuotasObjectObjectNO
redirect_urlURL de retorno enviada en el requesthttps://pay-me.comStringNO
callback_urlURL de callback enviada en el requesthttps://pay-me.com/callbackStringNO

Objeto transaction.payment_method.method_details.installments

CampoDescripciónEjemploTipoObligatorio
planPlan aplicado a la transacciónNORMALStringNO
installment_numberNúmero de cuotas2StringNO

Objeto transaction.expiration_date

CampoDescripciónEjemploTipoObligatorio
utc_timeFecha de expiración en UTC2024-03-12T22:49:36.018ZStringNO
unix_timeFecha de expiración en unix time1710282940IntegerNO

Objeto transaction.processor_response

CampoDescripciónEjemploTipoObligatorio
authorization_codeCódigo de autorización055552StringNO
brand_transaction_idID de la transacción ante la marca100BStringNO
result_messageMensaje del resultado de autorizaciónObjectObjectNO

Objeto transaction.processor_response.result_message

CampoDescripciónEjemploTipoObligatorio
codeCódigo del resultado00StringNO
descriptionDescripción del resultadoApproval and completed successfullyStringNO

Objeto transaction.authentication_result

CampoDescripciónEjemploTipoObligatorio
versionVersión del protocolo de autenticación2.1.0StringNO
eciElectronic Commerce Indicator05StringNO
ds_transaction_idDS Transaction IDABC123StringNO
3ds_transaction_id3DS Server Transaction IDABC123StringNO
trans_statusEstado del resultado de autenticaciónAStringNO

Objeto transaction.lifecycle

CampoDescripciónEjemploTipoObligatorio
stateEstado registrado en el historialAUTORIZADOStringSI
dateFecha del cambio de estadoObjectObjectSI

Objeto transaction.lifecycle[].date

CampoDescripciónEjemploTipoObligatorio
utc_timeFecha en UTC2024-03-12T22:49:36.018ZStringSI
unix_timeFecha en unix time1710282940IntegerSI

Ejemplo 1: sin autenticación

{
  "success": "true",
  "action": "authorize",
  "merchant_code": "your_merchant_code",
  "merchant_operation_number": "2391645",
  "transaction": {
    "transaction_id": "5hk8rwa3h3cq9oyfs3a28v1ms",
    "channel": "ecommerce",
    "state": "AUTORIZADO",
    "state_reason": "Approval and completed successfully",
    "amount": "15000",
    "currency": "604",
    "payment_method": {
      "method_name": "CARD",
      "method_details": {
        "masked_pan": "411111********1111",
        "brand": "VISA",
        "bin": "411111",
        "last_pan": "9268",
        "card_type": "DEBIT",
        "card_country": "PE",
        "issuer": "BANCO DE CREDITO DEL PERU - BCP",
        "installments": {
          "plan": "NORMAL",
          "installment_number": "2"
        }
      }
    },
    "processor_response": {
      "authorization_code": "055552",
      "brand_transaction_id": "100B",
      "result_message": {
        "code": "00",
        "description": "Approval and completed successfully"
      }
    },
    "additional_fields": null,
    "lifecycle": [
      {
        "state": "REGISTRADO",
        "date": {
          "utc_time": "2024-03-12T22:49:36.018Z",
          "unix_time": 1710282940
        }
      },
      {
        "state": "PENDIENTE",
        "date": {
          "utc_time": "2024-03-12T22:49:36.018Z",
          "unix_time": 1710282940
        }
      },
      {
        "state": "AUTORIZADO",
        "date": {
          "utc_time": "2024-03-12T22:49:36.018Z",
          "unix_time": 1710282940
        }
      }
    ]
  },
  "meta": {
    "status": {
      "code": "00",
      "message_ilgn": [
        {
          "locale": "es_PE",
          "value": "Procesado correctamente"
        }
      ]
    }
  }
}

Ejemplo 2: con autenticación Redirect

{
  "success": "true",
  "action": "authorize",
  "merchant_code": "your_merchant_code",
  "merchant_operation_number": "2391645",
  "transaction": {
    "transaction_id": "5hk8rwa3h3cq9oyfs3a28v1ms",
    "channel": "ecommerce",
    "state": "PENDIENTE",
    "state_reason": "Url generada para continuar con la Autenticacion",
    "continue_url": "https://api.dev.alignet.io/payment/continue/card/81vrxn30vja1gwcfsdng4i5g5",
    "amount": "15000",
    "currency": "604",
    "payment_method": {
      "method_name": "CARD",
      "method_details": {
        "masked_pan": "411111********1111",
        "brand": "VISA",
        "bin": "411111",
        "last_pan": "9268",
        "card_type": "DEBIT",
        "card_country": "PE",
        "issuer": "BANCO DE CREDITO DEL PERU - BCP",
        "installments": {
          "plan": "NORMAL",
          "installment_number": "2"
        },
        "redirect_url": "https://pay-me.com",
        "callback_url": "https://pay-me.com/callback"
      }
    },
    "processor_response": {
      "authorization_code": "055552",
      "brand_transaction_id": "100B",
      "result_message": {
        "code": "00",
        "description": "Approval and completed successfully"
      }
    },
    "additional_fields": null,
    "lifecycle": [
      {
        "state": "REGISTRADO",
        "date": {
          "utc_time": "2024-03-12T22:49:36.018Z",
          "unix_time": 1710282940
        }
      },
      {
        "state": "PENDIENTE",
        "date": {
          "utc_time": "2024-03-12T22:49:36.018Z",
          "unix_time": 1710282940
        }
      }
    ]
  },
  "meta": {
    "status": {
      "code": "00",
      "message_ilgn": [
        {
          "locale": "es_PE",
          "value": "Procesado correctamente"
        }
      ]
    }
  }
}

Ejemplo 3: con datos de autenticación 3DS previos

{
  "success": "true",
  "action": "authorize",
  "merchant_code": "your_merchant_code",
  "merchant_operation_number": "2391645",
  "transaction": {
    "transaction_id": "5hk8rwa3h3cq9oyfs3a28v1ms",
    "channel": "ecommerce",
    "state": "AUTORIZADO",
    "state_reason": "Approval and completed successfully",
    "amount": "15000",
    "currency": "604",
    "payment_method": {
      "method_name": "CARD",
      "method_details": {
        "masked_pan": "411111********1111",
        "brand": "VISA",
        "bin": "411111",
        "last_pan": "9268",
        "card_type": "DEBIT",
        "card_country": "PE",
        "issuer": "BANCO DE CREDITO DEL PERU - BCP",
        "installments": {
          "plan": "NORMAL",
          "installment_number": "2"
        }
      }
    },
    "processor_response": {
      "authorization_code": "055552",
      "brand_transaction_id": "100B",
      "result_message": {
        "code": "00",
        "description": "Approval and completed successfully"
      }
    },
    "additional_fields": null,
    "authentication_result": {
      "version": "2.1.0",
      "eci": "05",
      "ds_transaction_id": "",
      "3ds_transaction_id": "",
      "trans_status": "A"
    },
    "lifecycle": [
      {
        "state": "REGISTRADO",
        "date": {
          "utc_time": "2024-03-12T22:49:36.018Z",
          "unix_time": 1710282940
        }
      },
      {
        "state": "PENDIENTE",
        "date": {
          "utc_time": "2024-03-12T22:49:36.018Z",
          "unix_time": 1710282940
        }
      },
      {
        "state": "AUTORIZADO",
        "date": {
          "utc_time": "2024-03-12T22:49:36.018Z",
          "unix_time": 1710282940
        }
      }
    ]
  },
  "meta": {
    "status": {
      "code": "00",
      "message_ilgn": [
        {
          "locale": "es_PE",
          "value": "Procesado correctamente"
        }
      ]
    }
  }
}

Buenas prácticas

  • Valida siempre el resultado desde backend.
  • Usa autenticación 3DS cuando aplique a tu modelo de riesgo o configuración.
  • No expongas PAN, CVV ni datos sensibles en frontend o logs.
  • Enmascara siempre la información sensible en observabilidad y soporte.
  • Revisa el estado final de la operación antes de tomar acciones de negocio.

Errores comunes

Datos sensibles expuestos

No envíes ni almacenes PAN, CVV o datos sensibles en frontend, logs o herramientas sin protección.

Validación incompleta

No tomes decisiones de negocio confiando únicamente en validaciones del lado cliente o en estados no confirmados.

Siguiente paso

API de Consulta

Revisa cómo consultar el estado de una operación.