Download OpenAPI specification:Download
A Woovi é uma Plataforma de Gestão de Pagamentos.
Para utilizar nossa API de Produção, utilize exclusivamente o seguinte endpoint:
Além disso, oferecemos também um ambiente de sandbox (ambiente de testes), ideal para desenvolvimento e validação de integrações sem impactar dados reais.
👉 https://api.woovi-sandbox.com/
Veja como configurar seu acesso a nossa API aqui.
| accountId required | string  Example:  6290ccfd42831958a405debc ID of the Account | 
const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/account/6290ccfd42831958a405debc', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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
 }
 }
}const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/account/', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "accounts": [- {- "accountId": "6290ccfd42831958a405debc",
- "isDefault": true,
- "balance": {- "total": 129430,
- "blocked": 0,
- "available": 129430
 }
 },
- {- "accountId": "6286b467a7910113577e00ce",
- "isDefault": false,
- "balance": {- "total": 130,
- "blocked": 100,
- "available": 30
 }
 }
 ]
}Creates a new bank account for the company. Requires the bank account feature to be enabled.
| object (PayloadAccount)  | |||||
| 
 | |||||
{- "companyBankAccount": {- "accountId": "string",
- "isDefault": true
 }
}{- "account": {- "accountId": "6290ccfd42831958a405debc",
- "isDefault": true,
- "balance": {- "total": 129430,
- "blocked": 0,
- "available": 129430
 }
 }
}An additional fee may be charged depending on the minimum free withdrawal amount. See more about at https://developers.openpix.com.br/docs/FAQ/faq-virtual-account/#onde-posso-consultar-as-taxas-da-minha-conta-virtual
| accountId required | string  Example:  6290ccfd42831958a405debc ID of the Account | 
| value | number Value in cents | 
{- "value": 7000
}{- "withdraw": {- "account": {- "accountId": "6290ccfd42831958a405debc",
- "isDefault": true,
- "balance": {- "total": 122430,
- "blocked": 0,
- "available": 122430
 }
 },
- "transaction": {- "endToEndId": "E23114447202205191817cx6VMrbwtw6",
- "transaction": 7000
 }
 }
}Deletes an account registration that is in PENDING status
| id required | string  non-empty  Tax ID of the account register to delete | 
{- "message": "Account register successfully deleted",
- "accountRegisterId": "12345678901234"
}Updates documents and representatives for an existing account registration in PENDING status
| id required | string  non-empty  Tax ID of the account register to update | 
| Array of objects Company documents to update | |
| Array of objects Company representatives to update | |
| businessDescription | string Business segment/industry | 
| businessProduct | string Services the company provides | 
| businessLifetime | string How long the company has been operating in the market | 
| businessGoal | string Objective when using Woovi | 
{
- "businessDescription": "Updated Technology and Financial Services",
- "businessProduct": "Updated digital payment solutions and banking services",
- "businessLifetime": "5 years",
- "businessGoal": "Updated goal to expand digital payment capabilities",
- "representatives": [- {- "name": "Jane Smith",
- "birthDate": "1985-05-15",
- "taxID": "98765432100",
- "type": "ADMIN",
- "documents": [
 ],
- "address": {- "zipcode": "87654321",
- "street": "Updated Street",
- "number": "456",
- "neighborhood": "Updated Neighborhood",
- "city": "Updated City",
- "state": "SP",
- "taxID": "98765432100"
 }
 }
 ]
}{- "officialName": "Company Official Name",
- "tradeName": "Company Trade Name",
- "taxID": {- "taxID": "12345678901234"
 },
- "status": "PENDING",
- "requestedDocuments": [- "string"
 ],
- "missingDocumentsDescription": "string"
}Retrieves an existing account registration by Tax ID
| taxID required | string  Example:  taxID=12345678901234 Tax ID of the company to retrieve | 
const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/account-register?taxID=12345678901234', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "officialName": "Company Official Name",
- "tradeName": "Company Trade Name",
- "type": "BAAS",
- "taxID": {- "taxID": "12345678901234",
- "type": "BR_CNPJ"
 },
- "status": "PENDING"
}Creates a new account registration with the provided details
| officialName required | string  non-empty  Official name of the company | 
| tradeName required | string  non-empty  Trade name of the company | 
| taxID required | string  non-empty  Tax ID of the company | 
| Array of objects Company documents | |
| Array of objects Company representatives (sócio) | |
| required | object | 
| businessDescription | string Business segment/industry | 
| businessProduct | string Services the company provides | 
| businessLifetime | string How long the company has been operating in the market | 
| businessGoal | string Objective when using Woovi | 
{- "officialName": "Company Official Name",
- "tradeName": "Company Trade Name",
- "taxID": "12345678901234",
- "billingAddress": {- "zipcode": "12345678",
- "street": "Test Street",
- "number": "123",
- "neighborhood": "Test Neighborhood",
- "city": "Test City"
 },
- "businessDescription": "Technology and Financial Services",
- "businessProduct": "Digital payment solutions and banking services",
- "businessLifetime": "3 years",
- "businessGoal": "To expand digital payment capabilities and improve customer experience",
- "representatives": [- {- "name": "John Doe",
- "birthDate": "1990-01-01",
- "taxID": "12345678901",
- "type": "ADMIN",
- "address": {- "zipcode": "12345678",
- "street": "Test Street",
- "number": "123",
- "neighborhood": "Test Neighborhood",
- "city": "Test City",
- "state": "ST",
- "taxID": {- "taxID": "12345678901",
- "type": "BR_CPF"
 }
 }
 }
 ]
}{- "officialName": "Company Official Name",
- "tradeName": "Company Trade Name",
- "taxID": {- "taxID": "12345678901234"
 },
- "status": "PENDING",
- "requestedDocuments": [- "string"
 ],
- "missingDocumentsDescription": "string"
}Deactivates an application by setting isActive to false and adding a removedAt timestamp
const http = require('https'); const options = { method: 'DELETE', hostname: 'api.woovi.com', port: null, path: '/api/v1/application', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "success": true
}Creates a new application for a company
Data to create a new application
| accountId | string The ID of the company bank account | 
| object | 
{- "accountId": "507f1f77bcf86cd799439011",
- "application": {- "name": "Test API",
- "type": "API"
 }
}{- "application": {- "name": "Test API",
- "isActive": true,
- "type": "API",
- "clientId": "client_123abc",
- "clientSecret": "secret_456def",
- "appID": "app_789ghi",
- "companyBankAccount": "507f1f77bcf86cd799439011"
 }
}| taxID required | stringExamples: 
 The raw tax ID from the customer you want to get the balance. | 
const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/cashback-fidelity/balance/60151449000182', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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": 0,
- "status": "string"
}Create a new cashback exclusive for the customer with a given taxID. If the customer already has a pending excluisve cashback, this endpoint will return it instead.
Customer's taxID and the cash
| taxID | string Customer taxID (CPF or CNPJ) | 
| value | number Cashback value in centavos | 
{- "value": 100,
- "taxID": 11111111111
}{- "cashback": {- "value": 0
 },
- "message": "string"
}| id required | stringExamples: 
 charge link payment ID | 
| size | stringExamples: 
 Size for the image. This size should be between 600 and 4096. if the size parameter was not passed, the default value will be 1024. | 
const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/openpix/charge/brcode/image/fe7834b4060c488a9b0f89811be5f5cf.png?size=768', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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": "string"
}| id required | stringExamples: 
 charge ID, payment link ID, or QR code ID | 
| size | stringExamples: 
 Size for the image. This size should be between 600 and 4096. If the size parameter is not passed, the default value will be 1024. | 
