Este documento describe la API de Rendix para pagos Pix internacionales. Está dirigido a los socios (partners) que se integran con Rendix para crear ventas, consultar tasas de cambio, hacer seguimiento de ventas, procesar reembolsos, registrar comercios en lote, obtener códigos de operación, descargar el documento de términos y consultar datos de liquidación. Todas las APIs siguen el estándar REST para garantizar seguridad y desempeño.
Los socios reciben credenciales de sandbox tanto para el acceso de socio como de comercio (merchant).
| Ambiente | Credenciales |
|---|---|
| Sandbox | Correo electrónico de acceso, contraseña y MerchantId para el socio y el comercio |
| Ambiente | Disponibilidad |
|---|---|
| Sandbox | 24x7 |
| Código de Estado | Mensaje | Descripción |
|---|---|---|
| 200 | OK | Solicitud procesada con éxito |
| 400 | Bad Request | Solicitud inválida, parámetro malformado o valor inesperado |
| 401 | Unauthorized | Fallo de autenticación o permiso insuficiente |
| 404 | Not Found | El identificador del recurso no fue encontrado |
| 422 | Unprocessable Entity | La solicitud contiene datos de negocio inválidos |
| 500 | Internal Server Error | Error interno inesperado del servidor |
Todos los endpoints protegidos requieren un token Bearer devuelto por el endpoint de autenticación.
Ejemplo de encabezado:
Authorization: Bearer {token}
/efx/v2/externo/loginGenera un token de acceso para usuarios socios o comercios.
Content-Type: application/json{
"email": "partner@example.com",
"password": "StrongPassword123"
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "Correo electrónico del socio o comercio utilizado para autenticarse."
},
"password": {
"type": "string",
"description": "Contraseña asociada al correo electrónico informado."
}
},
"required": [
"email",
"password"
]
}200Content-Type: application/json{
"success": true,
"message": "Authentication successful",
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example",
"expiration": "2026-02-24T15:00:00Z",
"expirationInMilliSeconds": 3600000
}
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Indica si la solicitud de autenticación fue procesada con éxito."
},
"message": {
"type": "string",
"description": "Mensaje de respuesta en formato legible."
},
"data": {
"type": "object",
"properties": {
"token": {
"type": "string",
"description": "Token de acceso JWT utilizado en las solicitudes autenticadas."
},
"expiration": {
"type": "string",
"description": "Fecha y hora de expiración del token en UTC."
},
"expirationInMilliSeconds": {
"type": "number",
"description": "Vigencia del token en milisegundos."
}
},
"required": [
"token",
"expiration",
"expirationInMilliSeconds"
],
"description": "Datos de autenticación devueltos por la API."
}
},
"required": [
"success",
"message",
"data"
]
}401Content-Type: application/json{
"success": false,
"message": "Unauthorized"
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Indica que la solicitud de autenticación falló."
},
"message": {
"type": "string",
"description": "Mensaje de error de autenticación devuelto por la API."
}
},
"required": [
"success",
"message"
]
}/efx/v2/externo/taxas{?merchantId,currencyCode}Devuelve la tasa de cambio utilizada para convertir la moneda de la transacción a BRL.
number (required) Example: 20Identificador único del comercio.
string (required) Example: USDMoneda de la venta en formato ISO de 3 letras mayúsculas.
Authorization: Bearer {token}200Content-Type: application/json{
"success": true,
"message": "Exchange rate retrieved successfully",
"data": "5,2100"
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Indica si la solicitud fue procesada con éxito."
},
"message": {
"type": "string",
"description": "Mensaje de respuesta en formato legible."
},
"data": {
"type": "string",
"description": "Tasa de cambio devuelta por la API."
}
},
"required": [
"success",
"message",
"data"
]
}400Content-Type: application/json{
"success": false,
"message": "Invalid merchantId or currencyCode"
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Indica que la solicitud era inválida."
},
"message": {
"type": "string",
"description": "Mensaje de error de validación."
}
},
"required": [
"success",
"message"
]
}/efx/v2/externo/venderCrea una venta Pix y devuelve el Código QR y el payload Pix copia y pega.
Content-Type: application/json
Authorization: Bearer {token}{
"merchantId": 20,
"purchase": 100,
"cpfCnpj": "12345678900",
"customerAcceptedTerms": true,
"controlNumber": "ORDER-ABC-123",
"phone": "+5511999999999",
"email": "buyer@example.com",
"webhook": "https://partner.example.com/webhooks/rendix",
"currencyCode": "USD",
"operationCode": 1,
"beneficiary": "Pedro Silva"
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"merchantId": {
"type": "number",
"description": "Identificador único del comercio."
},
"purchase": {
"type": "number",
"description": "Monto de la venta en moneda extranjera."
},
"cpfCnpj": {
"type": "string",
"description": "Número de documento del comprador. Utilice CPF para compradores persona física."
},
"customerAcceptedTerms": {
"type": "boolean",
"description": "Indica si el comprador aceptó los términos y condiciones."
},
"controlNumber": {
"type": "string",
"description": "Número de control de venta del socio."
},
"phone": {
"type": "string",
"description": "Número de teléfono móvil del comprador, incluyendo el código de país."
},
"email": {
"type": "string",
"description": "Dirección de correo electrónico del comprador."
},
"webhook": {
"type": "string",
"description": "Endpoint de callback utilizado para notificar cambios de estado de la venta."
},
"currencyCode": {
"type": "string",
"description": "Moneda de la venta en formato ISO de 3 letras mayúsculas."
},
"operationCode": {
"type": "number",
"description": "Código de operación BACEN. Obligatorio cuando el socio tiene más de un tipo de operación disponible."
},
"beneficiary": {
"type": "string",
"description": "Nombre del beneficiario asociado a la venta."
}
},
"required": [
"merchantId",
"purchase",
"cpfCnpj",
"controlNumber",
"phone",
"webhook",
"currencyCode"
]
}200Content-Type: application/json{
"success": true,
"message": "Sale created successfully",
"data": {
"pixCopyPaste": "00020101021226840014br.gov.bcb.pix2562...",
"saleID": 12345,
"qrCodeBase64": "iVBORw0KGgoAAAANSUhEUgAA...",
"priceNationalCurrency": 520,
"currency": "USD",
"vetTax": 5.2,
"qrCodeExpiration": "2026-02-24T18:05:00Z",
"creditCardPayment": {
"qrCodeCheckout": "iVBORw0KGgoAAAANSUhEUgAA...",
"urlCheckout": "https://checkout.example.com/pay/12345",
"installmentOptions": [
{
"installmentQuantity": 1,
"installmentValue": 520,
"vetTax": 5.2,
"totalAmount": 520
},
{
"installmentQuantity": 2,
"installmentValue": 265,
"vetTax": 5.2,
"totalAmount": 530
}
]
}
}
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Indica si la solicitud fue procesada con éxito."
},
"message": {
"type": "string",
"description": "Mensaje de respuesta en formato legible."
},
"data": {
"type": "object",
"properties": {
"pixCopyPaste": {
"type": "string",
"description": "Payload Pix para el pago mediante copia y pega."
},
"saleID": {
"type": "number",
"description": "Identificador único de la venta."
},
"qrCodeBase64": {
"type": "string",
"description": "Imagen del Código QR codificada en Base64."
},
"priceNationalCurrency": {
"type": "number",
"description": "Monto de la venta convertido a BRL."
},
"currency": {
"type": "string",
"description": "Moneda de la venta."
},
"vetTax": {
"type": "number",
"description": "Tasa de cambio aplicada a la venta."
},
"qrCodeExpiration": {
"type": "string",
"description": "Fecha y hora de expiración del Código QR en UTC."
},
"creditCardPayment": {
"type": "object",
"properties": {
"qrCodeCheckout": {
"type": "string",
"description": "Código QR de checkout de la tarjeta de crédito codificado en Base64."
},
"urlCheckout": {
"type": "string",
"description": "URL de checkout de la tarjeta de crédito."
},
"installmentOptions": {
"type": "array",
"description": "Opciones de pago en cuotas disponibles para la venta."
}
},
"description": "Información adicional de pago con tarjeta de crédito, cuando este método de pago esté disponible."
}
},
"required": [
"pixCopyPaste",
"saleID",
"qrCodeBase64",
"priceNationalCurrency",
"currency",
"vetTax",
"qrCodeExpiration"
],
"description": "Datos de la venta devueltos por la API."
}
},
"required": [
"success",
"message",
"data"
]
}422Content-Type: application/json{
"success": false,
"message": "Unprocessable Entity"
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Indica que la solicitud no pudo ser procesada."
},
"message": {
"type": "string",
"description": "Mensaje de error de validación o de regla de negocio."
}
},
"required": [
"success",
"message"
]
}/efx/v2/externo/vender/cnpjCrea una venta Pix utilizando el documento de la empresa compradora (CNPJ).
Content-Type: application/json
Authorization: Bearer {token}{
"merchantId": 20,
"purchase": 100,
"cpfCnpj": "12345678000199",
"customerAcceptedTerms": true,
"controlNumber": "ORDER-CNPJ-001",
"phone": "+5511999999999",
"email": "buyer@example.com",
"webhook": "https://partner.example.com/webhooks/rendix",
"currencyCode": "USD",
"operationCode": 1,
"beneficiary": "Pedro Silva"
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"merchantId": {
"type": "number",
"description": "Identificador único del comercio."
},
"purchase": {
"type": "number",
"description": "Monto de la venta en moneda extranjera."
},
"cpfCnpj": {
"type": "string",
"description": "Número de documento de la empresa compradora en formato CNPJ."
},
"customerAcceptedTerms": {
"type": "boolean",
"description": "Indica si el comprador aceptó los términos y condiciones."
},
"controlNumber": {
"type": "string",
"description": "Número de control de venta del socio."
},
"phone": {
"type": "string",
"description": "Número de teléfono móvil del comprador, incluyendo el código de país."
},
"email": {
"type": "string",
"description": "Dirección de correo electrónico del comprador."
},
"webhook": {
"type": "string",
"description": "Endpoint de callback utilizado para notificar cambios de estado de la venta."
},
"currencyCode": {
"type": "string",
"description": "Moneda de la venta en formato ISO de 3 letras mayúsculas."
},
"operationCode": {
"type": "number",
"description": "Código de operación BACEN."
},
"beneficiary": {
"type": "string",
"description": "Nombre del beneficiario asociado a la venta."
}
},
"required": [
"merchantId",
"purchase",
"cpfCnpj",
"controlNumber",
"phone",
"webhook",
"currencyCode"
]
}200Content-Type: application/json{
"success": true,
"message": "Sale created successfully",
"data": {
"saleID": 12346,
"pixCopyPaste": "00020101021226840014br.gov.bcb.pix2562...",
"qrCodeBase64": "iVBORw0KGgoAAAANSUhEUgAA..."
}
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Indica si la solicitud fue procesada con éxito."
},
"message": {
"type": "string",
"description": "Mensaje de respuesta en formato legible."
},
"data": {
"type": "object",
"properties": {
"saleID": {
"type": "number",
"description": "Identificador único de la venta."
},
"pixCopyPaste": {
"type": "string",
"description": "Payload Pix para el pago mediante copia y pega."
},
"qrCodeBase64": {
"type": "string",
"description": "Imagen del Código QR codificada en Base64."
}
},
"required": [
"saleID",
"pixCopyPaste",
"qrCodeBase64"
],
"description": "Datos de la venta devueltos por la API."
}
},
"required": [
"success",
"message",
"data"
]
}/efx/v1/externo/linkCrea una venta y envía un enlace de pago por correo electrónico.
Content-Type: application/json
Authorization: Bearer {token}{
"merchantId": 20,
"purchase": 150,
"description": "Travel purchase",
"controlNumber": "LINK-ORDER-001",
"email": "buyer@example.com",
"webhook": "https://partner.example.com/webhooks/rendix",
"currencyCode": "USD",
"operationCode": 1,
"beneficiary": "Pedro Silva"
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"merchantId": {
"type": "number",
"description": "Identificador único del comercio."
},
"purchase": {
"type": "number",
"description": "Monto de la venta en moneda extranjera."
},
"description": {
"type": "string",
"description": "Descripción de la venta presentada al comprador."
},
"controlNumber": {
"type": "string",
"description": "Número de control de venta del socio."
},
"email": {
"type": "string",
"description": "Dirección de correo electrónico del comprador utilizada para recibir el enlace de pago."
},
"webhook": {
"type": "string",
"description": "Endpoint de callback utilizado para notificar cambios de estado de la venta."
},
"currencyCode": {
"type": "string",
"description": "Moneda de la venta en formato ISO de 3 letras mayúsculas."
},
"operationCode": {
"type": "number",
"description": "Código de operación BACEN."
},
"beneficiary": {
"type": "string",
"description": "Nombre del beneficiario asociado a la venta."
}
},
"required": [
"merchantId",
"purchase",
"description",
"controlNumber",
"email",
"webhook",
"currencyCode",
"beneficiary"
]
}200Content-Type: application/json{
"success": true,
"message": "Payment link created successfully",
"data": {
"id": 9876
}
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Indica si la solicitud fue procesada con éxito."
},
"message": {
"type": "string",
"description": "Mensaje de respuesta en formato legible."
},
"data": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "Identificador único de la venta generado para el enlace de pago."
}
},
"required": [
"id"
],
"description": "Datos de la venta por enlace de pago devueltos por la API."
}
},
"required": [
"success",
"message",
"data"
]
}/efx/v1/externo/vender/{id}Devuelve los datos y el estado actual de la venta.
number (required) Example: 12345Identificador único de la venta.
Authorization: Bearer {token}200Content-Type: application/json{
"success": true,
"message": "Sale retrieved successfully",
"data": {
"status": 3,
"priceNationalCurrency": 520,
"priceInForeignCurrency": 100,
"controlNumber": "ORDER-ABC-123",
"currency": "USD",
"vetTax": 5.2,
"paymentReversal": {
"requestDate": "2026-02-24T19:00:00Z",
"status": "Processed"
}
}
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Indica si la consulta fue exitosa."
},
"message": {
"type": "string",
"description": "Mensaje de respuesta en formato legible."
},
"data": {
"type": "object",
"properties": {
"status": {
"type": "number",
"description": "Código de estado de la venta."
},
"priceNationalCurrency": {
"type": "number",
"description": "Monto de la venta en BRL."
},
"priceInForeignCurrency": {
"type": "number",
"description": "Monto de la venta en moneda extranjera."
},
"controlNumber": {
"type": "string",
"description": "Número de control del socio asociado a la venta."
},
"currency": {
"type": "string",
"description": "Moneda de la venta."
},
"vetTax": {
"type": "number",
"description": "Tasa de cambio aplicada a la venta."
},
"paymentReversal": {
"type": "object",
"properties": {
"requestDate": {
"type": "string",
"description": "Fecha y hora de la solicitud de reembolso en UTC."
},
"status": {
"type": "string",
"description": "Estado del procesamiento del reembolso."
}
},
"description": "Información de reembolso cuando se solicitó un reembolso."
}
},
"required": [
"status",
"priceNationalCurrency",
"priceInForeignCurrency",
"controlNumber",
"currency",
"vetTax"
],
"description": "Datos de la venta devueltos por la API."
}
},
"required": [
"success",
"message",
"data"
]
}404Content-Type: application/json{
"success": false,
"message": "Sale not found"
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Indica que la venta informada no fue encontrada."
},
"message": {
"type": "string",
"description": "Mensaje de error devuelto por la API."
}
},
"required": [
"success",
"message"
]
}Las siguientes reglas de negocio se aplican a las ventas:
Las ventas creadas mediante /efx/v2/externo/vender expiran después de 5 minutos si no son pagadas.
Las ventas creadas mediante /efx/v1/externo/link expiran después de 5 días si no son pagadas.
Cuando una venta expira sin pago, debe crearse una nueva venta para generar un nuevo Código QR o enlace de pago.
Una venta puede cancelarse o reembolsarse en las siguientes circunstancias:
| Estado | Descripción |
|---|---|
| 4 | Venta cancelada por el sistema o por el operador |
| 6 | Venta cancelada sin pago Pix después de la expiración del Código QR |
| 8 | Venta cancelada por divergencia de CPF (el pagador difiere del comprador) |
| 12 | Venta cancelada después del pago Pix y reembolso Pix procesado |
| 13 | Venta cancelada por divergencia de CNPJ |
| 15 | Venta cancelada con reembolso completado a la tarjeta de crédito |
| 16 | Venta cancelada por divergencia de CPF - reembolso Pix en curso |
| 17 | Venta cancelada por divergencia de CPF - reembolso Pix completado |
| 18 | Venta cancelada por divergencia de CPF - contactar al soporte para gestión manual |
/efx/v1/externo/vender/processar-reembolso/{saleId}{?refund}Devuelve los detalles del reembolso antes de confirmar un reembolso total o parcial.
number (required) Example: 2151Identificador único de la venta pagada.
number (required) Example: 20Monto del reembolso en la moneda del comercio.
Authorization: Bearer {token}200Content-Type: application/json{
"success": true,
"message": "Refund details retrieved successfully",
"data": {
"saleId": 2151,
"refundAmount": 20,
"currency": "USD",
"estimatedNationalCurrencyRefund": 104
}
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Indica si la solicitud fue procesada con éxito."
},
"message": {
"type": "string",
"description": "Mensaje de respuesta en formato legible."
},
"data": {
"type": "object",
"properties": {
"saleId": {
"type": "number",
"description": "Identificador único de la venta."
},
"refundAmount": {
"type": "number",
"description": "Monto del reembolso solicitado en la moneda del comercio."
},
"currency": {
"type": "string",
"description": "Moneda de la venta."
},
"estimatedNationalCurrencyRefund": {
"type": "number",
"description": "Monto estimado del reembolso convertido a BRL."
}
},
"required": [
"saleId",
"refundAmount",
"currency",
"estimatedNationalCurrencyRefund"
],
"description": "Datos de la simulación de reembolso devueltos por la API."
}
},
"required": [
"success",
"message",
"data"
]
}/efx/v1/vender/cancelar/{id}Cancela una venta pagada y procesa un reembolso Pix total o parcial.
number (required) Example: 2151Identificador único de la venta pagada.
Content-Type: application/json
Authorization: Bearer {token}{
"refund": {
"amount": 100
}
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"refund": {
"type": "object",
"properties": {
"amount": {
"type": "number",
"description": "Monto del reembolso a devolver al comprador."
}
},
"required": [
"amount"
],
"description": "Payload de reembolso enviado a la API."
}
},
"required": [
"refund"
]
}200Content-Type: application/json{
"success": true,
"message": "Refund processed successfully",
"data": {
"saleId": 2151,
"priceInNationalCurrency": 520,
"priceInForeignCurrency": 100,
"status": 12,
"currency": "USD",
"refundNationalCurrency": 520
}
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Indica si el reembolso fue procesado con éxito."
},
"message": {
"type": "string",
"description": "Mensaje de respuesta en formato legible."
},
"data": {
"type": "object",
"properties": {
"saleId": {
"type": "number",
"description": "Identificador único de la venta."
},
"priceInNationalCurrency": {
"type": "number",
"description": "Monto original de la venta en BRL."
},
"priceInForeignCurrency": {
"type": "number",
"description": "Monto original de la venta en moneda extranjera."
},
"status": {
"type": "number",
"description": "Código de estado de la venta actualizado tras el reembolso."
},
"currency": {
"type": "string",
"description": "Moneda de la venta."
},
"refundNationalCurrency": {
"type": "number",
"description": "Monto del reembolso en BRL."
}
},
"required": [
"saleId",
"priceInNationalCurrency",
"priceInForeignCurrency",
"status",
"currency",
"refundNationalCurrency"
],
"description": "Datos del resultado del reembolso devueltos por la API."
}
},
"required": [
"success",
"message",
"data"
]
}422Content-Type: application/json{
"success": false,
"message": "Refund could not be processed"
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Indica que la solicitud de reembolso falló."
},
"message": {
"type": "string",
"description": "Mensaje de error de validación o de regla de negocio."
}
},
"required": [
"success",
"message"
]
}Los errores típicos relacionados con reembolsos descritos para la API incluyen:
| Código de Estado | Mensaje | Descripción |
|---|---|---|
| 422 | Unprocessable Entity | Monto del reembolso no informado |
| 401 | Unauthorized | El comercio no tiene permiso para reembolsar |
| 422 | Unprocessable Entity | No hay saldo disponible para reembolsar la venta |
| 422 | Unprocessable Entity | SaleId inválido |
| 422 | Unprocessable Entity | La venta no fue pagada |
| 422 | Unprocessable Entity | La venta ya ha sido reembolsada |
| 422 | Unprocessable Entity | El monto del reembolso es mayor que el monto original de la venta |
| 422 | Unprocessable Entity | La venta ya está cancelada |
| 500 | Internal Server Error | Error interno inesperado del servidor |
/efx/v1/externo/estabelecimentos/lotePermite que un usuario master socio registre uno o varios comercios mediante la carga de un archivo Excel. La hoja de cálculo cargada se valida y procesa, y los MerchantIds resultantes se devuelven después del procesamiento.
Content-Type: multipart/form-data
Authorization: Bearer {token}file: merchants.xlsx200Content-Type: application/json{
"success": true,
"message": "Batch created successfully",
"data": {
"id": 1,
"date": "2026-02-24T20:00:00Z",
"user": "Merchant Corporate Name",
"count": 50,
"batchName": "Batch-001",
"partnerId": 100,
"status": "AWAITING"
}
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Indica si el archivo de lote fue aceptado con éxito."
},
"message": {
"type": "string",
"description": "Mensaje de respuesta en formato legible."
},
"data": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "Identificador único del lote."
},
"date": {
"type": "string",
"description": "Fecha y hora de creación del lote en UTC."
},
"user": {
"type": "string",
"description": "Referencia del usuario o comercio asociado al lote."
},
"count": {
"type": "number",
"description": "Número de comercios incluidos en el lote."
},
"batchName": {
"type": "string",
"description": "Nombre de visualización del lote."
},
"partnerId": {
"type": "number",
"description": "Identificador único del socio."
},
"status": {
"type": "string",
"description": "Estado del procesamiento del lote."
}
},
"required": [
"id",
"date",
"user",
"count",
"batchName",
"partnerId",
"status"
],
"description": "Datos del procesamiento del lote devueltos por la API."
}
},
"required": [
"success",
"message",
"data"
]
}/efx/v1/externo/estabelecimentos/lote/{id}{?page,elements}Devuelve los comercios procesados en un archivo de lote.
number (required) Example: 1Identificador del lote.
number (required) Example: 0Índice de página, comenzando en cero.
number (required) Example: 10Número de elementos por página.
Authorization: Bearer {token}200Content-Type: application/json{
"totalItems": 2,
"totalPerPage": 10,
"totalCurrentPage": 2,
"data": [
{
"id": 101,
"razaoSocial": "Merchant One",
"nif": "123456789",
"email": "merchant1@example.com",
"status": "FINISHED",
"parceiroId": 100,
"dataProcessamento": "2026-02-24T20:05:00Z"
},
{
"id": 102,
"razaoSocial": "Merchant Two",
"nif": "987654321",
"email": "merchant2@example.com",
"status": "ERROR",
"parceiroId": 100,
"dataProcessamento": "2026-02-24T20:05:10Z"
}
]
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"totalItems": {
"type": "number",
"description": "Número total de comercios devueltos por la consulta."
},
"totalPerPage": {
"type": "number",
"description": "Número de elementos configurados por página."
},
"totalCurrentPage": {
"type": "number",
"description": "Número de elementos devueltos en la página actual."
},
"data": {
"type": "array",
"description": "Registros de comercios procesados en el lote."
}
},
"required": [
"totalItems",
"totalPerPage",
"totalCurrentPage",
"data"
]
}Formato de archivo aceptado:
.xlsxCampos esperados en la hoja de cálculo:
| Campo | Descripción | Regla |
|---|---|---|
| CorporateName | Razón social del comercio | Obligatorio |
| NIF | Número de identificación fiscal | Obligatorio |
| Street | Calle del comercio | Obligatorio |
| City | Ciudad del comercio | Obligatorio |
| PostalCode | Código postal | Obligatorio |
| Number | Número de la calle | Obligatorio |
| State | Estado o provincia del comercio | Obligatorio |
| Country | Código de país con 2 caracteres, por ejemplo PY, AR |
Obligatorio |
| Currency | Moneda del comercio en formato ISO de 3 letras mayúsculas | Condicionalmente opcional |
| OperationCode | Código de operación del comercio | Condicionalmente opcional |
| Correo electrónico del comercio | Opcional |
Reglas condicionales:
Currency puede omitirse solo cuando el comercio opera con una única moneda.
OperationCode puede omitirse solo cuando el comercio opera con un único tipo de operación.
Valores de código de operación mencionados en el documento de origen:
1 - Bienes y Servicios
2 - Transferencias Unilaterales
3 - Transferencia entre cuentas de la misma titularidad, entre el país y una cuenta en el exterior
4 - Retiros
| Estado | Descripción |
|---|---|
| AWAITING | Esperando el registro del lote de comercios |
| FINISHED | Registro del lote completado |
| ERROR | El registro falló debido a inconsistencias en el archivo |
| DOUBLEDED | NIF y correo electrónico duplicados impidieron el registro |
/efx/v1/externo/codigos-operacaoDevuelve los códigos de naturaleza de operación disponibles para las transacciones de venta.
Authorization: Bearer {token}200Content-Type: application/json{
"success": true,
"message": "Operation codes retrieved successfully",
"data": [
{
"id": 1,
"naturezaOperacaoBacenID": "Goods and Services",
"iof": 0.38,
"dataInicioVigencia": "2025-01-01T00:00:00Z"
},
{
"id": 4,
"naturezaOperacaoBacenID": "Withdrawals",
"iof": 1.1,
"dataInicioVigencia": "2025-01-01T00:00:00Z"
}
]
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Indica si la solicitud fue procesada con éxito."
},
"message": {
"type": "string",
"description": "Mensaje de respuesta en formato legible."
},
"data": {
"type": "array",
"description": "Códigos de operación BACEN disponibles."
}
},
"required": [
"success",
"message",
"data"
]
}/efx/gerenciador/venda/v1/vendas/termoDevuelve el PDF de Términos y Condiciones codificado en Base64.
Authorization: Bearer {token}200Content-Type: application/json{
"fileContents": "JVBERi0xLjQKJcTl8uXrp...",
"contentType": "application/pdf",
"fileDownloadName": "terms-and-conditions.pdf",
"lastModified": "2026-02-24T00:00:00Z",
"entityTag": "abc123etag",
"enableRangeProcessing": false
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"fileContents": {
"type": "string",
"description": "Contenido del PDF codificado en Base64."
},
"contentType": {
"type": "string",
"description": "Tipo MIME del archivo devuelto."
},
"fileDownloadName": {
"type": "string",
"description": "Nombre de archivo sugerido para la descarga."
},
"lastModified": {
"type": "string",
"description": "Fecha y hora de la última modificación en UTC."
},
"entityTag": {
"type": "string",
"description": "Entity tag asociada a la versión del archivo."
},
"enableRangeProcessing": {
"type": "boolean",
"description": "Indica si el procesamiento por rangos está habilitado."
}
},
"required": [
"fileContents",
"contentType",
"fileDownloadName",
"enableRangeProcessing"
]
}/efx/v1/externo/liquidacao{?TransactionStartDate,TransactionEndDate,CurrentPage,ItemsPerPage,MerchantId,CurrencyCode}Devuelve información de liquidación y conciliación para ventas cerradas.
string (required) Example: 2023-06-02Fecha inicial de la transacción en formato ISO.
string (required) Example: 2023-06-03Fecha final de la transacción en formato ISO.
number (required) Example: 0Índice de página, comenzando en cero.
number (required) Example: 10Número de elementos por página.
number (optional) Example: 3Identificador del comercio.
string (required) Example: USDCódigo de moneda en formato ISO de 3 letras mayúsculas.
Authorization: Bearer {token}200Content-Type: application/json{
"totalItems": 1,
"itemsPerPage": 10,
"currentPageTotal": 1,
"totalTransactions": 1,
"totalPurchaseValue": 200,
"data": [
{
"merchantId": 3,
"merchantCode": "12345678000199",
"nif": "12345678000199",
"merchantName": "Merchant Example",
"purchaseValue": 200,
"partnerMdr": 2.5,
"agillitasMdr": 1.2,
"netValue": 196.3,
"operationValue": 1040,
"vetTax": 5.2,
"spotExchangeRate": 5.3,
"transactionId": "TX123456789",
"transactionDate": "2026-02-24T12:00:00Z",
"liquidationDate": "2026-02-25T12:00:00Z",
"buyerCnpj": "12345678000199",
"incomeTax": 1.5,
"valueWithoutIncomeTax": 198.5,
"localTax": 0.7,
"partnerTariff": 0.5,
"valueForExchange": 197.8,
"netAmount": 196.3,
"effectiveOperationFee": 0.2,
"agillitasEFXFee": 0.1,
"partnerEFXFee": 0.1,
"spreadBrsa": 0.3,
"controlNumber": "ORDER-ABC-123",
"exchangeClosingDate": "2026-02-24",
"currency": "USD"
}
]
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"totalItems": {
"type": "number",
"description": "Número total de registros devueltos por la consulta."
},
"itemsPerPage": {
"type": "number",
"description": "Número de elementos configurados por página."
},
"currentPageTotal": {
"type": "number",
"description": "Número de registros devueltos en la página actual."
},
"totalTransactions": {
"type": "number",
"description": "Número total de transacciones en el conjunto de resultados."
},
"totalPurchaseValue": {
"type": "number",
"description": "Valor total de compra del conjunto de resultados."
},
"data": {
"type": "array",
"description": "Registros de liquidación devueltos por la API."
}
},
"required": [
"totalItems",
"itemsPerPage",
"currentPageTotal",
"totalTransactions",
"totalPurchaseValue",
"data"
]
}/efx/v1/externo/vendas{?SalesStatus,DateSaleStart,DateSaleEnd,OperatorId,PaymentLink,FilterByShopkeeper,CurrencyId,TransactionTypeBy,CurrentPage,QuantityPerPage,Filter}Devuelve ventas de acuerdo con los filtros proporcionados.
number (optional) Example: 3Estado de la venta.
string (required) Example: 2024-05-01Fecha inicial de la venta en formato ISO.
string (required) Example: 2024-10-01Fecha final de la venta en formato ISO.
number (optional) Example: 10Identificador del comercio u operador.
boolean (optional) Example: falseIndica si la venta fue creada mediante enlace de pago.
boolean (required) Example: falseIndica si se debe filtrar por comercio.
number (required) Example: 164Identificador de la moneda.
number (required) Example: 4Identificador del tipo de transacción BACEN.
number (required) Example: 0Página actual.
number (optional) Example: 10Elementos por página.
string (optional) Example: abc123Filtro adicional en texto libre.
Authorization: Bearer {token}200Content-Type: application/json{
"totalSalesValue": 1000,
"totalItems": 1,
"totalPerPage": 10,
"currentPage": 0,
"totalCurrentPage": 1,
"data": [
{
"id": 12345,
"merchantId": 20,
"shopkeeperNIF": "12345678000199",
"shopkeeperCorporateName": "Merchant Example",
"partnerId": 100,
"namePartner": "Partner Example",
"controlNumber": "ORDER-ABC-123",
"cpfBuyer": "12345678900",
"cpfPayer": "12345678900",
"nameBuyer": "John Buyer",
"emailBuyer": "buyer@example.com",
"operatorId": 20,
"operatorName": "Merchant Example",
"dateTimeSale": "2026-02-24T12:00:00Z",
"dateTimePayment": "2026-02-24T12:03:00Z",
"status": 3,
"dateTax": "2026-02-25T00:00:00Z",
"endToEndId": "E123456789",
"link": "https://pay.example.com/abc",
"dateTimeExpirationLink": "2026-03-01T12:00:00Z",
"dateTimeExpirationQrCode": "2026-02-24T12:05:00Z",
"description": "Travel purchase",
"tokenLinkPayment": "TOKEN123",
"paymentMethod": 1,
"paymentMethodDescriptive": "PIX",
"statusDescriptive": "Paid",
"nationalCurrencyValue": 520,
"foreignCurrencyValue": 100,
"dollarCurrencyValue": 100,
"currencyId": 164,
"currency": "USD",
"currencyDescription": "US Dollar",
"partnerRemunerationRate": 2.5,
"remunerationTaxAgilitas": 0.5,
"spreadBancoRendimento": 0.2,
"spreadAgillitas": 0.1,
"mdr": 1.5,
"taxId": 10,
"taxVet": 5.2,
"txId": "TX123456789",
"transfer": 520,
"shopkeeperName": "Merchant Example",
"cellphoneBuyer": "+5511999999999",
"nf": "12345678000199",
"external": true,
"urlWebhook": "https://partner.example.com/webhooks/rendix",
"paymentLink": false,
"copyPastePix": "00020101021226840014br.gov.bcb.pix2562...",
"payerName": "John Buyer",
"expiration": "2026-02-24T12:05:00Z",
"allowCancelSale": true,
"transactionTypeBacenId": 4,
"transactionType": "Withdrawals"
}
]
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"totalSalesValue": {
"type": "number",
"description": "Valor total de las ventas devueltas."
},
"totalItems": {
"type": "number",
"description": "Número total de ventas encontradas por la consulta."
},
"totalPerPage": {
"type": "number",
"description": "Número de elementos configurados por página."
},
"currentPage": {
"type": "number",
"description": "Índice de la página actual."
},
"totalCurrentPage": {
"type": "number",
"description": "Número de elementos devueltos en la página actual."
},
"data": {
"type": "array",
"description": "Ventas devueltas por la API."
}
},
"required": [
"totalSalesValue",
"totalItems",
"totalPerPage",
"currentPage",
"totalCurrentPage",
"data"
]
}La siguiente tabla enumera todos los posibles códigos de estado que una transacción de venta puede asumir durante su ciclo de vida:
| Estado | Nombre | Descripción y Escenario |
|---|---|---|
| 1 | Abierta | Venta iniciada en el sistema, en espera de generación o procesamiento del pago |
| 2 | Esperando Retorno | Venta creada, en espera del pago del Código QR o del Enlace de Pago |
| 3 | Pagada | El pago del comprador fue confirmado y liquidado con éxito |
| 4 | Cancelada | Venta cancelada manualmente o por el sistema |
| 5 | Pago Expirado | El plazo de pago de la venta expiró antes de completarse |
| 6 | Venta Cancelada Sin Pix | Venta cancelada tras la expiración del Código QR o Enlace sin recibo de Pix |
| 7 | Tiempo de Espera Agotado | Se excedió el tiempo límite durante el procesamiento de la transacción |
| 8 | Cancelada - Divergencia de CPF | Venta cancelada porque el CPF del pagador difiere del CPF del comprador |
| 9 | Límite del Pagador Excedido | Venta cancelada porque se excedió el límite de transacción del pagador |
| 10 | CPF del Pagador Restrictivo | El CPF del pagador tiene una restricción impuesta por reglas de cumplimiento |
| 11 | Error de Procesamiento del Webhook | Ocurrió un error al procesar la notificación del Webhook |
| 12 | Venta Cancelada con Pix Reembolsado | Venta cancelada tras un pago exitoso y reembolso Pix procesado |
| 13 | Cancelada - Divergencia de CNPJ | Venta cancelada porque el CNPJ del pagador difiere del CNPJ de la empresa compradora |
| 14 | CNPJ del Pagador Restrictivo | El CNPJ del pagador tiene una restricción impuesta por reglas de cumplimiento |
| 15 | Cancelada - Reembolso con Tarjeta de Crédito | Venta cancelada con el reembolso correspondiente procesado en tarjeta de crédito |
| 16 | Cancelada por Divergencia de CPF - Reembolso en Curso | Venta cancelada por divergencia de CPF, con el reembolso Pix en curso |
| 17 | Cancelada por Divergencia de CPF - Reembolso Completado | Venta cancelada por divergencia de CPF, con el reembolso Pix finalizado |
| 18 | Cancelada por Divergencia de CPF - Contactar Soporte | El reembolso automático falló debido a divergencia de CPF; se activó el soporte manual |
Restricción de ambiente: Los tres endpoints de este grupo están disponibles exclusivamente en ambientes de no producción, como desarrollo, pruebas, homologación y sandbox. No deben ser llamados ni expuestos en el ambiente de producción.
Los endpoints de este grupo soportan el procesamiento individual de pagos Pix, el procesamiento de pagos Pix en lote y la creación de ventas en lote para su posterior pago.
Solo no producción: Este endpoint no está disponible en el ambiente de producción.
/v1/pagamentos/pix/unitarioProcesa la notificación de pago Pix de una única venta y reenvía los datos de pago al servicio de cobro configurado.
Content-Type: application/json
Authorization: Bearer {token}{
"idVenda": 12345,
"valor": 100,
"cpf": "12345678900",
"nome": "John Buyer"
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"idVenda": {
"type": "number",
"description": "Identificador único de la venta."
},
"valor": {
"type": "number",
"description": "Monto del pago Pix."
},
"cpf": {
"type": "string",
"description": "CPF o CNPJ del pagador, con o sin caracteres de formato."
},
"nome": {
"type": "string",
"description": "Nombre del pagador."
}
},
"required": [
"idVenda",
"valor",
"cpf",
"nome"
]
}200Content-Type: application/json{
"success": true,
"message": "Request processed successfully",
"data": {
"idVenda": 12345,
"txId": "TX123456789",
"endToEndId": "E123456789",
"url": "https://collection.example.com/webhook"
}
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Indica si el pago fue procesado con éxito."
},
"message": {
"type": "string",
"description": "Mensaje de respuesta en formato legible."
},
"data": {
"type": "object",
"properties": {
"idVenda": {
"type": "number",
"description": "Identificador de la venta."
},
"txId": {
"type": "string",
"description": "Identificador de la transacción Pix asociada a la venta."
},
"endToEndId": {
"type": "string",
"description": "Identificador end-to-end del Pix."
},
"url": {
"type": "string",
"description": "Destino utilizado para reenviar la notificación de pago."
}
},
"required": [
"idVenda",
"txId",
"endToEndId",
"url"
]
}
},
"required": [
"success",
"message",
"data"
]
}422Content-Type: application/json{
"success": false,
"message": "The payment could not be processed",
"data": "Invalid sale, missing TxId, or invalid payment data"
}Solo no producción: Este endpoint no está disponible en el ambiente de producción.
/v1/pagamentos/pix/lote/pagamentosRecibe un número de control y una lista de documentos de pagadores, localiza las ventas relacionadas e inicia el procesamiento asíncrono de los pagos Pix. La API responde de inmediato mientras el lote continúa procesándose en segundo plano.
La implementación procesa las ventas en bloques de hasta 500 registros y limita a 10 operaciones concurrentes.
Content-Type: application/json
Authorization: Bearer {token}{
"numeroControle": "BATCH-2026-001",
"idLojista": 20,
"cpfs": [
"Hello, world!"
]
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"numeroControle": {
"type": "string",
"description": "Número de control utilizado para localizar las ventas incluidas en el lote."
},
"idLojista": {
"type": "number",
"description": "Identificador del comercio utilizado junto con el número de control."
},
"cpfs": {
"type": "array",
"description": "Valores de CPF asignados a los pagos Pix. Los caracteres de formato se eliminan y los valores duplicados se ignoran."
}
},
"required": [
"numeroControle",
"idLojista",
"cpfs"
]
}200Content-Type: application/json{
"success": true,
"message": "The payment batch was received and is being processed.",
"data": {
"numeroControle": "BATCH-2026-001",
"totalEncontrado": 1000,
"status": "PROCESSING"
}
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Indica si el lote fue aceptado."
},
"message": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"numeroControle": {
"type": "string",
"description": "Número de control del lote."
},
"totalEncontrado": {
"type": "number",
"description": "Número de ventas encontradas para procesamiento."
},
"status": {
"type": "string",
"description": "Estado actual del lote."
}
},
"required": [
"numeroControle",
"totalEncontrado",
"status"
]
}
},
"required": [
"success",
"message",
"data"
]
}422Content-Type: application/json{
"success": false,
"message": "No sales were found for the supplied control number.",
"data": "BATCH-2026-001"
}Solo no producción: Este endpoint no está disponible en el ambiente de producción.
/v1/pagamentos/pix/lote/vendasCrea múltiples ventas en una única solicitud para el flujo de pago Pix en lote. Cada elemento debe contener su propio número de control del socio y los datos necesarios para crear la venta.
Content-Type: application/json
Authorization: Bearer {token}{
"numeroControle": "BATCH-2026-001",
"vendas": [
{
"merchantId": 20,
"purchase": 100,
"cpfCnpj": "12345678900",
"customerAcceptedTerms": true,
"controlNumber": "ORDER-001",
"phone": "+5511999999999",
"email": "buyer@example.com",
"webhook": "https://partner.example.com/webhooks/rendix",
"currencyCode": "USD",
"operationCode": 1,
"beneficiary": "Pedro Silva"
}
]
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"numeroControle": {
"type": "string",
"description": "Número de control que identifica el lote de ventas."
},
"vendas": {
"type": "array",
"description": "Ventas a ser creadas."
}
},
"required": [
"numeroControle",
"vendas"
]
}200Content-Type: application/json{
"success": true,
"message": "The sale batch was received and is being processed.",
"data": {
"numeroControle": "BATCH-2026-001",
"totalRecebido": 1,
"status": "PROCESSING"
}
}{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Indica si el lote de ventas fue aceptado."
},
"message": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"numeroControle": {
"type": "string",
"description": "Número de control del lote."
},
"totalRecebido": {
"type": "number",
"description": "Número de ventas recibidas."
},
"status": {
"type": "string",
"description": "Estado actual del lote."
}
},
"required": [
"numeroControle",
"totalRecebido",
"status"
]
}
},
"required": [
"success",
"message",
"data"
]
}422Content-Type: application/json{
"success": false,
"message": "The sale batch could not be accepted.",
"data": "Invalid or empty sales list"
}El equipo de Rendix está disponible para apoyar a los socios durante la integración y el uso de las APIs disponibles. Contacte al equipo de Integración a través de los canales oficiales de soporte definidos por Rendix.
Generated by aglio on 20 Aug 2026