curl --request POST \
--url https://api.wppfy.com/send/request-payment \
--header 'Content-Type: application/json' \
--header 'token: <api-key>' \
--data '
{
"number": "5511999999999",
"orderMessageId": "3EB0ID_DO_PEDIDO",
"pixKey": "123e4567-e89b-12d3-a456-426614174000",
"text": "Confira os dados para pagamento"
}
'{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"messageid": "<string>",
"chatid": "<string>",
"sender": "<string>",
"senderName": "<string>",
"isGroup": false,
"fromMe": false,
"messageType": "<string>",
"source": "<string>",
"messageTimestamp": 0,
"status": "<string>",
"text": "",
"quoted": "",
"edited": "",
"reaction": "",
"vote": "",
"convertOptions": "",
"buttonOrListid": "",
"owner": "",
"error": "",
"content": {},
"wasSentByApi": true,
"pinned": true,
"sendFunction": "<string>",
"sendPayload": {},
"fileURL": "<string>",
"callPeer": {
"jid": "<string>",
"name": "<string>",
"imagePreviewUrl": "<string>"
},
"send_folder_id": "<string>",
"track_source": "<string>",
"track_id": "<string>",
"ai_metadata": {
"agent_id": "<string>",
"turn": "<string>",
"flow_id": "<string>",
"request": {
"messages": "<array>",
"tools": "<array>",
"options": {
"model": "<string>",
"temperature": 123,
"maxTokens": 123,
"topP": 123,
"frequencyPenalty": 123,
"presencePenalty": 123
}
},
"response": {
"choices": "<array>",
"toolResults": "<array>",
"error": "<string>"
},
"outcome": {
"status": "sent",
"texts": 123,
"audio": true,
"menus": 123,
"files": 123,
"handoff": "<string>",
"lead": [
"<string>"
],
"detail": "<string>"
}
},
"sender_pn": "<string>",
"sender_lid": "<string>",
"sender_image_preview_url": "<string>",
"response": {
"status": "success",
"message": "Solicitud de pago enviada con éxito"
}
}{
"error": "Falta pixKey o pixCode"
}{
"error": "Token inválido"
}{
"error": "Error al enviar la solicitud de pago"
}Solicitar pago
Envía una solicitud de pago con el botón nativo “Revisar y pagar” de WhatsApp. El flujo admite PIX (estático, dinámico o deshabilitado), boleto, enlace de pago y tarjeta, combinando todo en un único mensaje interactivo.
Cómo funciona
- Define el valor en
amount(BRL por defecto) y, opcionalmente, personaliza el título, el texto y la nota adicional. - Por defecto, exige
pixKey. - El archivo indicado en
fileUrlse adjunta como documento (boleto o factura en PDF, por ejemplo). paymentLinkhabilita el botón externo.- Para cobrar un pedido recibido por WhatsApp, indique
orderMessageIdcon el ID del mensajeOrderMessagede ese mismo contacto. La API obtiene los artículos, la moneda y el total del pedido;amountno es necesario en ese caso. Aun así, es necesario indicar un método de pago.
Campos comunes
Este endpoint también admite los campos estándar: delay, readchat, readmessages, replyid,
mentions, track_source, track_id y async.
curl --request POST \
--url https://api.wppfy.com/send/request-payment \
--header 'Content-Type: application/json' \
--header 'token: <api-key>' \
--data '
{
"number": "5511999999999",
"orderMessageId": "3EB0ID_DO_PEDIDO",
"pixKey": "123e4567-e89b-12d3-a456-426614174000",
"text": "Confira os dados para pagamento"
}
'{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"messageid": "<string>",
"chatid": "<string>",
"sender": "<string>",
"senderName": "<string>",
"isGroup": false,
"fromMe": false,
"messageType": "<string>",
"source": "<string>",
"messageTimestamp": 0,
"status": "<string>",
"text": "",
"quoted": "",
"edited": "",
"reaction": "",
"vote": "",
"convertOptions": "",
"buttonOrListid": "",
"owner": "",
"error": "",
"content": {},
"wasSentByApi": true,
"pinned": true,
"sendFunction": "<string>",
"sendPayload": {},
"fileURL": "<string>",
"callPeer": {
"jid": "<string>",
"name": "<string>",
"imagePreviewUrl": "<string>"
},
"send_folder_id": "<string>",
"track_source": "<string>",
"track_id": "<string>",
"ai_metadata": {
"agent_id": "<string>",
"turn": "<string>",
"flow_id": "<string>",
"request": {
"messages": "<array>",
"tools": "<array>",
"options": {
"model": "<string>",
"temperature": 123,
"maxTokens": 123,
"topP": 123,
"frequencyPenalty": 123,
"presencePenalty": 123
}
},
"response": {
"choices": "<array>",
"toolResults": "<array>",
"error": "<string>"
},
"outcome": {
"status": "sent",
"texts": 123,
"audio": true,
"menus": 123,
"files": 123,
"handoff": "<string>",
"lead": [
"<string>"
],
"detail": "<string>"
}
},
"sender_pn": "<string>",
"sender_lid": "<string>",
"sender_image_preview_url": "<string>",
"response": {
"status": "success",
"message": "Solicitud de pago enviada con éxito"
}
}{
"error": "Falta pixKey o pixCode"
}{
"error": "Token inválido"
}{
"error": "Error al enviar la solicitud de pago"
}Autorizaciones
Cuerpo
- Option 1
- Option 2
ID del chat al que se enviará el mensaje. Puede ser un número de teléfono en formato internacional, un ID de grupo (@g.us), un ID de usuario (con @s.whatsapp.net o @lid).
"5511999999999"
Monto del cobro (en BRL por defecto)
199.9
ID de un OrderMessage recibido del mismo contacto. Vincula el cobro al pedido real.
Título que aparece en el encabezado del flujo
"Detalles del pedido"
Mensaje mostrado en el cuerpo del flujo
"Pedido #123 listo para pago"
Texto del pie de página del mensaje
"Tienda Ejemplo"
Nombre del elemento principal listado en el flujo
"Suscripción Plan Oro"
Identificador o número de la factura
"PED-123"
Clave PIX estática (CPF/CNPJ/teléfono/email/EVP)
"123e4567-e89b-12d3-a456-426614174000"
Tipo de la clave PIX (CPF, CNPJ, PHONE, EMAIL, EVP). Predeterminado EVP
"EVP"
Nombre del receptor mostrado en el flujo (por defecto usa el nombre del perfil de la instancia)
"Tienda Ejemplo"
URL externa para checkout (solo dominios homologados; vea la lista anterior)
"https://pagamentos.exemplo.com/checkout/abc"
URL o ruta (base64) del documento que se adjuntará (ej.: boleto PDF)
"https://cdn.exemplo.com/boleto-123.pdf"
Nombre del archivo que se muestra en WhatsApp al adjuntar fileUrl
"boleto-123.pdf"
Línea digitable del boleto (habilita automáticamente el método boleto)
"34191.79001 01043.510047 91020.150008 5 91070026000"
ID del mensaje que será respondido
Números mencionados separados por coma
Retraso en milisegundos antes del envío (muestra "escribiendo..." en WhatsApp)
Marca el chat como leído después de enviar el mensaje
Marca los mensajes recientes como leídos después del envío
Encola el envío para procesamiento asíncrono
Origen de rastreo (ej.: chatwoot, crm-interno)
Identificador de seguimiento (acepta valores duplicados)
Respuesta
Solicitud de pago enviada con éxito
Representa un mensaje intercambiado en el sistema
ID único interno del mensaje (formato r + 7 caracteres hex aleatorios)
ID original del mensaje en el proveedor
ID de la conversación relacionada
ID del remitente del mensaje
Nombre visible del remitente
Indica si es un mensaje de grupo
Indica si el mensaje fue enviado por el usuario
Tipo de contenido del mensaje
Plataforma de origen del mensaje
Timestamp original del mensaje en milisegundos
Estado del ciclo de vida del mensaje.
Ejemplos comunes: Queued, Canceled, Failed, Sent, Delivered, Read.
En mensajes de grupo, sigue al participante más avanzado: Delivered cuando al menos uno lo recibió, Read cuando al menos uno lo leyó y Played cuando al menos uno lo escuchó.
Texto original del mensaje
ID del mensaje citado/respondido
Historial de ediciones del mensaje
ID del mensaje al que se reaccionó
Datos de votación de encuestas y listas
Conversión de opciones del mensaje, lista, encuesta y botones
ID del botón o elemento de lista seleccionado
Propietario del mensaje
Mensaje de error en caso de que el envío haya fallado
Contenido bruto del mensaje (JSON serializado o texto)
Indica si el mensaje fue enviado vía API
Mensaje fijado en la conversación (fijar y desfijar también llegan en messages_update, tipos Pinned y Unpinned)
Función usada para enviar el mensaje (cuando se envía vía API)
Payload utilizado en el envío cuando está disponible. Los datos de medios en base64 se omiten.
URL o referencia de archivo del mensaje
Contacto conocido asociado a una llamada, cuando está disponible en messageType: call.
Show child attributes
Show child attributes
Carpeta asociada al envío (cuando corresponda)
Origen de rastreo
ID de seguimiento (puede repetirse)
Registro de una ronda de la IA. El completo (solicitud al modelo, respuesta y outcome) queda una sola vez, en el último mensaje del contacto al que respondió la ronda, incluso cuando no salió nada (error, respuesta descartada). Cada mensaje enviado por la IA lleva solo agent_id y turn (el id de ese mensaje del contacto).
Show child attributes
Show child attributes
JID PN resuelto del remitente (cuando esté disponible)
LID original del remitente (cuando esté disponible)
URL temporal de vista previa del remitente, cuando se conoce. La hidratación de esta versión completa los mensajes recibidos en grupos; el campo puede omitirse. No provoca consulta de foto a WhatsApp en el listado.
Show child attributes
Show child attributes