const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/image/qrcode/base64/fe7834b4060c488a9b0f89811be5f5cf?size=768', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "success": true,
- "imageBase64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
}| id required | stringExamples: 
 charge ID or correlation ID. You will need URI encoding if your correlation ID has characters outside the ASCII set or reserved characters (%, #, /). | 
const http = require('https'); const options = { method: 'DELETE', hostname: 'api.woovi.com', port: null, path: '/api/v1/charge/Q2hhcmdlOjYwM2U3NDlhNDI1NjAyYmJiZjRlN2JlZA==', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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",
- "id": "fe7834b4060c488a9b0f89811be5f5cf"
}| id required | stringExamples: 
 correlation ID. You will need URI encoding if your correlation ID has characters outside the ASCII set or reserved characters (%, #, /). | 
Expires date to update charge
| expiresDate | string Expiration date of the charge. Only in ISO 8601 format. | 
{- "expiresDate": "2021-04-01T17:28:51.882Z"
}{- "charge": {- "status": "ACTIVE",
- "customer": {- "name": "Dan",
- "phone": "5511999999999",
- "taxID": {- "taxID": "31324227036",
- "type": "BR:CPF"
 }
 },
- "value": 100,
- "comment": "good",
- "correlationID": "9134e286-6f71-427a-bf00-241681624586",
- "paymentLinkID": "7777a23s-6f71-427a-bf00-241681624586",
- "expiresIn": 2592000,
- "expiresDate": "2021-04-01T17:28:51.882Z",
- "createdAt": "2021-03-02T17:28:51.882Z",
- "updatedAt": "2021-03-02T17:28:51.882Z",
- "brCode": "000201010212261060014br.gov.bcb.pix2584https://api.woovi.com/openpix/testing?transactionID=867ba5173c734202ac659721306b38c952040000530398654040.015802BR5909LOCALHOST6009Sao Paulo62360532867ba5173c734202ac659721306b38c963044BCA",
- "additionalInfo": [- {- "key": "Product",
- "value": "Pencil"
 },
- {- "key": "Invoice",
- "value": "18476"
 },
- {- "key": "Order",
- "value": "302"
 }
 ],
- "paymentMethods": {- "pix": {- "method": "PIX_COB",
- "transactionID": "9134e286-6f71-427a-bf00-241681624586",
- "identifier": "9134e286-6f71-427a-bf00-241681624586",
- "additionalInfo": [ ],
- "fee": 50,
- "value": 200,
- "status": "ACTIVE",
- "txId": "9134e286-6f71-427a-bf00-241681624586",
- "brCode": "000201010212261060014br.gov.bcb.pix2584https://api.woovi.com/openpix/testing?transactionID=867ba5173c734202ac659721306b38c952040000530398654040.015802BR5909LOCALHOST6009Sao Paulo62360532867ba5173c734202ac659721306b38c963044BCA",
 }
 }
 }
}| id required | string  Example:  fe7834b4060c488a9b0f89811be5f5cf charge ID or correlation ID. You will need URI encoding if your correlation ID has characters outside the ASCII set or reserved characters (%, #, /). | 
const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/charge/fe7834b4060c488a9b0f89811be5f5cf', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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": {- "status": "ACTIVE",
- "customer": {- "name": "Dan",
- "phone": "5511999999999",
- "taxID": {- "taxID": "31324227036",
- "type": "BR:CPF"
 }
 },
- "value": 100,
- "comment": "good",
- "correlationID": "9134e286-6f71-427a-bf00-241681624586",
- "paymentLinkID": "7777-6f71-427a-bf00-241681624586",
- "globalID": "Q2hhcmdlOjcxOTFmMWIwMjA0NmJmNWY1M2RjZmEwYg==",
- "brCode": "000201010212261060014br.gov.bcb.pix2584https://api.woovi.com/openpix/testing?transactionID=867ba5173c734202ac659721306b38c952040000530398654040.015802BR5909LOCALHOST6009Sao Paulo62360532867ba5173c734202ac659721306b38c963044BCA",
- "additionalInfo": [- {- "key": "Product",
- "value": "Pencil"
 },
- {- "key": "Invoice",
- "value": "18476"
 },
- {- "key": "Order",
- "value": "302"
 }
 ],
- "expiresIn": 2592000,
- "expiresDate": "2021-04-01T17:28:51.882Z",
- "createdAt": "2021-03-02T17:28:51.882Z",
- "updatedAt": "2021-03-02T17:28:51.882Z",
- "paymentMethods": {- "pix": {- "method": "PIX_COB",
- "transactionID": "9134e286-6f71-427a-bf00-241681624586",
- "identifier": "9134e286-6f71-427a-bf00-241681624586",
- "additionalInfo": [ ],
- "fee": 50,
- "value": 200,
- "status": "ACTIVE",
- "txId": "9134e286-6f71-427a-bf00-241681624586",
- "brCode": "000201010212261060014br.gov.bcb.pix2584https://api.woovi.com/openpix/testing?transactionID=867ba5173c734202ac659721306b38c952040000530398654040.015802BR5909LOCALHOST6009Sao Paulo62360532867ba5173c734202ac659721306b38c963044BCA",
 }
 }
 }
}| start | string <date-time>  (Start Date)   Example:  start=2020-01-01T00:00:00Z Start date used in the query. Complies with RFC 3339. | 
| end | string <date-time>  (End Date)   Example:  end=2020-12-01T17:00:00Z End date used in the query. Complies with RFC 3339. | 
| status | string  Enum: "ACTIVE" "COMPLETED" "EXPIRED"  | 
| customer | string Customer Correlation ID | 
| subscription | string Subscription Correlation ID | 
const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/charge?start=2020-01-01T00%3A00%3A00Z&end=2020-12-01T17%3A00%3A00Z&status=SOME_STRING_VALUE&customer=SOME_STRING_VALUE&subscription=SOME_STRING_VALUE', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "pageInfo": {- "skip": 0,
- "limit": 10,
- "totalCount": 20,
- "hasPreviousPage": false,
- "hasNextPage": true
 },
- "charges": {- "status": "ACTIVE",
- "customer": {- "name": "Dan",
- "phone": "5511999999999",
- "taxID": {- "taxID": "31324227036",
- "type": "BR:CPF"
 }
 },
- "value": 100,
- "comment": "good",
- "correlationID": "9134e286-6f71-427a-bf00-241681624586",
- "paymentLinkID": "7777a23s-6f71-427a-bf00-241681624586",
- "brCode": "000201010212261060014br.gov.bcb.pix2584https://api.woovi.com/openpix/testing?transactionID=867ba5173c734202ac659721306b38c952040000530398654040.015802BR5909LOCALHOST6009Sao Paulo62360532867ba5173c734202ac659721306b38c963044BCA",
- "additionalInfo": [- {- "key": "Product",
- "value": "Pencil"
 },
- {- "key": "Invoice",
- "value": "18476"
 },
- {- "key": "Order",
- "value": "302"
 }
 ],
- "expiresIn": 2592000,
- "expiresDate": "2021-04-01T17:28:51.882Z",
- "createdAt": "2021-03-02T17:28:51.882Z",
- "updatedAt": "2021-03-02T17:28:51.882Z",
- "paymentMethods": {- "pix": {- "method": "PIX_COB",
- "transactionID": "9134e286-6f71-427a-bf00-241681624586",
- "identifier": "9134e286-6f71-427a-bf00-241681624586",
- "additionalInfo": [ ],
- "fee": 50,
- "value": 200,
- "status": "ACTIVE",
- "txId": "9134e286-6f71-427a-bf00-241681624586",
- "brCode": "000201010212261060014br.gov.bcb.pix2584https://api.woovi.com/openpix/testing?transactionID=867ba5173c734202ac659721306b38c952040000530398654040.015802BR5909LOCALHOST6009Sao Paulo62360532867ba5173c734202ac659721306b38c963044BCA",
 }
 }
 }
}Endpoint to create a new Charge for a customer
| return_existing | booleanExamples: 
 Make the endpoint idempotent, will return an existent charge if already has a one with the correlationID | 
Data to create a new charge
| correlationID required | string Your correlation ID to keep track of this charge | 
| value required | number Value in cents of this charge | 
| type | string  Enum: "DYNAMIC" "OVERDUE"  Charge type is used to determine whether a charge will have a deadline, fines and interests | 
| comment | string Comment to be added in infoPagador | 
| expiresIn | number Expires the charge in seconds (minimum is 5 minutes) | 
| expiresDate | string Expiration date of the charge. Only in ISO 8601 format. | 
| object or object or object (CustomerPayload)  Customer field is not required. However, if you decide to send it, you must send at least one of the following combinations, name + taxID or name + email or name + phone. | |
| ensureSameTaxID | boolean true to ensure that the payer taxID must be the same as the customer taxID. | 
| daysForDueDate | number Time in days until the charge hits the deadline so fines and interests start applying. This property is only considered for charges of type OVERDUE | 
| daysAfterDueDate | number Time in days that a charge is still payable after the deadline. This property is only considered for charges of type OVERDUE | 
| object Interests configuration. This property is only considered for charges of type OVERDUE | |
| object Fines configuration. This property is only considered for charges of type OVERDUE | |
| object Discount settings for the charge. This property is only considered for charges of type OVERDUE | |
| Array of objects Additional info of the charge | |
| enableCashbackPercentage | boolean true to enable cashback and false to disable. | 
| enableCashbackExclusivePercentage | boolean true to enable fidelity cashback and false to disable. | 
| subaccount | string Pix key of the subaccount to receive the charge | 
| Array of objects This is the array that will configure how will be splitted the value of the charge | 
{- "correlationID": "9134e286-6f71-427a-bf00-241681624587",
- "value": 100,
- "comment": "good",
- "customer": {- "name": "Dan",
- "taxID": "31324227036",
- "phone": "5511999999999"
 },
- "additionalInfo": [- {- "key": "Product",
- "value": "Pencil"
 },
- {- "key": "Invoice",
- "value": "18476"
 },
- {- "key": "Order",
- "value": "302"
 }
 ]
}{- "charge": {- "status": "ACTIVE",
- "customer": {- "name": "Dan",
- "phone": "5511999999999",
- "taxID": {- "taxID": "31324227036",
- "type": "BR:CPF"
 }
 },
- "value": 100,
- "comment": "good",
- "correlationID": "9134e286-6f71-427a-bf00-241681624586",
- "paymentLinkID": "7777a23s-6f71-427a-bf00-241681624586",
- "expiresIn": 2592000,
- "expiresDate": "2021-04-01T17:28:51.882Z",
- "createdAt": "2021-03-02T17:28:51.882Z",
- "updatedAt": "2021-03-02T17:28:51.882Z",
- "brCode": "000201010212261060014br.gov.bcb.pix2584https://api.woovi.com/openpix/testing?transactionID=867ba5173c734202ac659721306b38c952040000530398654040.015802BR5909LOCALHOST6009Sao Paulo62360532867ba5173c734202ac659721306b38c963044BCA",
- "additionalInfo": [- {- "key": "Product",
- "value": "Pencil"
 },
- {- "key": "Invoice",
- "value": "18476"
 },
- {- "key": "Order",
- "value": "302"
 }
 ],
- "paymentMethods": {- "pix": {- "method": "PIX_COB",
- "transactionID": "9134e286-6f71-427a-bf00-241681624586",
- "identifier": "9134e286-6f71-427a-bf00-241681624586",
- "additionalInfo": [ ],
- "fee": 50,
- "value": 200,
- "status": "ACTIVE",
- "txId": "9134e286-6f71-427a-bf00-241681624586",
- "brCode": "000201010212261060014br.gov.bcb.pix2584https://api.woovi.com/openpix/testing?transactionID=867ba5173c734202ac659721306b38c952040000530398654040.015802BR5909LOCALHOST6009Sao Paulo62360532867ba5173c734202ac659721306b38c963044BCA",
 }
 }
 }
}Endpoint to get all refunds of a charge
| id required | stringExamples: 
 The correlation ID of the charge. You will need URI encoding if your correlation ID has characters outside the ASCII set or reserved characters (%, #, /). | 
const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/charge/cf4012c9-b2ac-484d-8121-deedd1c6d8af/refund', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "refunds": [- {- "status": "IN_PROCESSING",
- "value": 10,
- "correlationID": "9134e286-6f71-427a-bf00-241681624586",
- "endToEndId": "E23114447202304181826HJNwY577YDX",
- "time": "2021-03-02T17:28:51.882Z"
 },
