Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.pay-me.com/llms.txt

Use this file to discover all available pages before exploring further.

El payload de Flex reutiliza la estructura del API de Autorización - ecommerce, con una diferencia importante: debes enviar payment_method en el objeto raíz, pero como un objeto vacío {}, porque el cliente elegirá el método dentro del formulario.
Piensa este paso como la preparación del request de POST /charges para Flex. Lo que construyes aquí será la base de la operación que luego terminarás leyendo en responseCallback(response).

Qué se conserva y qué cambia

Misma base de PayIn

Mantienes action, channel, merchant_code, merchant_operation_number, payment_method y payment_details.

Cambio en Flex

En Flex, payment_method viaja como {} vacío porque el método real se resuelve en el frontend según lo que el usuario seleccione.

Estructura del payload

Expande cada bloque para revisar qué campos pertenecen a cada nivel del objeto que enviarás a Flex.

Objeto raíz

Contiene la información general de la operación y enlaza con payment_details, donde viaja el detalle del cobro.
CampoDescripciónEjemploTipoObligatorio
actionAcción a ejecutarauthorizeStringSI
channelCanal donde se ejecutará la transacciónecommerceStringSI
merchant_codeIdentificador del comercioCadena alfanuméricaStringSI
merchant_operation_numberNúmero de pedido de la operaciónCadena numérica entre 6 y 12 dígitosStringSI
payment_methodObjeto reservado para Flex. Debe enviarse vacío{}ObjectSI
payment_detailsObjeto con información de la transacciónObjectObjectSI
Agrupa el monto, moneda y subobjetos operativos del comprador, facturación y envío.
CampoDescripciónEjemploTipoObligatorio
payment_details.amountMonto en centavos de la operación1050StringSI
payment_details.currencyCódigo ISO 4217 de la moneda de la operación604StringSI
payment_details.additional_fieldsDiccionario para enviar campos y valores personalizados según key:valueexternal_id:5468724DictionaryNO
payment_details.customerObjeto con información del cliente que realiza la compraObjectObjectNO
payment_details.billingObjeto con información de facturaciónObjectObjectSI
payment_details.shippingObjeto con información de envíoObjectObjectNO
Define los datos opcionales del cliente que realiza la compra, útiles para identificación y contexto de riesgo.
CampoDescripciónTipoObligatorio
payment_details.customer.first_nameNombresStringNO
payment_details.customer.last_nameApellidosStringNO
payment_details.customer.emailCorreo electrónicoStringNO
payment_details.customer.phoneObjeto con información del teléfonoObjectNO
payment_details.customer.phone.country_codeCódigo del país del teléfonoStringNO
payment_details.customer.phone.subscriberNúmero del teléfonoStringNO
payment_details.customer.identity_documentObjeto con información del documento de identidadObjectNO
payment_details.customer.identity_document.countryPaís del documentoStringNO
payment_details.customer.identity_document.typeTipo de documentoStringNO
payment_details.customer.identity_document.identifierNúmero de documentoStringNO
payment_details.customer.locationObjeto con información de ubicaciónObjectNO
payment_details.customer.location.line_1Dirección 1StringNO
payment_details.customer.location.line_2Dirección 2StringNO
payment_details.customer.location.cityCiudadStringNO
payment_details.customer.location.stateEstadoStringNO
payment_details.customer.location.countryPaísStringNO
Contiene los datos obligatorios de facturación que Flex necesita para procesar la operación.
CampoDescripciónTipoObligatorio
payment_details.billing.first_nameNombresStringSI
payment_details.billing.last_nameApellidosStringSI
payment_details.billing.emailCorreo electrónicoStringSI
payment_details.billing.phoneObjeto con información del teléfonoObjectSI
payment_details.billing.phone.country_codeCódigo del país del teléfonoStringSI
payment_details.billing.phone.subscriberNúmero del teléfonoStringSI
payment_details.billing.locationObjeto con información de ubicaciónObjectSI
payment_details.billing.location.line_1Dirección 1StringSI
payment_details.billing.location.line_2Dirección 2StringNO
payment_details.billing.location.cityCiudadStringSI
payment_details.billing.location.stateEstadoStringSI
payment_details.billing.location.countryPaísStringSI
Incluye la información de envío cuando tu flujo de negocio la necesite para complementar la operación.
CampoDescripciónTipoObligatorio
payment_details.shipping.first_nameNombresStringNO
payment_details.shipping.last_nameApellidosStringNO
payment_details.shipping.emailCorreo electrónicoStringNO
payment_details.shipping.phoneObjeto con información del teléfonoObjectNO
payment_details.shipping.phone.country_codeCódigo del país del teléfonoStringNO
payment_details.shipping.phone.subscriberNúmero del teléfonoStringNO
payment_details.shipping.locationObjeto con información de ubicaciónObjectNO
payment_details.shipping.location.line_1Dirección 1StringNO
payment_details.shipping.location.line_2Dirección 2StringNO
payment_details.shipping.location.cityCiudadStringNO
payment_details.shipping.location.stateEstadoStringNO
payment_details.shipping.location.countryPaísStringNO
Para S/. 10.50 se debe enviar 1050 y en currency el valor 604 para Soles.
En Flex, el objeto raíz debe incluir explícitamente payment_method: {} aunque el método final todavía no haya sido seleccionado por el usuario.

Ejemplo completo

var payload = {
    "action": "authorize",
    "channel": "ecommerce",
    "merchant_code": "b0deb6f3-e51a-48a7-9268-f1441d46f7bd",
    "merchant_operation_number": "221354",
    "payment_method": {},
    "payment_details": {
        "amount": "7000",
        "currency": "604",
        "billing": {
            "first_name": "Levis",
            "last_name": "Silvestre",
            "email": "levis.silvestre@alignet.com",
            "phone": {
                "country_code": "+51",
                "subscriber": "958435685"
            },
            "location": {
                "line_1": "Av. San Borja Norte 1743",
                "line_2": "",
                "city": "Lima",
                "state": "Lima",
                "country": "PE"
            }
        },
        "shipping": {
            "first_name": "Levis",
            "last_name": "Silvestre",
            "email": "levis.silvestre@alignet.com",
            "phone": {
                "country_code": "+51",
                "subscriber": "958435685"
            },
            "location": {
                "line_1": "Av. San Borja Norte 1743",
                "line_2": "",
                "city": "Lima",
                "state": "Lima",
                "country": "PE"
            }
        },
        "customer": {
            "first_name": "Levis",
            "last_name": "Silvestre",
            "email": "levis.silvestre@alignet.com",
            "phone": {
                "country_code": "+51",
                "subscriber": "958435685"
            },
            "identity_document": {
                "country": "PER",
                "type": "DNI",
                "identifier": "72661927"
            },
            "location": {
                "line_1": "Av. San Borja Norte 1743",
                "line_2": "",
                "city": "Lima",
                "state": "Lima",
                "country": "PE"
            }
        }
    }
}

Siguiente paso

Inicializar el componente

Usa este payload junto con tu nonce para crear la instancia de FlexPaymentForms.

API de Autorización - ecommerce

Toma esta referencia como contrato base del request que estás reutilizando en Flex.