Skip to main content
Usa este flujo para procesar pagos ecommerce con Yape 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.

Método de pago

Permite procesar cobros ecommerce con billetera Yape.

Validación final

La confirmación del resultado debe realizarse desde backend.

Notificación opcional

Puedes enviar un callback_url para recibir una notificación host to host.

Consideraciones

Este flujo requiere el número celular afiliado a Yape y el código OTP generado por la billetera.
Si necesitas consultar el estado de una operación luego de autorizarla, revisa el API de Consulta con Yape.
No marques una orden como pagada solo con validaciones del frontend. Usa la respuesta backend o la consulta posterior para confirmar el estado final.

Request

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

Headers


Body

Objeto raíz del request


Objeto payment_method


Objeto payment_method.method_details

Si envías callback_url, asegúrate de que sea una URL backend accesible para recibir confirmaciones server to server.

Objeto payment_method.method_details.phone


Objeto payment_details

Para billing, shipping y customer, usa la estructura ecommerce estándar con first_name, last_name, email, phone y location.

Ejemplo de request


Response

Objeto transaction

state puede devolver valores como AUTORIZADO, DENEGADO o INVALIDO, según el resultado de la autorización. En el historial lifecycle también pueden aparecer estados intermedios como REGISTRADO o PENDIENTE.
No uses meta.status.code como validador de autorización o denegación del pago. Ese código solo indica si el servicio procesó o respondió correctamente; el resultado del pago se valida con transaction.state y, como respaldo, desde backend con consulta o notificación.

Objeto transaction.payment_method


Objeto transaction.payment_method.method_details


Objeto transaction.payment_method.method_details.phone


Objeto transaction.processor_response

Este objeto puede mostrarse cuando la transacción llega a estados como AUTORIZADO, DENEGADO o EXTORNADO.

Objeto transaction.processor_response.result_message


Objeto transaction.lifecycle

En lifecycle puedes recibir estados intermedios como REGISTRADO o PENDIENTE antes del resultado final.

Objeto transaction.lifecycle[].date


Ejemplo de response


Buenas prácticas

  • Valida siempre el resultado desde backend.
  • Asegúrate de enviar un merchant_operation_number único por transacción.
  • Verifica que el otp corresponda al número Yape enviado en phone.
  • Usa callback_url si tu operación necesita confirmación server to server.
  • No asumas que los campos opcionales de tarjeta dentro de transaction.payment_method.method_details siempre estarán presentes.
  • Conserva transaction_id y merchant_operation_number para soporte y conciliación.

Errores comunes

OTP inválido o vencido

Si el OTP no corresponde al intento de pago vigente, la transacción puede ser rechazada o marcada como inválida.

Validación incompleta

No tomes decisiones de negocio basándote solo en la interacción del usuario; confirma siempre el estado final desde backend.

Siguiente paso

Api de Consulta con Yape

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