- {- "status": "CONFIRMED",
- "value": 40,
- "correlationID": "589a378e-ab45-4f30-bd4d-4496c60f88cf",
- "endToEndId": "E23114447202304181057pOhPMsp2pJZ",
- "time": "2021-03-05T14:49:02.922Z",
- "comment": "Comentário do reembolso"
 }
 ]
}Endpoint to create a new refund for a charge
| id required | stringExamples: 
 The correlation ID of the charge. You will need URI encoding if your correlation ID has characters outside the ASCII set or reserved characters (%, #, /). | 
Data to create a new refund for a charge
| correlationID required | string Your correlation ID to keep track for this refund | 
| value | number Value in cents for this refund | 
| comment | string  <= 140  Comment for this refund. Maximum length of 140 characters. | 
{- "correlationID": "a273e72c-9547-4c75-a213-3b0a2735b8d5",
- "value": 100,
- "comment": "Comentário do reembolso"
}{- "refund": {- "status": "IN_PROCESSING",
- "value": 100,
- "correlationID": "a273e72c-9547-4c75-a213-3b0a2735b8d5",
- "endToEndId": "E23114447202304181826HJNwY577YDX",
- "time": "2023-03-02T17:28:51.882Z",
- "comment": "Comentário do reembolso"
 }
}const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/company', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "company": {- "officialName": "Company Official Name",
- "tradeName": "Company Trade Name",
- "taxID": "12345678901234",
- "correlationID": "corr-123456"
 }
}| id required | stringExamples: 
 Correlation ID or Tax ID | 
const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/customer/fe7834b4060c488a9b0f89811be5f5cf', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "customer": {- "name": "Dan",
- "phone": "5511999999999",
- "taxID": {- "taxID": "31324227036",
- "type": "BR:CPF"
 },
- "correlationID": "fe7834b4060c488a9b0f89811be5f5cf"
 }
}const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/customer', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "pageInfo": {- "skip": 0,
- "limit": 10,
- "totalCount": 20,
- "hasPreviousPage": false,
- "hasNextPage": true
 },
- "customers": {- "customer": {- "name": "Dan",
- "phone": "5511999999999",
- "taxID": {- "taxID": "31324227036",
- "type": "BR:CPF"
 }
 }
 }
}Endpoint to create a new Customer
Data to create a new customer
| name required | string | 
| string | |
| phone | string | 
| taxID required | string | 
| correlationID | string | 
| object | 
{- "name": "Dan",
- "taxID": "31324227036",
- "phone": "5511999999999",
- "correlationID": "9134e286-6f71-427a-bf00-241681624586",
- "address": {- "zipcode": "30421322",
- "street": "Street",
- "number": "100",
- "neighborhood": "Neighborhood",
- "city": "Belo Horizonte",
- "state": "MG",
- "complement": "APTO",
- "country": "BR"
 }
}{- "customer": {- "name": "Dan",
- "phone": "5511999999999",
- "taxID": {- "taxID": "31324227036",
- "type": "BR:CPF"
 },
- "address": {- "zipcode": "30421322",
- "street": "Street",
- "number": "100",
- "neighborhood": "Neighborhood",
- "city": "Belo Horizonte",
- "state": "MG",
- "complement": "APTO",
- "country": "BR"
 }
 }
}Endpoint to update a Customer
| correlationID required | stringExamples: 
 correlation ID | 
Data to update a existent customer
| name | string | 
| string | |
| phone | string | 
| taxID | string | 
| object | 
{- "name": "Dan",
- "phone": "5511999999999",
- "address": {- "zipcode": "30421322",
- "street": "Street",
- "number": "100",
- "neighborhood": "Neighborhood",
- "city": "Belo Horizonte",
- "state": "MG",
- "complement": "APTO",
- "country": "BR"
 }
}{- "customer": {- "name": "Dan",
- "phone": "5511999999999",
- "taxID": {- "taxID": "31324227036",
- "type": "BR:CPF"
 },
- "address": {- "zipcode": "30421322",
- "street": "Street",
- "number": "100",
- "neighborhood": "Neighborhood",
- "city": "Belo Horizonte",
- "state": "MG",
- "complement": "APTO",
- "country": "BR"
 }
 }
}Upload evidence files for dispute/med. \nOBS para obter esse o id da disputa, veja esse artigo https://developers.woovi.com/docs/disputa/how-add-new-evidence-in-dispute#1-obter-o-id-da-disputa
| Array of objects documents for upload | |||||||
|  Array  
 | |||||||
{- "documents": [- {- "url": "string",
- "correlationID": "string",
- "description": "string"
 }
 ]
}{- "documents": [- {
- "correlationID": "id123456789",
- "description": "description for my document"
 }
 ]
}| id required | string  Example:  Ea9c291526ae54b4cb41d9909bdf6d792 The id must be the endToEndId of the transaction that originated the Dispute | 
const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/dispute/Ea9c291526ae54b4cb41d9909bdf6d792', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "dispute": {- "status": "ACCEPTED",
- "name": "John Doe",
- "phoneNumber": "+5511999999999",
- "value": 10000,
- "disputeReason": "Product not received",
- "endToEndId": "Ea9c291526ae54b4cb41d9909bdf6d792",
- "type": "MED"
 }
}| start | string <date-time>  (Start Date)   Example:  start=2020-01-01T00:00:00Z Start date used in the query. Complies with RFC 3339. | 
| end | string <date-time>  (End Date)   Example:  end=2020-12-01T17:00:00Z End date used in the query. Complies with RFC 3339. | 
const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/dispute?start=2020-01-01T00%3A00%3A00Z&end=2020-12-01T17%3A00%3A00Z', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "pageInfo": {- "skip": 0,
- "limit": 10,
- "totalCount": 20,
- "hasPreviousPage": false,
- "hasNextPage": true
 },
- "disputes": [- {- "disputeReason": "Dispute reason test",
- "name": "Seu Jorge",
- "phoneNumber": "+551199999999",
- "status": "IN_REVIEW",
- "value": 100,
- "createdAt": "2021-03-02T17:28:51.882Z",
- "updatedAt": "2021-03-02T17:28:51.882Z"
 }
 ]
}Partners integrate affiliated companies.
They can register new companies, manage them, and earn money from them.
As a partner company, you can create a new application to some of your companies. The application should give access to our API to this companies, so they can use it too.
The request body to create a pre registration.
| object | |
| object (TaxIDObjectPayload)  | 
{- "application": {- "name": "MyAPIAccess",
- "type": "API"
 },
- "taxID": {- "taxID": "65914571000187",
- "type": "BR:CNPJ"
 }
}{- "application": {- "name": "string",
- "isActive": true,
- "type": "API",
- "clientId": "string",
- "clientSecret": "string"
 }
}| taxID required | stringExamples: 
 The raw tax ID from the preregistration that you want to get. | 
const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/partner/company/60151449000182', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "preRegistration": {- "preRegistration": {- "name": "string",
- "taxID": {- "taxID": "string",
- "type": "BR:CNPJ"
 }
 },
- "user": {- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "phone": "string",
- "taxID": {- "taxID": "string",
- "type": "BR:CNPJ"
 }
 },
- "company": {- "id": "string",
- "name": "string",
- "taxID": {- "taxID": "string",
- "type": "BR:CNPJ"
 }
 },
- "account": {- "clientId": "string"
 }
 }
}const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/partner/company', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "preRegistrations": [- {- "preRegistration": {- "name": "string",
- "taxID": {- "taxID": "string",
- "type": "BR:CNPJ"
 }
 },
- "user": {- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "phone": "string",
- "taxID": {- "taxID": "string",
- "type": "BR:CNPJ"
 }
 },
