Download OpenAPI specification:Download
Documentação infraestrutura pix indireto.
Check if a Pix charge is allowed to be paid
| txid required | string Unique transaction identifier |
| DPP | string Optional payment date-time for calculation |
| codMun | string Optional municipality code |
| paymentValue | integer Payment value to validate |
| taxID | string Optional payer taxID when ensureSameTaxID is enabled |
{- "DPP": "string",
- "codMun": "string",
- "paymentValue": 0,
- "taxID": "string"
}{- "error": {
- "issues": [
- {
- "code": "string",
- "expected": "string",
- "received": "string",
- "path": [
- "string"
], - "message": "string",
- "validation": "string"
}
], - "name": "ZodError",
- "message": "Validation error"
}
}Retrieve all Pix charges associated with a specific location
| locId required | string Location identifier |
| DPP | string Optional payment date-time for calculation |
| codMun | string Optional municipality code for business-day calculation |
const http = require('https'); const options = { method: 'GET', hostname: '', port: null, path: '%3Cname%3E.indireto.woovi-indireto.dev/pix-charge/v1/charge/location/%7BlocId%7D?DPP=SOME_STRING_VALUE&codMun=SOME_STRING_VALUE', headers: {} }; const req = http.request(options, function (res) { const chunks = []; res.on('data', function (chunk) { chunks.push(chunk); }); res.on('end', function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
{- "charge": {
- "txid": "string",
- "status": "ACTIVE",
- "value": 0,
- "key": "string",
- "keyType": "CPF",
- "expiresAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "txi": "string"
}
}Mark a Pix charge as completed by recording the payment date and payment value.
This endpoint updates the charge status to COMPLETED and stores the payment information (paidAt and paidAmount). The charge amount values are recalculated based on the payment date.
| txid required | string Unique transaction identifier |
| paymentDate required | string Payment date-time in ISO format (timezone-aware) |
| paymentValue required | number Payment value in cents |
{- "paymentDate": "2025-03-20T10:30:00-03:00",
- "paymentValue": 10000
}{- "charge": {
- "txid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
- "status": "CONCLUIDA",
- "amount": {
- "original": "100.00",
- "final": "100.00"
}
}
}Delete a specific Pix charge
| txid required | string Unique transaction identifier |
const http = require('https'); const options = { method: 'DELETE', hostname: '', port: null, path: '%3Cname%3E.indireto.woovi-indireto.dev/pix-charge/v1/charge/%7Btxid%7D', headers: {} }; const req = http.request(options, function (res) { const chunks = []; res.on('data', function (chunk) { chunks.push(chunk); }); res.on('end', function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
{- "error": {
- "issues": [
- {
- "code": "string",
- "expected": "string",
- "received": "string",
- "path": [
- "string"
], - "message": "string",
- "validation": "string"
}
], - "name": "ZodError",
- "message": "Validation error"
}
}Retrieve details of a specific Pix charge
| txid required | string Example: 6290ccfd42831958a405debc pix charge txid |
| DPP | string Optional payment date-time for calculation |
| codMun | string Optional municipality code for business-day calculation |
const http = require('https'); const options = { method: 'GET', hostname: '', port: null, path: '%3Cname%3E.indireto.woovi-indireto.dev/pix-charge/v1/charge/6290ccfd42831958a405debc?DPP=SOME_STRING_VALUE&codMun=SOME_STRING_VALUE', headers: {} }; const req = http.request(options, function (res) { const chunks = []; res.on('data', function (chunk) { chunks.push(chunk); }); res.on('end', function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
{- "account": {
- "accountId": "6290ccfd42831958a405debc",
- "isDefault": true,
- "balance": {
- "total": 129430,
- "blocked": 0,
- "available": 129430
}
}
}Create a new Pix charge with the specified parameters
| txid required | string Unique transaction identifier |
| chargeType | string (ChargeType) Enum: "cob" "cobv" "rec" Charge type |
object (Calendar) | |
Array of objects (AdditionalInfo) <= 50 items | |
| comment | string <= 140 characters |
object (Amount) | |
| pixKey | string [ 1 .. 255 ] characters |
object or null | |
| ensureSameTaxID | boolean |
object (Debtor) | |
object (Receiver) |
{- "chargeType": "cob",
- "calendar": {
- "dueDate": "string",
- "expiration": 1,
- "validateAfterExpiration": 0,
- "presentation": "string",
- "creation": "string"
}, - "additionalInfo": [
- {
- "name": "string",
- "value": "string"
}
], - "comment": "string",
- "amount": {
- "customerCanChangeValue": true,
- "chargeValue": 0,
- "interestRules": {
- "modality": 1,
- "value": 0
}, - "discountRules": {
- "modality": 1,
- "discountFixedDate": [
- {
- "data": "string",
- "value": 0
}
], - "value": 0
}, - "rebateRules": {
- "modality": 1,
- "value": 0
}, - "fineRules": {
- "modality": 1,
- "value": 0
}, - "withdrawal": {
- "withdraw": {
- "value": 0,
- "agentMode": "string",
- "changeMode": 0,
- "withdrawalServiceProvider": "string"
}, - "change": {
- "value": 0,
- "agentMode": "string",
- "changeMode": 0,
- "withdrawalServiceProvider": "string"
}
}
}, - "pixKey": "string",
- "location": {
- "id": "string",
- "isLinked": false
}, - "ensureSameTaxID": true,
- "debtor": {
- "name": "string",
- "taxID": "string",
- "taxIDType": "BR:CNPJ"
}, - "receiver": {
- "name": "string",
- "taxID": "string",
- "taxIDType": "BR:CNPJ",
- "tradeName": "string",
- "email": "string",
- "street": "string",
- "city": "string",
- "state": "st",
- "zipcode": "string"
}
}{- "charge": {
- "txid": "string",
- "status": "ACTIVE",
- "value": 0,
- "key": "string",
- "keyType": "CPF",
- "expiresAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "txi": "string"
}
}Update an existing Pix charge with new parameters
| txid required | string Unique transaction identifier |
| chargeType | string (ChargeType) Enum: "cob" "cobv" "rec" Charge type |
object (Calendar) |
{- "chargeType": "cob",
- "calendar": {
- "dueDate": "string",
- "expiration": 1,
- "validateAfterExpiration": 0,
- "presentation": "string",
- "creation": "string"
}
}{- "charge": {
- "txid": "string",
- "status": "ACTIVE",
- "value": 0,
- "key": "string",
- "keyType": "CPF",
- "expiresAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "txi": "string"
}
}Generates an EMV QR Code string in TLV (Tag-Length-Value) format for PIX payments. This endpoint creates a standardized QR code that can be used for PIX instant payments in Brazil. The generated EMV string contains all necessary information for PIX transactions including merchant details and location URL.
merchantName: Required, 1-25 characters, no diacriticsmerchantCity: Required, 1-15 characters, no diacritics merchantAccountInformationPix.url: Required, valid URI formatpayloadFormatIndicator: "01"pointOfInitiationMethod: "12" (dynamic QR)merchantCategoryCode: "0000"transactionCurrency: "986" (Brazilian Real)countryCode: "BR"additionalDataFieldTemplate.referenceLabel: "***"The endpoint will return validation errors for any field that doesn't meet the requirements.
| merchantName required | string [ 1 .. 25 ] characters Name of the merchant. Must not contain diacritics (accented characters). Will be validated and rejected if longer than 25 characters or contains diacritics. |
| merchantCity required | string [ 1 .. 15 ] characters City where the merchant is located. Must not contain diacritics (accented characters). Will be validated and rejected if longer than 15 characters or contains diacritics. |
required | object |
| payloadFormatIndicator | string EMV QR Code payload format indicator (usually '01') |
| pointOfInitiationMethod | string Point of initiation method (usually '12' for dynamic QR) |
| merchantCategoryCode | string Merchant category code (MCC) for business classification |
| transactionCurrency | string Transaction currency code (986 for Brazilian Real) |
| countryCode | string Country code (BR for Brazil) |
object | |
object |
{- "merchantName": "Test Merchant",
- "merchantCity": "Sao Paulo",
}{- "emv": "00020101021226450014br.gov.bcb.pix2523https://example.com/pix5204000053039865802BR5913Test Merchant6009Sao Paulo62070503***6304E69E"
}const http = require('https'); const options = { method: 'GET', hostname: '', port: null, path: '%3Cname%3E.indireto.woovi-indireto.dev/core/balance', headers: {} }; const req = http.request(options, function (res) { const chunks = []; res.on('data', function (chunk) { chunks.push(chunk); }); res.on('end', function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
{- "balance": 1000
}Creates a PIX charge using the Pix Charge provider schemas, links it to a PIX location, and returns the generated BR Code (EMV).
| txid required | string^[a-zA-Z0-9]{1,35}$ Unique transaction identifier (1–35 alphanumeric chars). |
required | object Raw Pix charge payload forwarded to the Pix Charge service. |
required | object Payload forwarded to the Pix Location service. |
required | object Merchant information used to generate the BR Code (EMV). |
| property name* additional property | any |
{- "pixLocation": {
- "type": "cob"
}, - "brCodeInfo": {
- "merchantName": "Test Merchant",
- "merchantCity": "Sao Paulo"
}
}{- "charge": {
- "txid": "E12345678920241201123456",
- "status": "ACTIVE",
- "value": 100
}, - "location": {
- "id": "location-123",
- "type": "COB",
- "pixUrlAccessToken": "token-123"
}, - "brCode": "00020101021243650016COM.MERCADOLIVRE02008..."
}Retrieve Pix location information and generate QR code data based on the location type and access token. This endpoint returns JOSE (JSON Object Signing and Encryption) formatted data for QR code generation.
| locType required | string Enum: "cob" "cobv" "rec" Type of Pix location |
| pixUrlAccessToken required | string Access token for the Pix location |
| codMun | string Municipality code for location-specific data |
| DPP | string Additional location parameter |
const http = require('https'); const options = { method: 'GET', hostname: '', port: null, path: '%3Cname%3E.indireto.woovi-indireto.dev/qr/v2/%7BlocType%7D/%7BpixUrlAccessToken%7D?codMun=SOME_STRING_VALUE&DPP=SOME_STRING_VALUE', headers: {} }; const req = http.request(options, function (res) { const chunks = []; res.on('data', function (chunk) { chunks.push(chunk); }); res.on('end', function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
{- "error": {
- "issues": [
- {
- "code": "string",
- "expected": "string",
- "received": "string",
- "path": [
- "string"
], - "message": "string",
- "validation": "string"
}
], - "name": "ZodError",
- "message": "Validation error"
}
}Retrieve the processed Pix location payload translated to Portuguese and filtered according to the location type. This endpoint returns the same payload that is used to sign the JOSE response, but in JSON format for internal integrations.
| locType required | string Enum: "cob" "cobv" "rec" Type of Pix location |
| pixUrlAccessToken required | string Access token for the Pix location |
| codMun | string Municipality code for location-specific data |
| DPP | string Additional location parameter |
const http = require('https'); const options = { method: 'GET', hostname: '', port: null, path: '%3Cname%3E.indireto.woovi-indireto.dev/qr/v2/%7BlocType%7D/%7BpixUrlAccessToken%7D/payload?codMun=SOME_STRING_VALUE&DPP=SOME_STRING_VALUE', headers: {} }; const req = http.request(options, function (res) { const chunks = []; res.on('data', function (chunk) { chunks.push(chunk); }); res.on('end', function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
{ }const http = require('https'); const options = { method: 'GET', hostname: '', port: null, path: '%3Cname%3E.indireto.woovi-indireto.dev/status', headers: {} }; const req = http.request(options, function (res) { const chunks = []; res.on('data', function (chunk) { chunks.push(chunk); }); res.on('end', function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
{- "status": "OK",
- "timestamp": "2019-08-24T14:15:22Z",
- "version": "1.0.0"
}