- "company": {- "id": "string",
- "name": "string",
- "taxID": {- "taxID": "string",
- "type": "BR:CNPJ"
 }
 },
- "account": {- "clientId": "string"
 }
 }
 ],
- "pageInfo": {- "errors": [- {- "message": "string",
- "data": {- "skip": 0,
- "limit": 0
 }
 }
 ],
- "skip": 0,
- "limit": 0,
- "totalCount": 0,
- "hasPreviousPage": true,
- "hasNextPage": true
 }
}As a partner company, you can create a new pre registration referencing your company as a partner.
The request body to create a pre registration.
| object (PreRegistrationObject)  | |
| object (PreRegistrationUserObject)  | 
{- "preRegistration": {- "name": "Example LLC",
- "taxID": {- "taxID": "11111111111111",
- "type": "BR:CNPJ"
 },
- "website": "examplellc.com"
 },
- "user": {- "firstName": "John",
- "lastName": "Doe",
- "phone": "+5511912345678",
- "taxID": {- "taxID": "1111111111",
- "type": "BR:CPF"
 }
 }
}{- "preRegistration": {- "name": "string",
- "website": "string",
- "taxID": {- "taxID": "string",
- "type": "BR:CNPJ"
 }
 },
- "user": {- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "phone": "string",
- "taxID": {- "taxID": "string",
- "type": "BR:CNPJ"
 }
 }
}Endpoint to approve a payment
Data to approve a payment request
| correlationID | string the correlation ID of the payment to be approved | 
{- "correlationID": "payment1"
}{- "payment": {- "value": 100,
- "status": "APPROVED",
- "destinationAlias": "c4249323-b4ca-43f2-8139-8232aab09b93",
- "comment": "payment comment",
- "correlationID": "payment1"
 },
- "transaction": {- "value": 100,
- "endToEndId": "transaction-end-to-end-id",
- "time": "2023-03-20T13:14:17.000Z"
 },
- "destination": {- "name": "Dan",
- "taxID": "31324227036",
- "pixKey": "c4249323-b4ca-43f2-8139-8232aab09b93",
- "bank": "A Bank",
- "branch": "1",
- "account": "123456"
 }
}| id required | stringExamples: 
 payment ID or correlation ID | 
const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/payment/Q2hhcmdlOjYwM2U3NDlhNDI1NjAyYmJiZjRlN2JlZA==', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "payment": {- "value": 100,
- "status": "CONFIRMED",
- "destinationAlias": "c4249323-b4ca-43f2-8139-8232aab09b93",
- "comment": "payment comment",
- "correlationID": "payment1",
- "sourceAccountId": "my-source-account-id"
 },
- "transaction": {- "value": 100,
- "endToEndId": "transaction-end-to-end-id",
- "debitParty": {- "account": {- "branch": "0001",
- "account": "00000000000000023280",
- "accountType": "TRAN"
 },
- "psp": {- "id": "123456",
- "name": "COMPANY DEBIT LTDA",
- "code": "123456789"
 },
- "holder": {- "name": "name holder",
- "nameFriendly": "name friendly holder"
 },
- "taxID": {- "taxID": "1212345600198",
- "type": "BR:CNPJ"
 }
 },
- "creditParty": {
- "account": {- "branch": "0001",
- "account": "00000000000000012345",
- "accountType": "TRAN"
 },
- "psp": {- "id": "123456",
- "name": "COMPANY CREDIT LTDA"
 },
- "holder": {- "name": "name holder",
- "nameFriendly": "name friendly",
- "taxID": {- "taxID": "00123456000199",
- "type": "BR:CNPJ"
 }
 }
 },
- "time": "2023-03-20T13:14:17.000Z"
 },
- "destination": {- "name": "Dan",
- "taxID": "31324227036",
- "pixKey": "c4249323-b4ca-43f2-8139-8232aab09b93",
- "bank": "A Bank",
- "branch": "1",
- "account": "123456"
 }
}const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/payment', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "pageInfo": {- "skip": 0,
- "limit": 10,
- "totalCount": 20,
- "hasPreviousPage": false,
- "hasNextPage": true
 },
- "payments": {- "payment": {- "value": 100,
- "status": "CONFIRMED",
- "destinationAlias": "c4249323-b4ca-43f2-8139-8232aab09b93",
- "comment": "payment comment",
- "correlationID": "payment1",
- "sourceAccountId": "my-source-account-id"
 },
- "transaction": {- "value": 100,
- "endToEndId": "transaction-end-to-end-id",
- "time": "2023-03-20T13:14:17.000Z",
- "debitParty": {- "account": {- "branch": "0001",
- "account": "00000000000000023280",
- "accountType": "TRAN"
 },
- "psp": {- "id": "123456",
- "name": "COMPANY DEBIT LTDA",
- "code": "123456789"
 },
- "holder": {- "name": "name holder",
- "nameFriendly": "name friendly holder"
 },
- "taxID": {- "taxID": "1212345600198",
- "type": "BR:CNPJ"
 }
 },
- "creditParty": {
- "account": {- "branch": "0001",
- "account": "00000000000000012345",
- "accountType": "TRAN"
 },
- "psp": {- "id": "123456",
- "name": "COMPANY CREDIT LTDA"
 },
- "holder": {- "name": "name holder",
- "nameFriendly": "name friendly",
- "taxID": {- "taxID": "00123456000199",
- "type": "BR:CNPJ"
 }
 }
 }
 },
- "destination": {- "name": "Dan",
- "taxID": "31324227036",
- "pixKey": "c4249323-b4ca-43f2-8139-8232aab09b93",
- "bank": "A Bank",
- "branch": "1",
- "account": "123456"
 }
 }
}Endpoint to request a payment
Data to create a payment request
| type required | string  Value: "PIX_KEY"  type of the payment | 
| value required | number value of the requested payment in cents | 
| destinationAlias required | string the pix key the payment should be sent to | 
| destinationAliasType required | string  Enum: "CPF" "CNPJ" "EMAIL" "PHONE" "RANDOM"  the type of the pix key the payment should be sent to | 
| correlationID required | string an unique identifier for your payment | 
| pixKeyEndToEndId | string the end to end id of the pix key used for track pix key consultations | 
| comment | string the comment that will be send alongisde your payment | 
| object additional metadata for the payment (max 30 keys) | 
{- "value": 100,
- "destinationAlias": "c4249323-b4ca-43f2-8139-8232aab09b93",
- "destinationAliasType": "RANDOM",
- "comment": "payment comment",
- "correlationID": "payment1",
- "pixKeyEndToEndId": "E1234567890",
- "metadata": {- "orderId": "order-123",
- "userId": "user-456",
- "source": "mobile-app"
 }
}{- "payment": {- "value": 100,
- "status": "CREATED",
- "destinationAlias": "c4249323-b4ca-43f2-8139-8232aab09b93",
- "destinationAliasType": "RANDOM",
- "comment": "payment comment",
- "correlationID": "payment1"
 }
}Get data from a Pix key if it exists
| pixKey required | string The Pix key to check | 
{- "pixKey": "string",
- "type": "CPF",
- "pixKeyEndToEndId": "string",
- "owner": {- "account": "string",
- "branch": "string",
- "psp": "string",
- "name": "string",
- "taxID": "string"
 }
}const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/pix-keys', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "pixKeys": [- {- "key": "string",
- "type": "CPF",
- "isDefault": true
 }
 ],
- "account": {- "accountId": "string",
- "isDefault": true,
- "balance": {- "total": 0,
- "blocked": 0,
- "available": 0
 }
 }
}Creates a new Pix key
| key required | string | 
| type required | string  Enum: "CNPJ" "EVP"  | 
{- "key": "string",
- "type": "CNPJ"
}{- "key": "string",
- "type": "CPF",
- "isDefault": true
}const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/pix-keys/tokens', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "tokens": 0,
- "maxTokens": 0,
- "nextRefresh": "string",
- "tokensAfterRefresh": 0,
- "refreshRate": 0
}| id required | stringExamples: 
 pixQrCode ID, correlation ID or emv identifier | 
const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/qrcode-static/Q2hhcmdlOjYwM2U3NDlhNDI1NjAyYmJiZjRlN2JlZA==', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "pixQrCode": {- "name": "pix qrcode static",
- "value": 100,
- "comment": "pix qrcode static",
- "correlationID": "fe7834b4060c488a9b0f89811be5f5cf",
- "identifier": "zr7833b4060c488a9b0f89811",
- "paymentLinkID": "7777-6f71-427a-bf00-241681624586",
- "brCode": "000201010212261060014br.gov.bcb.pix2584https://api.woovi.com/openpix/testing?transactionID=867ba5173c734202ac659721306b38c952040000530398654040.015802BR5909LOCALHOST6009Sao Paulo62360532867ba5173c734202ac659721306b38c963044BCA",
- "createdAt": "2021-03-02T17:28:51.882Z",
- "updatedAt": "2021-03-02T17:28:51.882Z"
 }
}const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/qrcode-static', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "pageInfo": {- "skip": 0,
- "limit": 10,
- "totalCount": 20,
- "hasPreviousPage": false,
- "hasNextPage": true
 },
- "pixQrCodes": {- "name": "pix qrcode",
- "value": 100,
- "comment": "good",
- "correlationID": "9134e286-6f71-427a-bf00-241681624586",
- "identifier": "zr7833b4060c488a9b0f89811",
- "paymentLinkID": "7777a23s-6f71-427a-bf00-241681624586",
- "brCode": "000201010212261060014br.gov.bcb.pix2584https://api.woovi.com/openpix/testing?transactionID=867ba5173c734202ac659721306b38c952040000530398654040.015802BR5909LOCALHOST6009Sao Paulo62360532867ba5173c734202ac659721306b38c963044BCA",
- "createdAt": "2021-03-02T17:28:51.882Z",
- "updatedAt": "2021-03-02T17:28:51.882Z"
 }
}Endpoint to create a new Pix QrCode Static
Data to create a new Pix QrCode Static
| name required | string Name of this pix qrcode | 
| correlationID | string Your correlation ID to keep track of this qrcode | 
| value | number Value in cents of this qrcode | 
| comment | string Comment to be added in infoPagador | 
| pixKey | string The pix key that this qrcode is associated with | 
{- "name": "my-qr-code",
- "correlationID": "9134e286-6f71-427a-bf00-241681624586",
- "value": 100,
- "comment": "good"
}{- "pixQrCode": {- "value": 100,
- "comment": "good",
- "correlationID": "9134e286-6f71-427a-bf00-241681624586",
- "identifier": "zr7833b4060c488a9b0f89811",
- "paymentLinkID": "7777a23s-6f71-427a-bf00-241681624586",
- "createdAt": "2021-03-02T17:28:51.882Z",
- "updatedAt": "2021-03-02T17:28:51.882Z",
- "brCode": "000201010212261060014br.gov.bcb.pix2584https://api.woovi.com/openpix/testing?transactionID=867ba5173c734202ac659721306b38c952040000530398654040.015802BR5909LOCALHOST6009Sao Paulo62360532867ba5173c734202ac659721306b38c963044BCA"
 }
}| id required | string you can use the transaction id from openpix or the endToEndId of transaction from bank | 
{- "transaction": {- "customer": {- "name": "Dan",
- "phone": "5511999999999",
- "taxID": {- "taxID": "31324227036",
- "type": "BR:CPF"
 },
- "correlationID": "9134e286-6f71-427a-bf00-241681624586"
 },
- "payer": {- "name": "Dan",
- "phone": "5511999999999",
- "taxID": {- "taxID": "31324227036",
- "type": "BR:CPF"
 },
- "correlationID": "9134e286-6f71-427a-bf00-241681624586"
 },
- "charge": {- "status": "ACTIVE",
- "customer": "603f81fcc6bccc24326ffb43",
- "correlationID": "9134e286-6f71-427a-bf00-241681624586",
- "createdAt": "2021-03-03T12:33:00.546Z",
- "updatedAt": "2021-03-03T12:33:00.546Z"
 },
- "withdraw": {- "value": 100,
- "time": "2021-03-03T12:33:00.536Z",
- "infoPagador": "payer info 1",
- "endToEndId": "E18236120202012032010s01345689XBY",
- "createdAt": "2021-03-03T12:33:00.546Z"
 },
- "infoPagador": "payer info 0",
- "value": 100,
- "time": "2021-03-03T12:33:00.536Z",
- "transactionID": "transactionID",
- "type": "PAYMENT",
- "endToEndId": "E18236120202012032010s0133872GZA",
- "globalID": "UGl4VHJhbnNhY3Rpb246NzE5MWYxYjAyMDQ2YmY1ZjUzZGNmYTBi",
- "creditParty": {- "account": {- "account": "00000000000005469660",
- "accountType": "CACC",
- "branch": "8615"
 },
- "holder": {- "name": "CREDIT PARTY NAME",
- "nameFriendly": "CREDIT PARTY NAME FRIENDLY",
- "taxID": {- "taxID": "28613271892",
- "type": "BR:CPF"
 }
 },
- "psp": {- "id": "00000001",
- "name": "BCO DO BRASIL S.A."
 }
 },
- "debitParty": {- "account": {- "account": "1235678",
- "accountType": "TRAN",
- "branch": "1"
 },
- "holder": {- "name": "Awesome Company 1",
- "nameFriendly": "Call me Awesome"
 },
- "psp": {- "code": "54811417",
- "id": "FROZEN-ID",
- "name": "WOOVI IP LTDA"
 }
 }
 }
}| start | string <date-time>  (Start Date)   Example:  start=2020-01-01T00:00:00Z Start date used in the query. Complies with RFC 3339. | 
| end | string <date-time>  (End Date)   Example:  end=2020-12-01T17:00:00Z End date used in the query. Complies with RFC 3339. | 
| charge | string  Example:  charge=Q2hhcmdlOjYwM2U3NDlhNDI1NjAyYmJiZjRlN2JlZA You can use the charge ID or correlation ID or transaction ID of charge to get a list of transactions related of this transaction | 
| pixQrCode | string  Example:  pixQrCode=Q2hhcmdlOjYwM2U3NDlhNDI1NjAyYmJiZjRlN2JlZA You can use the QrCode static ID or correlation ID or identifier field of QrCode static to get a list of QrCode related of this transaction | 
| withdrawal | string  Example:  withdrawal=Q2hhcmdlOjYwM2U3NDlhNDI1NjAyYmJiZjRlN2JlZA You can use the ID or EndToEndId of a withdrawal transaction to get all transactions related to the withdrawal | 
const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/transaction?start=2020-01-01T00%3A00%3A00Z&end=2020-12-01T17%3A00%3A00Z&charge=Q2hhcmdlOjYwM2U3NDlhNDI1NjAyYmJiZjRlN2JlZA&pixQrCode=Q2hhcmdlOjYwM2U3NDlhNDI1NjAyYmJiZjRlN2JlZA&withdrawal=Q2hhcmdlOjYwM2U3NDlhNDI1NjAyYmJiZjRlN2JlZA', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "pageInfo": {- "skip": 0,
- "limit": 10,
- "totalCount": 20,
- "hasPreviousPage": false,
- "hasNextPage": true
 },
- "transactions": {- "customer": {- "name": "Dan",
- "phone": "5511999999999",
- "taxID": {- "taxID": "31324227036",
- "type": "BR:CPF"
 },
- "correlationID": "9134e286-6f71-427a-bf00-241681624586"
 },
- "payer": {- "name": "Dan",
- "phone": "5511999999999",
- "taxID": {- "taxID": "31324227036",
- "type": "BR:CPF"
 },
- "correlationID": "9134e286-6f71-427a-bf00-241681624586"
 },
- "charge": {- "status": "ACTIVE",
- "customer": "603f81fcc6bccc24326ffb43",
- "correlationID": "9134e286-6f71-427a-bf00-241681624586",
- "createdAt": "2021-03-03T12:33:00.546Z",
- "updatedAt": "2021-03-03T12:33:00.546Z"
 },
- "withdraw": {- "value": 100,
- "time": "2021-03-03T12:33:00.536Z",
- "infoPagador": "payer info 1",
- "endToEndId": "E18236120202012032010s01345689XBY"
 },
- "type": "PAYMENT",
- "infoPagador": "payer info 0",
- "value": 100,
- "time": "2021-03-03T12:33:00.536Z",
- "transactionID": "transactionID",
- "endToEndId": "E18236120202012032010s0133872GZA"
 }
}| id required | stringExamples: 
 refund ID or correlation ID | 
const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/refund/Q2hhcmdlOjYwM2U3NDlhNDI1NjAyYmJiZjRlN2JlZA==', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "pixTransactionRefund": {- "value": 100,
- "correlationID": "7777-6f71-427a-bf00-241681624586",
- "refundId": "11bf5b37e0b842e08dcfdc8c4aefc000",
- "returnIdentification": "D09089356202108032000a543e325902",
- "comment": "Comentário do reembolso"
 }
}const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/refund', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "pageInfo": {- "skip": 0,
- "limit": 10,
- "totalCount": 20,
- "hasPreviousPage": false,
- "hasNextPage": true
 },
- "refunds": [- {- "status": "IN_PROCESSING",
- "value": 100,
- "correlationID": "9134e286-6f71-427a-bf00-241681624586",
- "refundId": "9134e2866f71427abf00241681624586",
- "time": "2021-03-02T17:28:51.882Z",
- "comment": "Comentário do reembolso"
 }
 ]
}Endpoint to create a new refund for a customer
Data to create a new refund
| value | number | 
| transactionEndToEndId | string Your transaction ID, or endToEnd ID, to keep track of this refund | 
| correlationID | string Your correlation ID, unique identifier refund | 
| comment | string  <= 140  Comment of this refund. Maximum length of 140 characters. | 
{- "transactionEndToEndId": "9134e286-6f71-427a-bf00-241681624586",
- "correlationID": "9134e286-6f71-427a-bf00-241681624586",
- "value": 100,
- "comment": "Comentário do reembolso"
}{- "refund": {- "status": "IN_PROCESSING",
- "value": 100,
- "correlationID": "9134e286-6f71-427a-bf00-241681624586",
- "refundId": "9134e2866f71427abf00241681624586",
- "time": "2021-03-02T17:28:51.882Z",
- "comment": "Comentário do reembolso"
 }
}Endpoints to manage Payment Service Providers (PSPs) in the PIX ecosystem.
PSPs are financial institutions that can process PIX payments. Each PSP has unique identifiers like ISPB and COMPE codes used for identification and validation.
| ispb | string  Example:  ispb=3030310 Filter PSPs by ISPB code | 
| name | string  Example:  name=brasil Filter PSPs by name | 
| compe | string  Example:  compe=001 Filter PSPs by COMPE code | 
const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/psp?ispb=3030310&name=brasil&compe=001', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "success": true,
- "psps": [- {- "name": "BCO DO BRASIL S.A.",
- "ispb": "00000000",
- "code": "00000000",
- "compe": "001"
 },
- {- "name": "CAIXA ECONOMICA FEDERAL",
- "ispb": "00360305",
- "code": "00360305",
- "compe": "104"
 }
 ]
}| ReceiptType required | string  Enum: "pix-in" "pix-out" "pix-refund" Examples: 
 The ReceiptType from the payment transaction to export. | 
| EndToEndId required | stringExamples: 
 The EndToEndId from the payment transaction to export. | 
const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/receipt/pix-in/E12345678202406201221abcdef12345', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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": "string"
}Withdraw from a Sub Account and return the withdrawal transaction information
| id required | 
Data to make a withdraw partial
| value | number Value of the withdrawal in cents if want to make a partial withdrawal | 
{- "value": 1000
}{- "transaction": {- "status": "CREATED",
- "value": 100,
- "endToEndId": "ENDTOENDID_1234567890",
- "correlationID": "TESTING1323",
- "comment": "testing-transaction"
 }
}Deletes a Sub Account if it has no remaining balance
| id required | 
const http = require('https'); const options = { method: 'DELETE', hostname: 'api.woovi.com', port: null, path: '/api/v1/subaccount/[email protected]', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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",
- "pixKey": "[email protected]"
}| id required | stringExamples: 
 pix key registered to the subaccount | 
const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/subaccount/c4249323-b4ca-43f2-8139-8232aab09b93', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "SubAccount": {- "name": "test-sub-account",
- "pixKey": "c4249323-b4ca-43f2-8139-8232aab09b93",
- "balance": 100
 }
}const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/subaccount', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "subAccounts": [- {- "name": "test-sub-account",
- "pixKey": "c4249323-b4ca-43f2-8139-8232aab09b93",
- "balance": 100
 }
 ],
- "pageInfo": {- "skip": 0,
- "limit": 10,
- "totalCount": 20,
- "hasPreviousPage": false,
- "hasNextPage": true
 }
}Data to create a new subAccount or retrieve existing one
| pixKey | string The pix key for the sub account | 
| name | string Name of the sub account | 
{- "pixKey": "9134e286-6f71-427a-bf00-241681624587",
- "name": "Test Account"
}{- "SubAccount": {- "name": "test-sub-account",
- "pixKey": "c4249323-b4ca-43f2-8139-8232aab09b93"
 }
}Transfers the amount from the subaccount to the main account.
| id required | 
| value required | number Amount to debit from the account | 
| description | string Optional description for the debit operation | 
{- "value": 50,
- "description": "Monthly payment"
}{
- "value": 50,
- "description": "Monthly payment",
- "success": "Sub-account withdrawal has been successfully debited, 50"
}Transfer between subaccounts
Data to make a new transfer between subaccounts
| value required | number The value of the transfer in cents | 
| fromPixKey required | string The transfer origin pix key | 
| fromPixKeyType required | string  Enum: "CPF" "CNPJ" "EMAIL" "PHONE" "RANDOM"  The transfer origin pix key type | 
| toPixKey required | string The transfer destination pix key | 
| toPixKeyType required | string  Enum: "CPF" "CNPJ" "EMAIL" "PHONE" "RANDOM"  The transfer destination pix key type | 
| correlationID | string Your correlation ID to keep track of this transfer | 
{- "value": 65,
- "fromPixKey": "c4249323-b4ca-43f2-8139-874baab09b93",
- "fromPixKeyType": "RANDOM",
- "toPixKey": "3143da48-2bc7-49a4-89bd-4e22f73bfb0c",
- "toPixKeyType": "RANDOM"
}{- "value": 65,
- "destinationSubaccount": {- "name": "test-sub-account-1",
- "pixKey": "c4249323-b4ca-43f2-8139-874baab09b93",
- "balance": 100
 },
- "originSubaccount": {- "name": "test-sub-account-2",
- "pixKey": "3143da48-2bc7-49a4-89bd-4e22f73bfb0c",
- "balance": 100
 }
}| id required | string  Example:  UGF5bWVudFN1YnNjcmlwdGlvbjo2M2UzYjJiNzczZDNkOTNiY2RkMzI5OTM= The globalID of the installment. | 
const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/installments/UGF5bWVudFN1YnNjcmlwdGlvbjo2M2UzYjJiNzczZDNkOTNiY2RkMzI5OTM=', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "installment": {- "dateGenerateCharge": "2019-08-24T14:15:22Z",
- "expiration": 0,
- "installmentNumber": 0,
- "value": 0,
- "status": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "cobr": {- "identifierId": "string",
- "recurrencyId": "string",
- "installmentId": "string",
- "endToEndId": "string",
- "rejectCode": "string",
- "status": "string",
- "value": 0,
- "tries": [- {- "tryStatus": "string",
- "finalityPurpose": "string",
- "rejectCode": "string",
- "value": 0,
- "requestedExecutionDate": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
 }
 ],
- "paymentDate": "string",
- "chargeDate": "string",
- "expiryDate": "string",
- "description": "string",
- "createdAt": "string"
 },
- "paymentSubscriptionGlobalID": "string",
- "correlationID": "string",
- "globalID": "string"
 }
}| id required | string  Example:  UGF5bWVudFN1YnNjcmlwdGlvbjo2M2UzYjJiNzczZDNkOTNiY2RkMzI5OTM= The globalID of the subscription. | 
const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/subscriptions/UGF5bWVudFN1YnNjcmlwdGlvbjo2M2UzYjJiNzczZDNkOTNiY2RkMzI5OTM=/installments', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "installments": [- {- "dateGenerateCharge": "2019-08-24T14:15:22Z",
- "expiration": 0,
- "installmentNumber": 0,
- "value": 0,
- "status": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "cobr": {- "identifierId": "string",
- "recurrencyId": "string",
- "installmentId": "string",
- "endToEndId": "string",
- "rejectCode": "string",
- "status": "string",
- "value": 0,
- "tries": [- {- "tryStatus": "string",
- "finalityPurpose": "string",
- "rejectCode": "string",
- "value": 0,
- "requestedExecutionDate": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
 }
 ],
- "paymentDate": "string",
- "chargeDate": "string",
- "expiryDate": "string",
- "description": "string",
- "createdAt": "string"
 },
- "paymentSubscriptionGlobalID": "string",
- "correlationID": "string",
- "globalID": "string"
 }
 ],
- "pageInfo": {- "errors": [- {- "message": "string",
- "data": {- "skip": 0,
- "limit": 0
 }
 }
 ],
- "skip": 0,
- "limit": 0,
- "totalCount": 0,
- "hasPreviousPage": true,
- "hasNextPage": true
 }
}| id required | string  Example:  UGF5bWVudFN1YnNjcmlwdGlvbjo2M2UzYjJiNzczZDNkOTNiY2RkMzI5OTM= The globalID or correlationID of the subscription. | 
const http = require('https'); const options = { method: 'PUT', hostname: 'api.woovi.com', port: null, path: '/api/v1/subscriptions/UGF5bWVudFN1YnNjcmlwdGlvbjo2M2UzYjJiNzczZDNkOTNiY2RkMzI5OTM=/cancel', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{ }| id required | string  Example:  UGF5bWVudFN1YnNjcmlwdGlvbjo2M2UzYjJiNzczZDNkOTNiY2RkMzI5OTM= The globalID or correlationID of the subscription. | 
const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/subscriptions/UGF5bWVudFN1YnNjcmlwdGlvbjo2M2UzYjJiNzczZDNkOTNiY2RkMzI5OTM=', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "subscription": {- "globalID": "UGF5bWVudFN1YnNjcmlwdGlvbjo2M2UzYjJiNzczZDNkOTNiY2RkMzI5OTM=",
- "customer": {- "name": "Dan",
- "phone": "5511999999999",
- "taxID": {- "taxID": "31324227036",
- "type": "BR:CPF"
 }
 },
- "value": 100,
- "dayGenerateCharge": 5,
- "correlationID": "subscription#1",
- "status": "ACTIVE"
 }
}const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/subscriptions', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "pageInfo": {- "skip": 0,
- "limit": 10,
- "totalCount": 20,
- "hasPreviousPage": false,
- "hasNextPage": true
 }
}Endpoint to create a new Subcription
Data to create a new Subscription
| required | object Customer of this subscription | 
| value required | number Value in cents of this subscription | 
| name | string Name of the subscription | 
| comment | string Comment to be show in QR Code | 
| dayGenerateCharge | number  [ 1 .. 31 ]   Default:  5 Day of the month that the charges will be generated. Maximum of 31. | 
| frequency | string  Enum: "WEEKLY" "MONTHLY" "SEMIANNUALLY" "ANNUALLY"  Frequency of the subscription | 
| type required | string  Enum: "PIX_RECURRING" "RECURRENT"  Type of the subscription | 
| dayDue | number  >= 3   Default:  7 Days that the charge will take to expire from the generation day. | 
| correlationID required | string Your correlation ID to keep track of this subscription | 
| Array of objects | |
| object Pix automatic options | 
{- "name": "Pix Automático",
- "value": 100,
- "customer": {- "name": "Dan",
- "taxID": "31324227036",
- "phone": "5511999999999",
- "address": {- "zipcode": "04556300",
- "street": "rua de são paulo",
- "number": "3432",
- "neighborhood": "BROOKLIN PAULISTA",
- "city": "SAO PAULO",
- "state": "SP",
- "complement": "CONJ 26"
 }
 },
- "correlationID": "My-UniqueID",
- "comment": "Comentários",
- "frequency": "WEEKLY",
- "type": "PIX_RECURRING",
- "pixRecurringOptions": {- "journey": "ONLY_RECURRENCY",
- "retryPolicy": "NON_PERMITED"
 },
- "dayGenerateCharge": 25,
- "dayDue": 3
}{- "subscription": {- "customer": {- "name": "Dan",
- "phone": "+5511999999999",
- "address": {- "zipcode": "04556300",
- "street": "rua de são paulo",
- "number": "3432",
- "neighborhood": "BROOKLIN PAULISTA",
- "city": "SAO PAULO",
- "state": "SP",
- "complement": "CONJ 26",
- "country": "BR",
- "location": {- "coordinates": [ ]
 },
- "_id": "68acbcd4a95653ef243b66eb"
 },
- "taxID": {- "taxID": "31324227036",
- "type": "BR:CPF"
 },
- "correlationID": "6f4131ea-b816-4b08-8ba6-11cf6b622a6e"
 },
- "dayGenerateCharge": 25,
- "value": 100,
- "status": "ACTIVE",
- "correlationID": "My-UniqueID",
- "pixRecurring": {- "recurrencyId": "RN5481141720250825yPWxVcFfpA1",
- "emv": "00020101021226870014br.gov.bcb.pix2565qr-h.woovi.digital/qr/v2/cob/faabf55e-8000-40e2-80d8-9651749a6abb5204000053039865802BR5911Pedro Woovi6007VITORIA62070503***80870014br.gov.bcb.pix2565qr-h.woovi.digital/qr/v2/rec/fb59c6eb-fb99-4ff6-8f4c-17e2cd042c346304FE57",
- "journey": "ONLY_RECURRENCY",
- "status": "CREATED"
 },
- "globalID": "UGF5bWVudFN1YnNjcmlwdGlvbjo2OGFjYmNkNGE5NTY1M2VmMjQzYjY2Zjc="
 }
}| id required | string  Example:  UGF5bWVudFN1YnNjcmlwdGlvbjo2M2UzYjJiNzczZDNkOTNiY2RkMzI5OTM= The globalID or correlationID of the subscription. | 
const http = require('https'); const options = { method: 'PUT', hostname: 'api.woovi.com', port: null, path: '/api/v1/subscriptions/UGF5bWVudFN1YnNjcmlwdGlvbjo2M2UzYjJiNzczZDNkOTNiY2RkMzI5OTM=/value', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{ }Create a new Cobr Manually.
| id required | string  Example:  UGF5bWVudFN1YnNjcmlwdGlvbjo2M2UzYjJiNzczZDNkOTNiY2RkMzI5OTM= The globalID of the installment. | 
Data to create a new Cobr
| value | number Valor da cobrança (Opcional) | 
{- "value": 0
}{ }Create a new Retry Manually.
| id required | string  Example:  UGF5bWVudFN1YnNjcmlwdGlvbjo2M2UzYjJiNzczZDNkOTNiY2RkMzI5OTM= The globalID of the installment. | 
Data to create a new Cobr
| value | number Valor da cobrança (Opcional) | 
{- "value": 0
}{ }Endpoint to to transfer values between accounts
Data to create a transfer
| value | number value of the transfer in cents | 
| fromPixKey | string the pix key of the account the value of the transfer will come out from | 
| toPixKey | string the pix key of the account the value of the transfer will go to | 
| correlationID | string your correlation ID to keep track of this transfer | 
{- "value": 100,
- "correlationID": "123e4567-e89b-12d3-a456-426614174000"
}{- "transaction": {- "value": 100,
- "time": "2023-06-22T15:33:27.165Z,",
- "correlationID": "c782e0ac-833d-4a89-9e73-9b60b2b41d3a"
 }
}Endpoint to delete a Webhook
| id required | stringExamples: 
 webhook ID | 
const http = require('https'); const options = { method: 'DELETE', hostname: 'api.woovi.com', port: null, path: '/api/v1/webhook/Q2hhcmdlOjYwM2U3NDlhNDI1NjAyYmJiZjRlN2JlZA==', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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": "string"
}| url | string  Example:  url=https://mycompany.com.br/webhook You can use the url to filter all webhooks | 
const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/webhook?url=https%3A%2F%2Fmycompany.com.br%2Fwebhook', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "pageInfo": {- "skip": 0,
- "limit": 100,
- "totalCount": 2,
- "hasPreviousPage": false,
- "hasNextPage": true
 },
- "webhooks": [- {- "id": "V2ViaG9vazo2MDNlYmUxZWRlYjkzNWU4NmQyMmNmMTg=",
- "name": "webhookName",
- "authorization": "openpix",
- "event": "OPENPIX:TRANSACTION_RECEIVED",
- "isActive": true,
- "createdAt": "2021-03-02T22:29:10.720Z",
- "updatedAt": "2021-03-02T22:29:10.720Z"
 },
- {- "id": "V2ViaG9vazo2MDNlYmUxZWRlYjkzNWU4NmQyMmNmOTk=",
- "name": "webhookName",
- "authorization": "openpix",
- "event": "OPENPIX:CHARGE_CREATED",
- "isActive": true,
- "createdAt": "2021-03-02T22:29:10.720Z",
- "updatedAt": "2021-03-02T22:29:10.720Z"
 }
 ]
}Endpoint to create a new Webhook
Data to create a new webhook
| object (WebhookPayload)  | |||||||||||
| 
 | |||||||||||
{- "webhook": {- "name": "webhookName",
- "event": "OPENPIX:CHARGE_CREATED",
- "authorization": "openpix",
- "isActive": true
 }
}{- "webhook": {- "id": "V2ViaG9vazo2MDNlYmUxZWRlYjkzNWU4NmQyMmNmMTg=",
- "name": "webhookName",
- "authorization": "openpix",
- "isActive": true,
- "event": "OPENPIX:TRANSACTION_RECEIVED",
- "createdAt": "2021-03-02T22:29:10.720Z",
- "updatedAt": "2021-03-02T22:29:10.720Z"
 }
}{- "charge": {- "status": "COMPLETED",
- "customer": {- "name": "Julio",
- "phone": "5511999999999",
- "taxID": {- "taxID": "31928282008",
- "type": "BR:CPF"
 },
- "correlationID": "9134e286-6f71-427a-bf00-241681624586"
 },
- "correlationID": "9134e286-6f71-427a-bf00-241681624586",
- "transactionID": "9134e2866f71427abf00241681624586",
- "brCode": "000201010212261060014br.gov.bcb.pix2584https://api.woovi.com/openpix/testing?transactionID=867ba5173c734202ac659721306b38c952040000530398654040.015802BR5909LOCALHOST6009Sao Paulo62360532867ba5173c734202ac659721306b38c963044BCA",
- "createdAt": "2021-03-03T20:49:23.605Z",
- "updatedAt": "2021-03-03T20:49:23.668Z"
 },
- "pix": {- "pixQrCode": null,
- "charge": {- "status": "COMPLETED",
- "customer": "604002035cce3b60132343cb",
- "correlationID": "9134e286-6f71-427a-bf00-241681624586",
- "brCode": "000201010212261060014br.gov.bcb.pix2584https://api.woovi.com/openpix/testing?transactionID=867ba5173c734202ac659721306b38c952040000530398654040.015802BR5909LOCALHOST6009Sao Paulo62360532867ba5173c734202ac659721306b38c963044BCA",
- "createdAt": "2021-03-03T21:39:15.831Z",
- "updatedAt": "2021-03-03T21:39:15.896Z"
 },
- "customer": {- "name": "Julio",
- "phone": "5511999999999",
- "taxID": {- "taxID": "31928282008",
- "type": "BR:CPF"
 },
- "correlationID": "9134e286-6f71-427a-bf00-241681624586"
 },
- "payer": {- "name": "Julio",
- "phone": "5511999999999",
- "taxID": {- "taxID": "31928282008",
- "type": "BR:CPF"
 },
- "correlationID": "9134e286-6f71-427a-bf00-241681624586"
 },
- "time": "2020-09-09T20:15:00.358Z",
- "value": 9999,
- "transactionID": "9134e2866f71427abf00241681624586",
- "infoPagador": "conta",
- "raw": {- "endToEndId": "9134e2866f71427abf00241681624586",
- "txid": "9134e2866f71427abf00241681624586",
- "valor": "99.99",
- "horario": "2020-09-09T20:15:00.358Z",
- "infoPagador": "conta"
 }
 },
- "pixQrCode": null
}const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/webhook/ips', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "ips": [- "189.51.60.9",
- "138.97.124.129",
- "177.71.136.66"
 ]
}| emv required | string Raw EMV / PIX QR payload (text) | 
{- "emv": "00020126780014br.gov.bcb.pix0136f4c6089a-bfde-4c00-a2d9-9eaa584b02190216CobrancaEstatica5204000053039865406546.285802BR5903Pix6008BRASILIA6229052584767c56c2ab4e65b6670de2a80950014br.gov.bcb.pix2573qr-h.sandbox.pix.bcb.gov.br/rest/api/rec/4b62d4a088fe4f51bcb4c64cf078869163044486"
}{- "emv": {- "payloadFormatIndicator": "01",
- "merchantAccountInformationPix": {- "gui": "br.gov.bcb.pix",
- "pixKey": "f4c6089a-bfde-4c00-a2d9-9eaa584b0219",
- "additionalInformation": "CobrancaEstatica"
 },
- "merchantCategoryCode": "0000",
- "transactionCurrency": "986",
- "transactionAmount": "546.28",
- "countryCode": "BR",
- "merchantName": "Pix",
- "merchantCity": "BRASILIA",
- "additionalDataFieldTemplate": {- "referenceLabel": "84767c56c2ab4e65b6670de2a"
 },
- "unreservedTemplates": {- "gui": "br.gov.bcb.pix",
- "url": "qr-h.sandbox.pix.bcb.gov.br/rest/api/rec/4b62d4a088fe4f51bcb4c64cf0788691"
 },
- "crc": "4486"
 },
- "cobLocation": null,
- "recLocation": {- "isValid": true,
- "locationErrors": [ ],
- "payload": {- "updates": [- {- "date": "2025-10-24T18:42:58Z",
- "status": "CRIADA"
 }
 ],
- "calendar": {- "startDate": "2025-10-24",
- "periodicity": "SEMANAL"
 },
- "idRec": "RN5481141720251024BnwNHejs9h9",
- "retryPolicy": "NAO_PERMITE",
- "receiver": {- "cnpj": "44720743000101",
- "participantIspb": "54811417",
- "name": "Woovi Demo"
 },
- "value": {- "valueRec": "0.01"
 },
- "link": {- "contract": "Woovi Demo - Pix Automático",
- "debtor": {- "cpf": "15775023706",
- "name": "Pedro Cliente"
 }
 }
 },
- "url": "qr-h.sandbox.pix.bcb.gov.br/rest/api/rec/4b62d4a088fe4f51bcb4c64cf0788691"
 }
}| pixKey required | string Pix key to be verified (email, phone, EVP, CPF/CNPJ etc.) | 
{- "success": true,
- "data": {- "keyStatistics": {- "fraudMarkers": {- "watermark": "2025-08-04T17:18:21.716Z",
- "applicationFrauds": {- "d90": "1",
- "m12": "1",
- "m60": "1"
 },
- "muleAccounts": {- "d90": "0",
- "m12": "0",
- "m60": "0"
 },
- "scammerAccounts": {- "d90": "11",
- "m12": "10",
- "m60": "10"
 },
- "otherFrauds": {- "d90": "0",
- "m12": "0",
- "m60": "0"
 },
- "unknownFrauds": {- "d90": "0",
- "m12": "0",
- "m60": "0"
 },
- "totalFraudTransactionAmount": {- "d90": "723",
- "m12": "723",
- "m60": "723"
 },
- "distinctFraudReporters": {- "d90": "1",
- "m12": "1",
- "m60": "1"
 }
 },
- "infractionReports": {- "watermark": "2025-08-04T17:18:21.756Z",
- "openReports": "2",
- "openReportsDistinctReporters": "1",
- "rejectedReports": {- "d90": "3",
- "m12": "3",
- "m60": "3"
 }
 }
 },
- "ownerStatistics": {- "fraudMarkers": {- "watermark": "2025-08-04T17:18:21.716Z",
- "applicationFrauds": {- "d90": "1",
- "m12": "5",
- "m60": "5"
 },
- "muleAccounts": {- "d90": "0",
- "m12": "1",
- "m60": "1"
 },
- "scammerAccounts": {- "d90": "15",
- "m12": "21",
- "m60": "21"
 },
- "otherFrauds": {- "d90": "0",
- "m12": "0",
- "m60": "0"
 },
- "unknownFrauds": {- "d90": "0",
- "m12": "0",
- "m60": "0"
 },
- "totalFraudTransactionAmount": {- "d90": "1023",
- "m12": "1517",
- "m60": "1517"
 },
- "distinctFraudReporters": {- "d90": "1",
- "m12": "1",
- "m60": "1"
 }
 },
- "infractionReports": {- "watermark": "2025-08-04T17:18:21.756Z",
- "openReports": "2",
- "openReportsDistinctReporters": "1",
- "rejectedReports": {- "d90": "3",
- "m12": "32",
- "m60": "32"
 }
 }
 }
 }
}| taxId required | string Tax ID to be verified (CPF/CNPJ) | 
{- "success": true,
- "data": {- "ownerStatistics": {- "fraudMarkers": {- "watermark": "2025-08-04T17:18:21.716Z",
- "applicationFrauds": {- "d90": "1",
- "m12": "5",
- "m60": "5"
 },
- "muleAccounts": {- "d90": "0",
- "m12": "1",
- "m60": "1"
 },
- "scammerAccounts": {- "d90": "15",
- "m12": "21",
- "m60": "21"
 },
- "otherFrauds": {- "d90": "0",
- "m12": "0",
- "m60": "0"
 },
- "unknownFrauds": {- "d90": "0",
- "m12": "0",
- "m60": "0"
 },
- "totalFraudTransactionAmount": {- "d90": "1023",
- "m12": "1517",
- "m60": "1517"
 },
- "distinctFraudReporters": {- "d90": "1",
- "m12": "1",
- "m60": "1"
 }
 },
- "infractionReports": {- "watermark": "2025-08-04T17:18:21.756Z",
- "openReports": "2",
- "openReportsDistinctReporters": "1",
- "rejectedReports": {- "d90": "3",
- "m12": "32",
- "m60": "32"
 }
 }
 }
 }
}| start | string  Example:  start=2021-01-01 | 
| end | string  Example:  end=2021-01-01 | 
| skip | number | 
| limit | number  Example:  limit=100 | 
const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/invoice?start=2021-01-01&end=2021-01-01&skip=0&limit=100', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
{- "invoices": [- {- "id": "67001bbf0b0621890af7dc28",
- "value": 500,
- "date": "2024-10-04T16:45:51.058Z",
- "billingDate": "2024-10-04T16:45:51.058Z",
- "status": "CONFIRMED",
- "statusRaw": null,
- "correlationID": "INV-123",
- "customer": {- "correlationID": "6f46c15a-f471-4d54-bb28-207fe2568f69",
- "name": "Gabriel"
 },
- "charge": {- "correlationID": "0c2df47d-4a90-4ef2-b04a-1f8673f1dbdd",
- "value": 500,
- "status": "COMPLETED",
- "paidAt": "2024-10-04T16:44:18.000Z",
- "date": "2024-10-04T16:43:20.931Z"
 }
 }
 ]
}| description | string | 
| billingDate required | string <date-time>  | 
| correlationID required | string | 
| charge | string | 
| value required | number | 
| customerId | string | 
| object | 
{- "description": "string",
- "billingDate": "2019-08-24T14:15:22Z",
- "correlationID": "string",
- "charge": "string",
- "value": 0,
- "customerId": "string",
- "customer": {- "taxID": "string",
- "name": "string",
- "phone": "string",
- "address": {- "country": "string",
- "zipcode": "string",
- "street": "string",
- "number": "string",
- "state": "string"
 }
 }
}{- "invoice": {- "id": "string",
- "value": 0,
- "date": "2019-08-24T14:15:22Z",
- "billingDate": "2019-08-24T14:15:22Z",
- "status": "string",
- "statusRaw": "string",
- "customer": {- "correlationID": "string",
- "name": "string"
 },
- "charge": {- "correlationID": "string",
- "value": 0,
- "status": "string",
- "paidAt": "2019-08-24T14:15:22Z",
- "date": "2019-08-24T14:15:22Z"
 }
 }
}Retrieves the statement/ledger entries for a company's bank account
| start | string <date-time>  (Start Date)   Example:  start=2020-01-01T00:00:00Z Start date used in the query. Complies with RFC 3339. | 
| end | string <date-time>  (End Date)   Example:  end=2020-12-01T17:00:00Z End date used in the query. Complies with RFC 3339. | 
| skip | number | 
| limit | number | 
const http = require('https'); const options = { method: 'GET', hostname: 'api.woovi.com', port: null, path: '/api/v1/statement?start=2020-01-01T00%3A00%3A00Z&end=2020-12-01T17%3A00%3A00Z&skip=SOME_NUMBER_VALUE&limit=SOME_NUMBER_VALUE', headers: { Authorization: 'REPLACE_KEY_VALUE' } }; 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();
[- {- "id": "507f1f77bcf86cd799439011",
- "time": "2023-12-01T10:30:00.000Z",
- "description": "Payment received from customer",
- "balance": 1500.5,
- "value": 100,
- "type": "CREDIT",
- "transactionId": "txn_123456789"
 }
]