{"info":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","description":"<html><head></head><body><h2 id=\"welcome-to-the-link-premio-card-api-🎉\">Welcome to the Link Premio Card API 🎉</h2>\n<p>The Link Premio Card is a platform for incentive and reward distribution, allowing companies to register awardees (individuals or businesses) and provide them with balance in a virtual card.</p>\n<h2 id=\"what-you-can-do\">What You Can Do</h2>\n<p>Through this API, you can:</p>\n<ul>\n<li><p><strong>Manage Participants</strong>: Register and manage individuals and businesses</p>\n</li>\n<li><p><strong>Virtual Card Management</strong>: Create and manage virtual cards for participants</p>\n</li>\n<li><p><strong>Balance Operations</strong>: Check company balances, manage balance types, and transfer funds</p>\n</li>\n<li><p><strong>Campaign Management</strong>: Create and manage reward campaigns</p>\n</li>\n<li><p><strong>Order Processing</strong>: Process bulk reward distributions</p>\n</li>\n<li><p><strong>Webhook Integration</strong>: Set up real-time event notifications</p>\n</li>\n</ul>\n<p>This API is designed for companies (our clients) to integrate their systems seamlessly with Link Premio Card.</p>\n<hr>\n<h2 id=\"authentication\">Authentication</h2>\n<ul>\n<li><p>All requests require valid API Keys issued by Link Premio Card.</p>\n</li>\n<li><p>Keys are unique per company.</p>\n</li>\n<li><p>Must be sent in the request headers.</p>\n</li>\n<li><p>Keep your credentials secure and never expose them publicly.</p>\n</li>\n</ul>\n<hr>\n<h2 id=\"environment--staging-behavior\"><strong>Environment &amp; Staging Behavior</strong></h2>\n<p>The Link Premio Card API provides both <strong>Production</strong> and <strong>Staging</strong> environments.</p>\n<p>The Staging environment is intended solely for integration testing and uses simulated logic for certain flows, including KYC.</p>\n<h2 id=\"kyc-testing-rules-in-staging\">KYC Testing Rules in Staging</h2>\n<p>When using the <strong>Staging</strong> environment, the KYC analysis response (<code>kyc_status</code>) is determined <strong>by the first digit</strong> of the value provided in the <code>document</code> field.</p>\n<p>This allows you to easily simulate different KYC outcomes.</p>\n<h3 id=\"kyc-status-mapping-staging-only\">KYC Status Mapping (Staging Only)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>First Digit</th>\n<th>Result</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>0–4</strong></td>\n<td>Automatically Approved</td>\n</tr>\n<tr>\n<td><strong>5–6</strong></td>\n<td>Automatically Reproved</td>\n</tr>\n<tr>\n<td><strong>7</strong></td>\n<td>In Manual Analysis → then Manually Approved</td>\n</tr>\n<tr>\n<td><strong>8</strong></td>\n<td>In Manual Analysis → then Manually Reproved</td>\n</tr>\n<tr>\n<td><strong>9</strong></td>\n<td>In Analysis → followed by any final status</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"lpc-behavior-staging\">LPC Behavior (Staging)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>First Digit</th>\n<th>LPC Status</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>0–4</strong></td>\n<td>Paid</td>\n</tr>\n<tr>\n<td><strong>5–9</strong></td>\n<td>Pending</td>\n</tr>\n</tbody>\n</table>\n</div><p>⚠️ These rules apply <strong>only in Staging</strong>.</p>\n<p>Production performs real KYC validation.</p>\n<hr>\n<h2 id=\"rate-limiting--throttling\">Rate Limiting &amp; Throttling</h2>\n<p>To guarantee availability and performance for all clients, the API is protected by throttling rules.</p>\n<ul>\n<li><p>Requests exceeding the limit will be rejected with <code>429 Too Many Requests</code>.</p>\n</li>\n<li><p>Please implement retry logic with exponential backoff.</p>\n</li>\n</ul>\n<p>⚠️ Detailed limits (requests per second/minute) are available upon request with our support team.</p>\n<hr>\n<h1 id=\"important-request-retries-timeouts\"><strong>Important – Request Retries &amp; Timeouts</strong></h1>\n<p>When performing operations such as <strong>payments</strong> or <strong>participant creation</strong>, do not cancel or immediately retry requests if they take longer than expected.</p>\n<p>Even if the HTTP request times out or is interrupted, the operation <strong>may still be processing on our servers</strong>.</p>\n<p>Retrying the same request without proper control can result in:</p>\n<ul>\n<li><p>Duplicate payments</p>\n</li>\n<li><p>Duplicate participant registrations</p>\n</li>\n<li><p>Inconsistent transaction states</p>\n</li>\n</ul>\n<p><strong>Important:</strong> Client-side timeouts do not cancel server-side processing.</p>\n<p>Always ensure proper retry strategies using idempotency or unique identifiers before attempting a new request.</p>\n<h2 id=\"support\">Support</h2>\n<p>If you encounter any issues while setting up or using our product, or if you have any questions:</p>\n<p>📧 Please contact our support team exclusively via email (ticket system).</p>\n<p>We’ll ensure quick and effective assistance.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"Important – Request Retries & Timeouts","slug":"important-request-retries-timeouts"}],"owner":"41529363","collectionId":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","publishedId":"2sBY4Mw2D5","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-07-16T20:07:37.000Z"},"item":[{"name":"Entities","item":[{"name":"Company","item":[{"name":"Balance Type","item":[{"name":"Retrieve Balance Types","id":"bc80a6d3-62ba-41f4-8cdd-1ca050f70683","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{url}}/balance-type","description":"<h1 id=\"listar-balance-types\">Listar Balance Types</h1>\n<p>Retorna uma lista paginada de tipos de saldo disponíveis para a empresa autenticada.</p>\n<p>Itens que não possuem um <code>swap.id</code> válido no JSON da coluna <code>integration</code> são omitidos automaticamente da listagem.</p>\n<hr />\n<h2 id=\"requisição\">Requisição</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /api/external/balance-type\n\n</code></pre><h3 id=\"headers\">Headers</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Valor</th>\n<th>Obrigatório</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>x-api-key</code></td>\n<td><code>string</code> (token JWT)</td>\n<td>sim</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parâmetro</th>\n<th>Tipo</th>\n<th>Padrão</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>page</code></td>\n<td><code>number</code></td>\n<td><code>1</code></td>\n<td>Página atual (mín: 1, máx: 999999)</td>\n</tr>\n<tr>\n<td><code>limit</code></td>\n<td><code>number</code></td>\n<td><code>15</code></td>\n<td>Quantidade de registros por página (mín: 1, máx: 9999)</td>\n</tr>\n<tr>\n<td><code>query</code></td>\n<td><code>string</code></td>\n<td>—</td>\n<td>Busca por nome (case insensitive)</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td><code>string</code></td>\n<td>—</td>\n<td>Filtro por status: <code>Active</code> ou <code>Disabled</code></td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-com-curl\">Exemplo com cURL</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -X GET \"https://api.exemplo.com/api/external/balance-type?page=1&amp;limit=10&amp;status=Active\" \\\n  -H \"x-api-key: eyJhbGciOiJIUzI1NiIs...\"\n\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -X GET \"https://api.exemplo.com/api/external/balance-type?query=carteira\" \\\n  -H \"x-api-key: eyJhbGciOiJIUzI1NiIs...\"\n\n</code></pre>\n<hr />\n<h2 id=\"resposta\">Resposta</h2>\n<h3 id=\"200--sucesso\">200 — Sucesso</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": [\n    {\n      \"id\": \"c8a2b3e4-5f67-4a89-bcde-f0123456789a\",\n      \"status\": \"Active\",\n      \"name\": \"Carteira Digital\",\n      \"type\": \"1\"\n    },\n    {\n      \"id\": \"d9b3c4f5-6a78-4b90-cdef-0123456789ab\",\n      \"status\": \"Disabled\",\n      \"name\": \"Vale Refeição\",\n      \"type\": \"4\"\n    }\n  ],\n  \"totalItems\": 2,\n  \"totalPages\": 1,\n  \"page\": 1,\n  \"limit\": 15\n}\n\n</code></pre>\n<h3 id=\"campos-do-objeto-data\">Campos do objeto <code>data[]</code></h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td><code>string</code> (UUID)</td>\n<td>Identificador único do balance type</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td><code>string</code></td>\n<td>Situação atual: <code>Active</code> ou <code>Disabled</code></td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td><code>string</code></td>\n<td>Nome do tipo de saldo</td>\n</tr>\n<tr>\n<td><code>type</code></td>\n<td><code>string</code></td>\n<td>Código do tipo extraído do JSON <code>integration.swap.id</code></td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"paginação\">Paginação</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>totalItems</code></td>\n<td><code>number</code></td>\n<td>Total de registros encontrados (após aplicar filtros)</td>\n</tr>\n<tr>\n<td><code>totalPages</code></td>\n<td><code>number</code></td>\n<td>Total de páginas</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td><code>number</code></td>\n<td>Página atual</td>\n</tr>\n<tr>\n<td><code>limit</code></td>\n<td><code>number</code></td>\n<td>Limite de registros por página</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"erros\">Erros</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>HTTP</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>1001</code></td>\n<td>400</td>\n<td>Erro de validação nos parâmetros da query (ex: <code>page</code> menor que 1)</td>\n</tr>\n<tr>\n<td><code>5000</code></td>\n<td>500</td>\n<td>Erro interno inesperado</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-erro-de-validação\">Exemplo de erro de validação</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"Erro de validação\",\n  \"message\": \"Erro de validação dos campos\",\n  \"code\": 1001,\n  \"details\": [\n    {\n      \"path\": \"page\",\n      \"message\": \"Number must be greater than or equal to 1\"\n    }\n  ]\n}\n\n</code></pre>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"path":["balance-type"],"host":["{{url}}"],"query":[{"disabled":true,"description":{"content":"<p>number: [1-9999]</p>\n","type":"text/plain"},"key":"limit","value":"1"},{"disabled":true,"description":{"content":"<p>number: [1-999999]</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>Filters balance types by status.</p>\n","type":"text/plain"},"key":"status","value":"Active / Disabled"}],"variable":[]}},"response":[{"id":"7fb90dcc-db12-4edc-9e19-403f053d28dc","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"url":{"raw":"{{url}}/balance-type","host":["{{url}}"],"path":["balance-type"],"query":[{"key":"limit","value":"1","description":"number: [1-9999]","disabled":true},{"key":"page","value":"1","description":"number: [1-999999]","disabled":true},{"key":"status","value":"Active","description":"Active | Disabled","type":"text","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Content-Length","value":"483"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Date","value":"Mon, 18 Aug 2025 13:21:38 GMT"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"1e3-UBla1FuWH5xnqWwBgZ3m20Xdt/U\""},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-RateLimit-Limit","value":"50"},{"key":"X-RateLimit-Remaining","value":"49"},{"key":"X-RateLimit-Reset","value":"1"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": \"15c87e36-c2c3-4c1b-94b1-ad6bbdf337ad\",\n            \"status\": \"Disabled\",\n            \"name\": \"Balance 5\"\n        },\n        {\n            \"id\": \"2928e252-5281-46ba-99c7-3921f67f6e58\",\n            \"status\": \"Disabled\",\n            \"name\": \"Balance 2\"\n        },\n        {\n            \"id\": \"34549121-0517-4e9b-8fe8-80c1ebb90c2a\",\n            \"status\": \"Active\",\n            \"name\": \"Balance 1\"\n        },\n        {\n            \"id\": \"3644e50b-d590-416b-a890-c998505e9dc1\",\n            \"status\": \"Disabled\",\n            \"name\": \"Balance 4\"\n        },\n        {\n            \"id\": \"f2fbbba5-61a7-425c-8ccc-4d4497ab30f9\",\n            \"status\": \"Disabled\",\n            \"name\": \"Balance 3\"\n        }\n    ],\n    \"totalItems\": 5,\n    \"totalPages\": 1,\n    \"page\": 1,\n    \"limit\": 10\n}"},{"id":"6ab1c31b-281f-420f-9885-ebd89b8cb9df","name":"401 Unauthorized","originalRequest":{"method":"GET","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"url":{"raw":"{{url}}/balance-type","host":["{{url}}"],"path":["balance-type"],"query":[{"key":"limit","value":"1","description":"number: [1-9999]","disabled":true},{"key":"page","value":"1","description":"number: [1-999999]","disabled":true},{"key":"status","value":"Active","description":"Active | Disabled","type":"text","disabled":true}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":"Text","header":[{"key":"Content-Length","value":"72"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Date","value":"Mon, 18 Aug 2025 13:22:32 GMT"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"48-r2Sjlk9iydsU25uLtA64N03socs\""},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-RateLimit-Limit","value":"50"},{"key":"X-RateLimit-Remaining","value":"49"},{"key":"X-RateLimit-Reset","value":"1"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"API key is missing\",\n    \"error\": \"Unauthorized\",\n    \"statusCode\": 401\n}"}],"_postman_id":"bc80a6d3-62ba-41f4-8cdd-1ca050f70683"},{"name":"Retrieve a Balance Type by id","id":"b20905c0-acbd-463b-8664-310ac76fe0cb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{url}}/balance-type/:id","description":"<h1 id=\"obter-balance-type-por-id\">Obter Balance Type por ID</h1>\n<p>Retorna os detalhes de um tipo de saldo específico.</p>\n<hr />\n<h2 id=\"requisição\">Requisição</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /api/external/balance-type/{id}\n\n</code></pre><h3 id=\"headers\">Headers</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Valor</th>\n<th>Obrigatório</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>x-api-key</code></td>\n<td><code>string</code> (token JWT)</td>\n<td>sim</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"parâmetros-de-url\">Parâmetros de URL</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parâmetro</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td><code>string</code> (UUID)</td>\n<td>Identificador único do balance type</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-com-curl\">Exemplo com cURL</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -X GET \"https://api.exemplo.com/api/external/balance-type/c8a2b3e4-5f67-4a89-bcde-f0123456789a\" \\\n  -H \"x-api-key: eyJhbGciOiJIUzI1NiIs...\"\n\n</code></pre>\n<hr />\n<h2 id=\"resposta\">Resposta</h2>\n<h3 id=\"200--sucesso\">200 — Sucesso</h3>\n<p>Para um balance type com <code>integration</code> válida:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"c8a2b3e4-5f67-4a89-bcde-f0123456789a\",\n  \"status\": \"Active\",\n  \"name\": \"Carteira Digital\",\n  \"type\": \"1\"\n}\n\n</code></pre>\n<p>Para um balance type sem <code>swap.id</code> no JSON de <code>integration</code>, o campo <code>type</code> não é incluído:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"e4c5d6f7-8a90-4bcd-ef01-23456789abcd\",\n  \"status\": \"Active\",\n  \"name\": \"Saldo Genérico\"\n}\n\n</code></pre>\n<h3 id=\"campos-do-retorno\">Campos do retorno</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td><code>string</code> (UUID)</td>\n<td>Identificador único do balance type</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td><code>string</code></td>\n<td>Situação atual: <code>Active</code> ou <code>Disabled</code></td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td><code>string</code></td>\n<td>Nome do tipo de saldo</td>\n</tr>\n<tr>\n<td><code>type</code></td>\n<td><code>string</code></td>\n<td>(opcional) Código extraído do JSON <code>integration.swap.id</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"erros\">Erros</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>HTTP</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>5001</code></td>\n<td>404</td>\n<td>Balance type não encontrado para o ID informado</td>\n</tr>\n<tr>\n<td><code>5000</code></td>\n<td>500</td>\n<td>Erro interno inesperado</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-erro-404\">Exemplo de erro 404</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"Registro não encontrado\",\n  \"message\": \"Nao foi possivel localizar os dados da categoria de saldo no momento. Por favor, tente novamente mais tarde ou contate o suporte.\",\n  \"code\": 5001,\n  \"status\": 404,\n  \"details\": {\n    \"companyId\": null,\n    \"info\": \"Balance type not found in database.\"\n  }\n}\n\n</code></pre>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"path":["balance-type",":id"],"host":["{{url}}"],"query":[],"variable":[{"id":"c837104d-9854-4b16-91d5-573bffce655a","description":{"content":"<p>The UUID of the balance type to retrieve. Must be a valid balance type ID.</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[{"id":"51662408-1520-4bfd-a565-b750c538490b","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"url":{"raw":"{{url}}/balance-type/:id","host":["{{url}}"],"path":["balance-type",":id"],"variable":[{"key":"id","value":""}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Content-Length","value":"82"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Date","value":"Mon, 18 Aug 2025 13:21:56 GMT"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"52-oy9HakFzUeXgg9y0tqAHPtKpyT4\""},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-RateLimit-Limit","value":"50"},{"key":"X-RateLimit-Remaining","value":"49"},{"key":"X-RateLimit-Reset","value":"1"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"34549121-0517-4e9b-8fe8-80c1ebb90c2a\",\n    \"status\": \"Active\",\n    \"name\": \"Balance 1\"\n}"},{"id":"58468f98-3e8c-4ec5-975b-dd5ba7c75bee","name":"404 Not found","originalRequest":{"method":"GET","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"url":{"raw":"{{url}}/balance-type/:id","host":["{{url}}"],"path":["balance-type",":id"],"variable":[{"key":"id","value":""}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"Text","header":[{"key":"Content-Length","value":"78"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Date","value":"Mon, 18 Aug 2025 13:20:34 GMT"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"4e-KRVnSuYZR03j4t4PHE6FyQj+ru4\""},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-RateLimit-Limit","value":"50"},{"key":"X-RateLimit-Remaining","value":"49"},{"key":"X-RateLimit-Reset","value":"1"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Balance type was not found.\",\n    \"error\": \"Not Found\",\n    \"statusCode\": 404\n}"},{"id":"317a0b84-212b-4b2c-99b5-d17880c98c9b","name":"401 Unauthorized","originalRequest":{"method":"GET","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"url":{"raw":"{{url}}/balance-type/:id","host":["{{url}}"],"path":["balance-type",":id"],"variable":[{"key":"id","value":""}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":"Text","header":[{"key":"Content-Length","value":"72"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Date","value":"Mon, 18 Aug 2025 13:22:40 GMT"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"48-r2Sjlk9iydsU25uLtA64N03socs\""},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-RateLimit-Limit","value":"50"},{"key":"X-RateLimit-Remaining","value":"49"},{"key":"X-RateLimit-Reset","value":"1"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"API key is missing\",\n    \"error\": \"Unauthorized\",\n    \"statusCode\": 401\n}"}],"_postman_id":"b20905c0-acbd-463b-8664-310ac76fe0cb"},{"name":"Update Status Balance Type","id":"feb64022-486a-473f-882e-af64632e6507","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"url":"{{url}}/balance-type/:id","description":"<h1 id=\"atualizar-status-do-balance-type\">Atualizar Status do Balance Type</h1>\n<p>Ativa ou desativa um tipo de saldo alterando seu status para <code>Active</code> ou <code>Disabled</code>.</p>\n<hr />\n<h2 id=\"requisição\">Requisição</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>PUT /api/external/balance-type/{id}\n\n</code></pre><h3 id=\"headers\">Headers</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Valor</th>\n<th>Obrigatório</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>x-api-key</code></td>\n<td><code>string</code> (token JWT)</td>\n<td>sim</td>\n</tr>\n<tr>\n<td><code>Content-Type</code></td>\n<td><code>application/json</code></td>\n<td>sim</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"parâmetros-de-url\">Parâmetros de URL</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parâmetro</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td><code>string</code> (UUID)</td>\n<td>Identificador único do balance type</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"body\">Body</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>status</code></td>\n<td><code>string</code></td>\n<td>sim</td>\n<td>Novo status: <code>\"Active\"</code> para ativar, <code>\"Disabled\"</code> para desativar</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplos-com-curl\">Exemplos com cURL</h3>\n<p><strong>Ativar um balance type:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -X PUT \"https://api.exemplo.com/api/external/balance-type/c8a2b3e4-5f67-4a89-bcde-f0123456789a\" \\\n  -H \"x-api-key: eyJhbGciOiJIUzI1NiIs...\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"status\": \"Active\"}'\n\n</code></pre>\n<p><strong>Desativar um balance type:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -X PUT \"https://api.exemplo.com/api/external/balance-type/c8a2b3e4-5f67-4a89-bcde-f0123456789a\" \\\n  -H \"x-api-key: eyJhbGciOiJIUzI1NiIs...\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"status\": \"Disabled\"}'\n\n</code></pre>\n<hr />\n<h2 id=\"resposta\">Resposta</h2>\n<h3 id=\"200--sucesso\">200 — Sucesso</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"c8a2b3e4-5f67-4a89-bcde-f0123456789a\",\n  \"status\": \"Active\",\n  \"name\": \"Carteira Digital\",\n  \"type\": \"1\"\n}\n\n</code></pre>\n<h3 id=\"campos-do-retorno\">Campos do retorno</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td><code>string</code> (UUID)</td>\n<td>Identificador único do balance type</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td><code>string</code></td>\n<td>Status atualizado: <code>Active</code> ou <code>Disabled</code></td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td><code>string</code></td>\n<td>Nome do tipo de saldo</td>\n</tr>\n<tr>\n<td><code>type</code></td>\n<td><code>string</code></td>\n<td>(opcional) Código extraído do JSON <code>integration.swap.id</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"erros\">Erros</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>HTTP</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>1001</code></td>\n<td>400</td>\n<td>Erro de validação — campo <code>status</code> é obrigatório e deve ser <code>\"Active\"</code> ou <code>\"Disabled\"</code></td>\n</tr>\n<tr>\n<td><code>5001</code></td>\n<td>404</td>\n<td>Balance type não encontrado para o ID informado</td>\n</tr>\n<tr>\n<td><code>5000</code></td>\n<td>500</td>\n<td>Erro interno inesperado</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-erro-400--status-inválido\">Exemplo de erro 400 — status inválido</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"Erro de validação\",\n  \"message\": \"Erro de validação dos campos\",\n  \"code\": 1001,\n  \"details\": [\n    {\n      \"path\": \"status\",\n      \"message\": \"Invalid enum value. Expected 'Active' | 'Disabled', received 'Ativo'\"\n    }\n  ]\n}\n\n</code></pre>\n<h3 id=\"exemplo-de-erro-400--body-vazio\">Exemplo de erro 400 — body vazio</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"Erro de validação\",\n  \"message\": \"Erro de validação dos campos\",\n  \"code\": 1001,\n  \"details\": [\n    {\n      \"path\": \"status\",\n      \"message\": \"Required\"\n    }\n  ]\n}\n\n</code></pre>\n<h3 id=\"exemplo-de-erro-404\">Exemplo de erro 404</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"Registro não encontrado\",\n  \"message\": \"Nao foi possivel localizar os dados da categoria de saldo no momento. Por favor, tente novamente mais tarde ou contate o suporte.\",\n  \"code\": 5001,\n  \"status\": 404,\n  \"details\": {\n    \"companyId\": null,\n    \"info\": \"Balance type not found in database.\"\n  }\n}\n\n</code></pre>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"path":["balance-type",":id"],"host":["{{url}}"],"query":[],"variable":[{"id":"212fc309-3187-48fb-8f92-e7910980ae0f","description":{"content":"<p>Identificador único do balance type</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"feb64022-486a-473f-882e-af64632e6507"}],"id":"b961e455-0acb-47b3-9d53-d53534d0de3d","description":"<h3 id=\"regras-de-consumo-de-saldo\">Regras de Consumo de Saldo</h3>\n<p>O consumo do saldo segue uma ordem de prioridade previamente definida. Para cada transação, o sistema verifica a categoria correspondente ao estabelecimento (MCC e/ou Merchant ID) e realiza o débito no saldo da carteira prioritária aplicável. Caso não exista saldo disponível na carteira correspondente, as regras de fallback definidas pelo produto serão aplicadas.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Prioridade</th>\n<th>ID</th>\n<th>Carteira</th>\n<th>Descrição</th>\n<th>Critério de Utilização</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>1</td>\n<td>2</td>\n<td>Alimentação</td>\n<td>Consumo destinado à compra de alimentos.</td>\n<td>MCC de Alimentação</td>\n</tr>\n<tr>\n<td>2</td>\n<td>3</td>\n<td>Refeição</td>\n<td>Consumo destinado a refeições.</td>\n<td>MCC de Refeição</td>\n</tr>\n<tr>\n<td>3</td>\n<td>4</td>\n<td>Food</td>\n<td>Consumo geral relacionado à alimentação.</td>\n<td>MCC Food</td>\n</tr>\n<tr>\n<td>4</td>\n<td>5</td>\n<td>Mobilidade</td>\n<td>Gastos com transporte e locomoção.</td>\n<td>MCC de Mobilidade ou Merchant ID de Mobilidade</td>\n</tr>\n<tr>\n<td>5</td>\n<td>6</td>\n<td>Combustível</td>\n<td>Gastos com abastecimento de veículos.</td>\n<td>MCC de Mobilidade ou Merchant ID de Mobilidade</td>\n</tr>\n<tr>\n<td>6</td>\n<td>7</td>\n<td>Cultura</td>\n<td>Gastos com atividades culturais.</td>\n<td>MCC de Cultura</td>\n</tr>\n<tr>\n<td>7</td>\n<td>8</td>\n<td>Saúde</td>\n<td>Gastos com serviços e produtos de saúde.</td>\n<td>MCC de Saúde</td>\n</tr>\n<tr>\n<td>8</td>\n<td>9</td>\n<td>Home Office</td>\n<td>Gastos relacionados ao trabalho remoto.</td>\n<td>MCC de Home Office</td>\n</tr>\n<tr>\n<td>9</td>\n<td>10</td>\n<td>Educação</td>\n<td>Gastos educacionais.</td>\n<td>MCC de Educação</td>\n</tr>\n<tr>\n<td>10</td>\n<td>12</td>\n<td>Viagem</td>\n<td>Gastos relacionados a viagens.</td>\n<td>MCC de Viagem</td>\n</tr>\n<tr>\n<td>11</td>\n<td>1</td>\n<td>Livre</td>\n<td>Utilização sem restrição de categoria.</td>\n<td>Qualquer MCC ou estabelecimento</td>\n</tr>\n<tr>\n<td>12</td>\n<td>11</td>\n<td>Incentivo</td>\n<td>Utilização sem restrição de categoria.</td>\n<td>Qualquer MCC ou estabelecimento</td>\n</tr>\n<tr>\n<td>13</td>\n<td>13</td>\n<td>Incentivo 2</td>\n<td>Utilização sem restrição de categoria.</td>\n<td>Qualquer MCC ou estabelecimento</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo\">Exemplo</h3>\n<p>Se uma compra for realizada em um estabelecimento classificado como <strong>Alimentação</strong>, o sistema tentará consumir o saldo da carteira <strong>Alimentação</strong> primeiro. Caso não haja saldo disponível, seguirá a ordem de prioridade definida até encontrar uma carteira elegível para realizar o débito.</p>\n","_postman_id":"b961e455-0acb-47b3-9d53-d53534d0de3d","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}}},{"name":"Retrieve Company Information","event":[{"listen":"test","script":{"id":"2feb5c8e-2671-4eb2-9582-fe2ed9e2e572","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"a239a32a-2274-4be0-8ed3-977e7a973c41","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{url}}/company","description":"<h2 id=\"description\">Description</h2>\n<p>Retrieves detailed information about a company. It is designed to provide details such as the company's identification, contact information, and financial balance.</p>\n<h2 id=\"response-fields-description\">Response Fields Description</h2>\n<h3 id=\"main-response-object\">Main Response Object</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>string</td>\n<td>Unique identifier of the company (UUID format)</td>\n</tr>\n<tr>\n<td>status</td>\n<td>string</td>\n<td>Current status of the company (e.g., \"Active\", \"Disabled\")</td>\n</tr>\n<tr>\n<td>name</td>\n<td>string</td>\n<td>Company name</td>\n</tr>\n<tr>\n<td>email</td>\n<td>string</td>\n<td>Company contact email</td>\n</tr>\n<tr>\n<td>document</td>\n<td>string</td>\n<td>Company CNPJ document</td>\n</tr>\n<tr>\n<td>phone</td>\n<td>string</td>\n<td>Company contact phone number</td>\n</tr>\n<tr>\n<td>logo</td>\n<td>string</td>\n<td>URL to company logo image</td>\n</tr>\n<tr>\n<td>address</td>\n<td>object</td>\n<td>Company address information</td>\n</tr>\n<tr>\n<td>balance</td>\n<td>object</td>\n<td>Company balance information</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"address-object\">Address Object</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>street</td>\n<td>string</td>\n<td>Street name</td>\n</tr>\n<tr>\n<td>number</td>\n<td>string</td>\n<td>Building number</td>\n</tr>\n<tr>\n<td>complement</td>\n<td>string</td>\n<td>Additional address information (floor, suite, etc.)</td>\n</tr>\n<tr>\n<td>neighborhood</td>\n<td>string</td>\n<td>Neighborhood or district</td>\n</tr>\n<tr>\n<td>city</td>\n<td>string</td>\n<td>City name</td>\n</tr>\n<tr>\n<td>state</td>\n<td>string</td>\n<td>State abbreviation</td>\n</tr>\n<tr>\n<td>country</td>\n<td>string</td>\n<td>Country name</td>\n</tr>\n<tr>\n<td>postalCode</td>\n<td>string</td>\n<td>Postal/ZIP code</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"balance-object\">Balance Object</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>string</td>\n<td>Unique identifier of the balance (UUID format)</td>\n</tr>\n<tr>\n<td>status</td>\n<td>string</td>\n<td>Status of the balance (e.g., \"Active\", \"Disabled\")</td>\n</tr>\n<tr>\n<td>value</td>\n<td>number</td>\n<td>Available balance in cents (total balance minus consigned pre-registrations)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"notes\">Notes</h3>\n<p>This endpoint does not require any input parameters. The response provides comprehensive details about the company's profile and financial standing, which can be utilized for various purposes such as reporting, analysis, or integration with other systems.</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"path":["company"],"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"85d4633e-18fa-41bf-aef9-e25d8a27ba38","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"url":"{{url}}/company"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"702","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Date","value":"Tue, 04 Feb 2025 13:34:37 GMT","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"ETag","value":"W/\"2be-g7b7VbWUS2TgooUZ85hUJGUVpR4\"","enabled":true},{"key":"request-context","value":"appId=cid-v1:","enabled":true},{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"X-RateLimit-Limit","value":"20","enabled":true},{"key":"X-RateLimit-Remaining","value":"19","enabled":true},{"key":"X-RateLimit-Reset","value":"10","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n  \"id\": \"00000000-0000-0000-0000-000000000000\",\n  \"status\": \"Active\",\n  \"name\": \"Example Company Name\",\n  \"email\": \"contact@example.com\",\n  \"document\": \"00000000000000\",\n  \"phone\": \"+5500000000000\",\n  \"logo\": \"https://example.com/logo.png\",\n  \"address\": {\n    \"street\": \"Example Street\",\n    \"number\": \"123\",\n    \"complement\": \"Office 456\",\n    \"neighborhood\": \"Example Neighborhood\",\n    \"city\": \"Example City\",\n    \"state\": \"EX\",\n    \"country\": \"Brazil\",\n    \"postalCode\": \"00000-000\"\n  },\n  \"balance\": {\n    \"id\": \"00000000-0000-0000-0000-000000000000\",\n    \"status\": \"Active\",\n    \"value\": 100000,\n  }\n}"},{"id":"e90a372c-a27e-406a-bf02-3f4142f41057","name":"401 - Unauthorized","originalRequest":{"method":"GET","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"url":"{{url}}/company"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"Text","header":[{"key":"Content-Length","value":"72"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Date","value":"Mon, 18 Aug 2025 13:24:24 GMT"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"48-r2Sjlk9iydsU25uLtA64N03socs\""},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-RateLimit-Limit","value":"50"},{"key":"X-RateLimit-Remaining","value":"49"},{"key":"X-RateLimit-Reset","value":"1"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"API key is missing\",\n    \"error\": \"Unauthorized\",\n    \"statusCode\": 401\n}"}],"_postman_id":"a239a32a-2274-4be0-8ed3-977e7a973c41"}],"id":"87c87cd0-f1b2-4774-b6f5-c0f59c5baf25","_postman_id":"87c87cd0-f1b2-4774-b6f5-c0f59c5baf25","description":"","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}}},{"name":"Customers","item":[{"name":"Person","item":[{"name":"Create a Person","event":[{"listen":"test","script":{"id":"d1f4b200-8850-4827-ab8a-b624cd3466cc","exec":[""],"type":"text/javascript","packages":{},"requests":{}}},{"listen":"prerequest","script":{"id":"2d4a77c7-4dc9-4252-8b65-6ff1030bff07","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"e100fed8-9e98-4871-b5dc-4b5769b4b8ea","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"firstName\": \"Joao\",\r\n  \"lastName\": \"Silva\",\r\n  \"email\": \"joao.silva@example.com\",\r\n  \"document\": \"123.456.789-09\",\r\n  \"birthdate\": \"1995-03-20\",\r\n  \"phone\": \"+5511999990000\",\r\n  \"motherName\": \"Maria Silva\",\r\n  \"address\": {\r\n    \"street\": \"Rua Exemplo\",\r\n    \"number\": \"100\",\r\n    \"neighborhood\": \"Centro\",\r\n    \"postalCode\": \"01000-000\",\r\n    \"city\": \"São Paulo\",\r\n    \"state\": \"SP\",\r\n    \"country\": \"BR\"\r\n  },\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/person","description":"<h4 id=\"every-user-created-through-the-creation-route-once-approved-will-automatically-have-a-card-already-generated\">(Every user created through the creation route, once approved, will automatically have a card already generated)</h4>\n<p>Creates a person in complete registration mode.</p>\n<p>This endpoint allows you to create a person in complete registration mode within a specific campaign. Complete registration requires all mandatory information to be provided upfront, including full address details and personal information. The person will be created with Pending status and will be integrated with external services immediately for card activation and balance management.</p>\n<h2 id=\"environment--staging-behavior\">Environment &amp; Staging Behavior</h2>\n<p>The Link Premio Card API provides both <strong>Production</strong> and <strong>Staging</strong> environments.</p>\n<p>The Staging environment is intended solely for integration testing and simulates specific behaviors to make validation predictable.</p>\n<h3 id=\"staging-behavior\">Staging behavior</h3>\n<p>When using the <strong>Staging</strong> environment, the approval result for LPC flows is determined <strong>exclusively by the first digit</strong> of the value provided in the <code>document</code> field.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>First Digit</th>\n<th>Status</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>0–4</strong></td>\n<td>Paid</td>\n</tr>\n<tr>\n<td><strong>5–9</strong></td>\n<td>Pending</td>\n</tr>\n</tbody>\n</table>\n</div><p>⚠️ These rules apply <strong>only in Staging</strong>.</p>\n<p><strong>Production performs real KYC validation.</strong></p>\n<h3 id=\"validation-rules\">Validation Rules</h3>\n<h4 id=\"user-information\">User Information</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Requirement</th>\n<th>Rule</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>firstName</td>\n<td>string</td>\n<td>Required</td>\n<td>Trimmed and capitalized.</td>\n</tr>\n<tr>\n<td>lastName</td>\n<td>string</td>\n<td>Optional</td>\n<td>Trimmed and capitalized.</td>\n</tr>\n<tr>\n<td>email</td>\n<td>string</td>\n<td>Required</td>\n<td><strong>EMAIL MUST BE UNIQUE IN THE SYSTEM</strong>  <br />Must be a valid email. Always stored in lowercase.</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"person-information\">Person Information</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Requirement</th>\n<th>Rule</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>document</td>\n<td>string</td>\n<td>Required</td>\n<td>Must be a valid CPF.</td>\n</tr>\n<tr>\n<td>birthdate</td>\n<td>string</td>\n<td>Required</td>\n<td>Must be a valid date and represent age ≥ 18 years.</td>\n</tr>\n<tr>\n<td>phone</td>\n<td>string</td>\n<td>Required</td>\n<td>Must contain only numbers and may start with \"+\".</td>\n</tr>\n<tr>\n<td>motherName</td>\n<td>string</td>\n<td>Optional</td>\n<td>Only letters, spaces, accented characters, and apostrophes. Trimmed and capitalized.</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"address\">Address</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Requirement</th>\n<th>Rule</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>street</td>\n<td>string</td>\n<td>Required</td>\n<td>Letters, numbers, spaces, , . -</td>\n</tr>\n<tr>\n<td>number</td>\n<td>string</td>\n<td>Required</td>\n<td>Letters, numbers, spaces only.</td>\n</tr>\n<tr>\n<td>complement</td>\n<td>string</td>\n<td>Optional</td>\n<td>No restriction.</td>\n</tr>\n<tr>\n<td>neighborhood</td>\n<td>string</td>\n<td>Required</td>\n<td>Letters, numbers, spaces, , . -</td>\n</tr>\n<tr>\n<td>postalCode</td>\n<td>string</td>\n<td>Required</td>\n<td>Must be trimmed.</td>\n</tr>\n<tr>\n<td>city</td>\n<td>string</td>\n<td>Required</td>\n<td>Letters, numbers, spaces, , . -</td>\n</tr>\n<tr>\n<td>state</td>\n<td>string</td>\n<td>Required</td>\n<td>Letters, numbers, spaces, , . -</td>\n</tr>\n<tr>\n<td>country</td>\n<td>string</td>\n<td>Required</td>\n<td>Letters, numbers, spaces, , . -</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"balance\">Balance</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Requirement</th>\n<th>Rule</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>balanceTypeId</td>\n<td>string (UUID)</td>\n<td>Optional</td>\n<td>Must be a valid UUID.</td>\n</tr>\n<tr>\n<td>amount</td>\n<td>integer</td>\n<td>Optional</td>\n<td>Must be a positive integer in <strong>cents</strong>.  <br />Min: <code>1</code>.  <br />Max: <code>Number.MAX_SAFE_INTEGER</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><p>&gt; Important: The field amount must always be sent in cents (e.g., 1500 = R$ 15,00).</p>\n<h4 id=\"campaign\">Campaign</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Requirement</th>\n<th>Rule</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>campaignId</td>\n<td>string</td>\n<td>Required</td>\n<td>Must be a valid campaign identifier.</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"notes\">Notes</h4>\n<ul>\n<li><p>firstName → Required field for complete registration</p>\n</li>\n<li><p>email → Required field for complete registration</p>\n</li>\n<li><p>document → Must be a valid CPF format</p>\n</li>\n<li><p>birthdate → Must be valid date with age ≥ 18 years</p>\n</li>\n<li><p>phone → Required for complete registration</p>\n</li>\n<li><p>address → All address fields except complement are required</p>\n</li>\n<li><p>balanceTypeId → Optional, must be a valid identifier of the balance type</p>\n</li>\n<li><p>amount → Optional, value in cents (integer, no decimals)</p>\n</li>\n<li><p>campaignId → Required, links the person to a specific campaign</p>\n</li>\n</ul>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"path":["person"],"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"3c8a3ad4-4d6d-4e42-9687-e57540f223ab","name":"200 Create a Person","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"firstName\": \"Joao\",\r\n  \"lastName\": \"Silva\",\r\n  \"email\": \"joao.silva@example.com\",\r\n  \"document\": \"123.456.789-09\",\r\n  \"birthdate\": \"1995-03-20\",\r\n  \"phone\": \"+5511999990000\",\r\n  \"motherName\": \"Maria Silva\",\r\n  \"address\": {\r\n    \"street\": \"Rua Exemplo\",\r\n    \"number\": \"100\",\r\n    \"neighborhood\": \"Centro\",\r\n    \"postalCode\": \"01000-000\",\r\n    \"city\": \"São Paulo\",\r\n    \"state\": \"SP\",\r\n    \"country\": \"BR\"\r\n  },\r\n  \"balance\": {\r\n    \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n    \"amount\": 1000\r\n  },\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://api-stag.linkpremiocard.com/api/external/person"},"_postman_previewlanguage":"Text","header":[],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\r\n  \"firstName\": \"João\",\r\n  \"lastName\": \"Silva\",\r\n  \"email\": \"joao@example.com\",\r\n  \"document\": \"12345678901\",\r\n  \"birthdate\": \"1990-01-01\",\r\n  \"phone\": \"11999999999\",\r\n  \"motherName\": \"Maria Silva\",\r\n  \"address\": {\r\n    \"street\": \"Rua das Flores\",\r\n    \"number\": \"123\",\r\n    \"complement\": \"Apto 45\",\r\n    \"neighborhood\": \"Centro\",\r\n    \"city\": \"São Paulo\",\r\n    \"state\": \"SP\",\r\n    \"country\": \"Brasil\",\r\n    \"postalCode\": \"01234567\"\r\n  },\r\n  \"balance\": {\r\n    \"balanceTypeId\": \"550e8400-e29b-41d4-a716-446655440000\",\r\n    \"amount\": 1000\r\n  },\r\n  \"campaignId\": \"550e8400-e29b-41d4-a716-446655440001\"\r\n}"},{"id":"46a65f42-5302-4035-b914-5e639e09301a","name":"401 Unauthorized","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"firstName\": \"Joao\",\r\n  \"lastName\": \"Silva\",\r\n  \"email\": \"joao.silva@example.com\",\r\n  \"document\": \"123.456.789-09\",\r\n  \"birthdate\": \"1995-03-20\",\r\n  \"phone\": \"+5511999990000\",\r\n  \"motherName\": \"Maria Silva\",\r\n  \"address\": {\r\n    \"street\": \"Rua Exemplo\",\r\n    \"number\": \"100\",\r\n    \"neighborhood\": \"Centro\",\r\n    \"postalCode\": \"01000-000\",\r\n    \"city\": \"São Paulo\",\r\n    \"state\": \"SP\",\r\n    \"country\": \"BR\"\r\n  },\r\n  \"balance\": {\r\n    \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n    \"amount\": 1000\r\n  },\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/person"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 401,\r\n  \"message\": \"API key is missing\"\r\n}"},{"id":"24bfae0c-932b-4462-b057-dd844db05f1a","name":"400 Validation","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"firstName\": \"Joao\",\r\n  \"lastName\": \"Silva\",\r\n  \"email\": \"joao.silva@example.com\",\r\n  \"document\": \"123.456.789-09\",\r\n  \"birthdate\": \"1995-03-20\",\r\n  \"phone\": \"+5511999990000\",\r\n  \"motherName\": \"Maria Silva\",\r\n  \"address\": {\r\n    \"street\": \"Rua Exemplo\",\r\n    \"number\": \"100\",\r\n    \"neighborhood\": \"Centro\",\r\n    \"postalCode\": \"01000-000\",\r\n    \"city\": \"São Paulo\",\r\n    \"state\": \"SP\",\r\n    \"country\": \"BR\"\r\n  },\r\n  \"balance\": {\r\n    \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n    \"amount\": 1000\r\n  },\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/person"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Invalid Document.\"\r\n}"},{"id":"e794a7f3-b6f2-4170-8c24-34d779c52e9e","name":"400 Bad Request","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"firstName\": \"Joao\",\r\n  \"lastName\": \"Silva\",\r\n  \"email\": \"joao.silva@example.com\",\r\n  \"document\": \"123.456.789-09\",\r\n  \"birthdate\": \"1995-03-20\",\r\n  \"phone\": \"+5511999990000\",\r\n  \"motherName\": \"Maria Silva\",\r\n  \"address\": {\r\n    \"street\": \"Rua Exemplo\",\r\n    \"number\": \"100\",\r\n    \"neighborhood\": \"Centro\",\r\n    \"postalCode\": \"01000-000\",\r\n    \"city\": \"São Paulo\",\r\n    \"state\": \"SP\",\r\n    \"country\": \"BR\"\r\n  },\r\n  \"balance\": {\r\n    \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n    \"amount\": 1000\r\n  },\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/person"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Invalid date, the value does not represent a valid date.\"\r\n}"},{"id":"73c36b87-1086-44b0-bbb0-9810e9ef5551","name":"400 Bad Request","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"firstName\": \"Joao\",\r\n  \"lastName\": \"Silva\",\r\n  \"email\": \"joao.silva@example.com\",\r\n  \"document\": \"123.456.789-09\",\r\n  \"birthdate\": \"1995-03-20\",\r\n  \"phone\": \"+5511999990000\",\r\n  \"motherName\": \"Maria Silva\",\r\n  \"address\": {\r\n    \"street\": \"Rua Exemplo\",\r\n    \"number\": \"100\",\r\n    \"neighborhood\": \"Centro\",\r\n    \"postalCode\": \"01000-000\",\r\n    \"city\": \"São Paulo\",\r\n    \"state\": \"SP\",\r\n    \"country\": \"BR\"\r\n  },\r\n  \"balance\": {\r\n    \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n    \"amount\": 1000\r\n  },\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/person"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"You must be at least 18 years old.\"\r\n}"},{"id":"d1b80911-daf3-480f-8076-0203160ff730","name":"400 Bad Request","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"firstName\": \"Joao\",\r\n  \"lastName\": \"Silva\",\r\n  \"email\": \"joao.silva@example.com\",\r\n  \"document\": \"123.456.789-09\",\r\n  \"birthdate\": \"1995-03-20\",\r\n  \"phone\": \"+5511999990000\",\r\n  \"motherName\": \"Maria Silva\",\r\n  \"address\": {\r\n    \"street\": \"Rua Exemplo\",\r\n    \"number\": \"100\",\r\n    \"neighborhood\": \"Centro\",\r\n    \"postalCode\": \"01000-000\",\r\n    \"city\": \"São Paulo\",\r\n    \"state\": \"SP\",\r\n    \"country\": \"BR\"\r\n  },\r\n  \"balance\": {\r\n    \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n    \"amount\": 1000\r\n  },\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/person"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Phone must contain only numbers and may start with a \\\"+\\\".\"\r\n}"},{"id":"695998c3-351c-4631-93c0-e1a1e68f268a","name":"400 Bad Request","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"firstName\": \"Joao\",\r\n  \"lastName\": \"Silva\",\r\n  \"email\": \"joao.silva@example.com\",\r\n  \"document\": \"123.456.789-09\",\r\n  \"birthdate\": \"1995-03-20\",\r\n  \"phone\": \"+5511999990000\",\r\n  \"motherName\": \"Maria Silva\",\r\n  \"address\": {\r\n    \"street\": \"Rua Exemplo\",\r\n    \"number\": \"100\",\r\n    \"neighborhood\": \"Centro\",\r\n    \"postalCode\": \"01000-000\",\r\n    \"city\": \"São Paulo\",\r\n    \"state\": \"SP\",\r\n    \"country\": \"BR\"\r\n  },\r\n  \"balance\": {\r\n    \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n    \"amount\": 1000\r\n  },\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/person"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Mother Name must contain only letters, accented characters, spaces, and apostrophes.\"\r\n}"},{"id":"3d4ed0b5-d300-4623-80b3-922ada5999f8","name":"400 Bad Request","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"firstName\": \"Joao\",\r\n  \"lastName\": \"Silva\",\r\n  \"email\": \"joao.silva@example.com\",\r\n  \"document\": \"123.456.789-09\",\r\n  \"birthdate\": \"1995-03-20\",\r\n  \"phone\": \"+5511999990000\",\r\n  \"motherName\": \"Maria Silva\",\r\n  \"address\": {\r\n    \"street\": \"Rua Exemplo\",\r\n    \"number\": \"100\",\r\n    \"neighborhood\": \"Centro\",\r\n    \"postalCode\": \"01000-000\",\r\n    \"city\": \"São Paulo\",\r\n    \"state\": \"SP\",\r\n    \"country\": \"BR\"\r\n  },\r\n  \"balance\": {\r\n    \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n    \"amount\": 1000\r\n  },\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/person"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Street must contain only letters, numbers, and spaces.\"\r\n}"},{"id":"cdbafd64-7e0d-42ad-b891-32326c1e38ef","name":"400 Bad Request","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"firstName\": \"Joao\",\r\n  \"lastName\": \"Silva\",\r\n  \"email\": \"joao.silva@example.com\",\r\n  \"document\": \"123.456.789-09\",\r\n  \"birthdate\": \"1995-03-20\",\r\n  \"phone\": \"+5511999990000\",\r\n  \"motherName\": \"Maria Silva\",\r\n  \"address\": {\r\n    \"street\": \"Rua Exemplo\",\r\n    \"number\": \"100\",\r\n    \"neighborhood\": \"Centro\",\r\n    \"postalCode\": \"01000-000\",\r\n    \"city\": \"São Paulo\",\r\n    \"state\": \"SP\",\r\n    \"country\": \"BR\"\r\n  },\r\n  \"balance\": {\r\n    \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n    \"amount\": 1000\r\n  },\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/person"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"If balance is provided, both balanceTypeId and amount are required.\"\r\n}"},{"id":"ab9d645f-0889-4257-9a3d-492c5010d53e","name":"400 Bad Request - Email Send Failed","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"firstName\": \"Joao\",\r\n  \"lastName\": \"Silva\",\r\n  \"email\": \"joao.silva@example.com\",\r\n  \"document\": \"123.456.789-09\",\r\n  \"birthdate\": \"1995-03-20\",\r\n  \"phone\": \"+5511999990000\",\r\n  \"motherName\": \"Maria Silva\",\r\n  \"address\": {\r\n    \"street\": \"Rua Exemplo\",\r\n    \"number\": \"100\",\r\n    \"neighborhood\": \"Centro\",\r\n    \"postalCode\": \"01000-000\",\r\n    \"city\": \"São Paulo\",\r\n    \"state\": \"SP\",\r\n    \"country\": \"BR\"\r\n  },\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/person"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": \"Não foi possivel enviar email para [joao.silva@example.com], mas o usuário foi criado com sucesso\",\r\n  \"code\": 2020\r\n}"},{"id":"6196da3a-3906-4edd-b33e-c30d87e81369","name":"400 Bad Request - Company Does Not Have Enough Balance","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"firstName\": \"Joao\",\r\n  \"lastName\": \"Silva\",\r\n  \"email\": \"joao.silva@example.com\",\r\n  \"document\": \"123.456.789-09\",\r\n  \"birthdate\": \"1995-03-20\",\r\n  \"phone\": \"+5511999990000\",\r\n  \"motherName\": \"Maria Silva\",\r\n  \"address\": {\r\n    \"street\": \"Rua Exemplo\",\r\n    \"number\": \"100\",\r\n    \"neighborhood\": \"Centro\",\r\n    \"postalCode\": \"01000-000\",\r\n    \"city\": \"São Paulo\",\r\n    \"state\": \"SP\",\r\n    \"country\": \"BR\"\r\n  },\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/person"},"_postman_previewlanguage":"Text","header":[],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": \"A carteira da empresa não possui saldo suficiente para realizar esta operação. Por favor, crie uma solicitação de saldo ou entre em contato com o suporte para resolver o problema.: [company-id]\",\r\n  \"code\": 3002\r\n}"},{"id":"e1aa103e-5429-44a5-aa81-507569fe5117","name":"404 Not Found - Balance Type Not Found in Receiver","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"firstName\": \"Joao\",\r\n  \"lastName\": \"Silva\",\r\n  \"email\": \"joao.silva@example.com\",\r\n  \"document\": \"123.456.789-09\",\r\n  \"birthdate\": \"1995-03-20\",\r\n  \"phone\": \"+5511999990000\",\r\n  \"motherName\": \"Maria Silva\",\r\n  \"address\": {\r\n    \"street\": \"Rua Exemplo\",\r\n    \"number\": \"100\",\r\n    \"neighborhood\": \"Centro\",\r\n    \"postalCode\": \"01000-000\",\r\n    \"city\": \"São Paulo\",\r\n    \"state\": \"SP\",\r\n    \"country\": \"BR\"\r\n  },\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/person"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 404,\r\n  \"message\": \"Tipo de saldo não foi encontrado no recebedor: Person: [person-id] - Balance Type: [f47ac10b-58cc-4372-a567-0e02b2c3d479]\",\r\n  \"code\": 2008\r\n}"},{"id":"1c3a43d6-06d8-4f87-b34b-7a11e19d2dec","name":"500 Internal Server Error - Critical Error","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"firstName\": \"Joao\",\r\n  \"lastName\": \"Silva\",\r\n  \"email\": \"joao.silva@example.com\",\r\n  \"document\": \"123.456.789-09\",\r\n  \"birthdate\": \"1995-03-20\",\r\n  \"phone\": \"+5511999990000\",\r\n  \"motherName\": \"Maria Silva\",\r\n  \"address\": {\r\n    \"street\": \"Rua Exemplo\",\r\n    \"number\": \"100\",\r\n    \"neighborhood\": \"Centro\",\r\n    \"postalCode\": \"01000-000\",\r\n    \"city\": \"São Paulo\",\r\n    \"state\": \"SP\",\r\n    \"country\": \"BR\"\r\n  },\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/person"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 500,\r\n  \"message\": \"A ação não pode ser completada. Erro crítico. Entre em contato com o suporte.: ${document}, ${error message}\",\r\n  \"code\": 2005,\r\n  \"details\": {\r\n    \"error\": \"Error message details\"\r\n  }\r\n}"}],"_postman_id":"e100fed8-9e98-4871-b5dc-4b5769b4b8ea"},{"name":"Create a Person in Pre-Registration","event":[{"listen":"test","script":{"id":"d1f4b200-8850-4827-ab8a-b624cd3466cc","exec":[""],"type":"text/javascript","packages":{},"requests":{}}},{"listen":"prerequest","script":{"id":"2d4a77c7-4dc9-4252-8b65-6ff1030bff07","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"9a6841d0-c664-4401-8575-ee14aa03b8c0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"firstName\": \"Example First Name\",\r\n    \"lastName\": \"Example Last Name\",\r\n    \"email\": \"email@example.com\",\r\n    \"document\": \"00000000000\",\r\n    \"balance\": {\r\n        \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n        \"amount\": 1\r\n    },\r\n    \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/person","description":"<h4 id=\"every-user-created-through-the-creation-route-once-approved-will-automatically-have-a-card-already-generated\">(Every user created through the creation route, once approved, will automatically have a card already generated)</h4>\n<p>Creates a <strong>person in pre-registration mode</strong>.</p>\n<p>This endpoint allows you to create a <strong>person in pre-registration mode</strong> within a specific campaign.</p>\n<p>Pre-registration should be used when some information is not yet available (such as address or phone number).</p>\n<p>The person will only be able to access the Link Premio Card and approved balance after all missing data is collected.</p>\n<hr />\n<h2 id=\"environment--staging-behavior\">Environment &amp; Staging Behavior</h2>\n<p>The Link Premio Card API provides both <strong>Production</strong> and <strong>Staging</strong> environments.  </p>\n<p>The Staging environment is intended solely for integration testing and simulates specific behaviors to make validation predictable.</p>\n<h3 id=\"staging-behavior\">Staging behavior</h3>\n<p>When using the <strong>Staging</strong> environment, the approval result for LPC flows is determined <strong>exclusively by the first digit</strong> of the value provided in the <code>document</code> field.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>First Digit</th>\n<th>LPC Status</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>0–4</strong></td>\n<td>Paid</td>\n</tr>\n<tr>\n<td><strong>5–9</strong></td>\n<td>Pending</td>\n</tr>\n</tbody>\n</table>\n</div><p>⚠️ These rules apply <strong>only in Staging</strong>.</p>\n<h3 id=\"production-performs-real-kyc-validation\">Production performs real KYC validation.**</h3>\n<p>Validation Rules**</p>\n<h4 id=\"user-information\"><strong>User Information</strong></h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Requirement</th>\n<th>Rule</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>firstName</code></td>\n<td>string</td>\n<td>Required</td>\n<td>Trimmed and capitalized.</td>\n</tr>\n<tr>\n<td><code>lastName</code></td>\n<td>string</td>\n<td>Optional</td>\n<td>Trimmed and capitalized.</td>\n</tr>\n<tr>\n<td><code>email</code></td>\n<td>string</td>\n<td>Required</td>\n<td><strong>EMAIL MUST BE UNIQUE IN THE SYSTEM</strong>  <br />Must be a valid email. Always stored in lowercase.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h4 id=\"person-information\"><strong>Person Information</strong></h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Requirement</th>\n<th>Rule</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>document</code></td>\n<td>string</td>\n<td>Required</td>\n<td>Must be a valid <strong>CPF</strong>.</td>\n</tr>\n<tr>\n<td><code>birthdate</code></td>\n<td>string</td>\n<td>Optional</td>\n<td>Must be a valid date and represent age ≥ 18 years.</td>\n</tr>\n<tr>\n<td><code>phone</code></td>\n<td>string</td>\n<td>Optional</td>\n<td>Must contain only numbers and may start with <code>\"+\"</code>.</td>\n</tr>\n<tr>\n<td><code>motherName</code></td>\n<td>string</td>\n<td>Optional</td>\n<td>Only letters, spaces, accented characters, and apostrophes. Trimmed and capitalized.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h4 id=\"address\"><strong>Address</strong></h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Requirement</th>\n<th>Rule</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>street</code></td>\n<td>string</td>\n<td>Optional</td>\n<td>Letters, numbers, spaces, <code>. , -</code>.</td>\n</tr>\n<tr>\n<td><code>number</code></td>\n<td>string</td>\n<td>Optional</td>\n<td>Letters, numbers, spaces only.</td>\n</tr>\n<tr>\n<td><code>complement</code></td>\n<td>string</td>\n<td>Optional</td>\n<td>No restriction.</td>\n</tr>\n<tr>\n<td><code>neighborhood</code></td>\n<td>string</td>\n<td>Optional</td>\n<td>Letters, numbers, spaces, <code>. , -</code>.</td>\n</tr>\n<tr>\n<td><code>postalCode</code></td>\n<td>string</td>\n<td>Optional</td>\n<td>Must be trimmed.</td>\n</tr>\n<tr>\n<td><code>city</code></td>\n<td>string</td>\n<td>Optional</td>\n<td>Letters, numbers, spaces, <code>. , -</code>.</td>\n</tr>\n<tr>\n<td><code>state</code></td>\n<td>string</td>\n<td>Optional</td>\n<td>Letters, numbers, spaces, <code>. , -</code>.</td>\n</tr>\n<tr>\n<td><code>country</code></td>\n<td>string</td>\n<td>Optional</td>\n<td>Letters, numbers, spaces, <code>. , -</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h4 id=\"balance\"><strong>Balance</strong></h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Requirement</th>\n<th>Rule</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>balanceTypeId</code></td>\n<td>string (UUID)</td>\n<td>Required</td>\n<td>Must be a valid UUID.</td>\n</tr>\n<tr>\n<td><code>amount</code></td>\n<td>integer</td>\n<td>Required</td>\n<td>Must be a positive integer in <strong>cents</strong>.  <br />Min: <code>1</code>.  <br />Max: <code>Number.MAX_SAFE_INTEGER</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><p>⚠️ <strong>Important:</strong> The field <code>amount</code> must always be sent in <strong>cents</strong> (e.g., <code>1500 = R$ 15,00</code>).</p>\n<hr />\n<h4 id=\"campaign\"><strong>Campaign</strong></h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Requirement</th>\n<th>Rule</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>campaignId</code></td>\n<td>string</td>\n<td>Required</td>\n<td>Must be a valid campaign identifier.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"notes\"><strong>Notes</strong></h3>\n<ul>\n<li><p><code>balanceTypeId</code> → must be a valid identifier of the balance type.</p>\n</li>\n<li><p><code>amount</code> → value in <strong>cents</strong> (integer, no decimals).</p>\n</li>\n<li><p><code>campaignId</code> → links the person to a specific campaign.</p>\n</li>\n</ul>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"path":["person"],"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"55324cce-21ca-4728-8872-71f2b310ce7f","name":"200 OK","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"firstName\": \"Example First Name\",\r\n    \"lastName\": \"Example Last Name\",\r\n    \"email\": \"email@example.com\",\r\n    \"document\": \"00000000000\",\r\n    \"balance\": {\r\n        \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n        \"amount\": 100\r\n    },\r\n    \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/person"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"id\": \"550e8400-e29b-41d4-a716-446655440000\",\r\n  \"status\": \"Paid\",\r\n  \"firstName\": \"Example First Name\",\r\n  \"lastName\": \"Example Last Name\", \r\n  \"email\": \"email@example.com\",\r\n  \"document\": \"00000000000\",\r\n  \"phone\": \"\",\r\n  \"birthdate\": \"1985-05-15T00:00:00.000Z\",\r\n  \"motherName\": \"\",\r\n  \"address\": {\r\n    \"street\": \"\",\r\n    \"number\": \"\",\r\n    \"complement\": \"\",\r\n    \"postalCode\": \"\",\r\n    \"neighborhood\": \"\",\r\n    \"city\": \"\",\r\n    \"state\": \"\",\r\n    \"country\": \"\"\r\n  }\r\n}"},{"id":"8b5f97f0-0d66-436e-aa61-dbe4076aef6d","name":"401 Unauthorized","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"firstName\": \"Example First Name\",\r\n    \"lastName\": \"Example Last Name\",\r\n    \"email\": \"email@example.com\",\r\n    \"document\": \"00000000000\",\r\n    \"balance\": {\r\n        \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n        \"amount\": 100\r\n    },\r\n    \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/person"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 401,\r\n  \"message\": \"API key is missing\"\r\n}"},{"id":"84d1962c-d080-415b-be5e-e296130f3b3d","name":"400 Validation","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"firstName\": \"Example First Name\",\r\n    \"lastName\": \"Example Last Name\",\r\n    \"email\": \"email@example.com\",\r\n    \"document\": \"00000000000\",\r\n    \"balance\": {\r\n        \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n        \"amount\": 100\r\n    },\r\n    \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/person"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Invalid Document.\"\r\n}"},{"id":"10c67297-3d70-443b-87c5-cab107c4e3cc","name":"400 Bad Request","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"firstName\": \"Example First Name\",\r\n    \"lastName\": \"Example Last Name\",\r\n    \"email\": \"email@example.com\",\r\n    \"document\": \"00000000000\",\r\n    \"birthdate\": \"1985-13-13\",\r\n    \"balance\": {\r\n        \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n        \"amount\": 100\r\n    },\r\n    \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/person"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Invalid date, the value does not represent a valid date.\"\r\n}"},{"id":"22f6ba4f-8bbe-4032-ab4c-69f63e0140fd","name":"400 Bad Request","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"firstName\": \"Example First Name\",\r\n    \"lastName\": \"Example Last Name\",\r\n    \"email\": \"email@example.com\",\r\n    \"document\": \"00000000000\",\r\n    \"birthdate\": \"2017-05-15\",\r\n    \"balance\": {\r\n        \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n        \"amount\": 100\r\n    },\r\n    \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/person"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"You must be at least 18 years old.\"\r\n}"},{"id":"21f7f7fe-9636-4934-9576-b10ec6e332de","name":"400 Bad Request","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"firstName\": \"Example First Name\",\r\n    \"lastName\": \"Example Last Name\",\r\n    \"email\": \"email@example.com\",\r\n    \"document\": \"00000000000\",\r\n    \"balance\": {\r\n        \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n        \"amount\": 100\r\n    },\r\n    \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/person"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Phone must contain only numbers and may start with a \\\"+\\\".\"\r\n}"},{"id":"7105e195-39b2-4b1e-b490-79525fa8faec","name":"400 Bad Request","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"firstName\": \"Example First Name\",\r\n    \"lastName\": \"Example Last Name\",\r\n    \"email\": \"email@example.com\",\r\n    \"document\": \"00000000000\",\r\n    \"balance\": {\r\n        \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n        \"amount\": 100\r\n    },\r\n    \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/person"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Mother Name must contain only letters, accented characters, spaces, and apostrophes.\"\r\n}"},{"id":"842f4c0d-39cd-436d-bc7f-725d79fd323b","name":"400 Bad Request","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"firstName\": \"Example First Name\",\r\n    \"lastName\": \"Example Last Name\",\r\n    \"email\": \"email@example.com\",\r\n    \"document\": \"00000000000\",\r\n    \"balance\": {\r\n        \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n        \"amount\": 100\r\n    },\r\n    \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/person"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Street must contain only letters, numbers, and spaces.\"\r\n}"},{"id":"7046219c-86b2-4bbb-9c3f-9d777f45088a","name":"400 Bad Request","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"firstName\": \"Example First Name\",\r\n    \"lastName\": \"Example Last Name\",\r\n    \"email\": \"email@example.com\",\r\n    \"document\": \"00000000000\",\r\n    \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/person"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"If balance is provided, both balanceTypeId and amount are required.\"\r\n}"},{"id":"5fce9337-c8fb-4fd7-978b-8a6e973c73ec","name":"400 Bad Request - Email Send Failed","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"firstName\": \"Joao\",\r\n  \"lastName\": \"Silva\",\r\n  \"email\": \"joao.silva@example.com\",\r\n  \"document\": \"123.456.789-09\",\r\n  \"birthdate\": \"1995-03-20\",\r\n  \"phone\": \"+5511999990000\",\r\n  \"motherName\": \"Maria Silva\",\r\n  \"address\": {\r\n    \"street\": \"Rua Exemplo\",\r\n    \"number\": \"100\",\r\n    \"neighborhood\": \"Centro\",\r\n    \"postalCode\": \"01000-000\",\r\n    \"city\": \"São Paulo\",\r\n    \"state\": \"SP\",\r\n    \"country\": \"BR\"\r\n  },\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/person"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": \"Não foi possivel enviar email para [joao.silva@example.com], mas o usuário foi criado com sucesso\",\r\n  \"code\": 2020\r\n}"},{"id":"6430b52e-64e6-4edf-a5b2-f30e247bd791","name":"400 Bad Request - Company Does Not Have Enough Balance","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"firstName\": \"Joao\",\r\n  \"lastName\": \"Silva\",\r\n  \"email\": \"joao.silva@example.com\",\r\n  \"document\": \"123.456.789-09\",\r\n  \"birthdate\": \"1995-03-20\",\r\n  \"phone\": \"+5511999990000\",\r\n  \"motherName\": \"Maria Silva\",\r\n  \"address\": {\r\n    \"street\": \"Rua Exemplo\",\r\n    \"number\": \"100\",\r\n    \"neighborhood\": \"Centro\",\r\n    \"postalCode\": \"01000-000\",\r\n    \"city\": \"São Paulo\",\r\n    \"state\": \"SP\",\r\n    \"country\": \"BR\"\r\n  },\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/person"},"_postman_previewlanguage":"Text","header":[],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": \"A carteira da empresa não possui saldo suficiente para realizar esta operação. Por favor, crie uma solicitação de saldo ou entre em contato com o suporte para resolver o problema.: [company-id]\",\r\n  \"code\": 3002\r\n}"},{"id":"3136df4f-6962-4d6c-b450-aa7e5d514e08","name":"404 Not Found - Balance Type Not Found in Receiver","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"firstName\": \"Joao\",\r\n  \"lastName\": \"Silva\",\r\n  \"email\": \"joao.silva@example.com\",\r\n  \"document\": \"123.456.789-09\",\r\n  \"birthdate\": \"1995-03-20\",\r\n  \"phone\": \"+5511999990000\",\r\n  \"motherName\": \"Maria Silva\",\r\n  \"address\": {\r\n    \"street\": \"Rua Exemplo\",\r\n    \"number\": \"100\",\r\n    \"neighborhood\": \"Centro\",\r\n    \"postalCode\": \"01000-000\",\r\n    \"city\": \"São Paulo\",\r\n    \"state\": \"SP\",\r\n    \"country\": \"BR\"\r\n  },\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/person"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 404,\r\n  \"message\": \"Tipo de saldo não foi encontrado no recebedor: Person: [person-id] - Balance Type: [f47ac10b-58cc-4372-a567-0e02b2c3d479]\",\r\n  \"code\": 2008\r\n}"},{"id":"b6da63a8-5fb2-4948-8928-1a95787078ee","name":"500 Internal Server Error - Critical Error","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"firstName\": \"Joao\",\r\n  \"lastName\": \"Silva\",\r\n  \"email\": \"joao.silva@example.com\",\r\n  \"document\": \"123.456.789-09\",\r\n  \"birthdate\": \"1995-03-20\",\r\n  \"phone\": \"+5511999990000\",\r\n  \"motherName\": \"Maria Silva\",\r\n  \"address\": {\r\n    \"street\": \"Rua Exemplo\",\r\n    \"number\": \"100\",\r\n    \"neighborhood\": \"Centro\",\r\n    \"postalCode\": \"01000-000\",\r\n    \"city\": \"São Paulo\",\r\n    \"state\": \"SP\",\r\n    \"country\": \"BR\"\r\n  },\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/person"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 500,\r\n  \"message\": \"A ação não pode ser completada. Erro crítico. Entre em contato com o suporte.: ${document}, ${error message}\",\r\n  \"code\": 2005,\r\n  \"details\": {\r\n    \"error\": \"Error message details\"\r\n  }\r\n}"}],"_postman_id":"9a6841d0-c664-4401-8575-ee14aa03b8c0"},{"name":"Retrieve People","id":"47d15600-873a-4be2-a04b-c0d3b0dfb388","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{url}}/person","description":"<h3 id=\"retrieves-a-list-of-people-with-optional-filtering-and-pagination\">Retrieves a list of people with optional filtering and pagination.</h3>\n<p>This endpoint allows you to retrieve a paginated list of people from your system with various filtering options. You can filter by status, search by name/email/document, and paginate through results. The endpoint returns basic person information including user details, contact information, and current status.</p>\n<hr />\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<h4 id=\"pagination\">Pagination</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Requirement</th>\n<th>Rule</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>page</td>\n<td>integer</td>\n<td>Optional</td>\n<td>Page number (default: 1). Min: 1, Max: 99999.</td>\n</tr>\n<tr>\n<td>limit</td>\n<td>integer</td>\n<td>Optional</td>\n<td>Items per page (default: 10). Min: 1, Max: 9999.</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"search--filter\">Search &amp; Filter</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Requirement</th>\n<th>Rule</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>query</td>\n<td>string</td>\n<td>Optional</td>\n<td>Search by first name, last name, email, or document (case-insensitive).</td>\n</tr>\n<tr>\n<td>status</td>\n<td>array</td>\n<td>Optional</td>\n<td>Filter by user status. Valid values: [\"Paid\", \"Pending\", \"Disabled\"].</td>\n</tr>\n<tr>\n<td>document</td>\n<td>string</td>\n<td>Optional</td>\n<td>Filter by exact document (CPF) match (case-insensitive).</td>\n</tr>\n<tr>\n<td>email</td>\n<td>string</td>\n<td>Optional</td>\n<td>Filter by exact email match (case-insensitive).</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"date-range\">Date Range</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Requirement</th>\n<th>Rule</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>startDate</td>\n<td>string</td>\n<td>Optional</td>\n<td>Filter by creation date from (YYYY-MM-DD format).</td>\n</tr>\n<tr>\n<td>endDate</td>\n<td>string</td>\n<td>Optional</td>\n<td>Filter by creation date to (YYYY-MM-DD format).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"notes\">Notes</h3>\n<ul>\n<li><p>Company Scope: Results are automatically filtered by the authenticated company</p>\n</li>\n<li><p>Search Behavior: The query parameter searches across first name, last name, email, and document fields</p>\n</li>\n<li><p>Status Filtering: Multiple status values can be provided as an array</p>\n</li>\n<li><p>Date Format: All dates should be provided in YYYY-MM-DD format</p>\n</li>\n<li><p>Case Sensitivity: Search and email/document filtering are case-insensitive</p>\n</li>\n<li><p>Ordering: Results are ordered by first name in ascending order by default</p>\n</li>\n</ul>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"path":["person"],"host":["{{url}}"],"query":[{"disabled":true,"description":{"content":"<p>number: [1-9999]</p>\n","type":"text/plain"},"key":"limit","value":""},{"disabled":true,"description":{"content":"<p>number: [1-99999]</p>\n","type":"text/plain"},"key":"page","value":""},{"disabled":true,"description":{"content":"<p>YYYY-MM-DD</p>\n","type":"text/plain"},"key":"startDate","value":""},{"disabled":true,"description":{"content":"<p>YYYY-MM-DD</p>\n","type":"text/plain"},"key":"endDate","value":""},{"disabled":true,"description":{"content":"<p>Paid | Rejected| Disabled</p>\n","type":"text/plain"},"key":"status[]","value":""},{"disabled":true,"description":{"content":"<p>text</p>\n","type":"text/plain"},"key":"document ","value":""},{"disabled":true,"description":{"content":"<p>text | Filter by: firstName, lastName, email, document</p>\n","type":"text/plain"},"key":"query","value":""}],"variable":[]}},"response":[{"id":"e13d78af-5f11-4823-acfb-104a08c42162","name":"200 Ok","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{url}}/person","host":["{{url}}"],"path":["person"],"query":[{"key":"limit","value":"","description":"number: [1-9999]","disabled":true},{"key":"page","value":"","description":"number: [1-99999]","type":"text","disabled":true},{"key":"startDate","value":"","description":"YYYY-MM-DD","type":"text","disabled":true},{"key":"endDate","value":"","description":"YYYY-MM-DD","type":"text","disabled":true},{"key":"status[]","value":"","description":"Paid | Rejected| Disabled","disabled":true},{"key":"document ","value":"","description":"text","type":"text","disabled":true},{"key":"query","value":"","description":"text | Filter by: firstName, lastName, email, document","disabled":true}]}},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"data\": [\r\n    {\r\n      \"id\": \"123e4567-e89b-12d3-a456-426614174000\",\r\n      \"status\": \"Paid\",\r\n      \"firstName\": \"João\",\r\n      \"lastName\": \"Silva\",\r\n      \"email\": \"joao.silva@example.com\",\r\n      \"document\": \"12345678901\",\r\n      \"phone\": \"11999999999\",\r\n      \"birthdate\": \"1990-01-01T00:00:00.000Z\",\r\n      \"motherName\": \"Maria Silva\"\r\n    }\r\n  ],\r\n  \"totalItems\": 1,\r\n  \"totalPages\": 1,\r\n  \"page\": 1,\r\n  \"limit\": 10\r\n}"},{"id":"77b8aef4-8999-417b-b643-6418d469aac5","name":"400 Bad Request","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{url}}/person","host":["{{url}}"],"path":["person"],"query":[{"key":"limit","value":"","description":"number: [1-9999]","disabled":true},{"key":"page","value":"","description":"number: [1-99999]","type":"text","disabled":true},{"key":"startDate","value":"","description":"YYYY-MM-DD","type":"text","disabled":true},{"key":"endDate","value":"","description":"YYYY-MM-DD","type":"text","disabled":true},{"key":"status[]","value":"","description":"Paid | Rejected| Disabled","disabled":true},{"key":"document ","value":"","description":"text","type":"text","disabled":true},{"key":"query","value":"","description":"text | Filter by: firstName, lastName, email, document","disabled":true}]}},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    {\r\n      \"code\": \"too_small\",\r\n      \"minimum\": 1,\r\n      \"type\": \"number\",\r\n      \"inclusive\": true,\r\n      \"exact\": false,\r\n      \"message\": \"Number must be greater than or equal to 1\",\r\n      \"path\": [\"page\"]\r\n    }\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"},{"id":"8ed84755-773a-42d2-b55a-9539b8d2f2a9","name":"400 Bad Request","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{url}}/person","host":["{{url}}"],"path":["person"],"query":[{"key":"limit","value":"","description":"number: [1-9999]","disabled":true},{"key":"page","value":"","description":"number: [1-99999]","type":"text","disabled":true},{"key":"startDate","value":"","description":"YYYY-MM-DD","type":"text","disabled":true},{"key":"endDate","value":"","description":"YYYY-MM-DD","type":"text","disabled":true},{"key":"status[]","value":"","description":"Paid | Rejected| Disabled","disabled":true},{"key":"document ","value":"","description":"text","type":"text","disabled":true},{"key":"query","value":"","description":"text | Filter by: firstName, lastName, email, document","disabled":true}]}},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    {\r\n      \"code\": \"too_big\",\r\n      \"maximum\": 9999,\r\n      \"type\": \"number\",\r\n      \"inclusive\": true,\r\n      \"exact\": false,\r\n      \"message\": \"Number must be less than or equal to 9999\",\r\n      \"path\": [\"limit\"]\r\n    }\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"},{"id":"1cbd0c8e-95d3-4395-a132-89287bfefdcf","name":"400 Bad Request","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{url}}/person","host":["{{url}}"],"path":["person"],"query":[{"key":"limit","value":"","description":"number: [1-9999]","disabled":true},{"key":"page","value":"","description":"number: [1-99999]","type":"text","disabled":true},{"key":"startDate","value":"","description":"YYYY-MM-DD","type":"text","disabled":true},{"key":"endDate","value":"","description":"YYYY-MM-DD","type":"text","disabled":true},{"key":"status[]","value":"","description":"Paid | Rejected| Disabled","disabled":true},{"key":"document ","value":"","description":"text","type":"text","disabled":true},{"key":"query","value":"","description":"text | Filter by: firstName, lastName, email, document","disabled":true}]}},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    {\r\n      \"code\": \"invalid_string\",\r\n      \"expected\": \"email\",\r\n      \"received\": \"string\",\r\n      \"message\": \"Invalid email\",\r\n      \"path\": [\"email\"]\r\n    }\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"},{"id":"afb7b99c-18a7-49e4-8fa9-07a62ddd6589","name":"400 Bad Request","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{url}}/person","host":["{{url}}"],"path":["person"],"query":[{"key":"limit","value":"","description":"number: [1-9999]","disabled":true},{"key":"page","value":"","description":"number: [1-99999]","type":"text","disabled":true},{"key":"startDate","value":"","description":"YYYY-MM-DD","type":"text","disabled":true},{"key":"endDate","value":"","description":"YYYY-MM-DD","type":"text","disabled":true},{"key":"status[]","value":"","description":"Paid | Rejected| Disabled","disabled":true},{"key":"document ","value":"","description":"text","type":"text","disabled":true},{"key":"query","value":"","description":"text | Filter by: firstName, lastName, email, document","disabled":true}]}},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    {\r\n      \"code\": \"custom\",\r\n      \"message\": \"Invalid date, the value does not represent a valid date.\",\r\n      \"path\": [\"startDate\"]\r\n    }\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"},{"id":"96ae219d-2522-4825-bf3d-3b30cfe90878","name":"400 Bad Request","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{url}}/person","host":["{{url}}"],"path":["person"],"query":[{"key":"limit","value":"","description":"number: [1-9999]","disabled":true},{"key":"page","value":"","description":"number: [1-99999]","type":"text","disabled":true},{"key":"startDate","value":"","description":"YYYY-MM-DD","type":"text","disabled":true},{"key":"endDate","value":"","description":"YYYY-MM-DD","type":"text","disabled":true},{"key":"status[]","value":"","description":"Paid | Rejected| Disabled","disabled":true},{"key":"document ","value":"","description":"text","type":"text","disabled":true},{"key":"query","value":"","description":"text | Filter by: firstName, lastName, email, document","disabled":true}]}},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    {\r\n      \"code\": \"invalid_enum_value\",\r\n      \"options\": [\"Paid\", \"Pending\", \"Disabled\"],\r\n      \"path\": [\"status\", 0],\r\n      \"message\": \"Invalid enum value. Expected 'Paid' | 'Pending' | 'Disabled', received 'InvalidStatus'\"\r\n    }\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"}],"_postman_id":"47d15600-873a-4be2-a04b-c0d3b0dfb388"},{"name":"Retrieve Person by Id","id":"cab4f4e9-61d1-43f3-a0f3-d7cd9018744e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{url}}/person/:id","description":"<h3 id=\"retrieves-detailed-information-for-a-specific-person-by-their-unique-identifier\">Retrieves detailed information for a specific person by their unique identifier.</h3>\n<p>This endpoint allows you to retrieve comprehensive information about a specific person using their unique UUID identifier. The response includes complete person details, address information, user status, and any rejection reasons if the person's status is \"Pending\".</p>\n<hr />\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Requirement</th>\n<th>Rule</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>string (UUID)</td>\n<td>Required</td>\n<td>Must be a valid UUID of an existing person.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"main-response-object\">Main Response Object</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>string</td>\n<td>Unique identifier of the person (UUID format)</td>\n</tr>\n<tr>\n<td>status</td>\n<td>string</td>\n<td>Current status of the person. Mapped values: \"Paid\" (for Active/PreRegistered), \"Pending\", \"Disabled\"</td>\n</tr>\n<tr>\n<td>firstName</td>\n<td>string</td>\n<td>Person's first name</td>\n</tr>\n<tr>\n<td>lastName</td>\n<td>string</td>\n<td>Person's last name</td>\n</tr>\n<tr>\n<td>email</td>\n<td>string</td>\n<td>Person's email address</td>\n</tr>\n<tr>\n<td>document</td>\n<td>string</td>\n<td>Person's CPF document</td>\n</tr>\n<tr>\n<td>phone</td>\n<td>string</td>\n<td>Person's phone number</td>\n</tr>\n<tr>\n<td>birthdate</td>\n<td>string</td>\n<td>Person's birthdate in ISO format (YYYY-MM-DD)</td>\n</tr>\n<tr>\n<td>motherName</td>\n<td>string</td>\n<td>Person's mother's full name</td>\n</tr>\n<tr>\n<td>address</td>\n<td>object</td>\n<td>Person's complete address information</td>\n</tr>\n<tr>\n<td>errors</td>\n<td>array of strings</td>\n<td>Array of rejection reasons (only populated when status is \"Pending\")</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"address-object-fields\">Address Object Fields</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>street</td>\n<td>string</td>\n<td>Street name</td>\n</tr>\n<tr>\n<td>number</td>\n<td>string</td>\n<td>Street number</td>\n</tr>\n<tr>\n<td>complement</td>\n<td>string</td>\n<td>Address complement</td>\n</tr>\n<tr>\n<td>neighborhood</td>\n<td>string</td>\n<td>Neighborhood name</td>\n</tr>\n<tr>\n<td>city</td>\n<td>string</td>\n<td>City name</td>\n</tr>\n<tr>\n<td>state</td>\n<td>string</td>\n<td>State name</td>\n</tr>\n<tr>\n<td>country</td>\n<td>string</td>\n<td>Country name</td>\n</tr>\n<tr>\n<td>postalCode</td>\n<td>string</td>\n<td>Postal/ZIP code</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li><p>Rejection Reasons: The errors field contains rejection reasons only when status is \"Pending\"</p>\n</li>\n<li><p>Address Information: Complete address details are included in the response</p>\n</li>\n<li><p>Balance Information: Balance details are currently commented out in the response</p>\n</li>\n</ul>\n<hr />\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"path":["person",":id"],"host":["{{url}}"],"query":[],"variable":[{"id":"711a4807-5e03-45c0-8796-8b40339e68cb","type":"any","value":"","key":"id"}]}},"response":[{"id":"0a2ebe1b-4c35-48cf-8f52-05a7b20fa5e8","name":"200 Ok","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{url}}/person/:id","host":["{{url}}"],"path":["person",":id"],"variable":[{"key":"id","value":""}]}},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"id\": \"123e4567-e89b-12d3-a456-426614174000\",\r\n  \"status\": \"Paid\",\r\n  \"firstName\": \"João\",\r\n  \"lastName\": \"Silva\",\r\n  \"email\": \"joao.silva@example.com\",\r\n  \"document\": \"12345678901\",\r\n  \"phone\": \"11999999999\",\r\n  \"birthdate\": \"1990-01-01T00:00:00.000Z\",\r\n  \"motherName\": \"Maria Silva\",\r\n  \"address\": {\r\n    \"street\": \"Rua das Flores\",\r\n    \"number\": \"123\",\r\n    \"complement\": \"Apto 45\",\r\n    \"neighborhood\": \"Centro\",\r\n    \"city\": \"São Paulo\",\r\n    \"state\": \"SP\",\r\n    \"country\": \"Brasil\",\r\n    \"postalCode\": \"01234567\"\r\n  },\r\n  \"errors\": []\r\n}"},{"id":"265a37c0-7f77-4f8e-83c2-331d057ed8ef","name":"200 OK - (Pending Person with Errors)","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{url}}/person/:id","host":["{{url}}"],"path":["person",":id"],"variable":[{"key":"id","value":""}]}},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"id\": \"123e4567-e89b-12d3-a456-426614174001\",\r\n  \"status\": \"Pending\",\r\n  \"firstName\": \"Maria\",\r\n  \"lastName\": \"Santos\",\r\n  \"email\": \"maria.santos@example.com\",\r\n  \"document\": \"98765432100\",\r\n  \"phone\": \"11888888888\",\r\n  \"birthdate\": \"1985-05-15T00:00:00.000Z\",\r\n  \"motherName\": \"Ana Santos\",\r\n  \"address\": {\r\n    \"street\": \"Avenida Paulista\",\r\n    \"number\": \"1000\",\r\n    \"complement\": null,\r\n    \"neighborhood\": \"Bela Vista\",\r\n    \"city\": \"São Paulo\",\r\n    \"state\": \"SP\",\r\n    \"country\": \"Brasil\",\r\n    \"postalCode\": \"01310100\"\r\n  },\r\n  \"errors\": [\r\n    \"Data de nascimento não corresponde à registrada na Receita Federal.\",\r\n    \"CPF pertencente a pessoa falecida.\",\r\n    \"Nome não corresponde ao registrado na Receita Federal.\",\r\n    \"Data de nascimento não corresponde à registrada na Receita Federal.\",\r\n    \"A Razão Social não corresponde ao registrado na Receita Federal.\"\r\n  ]\r\n}"},{"id":"6ed78081-b3d2-4e73-8654-009787d3ed18","name":"404 Not Found","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{url}}/person/:id","host":["{{url}}"],"path":["person",":id"],"variable":[{"key":"id","value":"00000000-0000-0000-0000-000000000000"}]}},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 404,\r\n  \"message\": \"Person was not found\",\r\n  \"error\": \"Not Found\"\r\n}"},{"id":"53c6676e-710a-4112-a096-dd823c09ba3c","name":"429 Too Many Requests - Rate Limiting","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{url}}/person/:id","host":["{{url}}"],"path":["person",":id"],"variable":[{"key":"id","value":""}]}},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 429,\r\n  \"message\": \"Você atingiu o limite de requisições permitidas. Tente novamente mais tarde.\",\r\n  \"error\": \"Too Many Requests\"\r\n}"},{"id":"d1335a0b-cdb3-4b98-b159-b8d1198d70f8","name":"401 Unauthorized - Missing API Key","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{url}}/person/:id","host":["{{url}}"],"path":["person",":id"],"variable":[{"key":"id","value":""}]}},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 401,\r\n  \"message\": \"API key is missing\",\r\n  \"error\": \"Unauthorized\"\r\n}"},{"id":"9f0f2be0-691b-41c2-a455-fec9fbe3267e","name":"401 Unauthorized - Invalid API Key","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{url}}/person/:id","host":["{{url}}"],"path":["person",":id"],"variable":[{"key":"id","value":""}]}},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 401,\r\n  \"message\": \"Invalid API key\",\r\n  \"error\": \"Unauthorized\"\r\n}"}],"_postman_id":"cab4f4e9-61d1-43f3-a0f3-d7cd9018744e"},{"name":"Create a Person V2","event":[{"listen":"prerequest","script":{"id":"72885289-4832-40ed-ad80-6f5916fc0744","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"f4324c13-68c5-4c65-ba04-4f0a0f61aaa3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"x-api-key","value":"api-key","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"referenceId\": \"cad-unico-2024-001\",\n  \"firstName\": \"João\",\n  \"lastName\": \"da Silva\",\n  \"document\": \"12345678901\",\n  \"email\": \"joao.silva@email.com\",\n  \"birthdate\": \"1990-05-15\",\n  \"phone\": \"+5511999887766\",\n  \"motherName\": \"Maria da Silva\",\n  \"campaignId\": \"550e8400-e29b-41d4-a716-446655440000\",\n  \"address\": {\n    \"street\": \"Rua das Flores\",\n    \"number\": \"123\",\n    \"complement\": \"Apto 4B\",\n    \"neighborhood\": \"Centro\",\n    \"postalCode\": \"01001-000\",\n    \"city\": \"São Paulo\",\n    \"state\": \"SP\",\n    \"country\": \"Brasil\"\n  },\n  \"balance\": {\n    \"balanceTypeId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n    \"amount\": 5000\n  }\n}","options":{"raw":{"language":"json"}}},"url":"{{url-v2}}/person","description":"<h1 id=\"cadastro-de-participante-v2-assíncrono\">Cadastro de Participante V2 (Assíncrono)</h1>\n<h2 id=\"visão-geral\">Visão Geral</h2>\n<p>A rota <code>POST /api/v2/external/person</code> permite cadastrar participantes de forma <strong>assíncrona</strong>. Diferente da V1, esta rota retorna imediatamente um ID de registro e o processamento real ocorre em segundo plano, com notificações via <strong>Webhook</strong>.</p>\n<h3 id=\"resumo-do-endpoint\">Resumo do Endpoint</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Método</th>\n<th>Endpoint</th>\n<th>Autenticação</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>POST</code></td>\n<td><code>/api/v2/external/person</code></td>\n<td>API Key via header <code>x-api-key</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"autenticação\">Autenticação</h2>\n<p>Todos os requests devem incluir o header <code>x-api-key</code> com sua chave de API fornecida.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>x-api-key: sua-chave-api-aqui\nContent-Type: application/json\n\n</code></pre><hr />\n<h2 id=\"request-body\">Request Body</h2>\n<h3 id=\"campos\">Campos</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>referenceId</code></td>\n<td><code>string</code></td>\n<td><strong>Sim</strong></td>\n<td>Seu identificador único para esta requisição. Usado para idempotência — se enviar o mesmo <code>referenceId</code> novamente, a API retorna o status atual em vez de criar um novo cadastro.</td>\n</tr>\n<tr>\n<td><code>firstName</code></td>\n<td><code>string</code></td>\n<td><strong>Sim</strong></td>\n<td>Primeiro nome do participante (min. 1 caractere).</td>\n</tr>\n<tr>\n<td><code>document</code></td>\n<td><code>string</code></td>\n<td><strong>Sim</strong></td>\n<td>CPF do participante (exatamente 11 dígitos).</td>\n</tr>\n<tr>\n<td><code>campaignId</code></td>\n<td><code>string (UUID)</code></td>\n<td><strong>Sim</strong></td>\n<td>ID da campanha onde o participante será registrado.</td>\n</tr>\n<tr>\n<td><code>lastName</code></td>\n<td><code>string</code></td>\n<td>Não</td>\n<td>Sobrenome do participante.</td>\n</tr>\n<tr>\n<td><code>email</code></td>\n<td><code>string</code></td>\n<td><strong>Sim</strong></td>\n<td>E-mail válido do participante.</td>\n</tr>\n<tr>\n<td><code>birthdate</code></td>\n<td><code>string</code></td>\n<td>Não</td>\n<td>Data de nascimento no formato <code>YYYY-MM-DD</code>. Deve ser maior de 18 anos.</td>\n</tr>\n<tr>\n<td><code>phone</code></td>\n<td><code>string</code></td>\n<td>Não</td>\n<td>Telefone no formato internacional: <code>+5511999999999</code>.</td>\n</tr>\n<tr>\n<td><code>motherName</code></td>\n<td><code>string</code></td>\n<td>Não</td>\n<td>Nome completo da mãe (apenas letras, espaços e apóstrofos).</td>\n</tr>\n<tr>\n<td><code>address</code></td>\n<td><code>object</code></td>\n<td>Não</td>\n<td>Objeto de endereço (detalhes abaixo).</td>\n</tr>\n<tr>\n<td><code>balance</code></td>\n<td><code>object</code></td>\n<td><strong>Sim</strong></td>\n<td>Objeto de saldo a ser creditado no cadastro (detalhes abaixo).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"objeto-address\">Objeto <code>address</code></h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>street</code></td>\n<td><code>string</code></td>\n<td>Não</td>\n<td>Nome da rua/logradouro.</td>\n</tr>\n<tr>\n<td><code>number</code></td>\n<td><code>string</code></td>\n<td>Não</td>\n<td>Número do endereço (apenas números ou <code>S/N</code>).</td>\n</tr>\n<tr>\n<td><code>complement</code></td>\n<td><code>string</code></td>\n<td>Não</td>\n<td>Complemento (apartamento, bloco, etc.).</td>\n</tr>\n<tr>\n<td><code>neighborhood</code></td>\n<td><code>string</code></td>\n<td>Não</td>\n<td>Bairro.</td>\n</tr>\n<tr>\n<td><code>postalCode</code></td>\n<td><code>string</code></td>\n<td>Não</td>\n<td>CEP no formato <code>00000-000</code> ou <code>00000000</code>.</td>\n</tr>\n<tr>\n<td><code>city</code></td>\n<td><code>string</code></td>\n<td>Não</td>\n<td>Cidade.</td>\n</tr>\n<tr>\n<td><code>state</code></td>\n<td><code>string</code></td>\n<td>Não</td>\n<td>Sigla do estado com 2 letras maiúsculas (ex: <code>SP</code>).</td>\n</tr>\n<tr>\n<td><code>country</code></td>\n<td><code>string</code></td>\n<td>Não</td>\n<td>País.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"objeto-balance\">Objeto <code>balance</code></h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>balanceTypeId</code></td>\n<td><code>string (UUID)</code></td>\n<td><strong>Sim</strong> (se <code>balance</code> informado)</td>\n<td>ID do tipo de saldo.</td>\n</tr>\n<tr>\n<td><code>amount</code></td>\n<td><code>integer</code></td>\n<td><strong>Sim</strong> (se <code>balance</code> informado)</td>\n<td>Valor em centavos (min. 1, número inteiro).</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"exemplos-de-request\">Exemplos de Request</h2>\n<p><strong>Exemplo Completo (todos os campos)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"referenceId\": \"cad-unico-2024-001\",\n  \"firstName\": \"João\",\n  \"lastName\": \"da Silva\",\n  \"document\": \"12345678901\",\n  \"email\": \"joao.silva@email.com\",\n  \"birthdate\": \"1990-05-15\",\n  \"phone\": \"+5511999887766\",\n  \"motherName\": \"Maria da Silva\",\n  \"campaignId\": \"550e8400-e29b-41d4-a716-446655440000\",\n  \"address\": {\n    \"street\": \"Rua das Flores\",\n    \"number\": \"123\",\n    \"complement\": \"Apto 4B\",\n    \"neighborhood\": \"Centro\",\n    \"postalCode\": \"01001-000\",\n    \"city\": \"São Paulo\",\n    \"state\": \"SP\",\n    \"country\": \"Brasil\"\n  },\n  \"balance\": {\n    \"balanceTypeId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n    \"amount\": 5000\n  }\n}\n\n</code></pre>\n<p><strong>Exemplo Mínimo (campos obrigatórios)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"referenceId\": \"cad-unico-2024-002\",\n  \"firstName\": \"Maria\",\n  \"email\": \"joao.silva@email.com\",\n  \"document\": \"98765432100\",\n  \"campaignId\": \"550e8400-e29b-41d4-a716-446655440000\",\n  \"balance\": {\n    \"balanceTypeId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n    \"amount\": 10000\n  }\n}\n\n</code></pre>\n<hr />\n<h2 id=\"respostas-de-sucesso-201-created\">Respostas de Sucesso (201 Created)</h2>\n<h3 id=\"nova-requisição-enfileirada\">Nova Requisição Enfileirada</h3>\n<p>Retornado quando o <code>referenceId</code> é único e o cadastro foi colocado na fila com sucesso.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"referenceId\": \"cad-unico-2024-001\",\n  \"registrationId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\",\n  \"status\": \"QUEUED\",\n  \"jobId\": \"bull:person-registration-abc123:1\",\n  \"payload\": {\n    \"firstName\": \"João\",\n    \"lastName\": \"da Silva\",\n    \"email\": \"joao.silva@email.com\",\n    \"person\": {\n      \"document\": \"12345678901\",\n      \"birthdate\": \"1990-05-15\",\n      \"phone\": \"+5511999887766\",\n      \"motherName\": \"Maria da Silva\"\n    },\n    \"address\": {\n      \"street\": \"Rua das Flores\",\n      \"number\": \"123\",\n      \"complement\": \"Apto 4B\",\n      \"neighborhood\": \"Centro\",\n      \"postalCode\": \"01001-000\",\n      \"city\": \"São Paulo\",\n      \"state\": \"SP\",\n      \"country\": \"Brasil\"\n    },\n    \"balance\": {\n      \"balanceTypeId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n      \"amount\": 5000\n    },\n    \"campaignId\": \"550e8400-e29b-41d4-a716-446655440000\",\n    \"companyId\": \"sua-company-id\",\n    \"referenceId\": \"cad-unico-2024-001\"\n  }\n}\n\n</code></pre>\n<h3 id=\"requisição-duplicada-idempotência\">Requisição Duplicada (Idempotência)</h3>\n<p>Retornado quando você envia o mesmo <code>referenceId</code> novamente. O campo <code>status</code> reflete o estado atual do registro existente.</p>\n<p><strong>Ainda na fila</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"referenceId\": \"cad-unico-2024-001\",\n  \"registrationId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\",\n  \"status\": \"QUEUED\",\n  \"message\": \"Registration already exists.\"\n}\n\n</code></pre>\n<p><strong>Em processamento</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"referenceId\": \"cad-unico-2024-001\",\n  \"registrationId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\",\n  \"status\": \"PROCESSING\",\n  \"message\": \"Registration already exists.\"\n}\n\n</code></pre>\n<p><strong>Concluído</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"referenceId\": \"cad-unico-2024-001\",\n  \"registrationId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\",\n  \"status\": \"COMPLETED\",\n  \"message\": \"Registration already exists.\"\n}\n\n</code></pre>\n<p><strong>Falhou</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"referenceId\": \"cad-unico-2024-001\",\n  \"registrationId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\",\n  \"status\": \"FAILED\",\n  \"message\": \"Registration already exists.\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"webhook-events\">Webhook Events</h2>\n<p>Como o processamento é assíncrono, você <strong>deve</strong> configurar um Webhook para receber as atualizações de status. Consulte a documentação de <a href=\"#\">Gerenciamento de Webhooks</a> para saber como registrar sua URL.</p>\n<h3 id=\"1-person_registrationprocessing\">1. <code>person_registration.processing</code></h3>\n<p>Disparado quando o cadastro sai da fila e inicia o processamento.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"registrationId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\",\n  \"referenceId\": \"cad-unico-2024-001\",\n  \"status\": \"PROCESSING\"\n}\n\n</code></pre>\n<h3 id=\"2-person_registrationcompleted\">2. <code>person_registration.completed</code></h3>\n<p>Disparado quando o cadastro é concluído com sucesso. O campo <code>personId</code> é o ID do participante criado na plataforma.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"registrationId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\",\n  \"referenceId\": \"cad-unico-2024-001\",\n  \"personId\": \"c9bf9e5b-5e17-4c61-a7e1-1c9043f3c9c1\",\n  \"status\": \"COMPLETED\",\n  \"result\": {\n    \"id\": \"c9bf9e5b-5e17-4c61-a7e1-1c9043f3c9c1\",\n    \"firstName\": \"João\",\n    \"lastName\": \"da Silva\",\n    \"document\": \"12345678901\",\n    \"email\": \"joao.silva@email.com\"\n  }\n}\n\n</code></pre>\n<h3 id=\"3-person_registrationfailed\">3. <code>person_registration.failed</code></h3>\n<p>Disparado quando o processamento falha após todas as tentativas de retry (3 tentativas com backoff exponencial).</p>\n<p><strong>Saldo insuficiente da empresa</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"registrationId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\",\n  \"referenceId\": \"cad-unico-2024-001\",\n  \"status\": \"FAILED\",\n  \"error\": \"Saldo insuficiente para esta operação.\"\n}\n\n</code></pre>\n<p><strong>Campanha não encontrada</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"registrationId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\",\n  \"referenceId\": \"cad-unico-2024-001\",\n  \"status\": \"FAILED\",\n  \"error\": \"Campanha não encontrada.\"\n}\n\n</code></pre>\n<p><strong>Erro no sistema externo</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"registrationId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\",\n  \"referenceId\": \"cad-unico-2024-001\",\n  \"status\": \"FAILED\",\n  \"error\": \"Erro ao comunicar com o sistema externo. Tente novamente mais tarde.\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"fluxo-de-processamento\">Fluxo de Processamento</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[Request 201] → QUEUED → PROCESSING → COMPLETED  (sucesso)\n                                    → FAILED      (erro após retries)\n\n</code></pre><ol>\n<li><p>Sua requisição é validada e retorna <code>201</code> com status <code>QUEUED</code></p>\n</li>\n<li><p>O job entra na fila e aguarda processamento</p>\n</li>\n<li><p>Quando um worker pega o job, o status muda para <code>PROCESSING</code> e o webhook <code>person_registration.processing</code> é disparado</p>\n</li>\n<li><p>O cadastro é executado no sistema externo</p>\n</li>\n<li><p><strong>Sucesso</strong>: status muda para <code>COMPLETED</code>, <code>personId</code> é salvo e o webhook <code>person_registration.completed</code> é disparado</p>\n</li>\n<li><p><strong>Erro</strong>: o job tenta novamente (até 3 vezes). Se falhar em todas, status muda para <code>FAILED</code> e o webhook <code>person_registration.failed</code> é disparado</p>\n</li>\n</ol>\n<hr />\n<h2 id=\"idempotência\">Idempotência</h2>\n<p>A rota usa a combinação de <code>referenceId</code> + <code>companyId</code> como chave de idempotência. Isso garante que:</p>\n<ul>\n<li><p>O mesmo <code>referenceId</code> nunca será processado duas vezes</p>\n</li>\n<li><p>Se você reenviar o mesmo <code>referenceId</code>, a API retorna o status atual do registro existente</p>\n</li>\n<li><p>É seguro fazer retry de requisições que tiveram timeout ou falha de rede</p>\n</li>\n</ul>\n<p><strong>Recomendação</strong>: Use um identificador único da sua aplicação (ex: ID do seu banco de dados, UUID gerado pelo seu sistema) como <code>referenceId</code>.</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"path":["person"],"host":["{{url-v2}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"f4324c13-68c5-4c65-ba04-4f0a0f61aaa3"}],"id":"97c2c300-ca5f-42fb-8e87-51bbcc3be44e","_postman_id":"97c2c300-ca5f-42fb-8e87-51bbcc3be44e","description":"","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}}},{"name":"Business","item":[{"name":"Create a Business","id":"9942d112-5b3e-4ece-a00d-82922ebe3be4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"tradingName\": \"Example Trading Name\",\n    \"email\": \"contact@example.com\",\n    \"document\": \"00000000000000\",\n    \"legalName\": \"Example Legal Name\",\n    \"phone\": \"+5500000000000\",\n    \"foundingDate\": \"2000-01-01\",\n    \"website\": \"https://www.example.com\",\n    \"type\": \"LTDA\",\n    \"activity\": \"Activity example\",\n    \"address\": {\n        \"street\": \"Example Street\",\n        \"number\": \"123\",\n        \"complement\": \"Office 456\",\n        \"neighborhood\": \"Example Neighborhood\",\n        \"postalCode\": \"00000-000\",\n        \"city\": \"Example City\",\n        \"state\": \"EX\",\n        \"country\": \"Brazil\"\n    },\n    \"balance\": {\n        \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\n        \"amount\": 1000\n    },\n    \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/business","description":"<h2 id=\"creates-a-business-in-pre-registration-mode\">Creates a business in pre-registration mode.</h2>\n<p>This endpoint allows you to create a business in pre-registration mode within a specific campaign.Pre-registration should be used when some information is not yet available (such as complete address or business details).The business will only be able to access the Link Premio Card and approved balance after all missing data is collected.</p>\n<h2 id=\"validation-rules\">Validation Rules</h2>\n<h3 id=\"business-information\">Business Information</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Requirement</th>\n<th>Rule</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>tradingName</td>\n<td>string</td>\n<td>Required</td>\n<td>Only letters, accented characters, spaces, and apostrophes. Trimmed and capitalized.</td>\n</tr>\n<tr>\n<td>email</td>\n<td>string</td>\n<td>Required</td>\n<td>Must be a valid email. Always stored in lowercase.</td>\n</tr>\n<tr>\n<td>document</td>\n<td>string</td>\n<td>Required</td>\n<td>Must be a valid CNPJ.</td>\n</tr>\n<tr>\n<td>legalName</td>\n<td>string</td>\n<td>Optional</td>\n<td>Only letters, accented characters, spaces, and apostrophes. No abbreviated names allowed. Trimmed and capitalized.</td>\n</tr>\n<tr>\n<td>phone</td>\n<td>string</td>\n<td>Optional</td>\n<td>Must contain only numbers and may start with \"+\".</td>\n</tr>\n<tr>\n<td>foundingDate</td>\n<td>string</td>\n<td>Optional</td>\n<td>Must be a valid date.</td>\n</tr>\n<tr>\n<td>website</td>\n<td>string</td>\n<td>Optional</td>\n<td>No restriction.</td>\n</tr>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>Optional</td>\n<td>Must be one of: MEI, EI, EIRELI, SS, LTDA, SA.</td>\n</tr>\n<tr>\n<td>activity</td>\n<td>string</td>\n<td>Optional</td>\n<td>No restriction.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"address\">Address</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Requirement</th>\n<th>Rule</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>street</td>\n<td>string</td>\n<td>Optional</td>\n<td>Letters, numbers, spaces, , .</td>\n</tr>\n<tr>\n<td>number</td>\n<td>string</td>\n<td>Optional</td>\n<td>Letters, numbers, spaces only.</td>\n</tr>\n<tr>\n<td>complement</td>\n<td>string</td>\n<td>Optional</td>\n<td>No restriction.</td>\n</tr>\n<tr>\n<td>neighborhood</td>\n<td>string</td>\n<td>Optional</td>\n<td>Letters, numbers, spaces, , .</td>\n</tr>\n<tr>\n<td>postalCode</td>\n<td>string</td>\n<td>Optional</td>\n<td>Must be trimmed.</td>\n</tr>\n<tr>\n<td>city</td>\n<td>string</td>\n<td>Optional</td>\n<td>Letters, numbers, spaces, , .</td>\n</tr>\n<tr>\n<td>state</td>\n<td>string</td>\n<td>Optional</td>\n<td>Letters, numbers, spaces, , .</td>\n</tr>\n<tr>\n<td>country</td>\n<td>string</td>\n<td>Optional</td>\n<td>Letters, numbers, spaces, , .</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"balance\">Balance</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Requirement</th>\n<th>Rule</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>balanceTypeId</td>\n<td>string (UUID)</td>\n<td>Required</td>\n<td>Must be a valid UUID.</td>\n</tr>\n<tr>\n<td>amount</td>\n<td>integer</td>\n<td>Required</td>\n<td>Must be a positive integer in cents. Min: 1. Max: Number.MAX_SAFE_INTEGER.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Important: The field amount must always be sent in cents (e.g., 1500 = R$ 15,00).</p>\n<h3 id=\"campaign\">Campaign</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Requirement</th>\n<th>Rule</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>campaignId</td>\n<td>string</td>\n<td>Required</td>\n<td>Must be a valid campaign identifier.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"notes\">Notes</h2>\n<ul>\n<li><p>balanceTypeId → must be a valid identifier of the balance type.</p>\n</li>\n<li><p>amount → value in cents (integer, no decimals).</p>\n</li>\n<li><p>campaignId → links the business to a specific campaign.</p>\n</li>\n</ul>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"path":["business"],"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"9d6c01dc-f7df-46fd-ada9-e5239a87de15","name":"201 Created","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"tradingName\": \"Acme Tech\",\n  \"email\": \"contato@acmetech.com.br\",\n  \"document\": \"12.345.678/0001-90\",\n  \"legalName\": \"Acme Tecnologia Ltda\",\n  \"phone\": \"+55 11 40028922\",\n  \"foundingDate\": \"2019-05-28\",\n  \"website\": \"https://www.acmetech.com.br\",\n  \"type\": \"LTDA\",\n  \"activity\": \"62.01-5-01\",\n  \"address\": {\n    \"street\": \"Av. Paulista\",\n    \"number\": \"1000\",\n    \"complement\": \"10º andar\",\n    \"neighborhood\": \"Bela Vista\",\n    \"postalCode\": \"01310-100\",\n    \"city\": \"São Paulo\",\n    \"state\": \"SP\",\n    \"country\": \"BR\"\n  },\n  \"balance\": {\n    \"balanceTypeId\": \"1fd5c9b7-5a2d-4b3a-9c2e-2a6c7f9d8e10\",\n    \"amount\": 0\n  },\n  \"campaignId\": \"2b3b2b7a-5a1c-49a1-9cd1-a1b2c3d4e5f6\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/business"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"id\": \"9b1f2c3d-4e5f-6789-a0bc-d1e2f3a4b5c6\",\r\n  \"status\": \"Pending\",\r\n  \"legalName\": \"Acme Tecnologia Ltda\",\r\n  \"tradingName\": \"Acme Tech\",\r\n  \"document\": \"12345678000190\",\r\n  \"email\": \"contato@acmetech.com.br\",\r\n  \"phone\": \"+551140028922\",\r\n  \"foundingDate\": \"2019-05-28\",\r\n  \"website\": \"https://www.acmetech.com.br\",\r\n  \"type\": \"LTDA\",\r\n  \"activity\": \"62.01-5-01\",\r\n  \"createdAt\": \"2025-02-01T10:20:30.000Z\",\r\n  \"updatedAt\": \"2025-02-01T10:20:30.000Z\"\r\n}"},{"id":"10c76b00-ea92-4dfe-8bf4-650197d4b851","name":"400 Bad Request","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"tradingName\": \"Acme 123\",\n  \"email\": \"not-an-email\",\n  \"document\": \"invalid-cnpj\",\n  \"type\": \"LLC\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/business"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    \"First Name must contain only letters, accented characters, spaces, and apostrophes.\",\r\n    \"email must be an email\",\r\n    \"Invalid Document.\",\r\n    \"type must be one of: MEI, EI, EIRELI, SS, LTDA, SA\"\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"},{"id":"b056f324-a186-4257-be2c-1ae283d5a271","name":"401 Unauthorized","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"tradingName\": \"Example Trading Name\",\n    \"email\": \"contact@example.com\",\n    \"document\": \"00000000000000\",\n    \"legalName\": \"Example Legal Name\",\n    \"phone\": \"+5500000000000\",\n    \"foundingDate\": \"2000-01-01\",\n    \"website\": \"https://www.example.com\",\n    \"type\": \"LTDA\",\n    \"activity\": \"Activity example\",\n    \"address\": {\n        \"street\": \"Example Street\",\n        \"number\": \"123\",\n        \"complement\": \"Office 456\",\n        \"neighborhood\": \"Example Neighborhood\",\n        \"postalCode\": \"00000-000\",\n        \"city\": \"Example City\",\n        \"state\": \"EX\",\n        \"country\": \"Brazil\"\n    },\n    \"balance\": {\n        \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\n        \"amount\": 1000\n    },\n    \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/business"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 401,\r\n  \"message\": \"API key is missing\"\r\n}"},{"id":"d5f48a97-e3f7-4132-8a3e-770c27136ee0","name":"404 Not Found","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"tradingName\": \"Acme Tech\",\n  \"email\": \"contato@acmetech.com.br\",\n  \"document\": \"12.345.678/0001-90\",\n  \"address\": { \"street\": \"Rua A\" },\n  \"balance\": { \"balanceTypeId\": \"1fd5c9b7-5a2d-4b3a-9c2e-2a6c7f9d8e10\", \"amount\": 0 },\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/business"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 404,\r\n  \"message\": \"Campaign not found\",\r\n  \"error\": \"Not Found\"\r\n}"},{"id":"85b946fa-cd48-46a0-a4a6-d555798423bf","name":"409 Email already registered","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"tradingName\": \"Acme Tech\",\n  \"email\": \"already.used@your-domain.com\",\n  \"document\": \"12.345.678/0001-90\",\n  \"address\": { \"street\": \"Rua A\" },\n  \"balance\": { \"balanceTypeId\": \"1fd5c9b7-5a2d-4b3a-9c2e-2a6c7f9d8e10\", \"amount\": 0 }\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/business"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 409,\r\n  \"message\": \"Email already registered.\"\r\n}"},{"id":"965f5be0-5b26-469a-95dd-d37018c6a084","name":"409 Document already registered","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"tradingName\": \"Acme Tech\",\n  \"email\": \"new@your-domain.com\",\n  \"document\": \"12.345.678/0001-90\",\n  \"address\": { \"street\": \"Rua A\" },\n  \"balance\": { \"balanceTypeId\": \"1fd5c9b7-5a2d-4b3a-9c2e-2a6c7f9d8e10\", \"amount\": 0 }\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/business"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 409,\r\n  \"message\": \"Document already registered.\"\r\n}"}],"_postman_id":"9942d112-5b3e-4ece-a00d-82922ebe3be4"},{"name":"Retrieve Businesses","id":"1c6c909e-cf1c-44bb-93ff-bc5632eeebbb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{url}}/business","description":"<h2 id=\"retrieve-businesses\">Retrieve Businesses</h2>\n<p>This endpoint allows you to retrieve a paginated list of businesses associated with your company.The response includes business information along with associated user details, providing a comprehensive view of all businesses in your system. Results can be filtered by search terms, status, and business type to help you find specific businesses efficiently.</p>\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<h3 id=\"pagination\">Pagination</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Requirement</th>\n<th>Rule</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>page</td>\n<td>integer</td>\n<td>Optional</td>\n<td>Page number (starts from 1). Default: 1. Min: 1.</td>\n</tr>\n<tr>\n<td>pageSize</td>\n<td>integer</td>\n<td>Optional</td>\n<td>Number of items per page. Default: 10. Min: 1. Max: 100.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"filters\">Filters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Requirement</th>\n<th>Rule</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>search</td>\n<td>string</td>\n<td>Optional</td>\n<td>Search term to filter by business trading name (case-insensitive).</td>\n</tr>\n<tr>\n<td>status</td>\n<td>string</td>\n<td>Optional</td>\n<td>Filter by business status. Must be one of: Active, Pending, Inactive.</td>\n</tr>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>Optional</td>\n<td>Filter by business type. Must be one of: MEI, EI, EIRELI, SS, LTDA, SA.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-structure\">Response Structure</h2>\n<h3 id=\"pagination-information\">Pagination Information</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>data</td>\n<td>array</td>\n<td>Array of business objects</td>\n</tr>\n<tr>\n<td>totalItems</td>\n<td>integer</td>\n<td>Total number of businesses matching the filters</td>\n</tr>\n<tr>\n<td>totalPages</td>\n<td>integer</td>\n<td>Total number of pages available</td>\n</tr>\n<tr>\n<td>page</td>\n<td>integer</td>\n<td>Current page number</td>\n</tr>\n<tr>\n<td>limit</td>\n<td>integer</td>\n<td>Number of items per page</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"business-object\">Business Object</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>string</td>\n<td>Unique business identifier</td>\n</tr>\n<tr>\n<td>legalName</td>\n<td>string</td>\n<td>Legal name of the business</td>\n</tr>\n<tr>\n<td>tradingName</td>\n<td>string</td>\n<td>Trading name of the business</td>\n</tr>\n<tr>\n<td>document</td>\n<td>string</td>\n<td>Business CNPJ document</td>\n</tr>\n<tr>\n<td>activity</td>\n<td>string</td>\n<td>Business activity description</td>\n</tr>\n<tr>\n<td>phone</td>\n<td>string</td>\n<td>Business phone number</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"user-object-associated-with-business\">User Object (associated with business)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>firstName</td>\n<td>string</td>\n<td>User's first name</td>\n</tr>\n<tr>\n<td>lastName</td>\n<td>string</td>\n<td>User's last name</td>\n</tr>\n<tr>\n<td>email</td>\n<td>string</td>\n<td>User's email address</td>\n</tr>\n<tr>\n<td>role</td>\n<td>string</td>\n<td>User's role in the system</td>\n</tr>\n<tr>\n<td>status</td>\n<td>string</td>\n<td>User's current status</td>\n</tr>\n<tr>\n<td>partner</td>\n<td>string</td>\n<td>Associated partner information</td>\n</tr>\n<tr>\n<td>agency</td>\n<td>string</td>\n<td>Associated agency information</td>\n</tr>\n<tr>\n<td>company</td>\n<td>string</td>\n<td>Associated company information</td>\n</tr>\n<tr>\n<td>userRejectReasons</td>\n<td>array</td>\n<td>Array of rejection reasons (if applicable)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"notes\">Notes</h2>\n<ul>\n<li><p>Results are automatically scoped to your company - you can only retrieve businesses associated with your company.</p>\n</li>\n<li><p>The search parameter searches within the business trading name using case-insensitive matching.</p>\n</li>\n<li><p>All query parameters are optional and can be combined for more specific filtering.</p>\n</li>\n<li><p>The response includes pagination metadata to help with navigation through large result sets.</p>\n</li>\n</ul>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"path":["business"],"host":["{{url}}"],"query":[{"disabled":true,"description":{"content":"<p>number: [1-9999]</p>\n","type":"text/plain"},"key":"limit","value":""},{"disabled":true,"description":{"content":"<p>number: [1-999999]</p>\n","type":"text/plain"},"key":"page","value":""},{"disabled":true,"description":{"content":"<p>YYYY-MM-DD</p>\n","type":"text/plain"},"key":"startDate","value":""},{"disabled":true,"description":{"content":"<p>YYYY-MM-DD</p>\n","type":"text/plain"},"key":"endDate","value":""},{"disabled":true,"description":{"content":"<p>Paid | Rejected| Disabled</p>\n","type":"text/plain"},"key":"status[]","value":""},{"disabled":true,"description":{"content":"<p>text</p>\n","type":"text/plain"},"key":"document","value":""},{"disabled":true,"description":{"content":"<p>text | Filter by: tradingName, legalName, email, document</p>\n","type":"text/plain"},"key":"query","value":""}],"variable":[]}},"response":[{"id":"4629e142-2dc3-4f84-baeb-e8b7a9fb18bd","name":"200 OK - Businesses retrieved","originalRequest":{"method":"GET","header":[{"key":"x-api-key","value":"<VALID_API_KEY>","type":"text"}],"url":{"raw":"{{url}}/business","host":["{{url}}"],"path":["business"],"query":[{"key":"limit","value":"","description":"number: [1-9999]","type":"text","disabled":true},{"key":"page","value":"1","description":"number: [1-999999]","type":"text","disabled":true},{"key":"startDate","value":"","description":"YYYY-MM-DD","type":"text","disabled":true},{"key":"endDate","value":"","description":"YYYY-MM-DD","type":"text","disabled":true},{"key":"status[]","value":"Active","description":"Paid | Rejected| Disabled","type":"text","disabled":true},{"key":"document","value":"","description":"text","type":"text","disabled":true},{"key":"query","value":"Acme","description":"text | Filter by: tradingName, legalName, email, document","type":"text","disabled":true}]}},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"data\": [\r\n    {\r\n      \"id\": \"2e1c4f4e-7c6f-4f2b-9b3f-3c1a2b9d7f10\",\r\n      \"status\": \"Active\",\r\n      \"legalName\": \"Acme Tecnologia Ltda\",\r\n      \"tradingName\": \"Acme Tech\",\r\n      \"document\": \"12345678000190\",\r\n      \"email\": \"contato@acmetech.com.br\",\r\n      \"phone\": \"+55 11 4002-8922\",\r\n      \"foundingDate\": \"2019-05-28\",\r\n      \"website\": \"https://www.acmetech.com.br\",\r\n      \"type\": \"LTDA\",\r\n      \"activity\": \"62.01-5-01\",\r\n      \"createdAt\": \"2024-02-12T15:10:22.123Z\",\r\n      \"updatedAt\": \"2025-01-04T09:31:45.987Z\"\r\n    }\r\n  ],\r\n  \"totalItems\": 1,\r\n  \"totalPages\": 1,\r\n  \"page\": 1,\r\n  \"limit\": 10\r\n}"},{"id":"4f8e434b-7f52-487c-b953-8a5a4cb8f3ec","name":"400 Bad Request","originalRequest":{"method":"GET","header":[{"key":"x-api-key","value":"<VALID_API_KEY>","type":"text"}],"url":{"raw":"{{url}}/business","host":["{{url}}"],"path":["business"],"query":[{"key":"limit","value":"","description":"number: [1-9999]","type":"text","disabled":true},{"key":"page","value":"","description":"number: [1-999999]","type":"text","disabled":true},{"key":"startDate","value":"","description":"YYYY-MM-DD","type":"text","disabled":true},{"key":"endDate","value":"","description":"YYYY-MM-DD","type":"text","disabled":true},{"key":"status[]","value":"","description":"Paid | Rejected| Disabled","type":"text","disabled":true},{"key":"document","value":"","description":"text","type":"text","disabled":true},{"key":"query","value":"","description":"text | Filter by: tradingName, legalName, email, document","type":"text","disabled":true}]}},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    \"page must be greater than or equal to 1\",\r\n    \"pageSize must be less than or equal to 100\",\r\n    \"status must be one of: Active, Pending, Inactive\"\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"},{"id":"d068834e-9b59-4612-ba47-0988289798d2","name":"401 Unauthorized","originalRequest":{"method":"GET","header":[{"key":"x-api-key","value":"invalid-key","type":"text"}],"url":{"raw":"{{url}}/business","host":["{{url}}"],"path":["business"],"query":[{"key":"limit","value":"","description":"number: [1-9999]","type":"text","disabled":true},{"key":"page","value":"","description":"number: [1-999999]","type":"text","disabled":true},{"key":"startDate","value":"","description":"YYYY-MM-DD","type":"text","disabled":true},{"key":"endDate","value":"","description":"YYYY-MM-DD","type":"text","disabled":true},{"key":"status[]","value":"","description":"Paid | Rejected| Disabled","type":"text","disabled":true},{"key":"document","value":"","description":"text","type":"text","disabled":true},{"key":"query","value":"","description":"text | Filter by: tradingName, legalName, email, document","type":"text","disabled":true}]}},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 401,\r\n  \"message\": \"API key is missing\"\r\n}"}],"_postman_id":"1c6c909e-cf1c-44bb-93ff-bc5632eeebbb"},{"name":"Retrieve a Business by Id","id":"2ce37a93-b216-44d1-8666-e5561f72faf3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{url}}/business/:id","description":"<h2 id=\"retrieve-a-business-by-id\">Retrieve a Business by Id</h2>\n<p>This endpoint allows you to retrieve detailed information about a specific business by providing its unique identifier.The response includes comprehensive business information, associated user details, address information, and any validation errors if the business registration is incomplete.This endpoint is useful for getting complete business details for display, editing, or status checking purposes.</p>\n<h2 id=\"path-parameters\">Path Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Requirement</th>\n<th>Rule</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>string</td>\n<td>Required</td>\n<td>Must be a valid business UUID identifier.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-structure\">Response Structure</h2>\n<h3 id=\"business-information\">Business Information</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>string</td>\n<td>Unique business identifier</td>\n</tr>\n<tr>\n<td>status</td>\n<td>string</td>\n<td>Business status (Active, Pending, Inactive)</td>\n</tr>\n<tr>\n<td>legalName</td>\n<td>string</td>\n<td>Legal name of the business</td>\n</tr>\n<tr>\n<td>tradingName</td>\n<td>string</td>\n<td>Trading name of the business</td>\n</tr>\n<tr>\n<td>document</td>\n<td>string</td>\n<td>Business CNPJ document</td>\n</tr>\n<tr>\n<td>email</td>\n<td>string</td>\n<td>Business email address</td>\n</tr>\n<tr>\n<td>phone</td>\n<td>string</td>\n<td>Business phone number</td>\n</tr>\n<tr>\n<td>foundingDate</td>\n<td>string</td>\n<td>Business founding date</td>\n</tr>\n<tr>\n<td>website</td>\n<td>string</td>\n<td>Business website URL</td>\n</tr>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>Business type (MEI, EI, EIRELI, SS, LTDA, SA)</td>\n</tr>\n<tr>\n<td>activity</td>\n<td>string</td>\n<td>Business activity description (CNAE)</td>\n</tr>\n<tr>\n<td>createdAt</td>\n<td>string</td>\n<td>Business creation timestamp</td>\n</tr>\n<tr>\n<td>updatedAt</td>\n<td>string</td>\n<td>Business last update timestamp</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"user-information-associated-with-business\">User Information (associated with business)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>firstName</td>\n<td>string</td>\n<td>User's first name</td>\n</tr>\n<tr>\n<td>lastName</td>\n<td>string</td>\n<td>User's last name</td>\n</tr>\n<tr>\n<td>email</td>\n<td>string</td>\n<td>User's email address</td>\n</tr>\n<tr>\n<td>role</td>\n<td>string</td>\n<td>User's role in the system</td>\n</tr>\n<tr>\n<td>status</td>\n<td>string</td>\n<td>User's current status</td>\n</tr>\n<tr>\n<td>partner</td>\n<td>object</td>\n<td>Associated partner information</td>\n</tr>\n<tr>\n<td>agency</td>\n<td>object</td>\n<td>Associated agency information</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"address-information\">Address Information</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>street</td>\n<td>string</td>\n<td>Street address</td>\n</tr>\n<tr>\n<td>number</td>\n<td>string</td>\n<td>Address number</td>\n</tr>\n<tr>\n<td>complement</td>\n<td>string</td>\n<td>Address complement</td>\n</tr>\n<tr>\n<td>neighborhood</td>\n<td>string</td>\n<td>Neighborhood</td>\n</tr>\n<tr>\n<td>city</td>\n<td>string</td>\n<td>City</td>\n</tr>\n<tr>\n<td>state</td>\n<td>string</td>\n<td>State</td>\n</tr>\n<tr>\n<td>country</td>\n<td>string</td>\n<td>Country</td>\n</tr>\n<tr>\n<td>postalCode</td>\n<td>string</td>\n<td>Postal/ZIP code</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"validation-errors\">Validation Errors</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>errors</td>\n<td>array</td>\n<td>Array of validation error messages (if business registration is incomplete)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"notes\">Notes</h2>\n<ul>\n<li><p>Results are automatically scoped to your company - you can only retrieve businesses associated with your company.</p>\n</li>\n<li><p>The business must not be deleted (status not equal to 'Deleted').</p>\n</li>\n<li><p>If the business user status is 'Rejected', the errors field will contain the rejection reasons.</p>\n</li>\n<li><p>The response includes all related information (address, user details, agency, partner) in a single request.</p>\n</li>\n<li><p>All timestamps are returned in ISO 8601 format.</p>\n</li>\n</ul>\n<h2 id=\"error-responses\">Error Responses</h2>\n<h3 id=\"404-not-found\">404 Not Found</h3>\n<ul>\n<li><p>Description: Business not found</p>\n</li>\n<li><p>Condition: When the provided business ID doesn't exist or belongs to a different company</p>\n</li>\n</ul>\n<h3 id=\"500-internal-server-error\">500 Internal Server Error</h3>\n<ul>\n<li><p>Description: Internal server error</p>\n</li>\n<li><p>Condition: When there's a database or system error</p>\n</li>\n</ul>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"path":["business",":id"],"host":["{{url}}"],"query":[],"variable":[{"id":"e0bf0c9d-6c7b-424b-b385-5a7b8e612fe3","type":"any","value":"","key":"id"}]}},"response":[{"id":"4f848691-69cd-416b-b408-d5f46e84cb74","name":"200 OK - Business retrieved","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"x-api-key","value":"<VALID_API_KEY>","type":"text"}],"url":{"raw":"{{url}}/business/:id","host":["{{url}}"],"path":["business",":id"],"variable":[{"key":"id","value":"3e2c1f3e-3c6f-4f2b-9r3f-3c1a2b9d7f11"}]}},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"id\": \"2e1c4f4e-7c6f-4f2b-9b3f-3c1a2b9d7f10\",\r\n  \"status\": \"Active\",\r\n  \"legalName\": \"Acme Tecnologia Ltda\",\r\n  \"tradingName\": \"Acme Tech\",\r\n  \"document\": \"12345678000190\",\r\n  \"email\": \"contato@acmetech.com.br\",\r\n  \"phone\": \"+55 11 4002-8922\",\r\n  \"foundingDate\": \"2019-05-28\",\r\n  \"website\": \"https://www.acmetech.com.br\",\r\n  \"type\": \"LTDA\",\r\n  \"activity\": \"62.01-5-01\",\r\n  \"createdAt\": \"2024-02-12T15:10:22.123Z\",\r\n  \"updatedAt\": \"2025-01-04T09:31:45.987Z\",\r\n\r\n  \"user\": {\r\n    \"firstName\": \"Ana\",\r\n    \"lastName\": \"Silva\",\r\n    \"email\": \"ana.silva@acmetech.com.br\",\r\n    \"role\": \"Admin\",\r\n    \"status\": \"Active\",\r\n    \"partner\": {\r\n      \"id\": \"7c9cc5d9-2e58-4a9b-9a91-3f932a8d1b77\",\r\n      \"name\": \"Partner BR\"\r\n    },\r\n    \"agency\": {\r\n      \"id\": \"a8c0f1a6-0e65-4f07-9bfa-9b6b5a7c0a22\",\r\n      \"name\": \"São Paulo Agency\"\r\n    }\r\n  },\r\n\r\n  \"address\": {\r\n    \"street\": \"Av. Paulista\",\r\n    \"number\": \"1000\",\r\n    \"complement\": \"10º andar\",\r\n    \"neighborhood\": \"Bela Vista\",\r\n    \"city\": \"São Paulo\",\r\n    \"state\": \"SP\",\r\n    \"country\": \"BR\",\r\n    \"postalCode\": \"01310-100\"\r\n  },\r\n\r\n  \"errors\": []\r\n}"},{"id":"f0c260b1-7678-4fd4-a354-b9ad4ac92b0b","name":"404 Bad request - Businees not foud","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"x-api-key","value":"<VALID_API_KEY>","type":"text"}],"url":{"raw":"{{url}}/business/:id","host":["{{url}}"],"path":["business",":id"],"variable":[{"key":"id","value":"6e4b8e2a-633a-4b3c-9c2a-2f6cf7f9a222"}]}},"_postman_previewlanguage":"Text","header":[],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\r\n  \"statusCode\": 404,\r\n  \"message\": \"Business was not found\",\r\n  \"error\": \"Not Found\"\r\n}"}],"_postman_id":"2ce37a93-b216-44d1-8666-e5561f72faf3"}],"id":"cc24751e-dd67-4812-9936-2ce0d64a35b3","_postman_id":"cc24751e-dd67-4812-9936-2ce0d64a35b3","description":"","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}}}],"id":"a126b435-124e-4da7-9469-6af5631dda70","_postman_id":"a126b435-124e-4da7-9469-6af5631dda70","description":"","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}}},{"name":"Partner","item":[{"name":"Company","item":[{"name":"Retrieve a Company by identifier","id":"e9b7e896-ed40-4fa6-8377-3106476d03f6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer SEU_TOKEN_AQUI"}],"url":"https://api.hub4pay.com.br/api/partner/company/d9390ffe-ba93-4fca-bf3e-f397771e37b3","description":"<h1 id=\"detalhes-da-empresa-parceiro\">Detalhes da Empresa (Parceiro)</h1>\n<p>Esta rota permite obter os dados detalhados de uma empresa específica utilizando seu ID ou CNPJ.</p>\n<p><strong>URL:</strong> <code>GET /api/partner/company/:identifier</code></p>\n<p><strong>Autenticação:</strong> Requer Token JWT de Parceiro (Bearer Token)</p>\n<hr />\n<h2 id=\"parâmetros-de-caminho-path-parameters\">Parâmetros de Caminho (Path Parameters)</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parâmetro</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>identifier</code></td>\n<td><code>string</code></td>\n<td>ID da empresa (UUID) ou CNPJ (apenas números ou formatado).</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"exemplo-de-requisição-curl\">Exemplo de Requisição (cURL)</h2>\n<p><strong>Por ID:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl --location --request GET 'https://api.hub4pay.com.br/api/partner/company/d9390ffe-ba93-4fca-bf3e-f397771e37b3' \\\n--header 'Authorization: Bearer SEU_TOKEN_AQUI'\n\n</code></pre>\n<p><strong>Por CNPJ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl --location --request GET 'https://api.hub4pay.com.br/api/partner/company/06990590000123' \\\n--header 'Authorization: Bearer SEU_TOKEN_AQUI'\n\n</code></pre>\n<hr />\n<h2 id=\"resposta-de-sucesso-200-ok\">Resposta de Sucesso (200 OK)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"uuid-da-empresa\",\n  \"name\": \"Razão Social da Empresa\",\n  \"fantasyName\": \"Nome Fantasia\",\n  \"email\": \"contato@empresa.com\",\n  \"document\": \"06990590000123\",\n  \"phone\": \"+5511999999999\",\n  \"status\": \"Active\",\n  \"address\": {\n    \"street\": \"Rua Exemplo\",\n    \"number\": \"123\",\n    \"complement\": \"Sala 1\",\n    \"neighborhood\": \"Centro\",\n    \"postalCode\": \"01001-000\",\n    \"city\": \"São Paulo\",\n    \"state\": \"SP\",\n    \"country\": \"Brasil\"\n  },\n  \"balance\": {\n    \"value\": 10000\n  },\n  \"companyFeature\": {\n    \"paymentBoletoEnabled\": true,\n    \"paymentTEDEnabled\": false,\n    \"paymentPIXEnabled\": false\n  }\n}\n\n</code></pre>\n<hr />\n<h2 id=\"erros-comuns\">Erros Comuns</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Título</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>401</code></td>\n<td>Não autorizado</td>\n<td>Token ausente, inválido ou expirado.</td>\n</tr>\n<tr>\n<td><code>404</code></td>\n<td>Empresa não encontrada</td>\n<td>Nenhuma empresa foi encontrada com o identificador fornecido ou ela não pertence à sua agência.</td>\n</tr>\n<tr>\n<td><code>500</code></td>\n<td>Erro interno</td>\n<td>Ocorreu um erro inesperado no servidor.</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"protocol":"https","path":["api","partner","company","d9390ffe-ba93-4fca-bf3e-f397771e37b3"],"host":["api","hub4pay","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"e9b7e896-ed40-4fa6-8377-3106476d03f6"},{"name":"Retrieve Companies","id":"d90cfb9c-5c83-40aa-9e23-ac5000c7918b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer SEU_TOKEN_AQUI"}],"url":"https://api.hub4pay.com.br/api/partner/company?page=1&limit=10","description":"<h1 id=\"listagem-de-empresas-parceiro\">Listagem de Empresas (Parceiro)</h1>\n<p>Esta rota permite que um parceiro liste todas as empresas vinculadas à sua agência.</p>\n<p><strong>URL:</strong> <code>GET /api/partner/company</code></p>\n<p><strong>Autenticação:</strong> Requer Token JWT de Parceiro (Bearer Token)</p>\n<hr />\n<h2 id=\"parâmetros-de-consulta-query-parameters\">Parâmetros de Consulta (Query Parameters)</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parâmetro</th>\n<th>Tipo</th>\n<th>Descrição</th>\n<th>Padrão</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>page</code></td>\n<td><code>number</code></td>\n<td>Número da página para paginação.</td>\n<td><code>1</code></td>\n</tr>\n<tr>\n<td><code>limit</code></td>\n<td><code>number</code></td>\n<td>Quantidade de registros por página.</td>\n<td><code>10</code></td>\n</tr>\n<tr>\n<td><code>query</code></td>\n<td><code>string</code></td>\n<td>Termo de busca (busca por nome, documento ou e-mail).</td>\n<td>-</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td><code>string</code></td>\n<td>Filtro por status da empresa (ex: <code>Active</code>).</td>\n<td>-</td>\n</tr>\n<tr>\n<td><code>document</code></td>\n<td><code>string</code></td>\n<td>Filtro por CNPJ exato da empresa.</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"exemplo-de-requisição-curl\">Exemplo de Requisição (cURL)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl --location --request GET 'https://api.hub4pay.com.br/api/partner/company?page=1&amp;limit=10' \\\n--header 'Authorization: Bearer SEU_TOKEN_AQUI'\n\n</code></pre>\n<hr />\n<h2 id=\"resposta-de-sucesso-200-ok\">Resposta de Sucesso (200 OK)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": [\n    {\n      \"id\": \"uuid-da-empresa\",\n      \"name\": \"Nome da Empresa\",\n      \"fantasyName\": \"Nome Fantasia\",\n      \"email\": \"empresa@email.com\",\n      \"document\": \"00.000.000/0001-00\",\n      \"status\": \"Active\",\n      \"createdAt\": \"2023-01-01T00:00:00.000Z\",\n      \"agencyId\": \"seu-agency-id\",\n      \"partnerId\": \"seu-partner-id\"\n    }\n  ],\n  \"totalItems\": 1,\n  \"totalPages\": 1\n}\n\n</code></pre>\n<hr />\n<h2 id=\"erros-comuns\">Erros Comuns</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Título</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>401</code></td>\n<td>Não autorizado</td>\n<td>Token ausente, inválido ou expirado.</td>\n</tr>\n<tr>\n<td><code>500</code></td>\n<td>Erro interno</td>\n<td>Ocorreu um erro inesperado no servidor.</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"protocol":"https","path":["api","partner","company"],"host":["api","hub4pay","com","br"],"query":[{"key":"page","value":"1"},{"key":"limit","value":"10"}],"variable":[]}},"response":[],"_postman_id":"d90cfb9c-5c83-40aa-9e23-ac5000c7918b"},{"name":"Create Company Account","id":"3cc8cde2-df28-4c90-9ecc-9ee1ffc20009","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer {{accessToken}}"}],"body":{"mode":"raw","raw":"{\n  \"company\": {\n    \"companyName\": \"Empresa Teste\",\n    \"corporateName\": \"Empresa Teste LTDA\",\n    \"cnpj\": \"62540805000185\",\n    \"address\": {\n      \"codeIBGE\": \"2507507\",\n      \"street\": \"Rua das Flores\",\n      \"number\": \"123\",\n      \"complement\": \"Sala 01\",\n      \"neighborhood\": \"Centro\",\n      \"postalCode\": \"58000000\",\n      \"city\": \"João Pessoa\",\n      \"state\": \"PB\",\n      \"country\": \"Brasil\"\n    }\n  },\n  \"user\": {\n    \"fullName\": \"João da Silva\",\n    \"phone\": \"+5583999999999\",\n    \"email\": \"joao@email.com\"\n  }\n}"},"url":"{{baseUrl}}/api/partner/company","description":"<h2 id=\"🏢-empresas\">🏢 Empresas</h2>\n<h3 id=\"criar-empresa\">Criar Empresa</h3>\n<p>Cria uma nova empresa e um usuário administrador associado.</p>\n<ul>\n<li><p><strong>URL:</strong> <code>/api/partner/company</code></p>\n</li>\n<li><p><strong>Método:</strong> <code>POST</code></p>\n</li>\n<li><p><strong>Autenticação:</strong> Bearer Token (JWT)</p>\n</li>\n</ul>\n<h4 id=\"cabeçalhos-headers\">Cabeçalhos (Headers)</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Valor</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Authorization</code></td>\n<td><code>Bearer {{accessToken}}</code></td>\n</tr>\n<tr>\n<td><code>Content-Type</code></td>\n<td><code>application/json</code></td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"requisição-body\">Requisição (Body)</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"company\": {\n    \"companyName\": \"Minha Empresa LTDA\",\n    \"corporateName\": \"Empresa Exemplo LTDA\",\n    \"cnpj\": \"12.345.678/0001-90\",\n    \"financialResponsibleEmail\": \"financeiro@empresa.com.br\",\n    \"address\": {\n      \"street\": \"Rua das Flores\",\n      \"number\": \"123\",\n      \"complement\": \"Bloco A\",\n      \"neighborhood\": \"Centro\",\n      \"postalCode\": \"01234-567\",\n      \"city\": \"São Paulo\",\n      \"state\": \"SP\",\n      \"country\": \"Brasil\"\n    }\n  },\n  \"user\": {\n    \"fullName\": \"João Silva\",\n    \"phone\": \"(11) 98888-7777\",\n    \"email\": \"joao.silva@empresa.com\"\n  }\n}\n\n</code></pre>\n<h4 id=\"estrutura-do-objeto-company\">Estrutura do Objeto <code>company</code></h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>companyName</code></td>\n<td>String</td>\n<td>Sim</td>\n<td>Nome fantasia da empresa.</td>\n</tr>\n<tr>\n<td><code>corporateName</code></td>\n<td>String</td>\n<td>Sim</td>\n<td>Razão social da empresa.</td>\n</tr>\n<tr>\n<td><code>cnpj</code></td>\n<td>String</td>\n<td>Sim</td>\n<td>CNPJ da empresa (com ou sem formatação).</td>\n</tr>\n<tr>\n<td>financialResponsibleEmail</td>\n<td>String</td>\n<td>Não</td>\n<td>E-mail para comunicações financeiras (valida formato de e-mail)</td>\n</tr>\n<tr>\n<td><code>address</code></td>\n<td>Object</td>\n<td>Sim</td>\n<td>Objeto contendo o endereço da empresa.</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"estrutura-do-objeto-address\">Estrutura do Objeto <code>address</code></h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>street</code></td>\n<td>String</td>\n<td>Sim</td>\n<td>Logradouro.</td>\n</tr>\n<tr>\n<td><code>number</code></td>\n<td>String</td>\n<td>Sim</td>\n<td>Número.</td>\n</tr>\n<tr>\n<td><code>complement</code></td>\n<td>String</td>\n<td>Não</td>\n<td>Complemento (ex: andar, sala, bloco).</td>\n</tr>\n<tr>\n<td><code>neighborhood</code></td>\n<td>String</td>\n<td>Sim</td>\n<td>Bairro.</td>\n</tr>\n<tr>\n<td><code>postalCode</code></td>\n<td>String</td>\n<td>Sim</td>\n<td>CEP.</td>\n</tr>\n<tr>\n<td><code>city</code></td>\n<td>String</td>\n<td>Sim</td>\n<td>Cidade.</td>\n</tr>\n<tr>\n<td><code>state</code></td>\n<td>String</td>\n<td>Sim</td>\n<td>Estado (Sigla com 2 caracteres, ex: SP).</td>\n</tr>\n<tr>\n<td><code>country</code></td>\n<td>String</td>\n<td>Sim</td>\n<td>País.</td>\n</tr>\n<tr>\n<td><code>codeIBGE</code></td>\n<td>String</td>\n<td>Não</td>\n<td>Código IBGE da cidade.</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"estrutura-do-objeto-user\">Estrutura do Objeto <code>user</code></h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>fullName</code></td>\n<td>String</td>\n<td>Sim</td>\n<td>Nome completo do usuário administrador.</td>\n</tr>\n<tr>\n<td><code>phone</code></td>\n<td>String</td>\n<td>Sim</td>\n<td>Telefone de contato.</td>\n</tr>\n<tr>\n<td><code>email</code></td>\n<td>String</td>\n<td>Sim</td>\n<td>E-mail do usuário (será usado para login).</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"resposta-de-sucesso-201-created\">Resposta de Sucesso (201 Created)</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"success\",\n  \"companyId\": \"3fa85f64-5717-4562-b3fc-2c963f66afa6\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"🚨-erros-e-validações\">🚨 Erros e Validações</h2>\n<p>A API utiliza códigos de erro padronizados para facilitar a identificação de problemas.</p>\n<h3 id=\"códigos-de-erro-comuns\">Códigos de Erro Comuns</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Título</th>\n<th>Mensagem</th>\n<th>Motivo</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>1001</strong></td>\n<td>Erro de validação</td>\n<td>Os dados fornecidos são inválidos.</td>\n<td>Falha no formato dos dados (ex: e-mail inválido, campo faltando).</td>\n</tr>\n<tr>\n<td><strong>1002</strong></td>\n<td>Credenciais inválidas</td>\n<td>O ID do cliente ou a chave secreta informada estão incorretos.</td>\n<td>Erro na autenticação (clientId ou secret incorretos).</td>\n</tr>\n<tr>\n<td><strong>1003</strong></td>\n<td>Estado inválido</td>\n<td>O estado [XX] informado é inválido.</td>\n<td>O campo <code>state</code> deve ter exatamente 2 caracteres (ex: SP, RJ).</td>\n</tr>\n<tr>\n<td><strong>3003</strong></td>\n<td>Empresa não encontrada</td>\n<td>Não foi possível encontrar a empresa.</td>\n<td>Referência interna de configuração não encontrada.</td>\n</tr>\n<tr>\n<td><strong>3012</strong></td>\n<td>CNPJ já cadastrado</td>\n<td>O CNPJ [XX] já está cadastrado em outra empresa.</td>\n<td>Tentativa de cadastrar um CNPJ que já existe no sistema.</td>\n</tr>\n<tr>\n<td><strong>3013</strong></td>\n<td>E-mail da empresa em uso</td>\n<td>O e-mail [XX] já está sendo utilizado por outra empresa.</td>\n<td>Tentativa de cadastrar um e-mail que já existe no sistema.</td>\n</tr>\n<tr>\n<td><strong>3014</strong></td>\n<td>Nome já cadastrado</td>\n<td>A empresa com o nome [XX] já existe no sistema.</td>\n<td>Tentativa de cadastrar uma razão social que já existe.</td>\n</tr>\n<tr>\n<td><strong>5001</strong></td>\n<td>Erro bancário</td>\n<td>Ocorreu um erro ao tentar criar a conta no sistema bancário.</td>\n<td>Falha na integração com o core bancário.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-de-erro-400-bad-request\">Exemplo de Resposta de Erro (400 Bad Request)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"Erro de validação\",\n  \"message\": \"Os dados fornecidos são inválidos.\",\n  \"code\": 1001,\n  \"details\": [\n    {\n      \"code\": \"invalid_string\",\n      \"path\": [\"user\", \"email\"],\n      \"message\": \"E-mail inválido.\"\n    }\n  ]\n}\n\n</code></pre>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"path":["api","partner","company"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"3cc8cde2-df28-4c90-9ecc-9ee1ffc20009"}],"id":"2e421ad7-af5c-4dbe-8688-a307e92880b1","_postman_id":"2e421ad7-af5c-4dbe-8688-a307e92880b1","description":"","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}}},{"name":"Campaign","item":[{"name":"create campaign","id":"1a4e7ec2-8244-4b8b-b055-b462a8970994","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"name\": \"Campanha Verão 2026 2\",\n  \"description\": \"Campanha promocional de verão\",\n  \"companyId\": \"1dc1d79c-332f-4f46-8016-5d9f52fbe181\",\n  \"startDate\": \"2026-03-01\",\n  \"endDate\": \"2026-03-30\",\n  \"type\": \"STANDARD\",\n  \"status\": \"Active\",\n  \"typeOfService\": \"INCENTIVE\",\n  \"prepaidPercentage\": 10,\n  \"prepaidPaymentTermsDays\": 12\n}","options":{"raw":{"language":"json"}}},"url":"https://api.hub4pay.com.br/api/partner/campaign","description":"<h1 id=\"criar-campanha\">Criar Campanha</h1>\n<h2 id=\"headers\">Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Valor</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Content-Type</td>\n<td>application/json</td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td>Bearer {token}</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<p>Body (JSON)<br />{<br />name: Nome da Campanha,<br />description: Descrição da campanha,<br />companyId: uuid-da-empresa,<br />startDate: 2026-03-01T00:00:00.000Z,<br />endDate: 2026-12-31T23:59:59.000Z,<br />type: STANDARD,<br />status: Active,<br />typeOfService: INCENTIVE,<br />prepaidPercentage: 5,<br />prepaidPaymentTermsDays: 5<br />}</p>\n<hr />\n<p>Campos  </p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td>String</td>\n<td>Sim</td>\n<td>Nome da campanha (1-100 caracteres)</td>\n</tr>\n<tr>\n<td>description</td>\n<td>String</td>\n<td>Sim</td>\n<td>Descrição (1-500 caracteres)</td>\n</tr>\n<tr>\n<td>companyId</td>\n<td>UUID</td>\n<td>Sim</td>\n<td>ID da empresa</td>\n</tr>\n<tr>\n<td>startDate</td>\n<td>DateTime</td>\n<td>Sim</td>\n<td>Data de início (não pode ser anterior à data atual)</td>\n</tr>\n<tr>\n<td>endDate</td>\n<td>DateTime</td>\n<td>Sim</td>\n<td>Data de término (não pode ser anterior à data atual)</td>\n</tr>\n<tr>\n<td>type</td>\n<td>Enum</td>\n<td>Não</td>\n<td>STANDARD (padrão) ou PIX</td>\n</tr>\n<tr>\n<td>status</td>\n<td>Enum</td>\n<td>Não</td>\n<td>Active ou Disabled (padrão: Active)</td>\n</tr>\n<tr>\n<td>typeOfService</td>\n<td>Enum</td>\n<td>Não</td>\n<td>BENEFIT ou INCENTIVE</td>\n</tr>\n<tr>\n<td>prepaidPercentage</td>\n<td>Number</td>\n<td>Condicional</td>\n<td>% taxa pré-pago (0-100). Obrigatório se type=STANDARD</td>\n</tr>\n<tr>\n<td>prepaidPaymentTermsDays</td>\n<td>Number</td>\n<td>Condicional</td>\n<td>Dias para pagamento. Obrigatório se type=STANDARD</td>\n</tr>\n<tr>\n<td>pixFeePercentage</td>\n<td>Number</td>\n<td>Condicional</td>\n<td>% taxa PIX (0-100). Obrigatório se type=PIX</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<p>Tipos de Campanha<br />STANDARD (Link Prêmio Card)</p>\n<ul>\n<li><p>Requer: prepaidPercentage, prepaidPaymentTermsDays</p>\n</li>\n<li><p>Opcional: typeOfService (BENEFIT ou INCENTIVE)<br />  PIX (Premio Conta)</p>\n</li>\n<li><p>Requer: pixFeePercentage, pixTariffCents</p>\n</li>\n<li><p>typeOfService deve ser INCENTIVE (automático se enviado outro valor)</p>\n</li>\n</ul>\n<hr />\n<p>Exemplo de Resposta (201 Created)<br />{<br />id: uuid-da-campanha,<br />name: Nome da Campanha,<br />description: Descrição da campanha,<br />status: Active,<br />type: STANDARD,<br />typeOfService: INCENTIVE,<br />startDate: 2026-03-01T00:00:00.000Z,<br />endDate: 2026-12-31T23:59:59.000Z,<br />companyId: uuid-da-empresa,<br />createdAt: 2026-02-27T10:00:00.000Z,<br />updatedAt: 2026-02-27T10:00:00.000Z<br />}</p>\n<hr />\n<p>Códigos de Erro  </p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>400</td>\n<td>Dados inválidos</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Não autenticado</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Acesso negado</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Empresa não encontrada</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","partner","campaign"],"host":["api","hub4pay","com","br"],"query":[],"variable":[]}},"response":[{"id":"96c6e097-124c-4e0a-8db9-ea5b90d46552","name":"create-compaign","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"name\": \"Campanha Verão 2026 2\",\n  \"description\": \"Campanha promocional de verão\",\n  \"companyId\": \"1dc1d79c-332f-4f46-8016-5d9f52fbe181\",\n  \"startDate\": \"2026-03-01\",\n  \"endDate\": \"2026-03-30\",\n  \"type\": \"STANDARD\",\n  \"status\": \"Active\",\n  \"typeOfService\": \"INCENTIVE\",\n  \"prepaidPercentage\": 10,\n  \"prepaidPaymentTermsDays\": 12\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:3335/api/partner/campaign"},"status":"Created","code":201,"_postman_previewlanguage":"Text","header":[{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-RateLimit-Limit","value":"50"},{"key":"X-RateLimit-Remaining","value":"49"},{"key":"X-RateLimit-Reset","value":"1"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"503"},{"key":"ETag","value":"W/\"1f7-hVXWNsIOdHKPDOjU4N2mWV+iLso\""},{"key":"Date","value":"Thu, 26 Feb 2026 17:55:09 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"campaign\": {\n        \"id\": \"c7789670-fa0d-449a-b9d0-18a189bc2728\",\n        \"type\": \"STANDARD\",\n        \"status\": \"Active\",\n        \"createdAt\": \"2026-02-26T17:55:07.385Z\",\n        \"updatedAt\": \"2026-02-26T17:55:07.385Z\",\n        \"description\": \"Campanha promocional de verão\",\n        \"startDate\": \"2026-03-01T03:00:00.000Z\",\n        \"endDate\": \"2026-03-30T03:00:00.000Z\",\n        \"companyId\": \"1dc1d79c-332f-4f46-8016-5d9f52fbe181\",\n        \"name\": \"Campanha Verão 2026 2\",\n        \"typeOfService\": \"INCENTIVE\",\n        \"cityServiceCode\": \"5820\",\n        \"cnae\": \"8299-7/02\",\n        \"federalServiceCode\": \"15.01\"\n    },\n    \"isFirstCampaign\": false\n}"}],"_postman_id":"1a4e7ec2-8244-4b8b-b055-b462a8970994"},{"name":"update campaign","id":"9b2bb2e6-741d-401f-bc0b-eee8ffd017c5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n   \"type\": \"PIX\",\n    \"status\": \"Active\",\n    \"createdAt\": \"2026-02-26T17:55:07.385Z\",\n    \"updatedAt\": \"2026-02-26T17:55:07.385Z\",\n    \"description\": \"Campanha promocional de verão\",\n    \"startDate\": \"2026-03-01T03:00:00.000Z\",\n    \"endDate\": \"2026-03-30T03:00:00.000Z\",\n    \"companyId\": \"1dc1d79c-332f-4f46-8016-5d9f52fbe181\",\n    \"name\": \"Campanha Verão 2026 2\",\n    \"typeOfService\": \"INCENTIVE\",\n    \"pixFeePercentage\": 12,\n    \"pixTariffCents\": 10\n}","options":{"raw":{"language":"json"}}},"url":"https://api.hub4pay.com.br/api/partner/campaign/c7789670-fa0d-449a-b9d0-18a189bc2728","description":"<h2 id=\"atualizar-campanha\">Atualizar Campanha</h2>\n<p>Headers  </p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Valor</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Content-Type</td>\n<td>application/json</td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td>Bearer {token}</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<p>Parâmetros de Path  </p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>UUID</td>\n<td>Sim</td>\n<td>ID da campanha</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<p>Body (JSON)<br />{<br />name: Nome Atualizado,<br />description: Descrição atualizada,<br />status: Active,<br />startDate: 2026-03-01T00:00:00.000Z,<br />endDate: 2026-12-31T23:59:59.000Z,<br />type: STANDARD,<br />typeOfService: INCENTIVE,<br />prepaidPercentage: 7,<br />prepaidPaymentTermsDays: 10,<br />pixFeePercentage: 3,<br />pixTariffCents: 100<br />}</p>\n<hr />\n<p>Campos (todos opcionais)  </p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td>String</td>\n<td>Nome da campanha (1-100 caracteres)</td>\n</tr>\n<tr>\n<td>description</td>\n<td>String</td>\n<td>Descrição (1-500 caracteres)</td>\n</tr>\n<tr>\n<td>status</td>\n<td>Enum</td>\n<td>Active ou Disabled</td>\n</tr>\n<tr>\n<td>startDate</td>\n<td>DateTime</td>\n<td>Data de início (não pode ser anterior à data atual)</td>\n</tr>\n<tr>\n<td>endDate</td>\n<td>DateTime</td>\n<td>Data de término</td>\n</tr>\n<tr>\n<td>type</td>\n<td>Enum</td>\n<td>STANDARD ou PIX</td>\n</tr>\n<tr>\n<td>typeOfService</td>\n<td>Enum</td>\n<td>BENEFIT ou INCENTIVE</td>\n</tr>\n<tr>\n<td>prepaidPercentage</td>\n<td>Number/Null</td>\n<td>% taxa pré-pago (0-100)</td>\n</tr>\n<tr>\n<td>prepaidPaymentTermsDays</td>\n<td>Number/Null</td>\n<td>Dias para pagamento</td>\n</tr>\n<tr>\n<td>pixFeePercentage</td>\n<td>Number/Null</td>\n<td>% taxa PIX (0-100)</td>\n</tr>\n<tr>\n<td>pixTariffCents</td>\n<td>Number/Null</td>\n<td>Tarifa PIX em centavos</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<p>Regras de Validação<br />Se type=STANDARD:</p>\n<ul>\n<li><p>prepaidPercentage deve ser informado (ou null)</p>\n</li>\n<li><p>prepaidPaymentTermsDays deve ser informado (ou null)<br />  Se type=PIX:</p>\n</li>\n<li><p>pixFeePercentage é obrigatório</p>\n</li>\n<li><p>pixTariffCents é obrigatório</p>\n</li>\n<li><p>typeOfService deve ser INCENTIVE (se enviado outro valor, retornará erro)<br />  Datas:</p>\n</li>\n<li><p>startDate não pode ser anterior à data atual</p>\n</li>\n<li><p>endDate não pode ser anterior a startDate</p>\n</li>\n</ul>\n<hr />\n<p>Exemplo de Resposta (200 OK)<br />{<br />id: 550e8400-e29b-41d4-a716-446655440000,<br />name: Campanha Atualizada,<br />description: Nova descrição,<br />status: Active,<br />type: STANDARD,<br />typeOfService: INCENTIVE,<br />startDate: 2026-03-01T00:00:00.000Z,<br />endDate: 2026-12-31T23:59:59.000Z,<br />companyId: 123e4567-e89b-12d3-a456-426614174000,<br />cityServiceCode: 1234,<br />cnae: 1234567,<br />federalServiceCode: 12.345,<br />createdAt: 2026-01-15T10:30:00.000Z,<br />updatedAt: 2026-02-27T15:20:00.000Z<br />}</p>\n<hr />\n<p>Códigos de Erro  </p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>400</td>\n<td>Dados inválidos (validação Zod)</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Não autenticado</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Acesso negado</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Campanha não encontrada</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","partner","campaign","c7789670-fa0d-449a-b9d0-18a189bc2728"],"host":["api","hub4pay","com","br"],"query":[],"variable":[]}},"response":[{"id":"144fd027-b1b6-442e-a764-8f7eb1c49a2a","name":"update-campaign","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n   \"type\": \"PIX\",\n    \"status\": \"Active\",\n    \"createdAt\": \"2026-02-26T17:55:07.385Z\",\n    \"updatedAt\": \"2026-02-26T17:55:07.385Z\",\n    \"description\": \"Campanha promocional de verão\",\n    \"startDate\": \"2026-03-01T03:00:00.000Z\",\n    \"endDate\": \"2026-03-30T03:00:00.000Z\",\n    \"companyId\": \"1dc1d79c-332f-4f46-8016-5d9f52fbe181\",\n    \"name\": \"Campanha Verão 2026 2\",\n    \"typeOfService\": \"INCENTIVE\",\n    \"pixFeePercentage\": 12,\n    \"pixTariffCents\": 10\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:3335/api/partner/campaign/c7789670-fa0d-449a-b9d0-18a189bc2728"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-RateLimit-Limit","value":"50"},{"key":"X-RateLimit-Remaining","value":"49"},{"key":"X-RateLimit-Reset","value":"1"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"461"},{"key":"ETag","value":"W/\"1cd-MI3hP2pPygG/13dU1bO367b1FLg\""},{"key":"Date","value":"Thu, 26 Feb 2026 18:02:07 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"c7789670-fa0d-449a-b9d0-18a189bc2728\",\n    \"type\": \"PIX\",\n    \"status\": \"Active\",\n    \"createdAt\": \"2026-02-26T17:55:07.385Z\",\n    \"updatedAt\": \"2026-02-26T18:02:07.149Z\",\n    \"description\": \"Campanha promocional de verão\",\n    \"startDate\": \"2026-03-01T03:00:00.000Z\",\n    \"endDate\": \"2026-03-30T03:00:00.000Z\",\n    \"companyId\": \"1dc1d79c-332f-4f46-8016-5d9f52fbe181\",\n    \"name\": \"Campanha Verão 2026 2\",\n    \"typeOfService\": \"INCENTIVE\",\n    \"cityServiceCode\": \"5820\",\n    \"cnae\": \"8299-7/02\",\n    \"federalServiceCode\": \"15.01\"\n}"}],"_postman_id":"9b2bb2e6-741d-401f-bc0b-eee8ffd017c5"},{"name":"fetch campaigns","id":"e29ba929-aeb7-4668-adb0-b10303d728bf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[{"key":"page","value":"1","type":"text"},{"key":"limit","value":"10","type":"text"}],"url":"https://api.hub4pay.com.br/api/partner/campaign","description":"<h2 id=\"listar-campanhas\">Listar Campanhas</h2>\n<p>Headers  </p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Valor</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Content-Type</td>\n<td>application/json</td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td>Bearer {token}</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<p>Query Params  </p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Padrão</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>page</td>\n<td>Number</td>\n<td>Não</td>\n<td>1</td>\n<td>Número da página</td>\n</tr>\n<tr>\n<td>limit</td>\n<td>Number</td>\n<td>Não</td>\n<td>10</td>\n<td>Itens por página (máx: 100)</td>\n</tr>\n<tr>\n<td>query</td>\n<td>String</td>\n<td>Não</td>\n<td>-</td>\n<td>Buscar por nome ou descrição</td>\n</tr>\n<tr>\n<td>status</td>\n<td>Enum</td>\n<td>Não</td>\n<td>-</td>\n<td>Active ou Disabled</td>\n</tr>\n<tr>\n<td>companyId</td>\n<td>UUID</td>\n<td>Não</td>\n<td>-</td>\n<td>Filtrar por empresa</td>\n</tr>\n<tr>\n<td>type</td>\n<td>Enum</td>\n<td>Não</td>\n<td>-</td>\n<td>STANDARD ou PIX</td>\n</tr>\n<tr>\n<td>startDate</td>\n<td>String</td>\n<td>Não</td>\n<td>-</td>\n<td>Data inicial (filtro)</td>\n</tr>\n<tr>\n<td>endDate</td>\n<td>String</td>\n<td>Não</td>\n<td>-</td>\n<td>Data final (filtro)</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<p>Exemplos de Requisição<br />Listar todas:<br />GET /api/partner/campaign<br />Com paginação:<br />GET /api/partner/campaign?page=1&amp;limit=10<br />Com filtros:<br />GET /api/partner/campaign?status=Active&amp;type=STANDARD&amp;companyId=123e4567-e89b-12d3-a456-426614174000<br />Buscar por nome:<br />GET /api/partner/campaign?query=campanha incentivo<br />Filtrar por período:<br />GET /api/partner/campaign?startDate=2026-01-01&amp;endDate=2026-12-31</p>\n<hr />\n<p>Exemplo de Resposta (200 OK)<br />{<br />data: [<br />{<br />id: 550e8400-e29b-41d4-a716-446655440000,<br />name: Campanha Prize 2026,<br />description: Campanha de incentivo anual,<br />status: Active,<br />type: STANDARD,<br />typeOfService: INCENTIVE,<br />startDate: 2026-01-01T00:00:00.000Z,<br />endDate: 2026-12-31T23:59:59.000Z,<br />companyId: 123e4567-e89b-12d3-a456-426614174000,<br />company: {<br />name: Empresa Exemplo Ltda<br />},<br />createdAt: 2026-01-15T10:30:00.000Z,<br />updatedAt: 2026-02-20T14:45:00.000Z<br />},<br />{<br />id: 660e8400-e29b-41d4-a716-446655440001,<br />name: Campanha PIX Bonus,<br />description: Campanha de bônus PIX,<br />status: Disabled,<br />type: PIX,<br />typeOfService: INCENTIVE,<br />startDate: 2026-02-01T00:00:00.000Z,<br />endDate: 2026-06-30T23:59:59.000Z,<br />companyId: 123e4567-e89b-12d3-a456-426614174000,<br />company: {<br />name: Empresa Exemplo Ltda<br />},<br />createdAt: 2026-01-20T09:00:00.000Z,<br />updatedAt: 2026-02-10T11:00:00.000Z<br />}<br />],<br />totalItems: 2,<br />totalPages: 1<br />}</p>\n<hr />\n<p>Descrição dos Campos da Resposta  </p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>data</td>\n<td>Array</td>\n<td>Lista de campanhas</td>\n</tr>\n<tr>\n<td>data[].id</td>\n<td>UUID</td>\n<td>ID da campanha</td>\n</tr>\n<tr>\n<td>data[].name</td>\n<td>String</td>\n<td>Nome</td>\n</tr>\n<tr>\n<td>data[].description</td>\n<td>String</td>\n<td>Descrição</td>\n</tr>\n<tr>\n<td>data[].status</td>\n<td>Enum</td>\n<td>Active, Disabled ou Finished</td>\n</tr>\n<tr>\n<td>data[].type</td>\n<td>Enum</td>\n<td>STANDARD ou PIX</td>\n</tr>\n<tr>\n<td>data[].typeOfService</td>\n<td>Enum</td>\n<td>BENEFIT ou INCENTIVE</td>\n</tr>\n<tr>\n<td>data[].startDate</td>\n<td>DateTime</td>\n<td>Data de início</td>\n</tr>\n<tr>\n<td>data[].endDate</td>\n<td>DateTime</td>\n<td>Data de término</td>\n</tr>\n<tr>\n<td>data[].companyId</td>\n<td>UUID</td>\n<td>ID da empresa</td>\n</tr>\n<tr>\n<td>data[].company.name</td>\n<td>String</td>\n<td>Nome da empresa</td>\n</tr>\n<tr>\n<td>data[].createdAt</td>\n<td>DateTime</td>\n<td>Data de criação</td>\n</tr>\n<tr>\n<td>data[].updatedAt</td>\n<td>DateTime</td>\n<td>Data de atualização</td>\n</tr>\n<tr>\n<td>totalItems</td>\n<td>Number</td>\n<td>Total de itens</td>\n</tr>\n<tr>\n<td>totalPages</td>\n<td>Number</td>\n<td>Total de páginas</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<p>Observações</p>\n<ul>\n<li><p>Se status for Active, retorna campanhas ativas com endDate &gt;= hoje</p>\n</li>\n<li><p>Se status for Disabled, retorna campanhas desativadas</p>\n</li>\n<li><p>Se status for omitido, retorna todas (incluindo finished)</p>\n</li>\n<li><p>Campanhas com endDate &lt; hoje aparecem com status Finished</p>\n</li>\n</ul>\n<hr />\n<p>Códigos de Erro  </p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>401</td>\n<td>Não autenticado</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Acesso negado</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","partner","campaign"],"host":["api","hub4pay","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"e29ba929-aeb7-4668-adb0-b10303d728bf"},{"name":"get compaign by id","id":"f735732b-18a9-4ebf-8938-65067f06a588","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api.hub4pay.com.br/api/partner/campaign/c7789670-fa0d-449a-b9d0-18a189bc2728","description":"<h2 id=\"buscar-campanha-por-id\">Buscar Campanha por ID</h2>\n<p>Headers  </p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Valor</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Content-Type</td>\n<td>application/json</td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td>Bearer {token}</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<p>Parâmetros de Path  </p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>UUID</td>\n<td>Sim</td>\n<td>ID da campanha</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<p>Exemplo de Requisição<br />GET /api/partner/campaign/550e8400-e29b-41d4-a716-446655440000</p>\n<hr />\n<p>Exemplo de Resposta (200 OK)<br />{<br />id: 550e8400-e29b-41d4-a716-446655440000,<br />name: Campanha Prize 2026,<br />description: Campanha de incentivo para funcionários,<br />status: Active,<br />type: STANDARD,<br />typeOfService: INCENTIVE,<br />startDate: 2026-01-01T00:00:00.000Z,<br />endDate: 2026-12-31T23:59:59.000Z,<br />companyId: 123e4567-e89b-12d3-a456-426614174000,<br />cityServiceCode: 1234,<br />cnae: 1234567,<br />federalServiceCode: 12.345,<br />campaignFeesConfiguration: {<br />id: abc12345-6789-0abc-def1-234567890abc,<br />prepaidPercentage: 5,<br />prepaidPaymentTermsDays: 5,<br />postpaidPercentage: null,<br />postpaidPaymentTermsDays: null,<br />pixFeePercentage: null,<br />pixTariffCents: null<br />},<br />createdAt: 2026-01-15T10:30:00.000Z,<br />updatedAt: 2026-02-20T14:45:00.000Z<br />}</p>\n<hr />\n<p>Descrição dos Campos da Resposta  </p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>UUID</td>\n<td>ID único da campanha</td>\n</tr>\n<tr>\n<td>name</td>\n<td>String</td>\n<td>Nome da campanha</td>\n</tr>\n<tr>\n<td>description</td>\n<td>String</td>\n<td>Descrição</td>\n</tr>\n<tr>\n<td>status</td>\n<td>Enum</td>\n<td>Active, Disabled ou Finished</td>\n</tr>\n<tr>\n<td>type</td>\n<td>Enum</td>\n<td>STANDARD ou PIX</td>\n</tr>\n<tr>\n<td>typeOfService</td>\n<td>Enum</td>\n<td>BENEFIT ou INCENTIVE</td>\n</tr>\n<tr>\n<td>startDate</td>\n<td>DateTime</td>\n<td>Data de início</td>\n</tr>\n<tr>\n<td>endDate</td>\n<td>DateTime</td>\n<td>Data de término</td>\n</tr>\n<tr>\n<td>companyId</td>\n<td>UUID</td>\n<td>ID da empresa</td>\n</tr>\n<tr>\n<td>cityServiceCode</td>\n<td>String</td>\n<td>Código do serviço municipal</td>\n</tr>\n<tr>\n<td>cnae</td>\n<td>String</td>\n<td>CNAE</td>\n</tr>\n<tr>\n<td>cnae</td>\n<td>String</td>\n<td>Código federal do serviço</td>\n</tr>\n<tr>\n<td>campaignFeesConfiguration</td>\n<td>Object</td>\n<td>Configuração de taxas</td>\n</tr>\n<tr>\n<td>campaignFeesConfiguration.prepaidPercentage</td>\n<td>Number</td>\n<td>% taxa pré-pago</td>\n</tr>\n<tr>\n<td>campaignFeesConfiguration.prepaidPaymentTermsDays</td>\n<td>Number</td>\n<td>Dias para pagamento</td>\n</tr>\n<tr>\n<td>campaignFeesConfiguration.postpaidPercentage</td>\n<td>Number</td>\n<td>% taxa pós-pago</td>\n</tr>\n<tr>\n<td>campaignFeesConfiguration.pixFeePercentage</td>\n<td>Number</td>\n<td>% taxa PIX</td>\n</tr>\n<tr>\n<td>campaignFeesConfiguration.pixTariffCents</td>\n<td>Number</td>\n<td>Tarifa PIX em centavos</td>\n</tr>\n<tr>\n<td>createdAt</td>\n<td>DateTime</td>\n<td>Data de criação</td>\n</tr>\n<tr>\n<td>updatedAt</td>\n<td>DateTime</td>\n<td>Data de atualização</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<p>Códigos de Erro  </p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>401</td>\n<td>Não autenticado</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Acesso negado</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Campanha não encontrada</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","partner","campaign","c7789670-fa0d-449a-b9d0-18a189bc2728"],"host":["api","hub4pay","com","br"],"query":[],"variable":[]}},"response":[{"id":"a3cd1916-c9d8-4281-92b4-13d6d554ea50","name":"get-compaign","originalRequest":{"method":"GET","header":[],"url":"http://localhost:3335/api/partner/campaign/c7789670-fa0d-449a-b9d0-18a189bc2728"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-RateLimit-Limit","value":"50"},{"key":"X-RateLimit-Remaining","value":"49"},{"key":"X-RateLimit-Reset","value":"1"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"904"},{"key":"ETag","value":"W/\"388-+0JfDf4XwhYYt9EGrTnCagdZmMk\""},{"key":"Date","value":"Thu, 26 Feb 2026 17:58:24 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"c7789670-fa0d-449a-b9d0-18a189bc2728\",\n    \"type\": \"PIX\",\n    \"status\": \"Active\",\n    \"createdAt\": \"2026-02-26T17:55:07.385Z\",\n    \"updatedAt\": \"2026-02-26T17:58:19.371Z\",\n    \"description\": \"Campanha promocional de verão\",\n    \"startDate\": \"2026-03-01T03:00:00.000Z\",\n    \"endDate\": \"2026-03-30T03:00:00.000Z\",\n    \"companyId\": \"1dc1d79c-332f-4f46-8016-5d9f52fbe181\",\n    \"name\": \"Campanha Verão 2026 2\",\n    \"typeOfService\": \"INCENTIVE\",\n    \"cityServiceCode\": \"5820\",\n    \"cnae\": \"8299-7/02\",\n    \"federalServiceCode\": \"15.01\",\n    \"campaignFeesConfiguration\": {\n        \"id\": \"ee480db1-3f29-4371-b6ea-5d36446d0342\",\n        \"status\": \"Active\",\n        \"createdAt\": \"2026-02-26T17:55:07.385Z\",\n        \"updatedAt\": \"2026-02-26T17:58:11.962Z\",\n        \"prepaidPercentage\": null,\n        \"postpaidPercentage\": null,\n        \"prepaidPaymentTermsDays\": null,\n        \"postpaidPaymentTermsDays\": null,\n        \"pixFeePercentage\": 0,\n        \"pixTariffCents\": 0,\n        \"campaignId\": \"c7789670-fa0d-449a-b9d0-18a189bc2728\",\n        \"partnerFeeConfigurationId\": \"da54981a-82aa-42a9-8521-02d2e5698b54\"\n    }\n}"}],"_postman_id":"f735732b-18a9-4ebf-8938-65067f06a588"}],"id":"fbc68789-b581-4113-8a47-ed6540915bd1","_postman_id":"fbc68789-b581-4113-8a47-ed6540915bd1","description":"","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}}},{"name":"Balance-Request","item":[{"name":"Public","item":[{"name":"get balance request","id":"a102edec-980a-4734-87fa-070ac0c45fda","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[{"key":"page","value":"1","type":"text"},{"key":"limit","value":"10","type":"text"}],"url":"https://api.hub4pay.com.br/api/balance-request/20260225201615869BQ","description":"<h2 id=\"headers\">Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Valor</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Content-Type</td>\n<td><code>application/json</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"parâmetros-de-path\">Parâmetros de path</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>code</code></td>\n<td>String</td>\n<td>✅</td>\n<td>Código da solicitação de saldo</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"exemplo-de-request\">Exemplo de request</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /api/balance-request/20260225201615869BQ\n\n</code></pre><hr />\n<h2 id=\"response-de-sucesso-200\">Response de sucesso <code>200</code></h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"550e8400-e29b-41d4-a716-446655440000\",\n  \"code\": \"20260225201615869BQ\",\n  \"status\": \"WAITING_PAYMENT\",\n  \"value\": 100000,\n  \"totalValue\": 105000,\n  \"destination\": \"linkpremiocard\",\n  \"pixTariffCents\": null,\n  \"paymentDueDate\": \"2026-03-04T00:00:00.000Z\",\n  \"company\": {\n    \"name\": \"Empresa Exemplo Ltda\",\n    \"fantasyName\": \"Empresa Exemplo\"\n  },\n  \"campaign\": {\n    \"name\": \"Campanha Prize 2026\"\n  }\n}\n\n</code></pre>\n<hr />\n<h2 id=\"descrição-dos-campos-da-resposta\">Descrição dos campos da resposta</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>UUID</td>\n<td>ID único da solicitação</td>\n</tr>\n<tr>\n<td><code>code</code></td>\n<td>String</td>\n<td>Código da solicitação</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>Enum</td>\n<td>Status atual da solicitação</td>\n</tr>\n<tr>\n<td><code>value</code></td>\n<td>Number</td>\n<td>Valor solicitado em centavos</td>\n</tr>\n<tr>\n<td><code>totalValue</code></td>\n<td>Number</td>\n<td>Valor total com taxas em centavos</td>\n</tr>\n<tr>\n<td><code>destination</code></td>\n<td>String</td>\n<td>Destino (<code>linkpremiocard</code> ou <code>pix</code>)</td>\n</tr>\n<tr>\n<td><code>pixTariffCents</code></td>\n<td>Number</td>\n<td>Tarifa PIX em centavos</td>\n</tr>\n<tr>\n<td><code>paymentDueDate</code></td>\n<td>DateTime</td>\n<td>Data de vencimento</td>\n</tr>\n<tr>\n<td><code>company</code></td>\n<td>Object</td>\n<td>Dados da empresa</td>\n</tr>\n<tr>\n<td><code>company.name</code></td>\n<td>String</td>\n<td>Razão social</td>\n</tr>\n<tr>\n<td><code>company.fantasyName</code></td>\n<td>String</td>\n<td>Nome fantasia</td>\n</tr>\n<tr>\n<td><code>campaign</code></td>\n<td>Object</td>\n<td>Dados da campanha</td>\n</tr>\n<tr>\n<td><code>campaign.name</code></td>\n<td>String</td>\n<td>Nome da campanha</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"status-disponíveis\">Status disponíveis</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>GENERATING_INVOICE</code></td>\n<td>Gerando invoice</td>\n</tr>\n<tr>\n<td><code>WAITING_PAYMENT</code></td>\n<td>Aguardando pagamento</td>\n</tr>\n<tr>\n<td><code>BALANCE_RELEASE</code></td>\n<td>Liberação de saldo</td>\n</tr>\n<tr>\n<td><code>COMPLETED</code></td>\n<td>Concluído</td>\n</tr>\n<tr>\n<td><code>REJECTED</code></td>\n<td>Rejeitado</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"conversão-de-valores\">Conversão de valores</h2>\n<blockquote>\n</blockquote>\n<p>Os valores são retornados em centavos. Para converter:</p>\n<ul>\n<li><code>100000</code> = R$ 1.000,00</li>\n</ul>\n<hr />\n<h2 id=\"observações\">Observações</h2>\n<blockquote>\n</blockquote>\n<ul>\n<li><p>Esta é uma rota pública, <strong>não requer autenticação</strong></p>\n</li>\n<li><p>Retorna informações básicas da solicitação de saldo para consulta externa</p>\n</li>\n</ul>\n<hr />\n<h2 id=\"códigos-de-erro\">Códigos de erro</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>404</code></td>\n<td>Solicitação não encontrada</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","balance-request","20260225201615869BQ"],"host":["api","hub4pay","com","br"],"query":[],"variable":[]}},"response":[{"id":"bff90229-c316-4a0c-8831-ae5dcb15662b","name":"fetch-balance-request","originalRequest":{"method":"GET","header":[{"key":"page","value":"1","type":"text"},{"key":"limit","value":"10","type":"text"},{"key":"status","value":"","type":"text","disabled":true},{"key":"companyId","value":"","type":"text","disabled":true},{"key":"type","value":"","type":"text","disabled":true},{"key":"startDate","value":"","type":"text","disabled":true},{"key":"endDate","value":"","type":"text","disabled":true}],"url":"http://localhost:3335/api/partner/balance-requests"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-RateLimit-Limit","value":"50"},{"key":"X-RateLimit-Remaining","value":"49"},{"key":"X-RateLimit-Reset","value":"1"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"3205"},{"key":"ETag","value":"W/\"c85-Iphwt1ScPMR+CGYFMbPFPPP6MVw\""},{"key":"Date","value":"Thu, 26 Feb 2026 13:18:49 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": \"0a4bcfea-c91f-4505-b675-3ec993089c79\",\n            \"code\": \"20260225203846331PS\",\n            \"value\": 1000,\n            \"balanceReleaseDate\": null,\n            \"createdAt\": \"2026-02-25T20:38:46.903Z\",\n            \"status\": \"GENERATING_INVOICE\",\n            \"totalValue\": 1010,\n            \"destination\": \"linkpremiocard\",\n            \"invoices\": [],\n            \"company\": {\n                \"name\": \"Empresa Teste LTDA\",\n                \"fantasyName\": \"Empresa Teste\",\n                \"document\": \"62540805000185\"\n            },\n            \"campaign\": {\n                \"name\": \"Campanha Atualizada\"\n            }\n        },\n        {\n            \"id\": \"240080d0-2bb7-4a4f-9f3f-8b4f341d92a8\",\n            \"code\": \"20260225201615869BQ\",\n            \"value\": 1000,\n            \"balanceReleaseDate\": null,\n            \"createdAt\": \"2026-02-25T20:16:15.870Z\",\n            \"status\": \"GENERATING_INVOICE\",\n            \"totalValue\": 1010,\n            \"destination\": \"linkpremiocard\",\n            \"invoices\": [],\n            \"company\": {\n                \"name\": \"Empresa Teste LTDA\",\n                \"fantasyName\": \"Empresa Teste\",\n                \"document\": \"62540805000185\"\n            },\n            \"campaign\": {\n                \"name\": \"Campanha Atualizada\"\n            }\n        },\n        {\n            \"id\": \"5e63f5bb-0b84-48d8-90e1-bdce4363a620\",\n            \"code\": \"20250714195141697IO\",\n            \"value\": 1200,\n            \"balanceReleaseDate\": null,\n            \"createdAt\": \"2025-07-14T19:51:41.698Z\",\n            \"status\": \"BALANCE_RELEASE\",\n            \"totalValue\": 0,\n            \"destination\": \"linkpremiocard\",\n            \"invoices\": [\n                {\n                    \"id\": \"cb6fa7a6-7a7d-41e3-98bd-802c9daa8176\",\n                    \"externalInvoiceId\": null,\n                    \"flowStatus\": \"WAITING_CALCULATE_TAXES\",\n                    \"status\": \"CREATED\",\n                    \"value\": 1200\n                },\n                {\n                    \"id\": \"db902c55-4529-4e35-8518-b63edc370353\",\n                    \"externalInvoiceId\": null,\n                    \"flowStatus\": \"WAITING_CALCULATE_TAXES\",\n                    \"status\": \"CREATED\",\n                    \"value\": 100\n                }\n            ],\n            \"company\": {\n                \"name\": \"RC Trade\",\n                \"fantasyName\": null,\n                \"document\": \"06305761000138\"\n            },\n            \"campaign\": null\n        },\n        {\n            \"id\": \"727cf6f8-4e6e-4d83-b5e4-8a1b4ecb75ec\",\n            \"code\": \"20250714194730323WL\",\n            \"value\": 100,\n            \"balanceReleaseDate\": null,\n            \"createdAt\": \"2025-07-14T19:47:30.324Z\",\n            \"status\": \"WAITING_PAYMENT\",\n            \"totalValue\": 0,\n            \"destination\": \"linkpremiocard\",\n            \"invoices\": [],\n            \"company\": {\n                \"name\": \"RC Trade\",\n                \"fantasyName\": null,\n                \"document\": \"06305761000138\"\n            },\n            \"campaign\": null\n        },\n        {\n            \"id\": \"50cc4c5f-3256-4ffa-b4d3-75299201b03d\",\n            \"code\": \"20250713171957667CF\",\n            \"value\": 50000,\n            \"balanceReleaseDate\": null,\n            \"createdAt\": \"2025-07-13T17:19:57.667Z\",\n            \"status\": \"BALANCE_RELEASE\",\n            \"totalValue\": 0,\n            \"destination\": \"linkpremiocard\",\n            \"invoices\": [\n                {\n                    \"id\": \"61ee8420-9b01-472d-a302-1e71e76613bb\",\n                    \"externalInvoiceId\": null,\n                    \"flowStatus\": \"WAITING_CALCULATE_TAXES\",\n                    \"status\": \"CREATED\",\n                    \"value\": 50000\n                }\n            ],\n            \"company\": {\n                \"name\": \"RC Trade\",\n                \"fantasyName\": null,\n                \"document\": \"06305761000138\"\n            },\n            \"campaign\": null\n        },\n        {\n            \"id\": \"1bb7a840-9051-4c34-b667-9a125ee09424\",\n            \"code\": \"20250713171355378DW\",\n            \"value\": 1000000,\n            \"balanceReleaseDate\": \"2025-07-13T17:19:27.869Z\",\n            \"createdAt\": \"2025-07-13T17:13:55.379Z\",\n            \"status\": \"COMPLETED\",\n            \"totalValue\": 0,\n            \"destination\": \"linkpremiocard\",\n            \"invoices\": [\n                {\n                    \"id\": \"de8687ca-dd13-43f5-ad1c-c080fe9faa81\",\n                    \"externalInvoiceId\": null,\n                    \"flowStatus\": \"WAITING_CALCULATE_TAXES\",\n                    \"status\": \"CREATED\",\n                    \"value\": 1000000\n                }\n            ],\n            \"company\": {\n                \"name\": \"RC Trade\",\n                \"fantasyName\": null,\n                \"document\": \"06305761000138\"\n            },\n            \"campaign\": null\n        },\n        {\n            \"id\": \"fde12a4c-b377-4677-81d3-4dd17570c0c9\",\n            \"code\": \"20250703154043071AJ\",\n            \"value\": 1000,\n            \"balanceReleaseDate\": null,\n            \"createdAt\": \"2025-07-03T15:40:43.072Z\",\n            \"status\": \"BALANCE_RELEASE\",\n            \"totalValue\": 0,\n            \"destination\": \"linkpremiocard\",\n            \"invoices\": [\n                {\n                    \"id\": \"38af5508-1c5f-4e56-b477-bcb6eabf4ee4\",\n                    \"externalInvoiceId\": null,\n                    \"flowStatus\": \"WAITING_CALCULATE_TAXES\",\n                    \"status\": \"CREATED\",\n                    \"value\": 1000\n                }\n            ],\n            \"company\": {\n                \"name\": \"RC Trade\",\n                \"fantasyName\": null,\n                \"document\": \"06305761000138\"\n            },\n            \"campaign\": null\n        }\n    ],\n    \"totalItems\": 7,\n    \"totalPages\": 1\n}"}],"_postman_id":"a102edec-980a-4734-87fa-070ac0c45fda"}],"id":"6079cee6-283e-4d60-94b7-75e505024b07","_postman_id":"6079cee6-283e-4d60-94b7-75e505024b07","description":"","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}}},{"name":"Invoice","item":[{"name":"create invoice to balance request","id":"a28601fd-e426-44ca-b3fe-30cdfa7f91e2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"invoiceLink\": \"https://empresa.com/nota.pdf\",\n  \"invoiceNumber\": \"NF-12345\",\n  \"paymentDueDate\": \"2026-04-10\",\n  \"paymentDate\": null,\n  \"value\": 1000,\n  \"observation\": \"Pagamento referente à campanha X\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.hub4pay.com.br/api/partner/balance-requests/240080d0-2bb7-4a4f-9f3f-8b4f341d92a8/invoices","description":"<h2 id=\"headers\">Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Valor</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Content-Type</td>\n<td><code>application/json</code></td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td>Bearer <code>{token}</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"parâmetros-de-path\">Parâmetros de path</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>balanceRequestId</code></td>\n<td>UUID</td>\n<td>✅</td>\n<td>ID da solicitação de saldo</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"body-json\">Body (JSON)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"invoiceLink\": \"https://exemplo.com/nota-fiscal.pdf\",\n  \"invoiceNumber\": 1234,\n  \"paymentDueDate\": \"2026-03-15T00:00:00.000Z\",\n  \"paymentDate\": null,\n  \"value\": 105000,\n  \"observation\": \"Observações adicionais (opcional)\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"campos\">Campos</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>invoiceLink</code></td>\n<td>String</td>\n<td>✅</td>\n<td>URL da nota fiscal</td>\n</tr>\n<tr>\n<td><code>invoiceNumber</code></td>\n<td>String</td>\n<td>✅</td>\n<td>Número da nota fiscal</td>\n</tr>\n<tr>\n<td><code>paymentDueDate</code></td>\n<td>DateTime</td>\n<td>✅</td>\n<td>Data de vencimento (deve ser futura)</td>\n</tr>\n<tr>\n<td><code>paymentDate</code></td>\n<td>DateTime</td>\n<td>❌</td>\n<td>Data de pagamento</td>\n</tr>\n<tr>\n<td><code>value</code></td>\n<td>Number</td>\n<td>✅</td>\n<td>Valor em centavos</td>\n</tr>\n<tr>\n<td><code>observation</code></td>\n<td>String</td>\n<td>❌</td>\n<td>Observações adicionais</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"exemplo-de-request\">Exemplo de request</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST /api/partner/balance-requests/240080d0-2bb7-4a4f-9f3f-8b4f341d92a8/invoices\n\n</code></pre><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"invoiceLink\": \"https://exemplo.com/nota-fiscal.pdf\",\n  \"invoiceNumber\": 1234,\n  \"paymentDueDate\": \"2026-03-15T00:00:00.000Z\",\n  \"value\": 105000\n}\n\n</code></pre>\n<hr />\n<h2 id=\"response-de-sucesso-201\">Response de sucesso <code>201</code></h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"invoice-uuid-001\",\n  \"balanceRequestId\": \"240080d0-2bb7-4a4f-9f3f-8b4f341d92a8\",\n  \"invoiceLink\": \"https://exemplo.com/nota-fiscal.pdf\",\n  \"invoiceNumber\": 1234,\n  \"paymentDueDate\": \"2026-03-15T00:00:00.000Z\",\n  \"paymentDate\": null,\n  \"value\": 105000,\n  \"observation\": null,\n  \"createdAt\": \"2026-02-27T15:30:00.000Z\",\n  \"updatedAt\": \"2026-02-27T15:30:00.000Z\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"descrição-dos-campos-da-resposta\">Descrição dos campos da resposta</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>UUID</td>\n<td>ID da invoice</td>\n</tr>\n<tr>\n<td><code>balanceRequestId</code></td>\n<td>UUID</td>\n<td>ID da solicitação de saldo</td>\n</tr>\n<tr>\n<td><code>invoiceLink</code></td>\n<td>String</td>\n<td>URL da nota fiscal</td>\n</tr>\n<tr>\n<td><code>invoiceNumber</code></td>\n<td>String</td>\n<td>Número da nota fiscal</td>\n</tr>\n<tr>\n<td><code>paymentDueDate</code></td>\n<td>DateTime</td>\n<td>Data de vencimento</td>\n</tr>\n<tr>\n<td><code>paymentDate</code></td>\n<td>DateTime</td>\n<td>Data de pagamento</td>\n</tr>\n<tr>\n<td><code>value</code></td>\n<td>Number</td>\n<td>Valor em centavos</td>\n</tr>\n<tr>\n<td><code>observation</code></td>\n<td>String</td>\n<td>Observações</td>\n</tr>\n<tr>\n<td><code>createdAt</code></td>\n<td>DateTime</td>\n<td>Data de criação</td>\n</tr>\n<tr>\n<td><code>updatedAt</code></td>\n<td>DateTime</td>\n<td>Data de atualização</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"conversão-de-valores\">Conversão de valores</h2>\n<blockquote>\n</blockquote>\n<p>Os valores são retornados em centavos. Para converter:</p>\n<ul>\n<li><code>105000</code> = R$ 1.050,00</li>\n</ul>\n<hr />\n<h2 id=\"observações\">Observações</h2>\n<blockquote>\n<p>&lt;ul &gt;&lt;li &gt;&lt;div&gt;Ao criar uma invoice, o status da solicitação de saldo pode ser alterado automaticamente&lt;/div&gt;&lt;/li&gt;&lt;li &gt;&lt;div&gt;Se a invoice for criada com sucesso e a solicitação estiver no status adequado, pode permitir a liberação do saldo&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt; </p>\n</blockquote>\n<hr />\n<h2 id=\"códigos-de-erro\">Códigos de erro</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>400</code></td>\n<td>Dados inválidos</td>\n</tr>\n<tr>\n<td><code>401</code></td>\n<td>Não autenticado</td>\n</tr>\n<tr>\n<td><code>403</code></td>\n<td>Acesso negado</td>\n</tr>\n<tr>\n<td><code>404</code></td>\n<td>Solicitação não encontrada</td>\n</tr>\n<tr>\n<td><code>422</code></td>\n<td>Data de vencimento deve ser futura</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","partner","balance-requests","240080d0-2bb7-4a4f-9f3f-8b4f341d92a8","invoices"],"host":["api","hub4pay","com","br"],"query":[],"variable":[]}},"response":[{"id":"bb2ad521-aabc-481a-8c02-8f36066ae999","name":"create-invoice-to-balance-request","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"invoiceLink\": \"https://empresa.com/nota.pdf\",\n  \"invoiceNumber\": \"NF-12345\",\n  \"paymentDueDate\": \"2026-04-10\",\n  \"paymentDate\": null,\n  \"value\": 1000,\n  \"observation\": \"Pagamento referente à campanha X\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:3335/api/partner/balance-requests/240080d0-2bb7-4a4f-9f3f-8b4f341d92a8/invoices"},"status":"Created","code":201,"_postman_previewlanguage":"Text","header":[{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-RateLimit-Limit","value":"50"},{"key":"X-RateLimit-Remaining","value":"49"},{"key":"X-RateLimit-Reset","value":"1"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"462"},{"key":"ETag","value":"W/\"1ce-zZm8awEUh1bJXybVUfzuFndTakQ\""},{"key":"Date","value":"Thu, 26 Feb 2026 14:38:22 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"18b581f1-7593-4817-b83c-a83120a15899\",\n    \"externalInvoiceId\": null,\n    \"invoiceNumber\": \"NF-12345\",\n    \"invoiceLink\": \"https://empresa.com/nota.pdf\",\n    \"value\": 1000,\n    \"status\": \"CREATED\",\n    \"flowStatus\": \"WAITING_CALCULATE_TAXES\",\n    \"paymentDate\": null,\n    \"paymentDueDate\": \"2026-04-10T00:00:00.000Z\",\n    \"balanceRequestId\": \"240080d0-2bb7-4a4f-9f3f-8b4f341d92a8\",\n    \"createdAt\": \"2026-02-26T14:38:08.060Z\",\n    \"updatedAt\": \"2026-02-26T14:38:08.060Z\",\n    \"observation\": \"Pagamento referente à campanha X\"\n}"}],"_postman_id":"a28601fd-e426-44ca-b3fe-30cdfa7f91e2"},{"name":"update invoice to balance request","id":"04a2252e-b9b0-4384-80a8-8eccad0ec282","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n  \"paymentDate\": \"2026-04-05\",\n  \"value\": 950\n}","options":{"raw":{"language":"json"}}},"url":"https://api.hub4pay.com.br/api/partner/balance-requests/240080d0-2bb7-4a4f-9f3f-8b4f341d92a8/invoices/18b581f1-7593-4817-b83c-a83120a15899","description":"<h2 id=\"headers\">Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Valor</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Content-Type</td>\n<td><code>application/json</code></td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td>Bearer <code>{token}</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"parâmetros-de-path\">Parâmetros de path</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>balanceRequestId</code></td>\n<td>UUID</td>\n<td>✅</td>\n<td>ID da solicitação de saldo</td>\n</tr>\n<tr>\n<td><code>invoiceId</code></td>\n<td>UUID</td>\n<td>✅</td>\n<td>ID da invoice</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"body-json\">Body (JSON)</h2>\n<blockquote>\n<p>&lt;p &gt;Todos os campos são opcionais&lt;/p&gt; </p>\n</blockquote>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"invoiceLink\": \"https://exemplo.com/nota-fiscal-atualizada.pdf\",\n  \"invoiceNumber\": 1235,\n  \"paymentDueDate\": \"2026-03-20T00:00:00.000Z\",\n  \"paymentDate\": \"2026-03-18T00:00:00.000Z\",\n  \"value\": 110000,\n  \"observation\": \"Observação atualizada\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"campos\">Campos</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>invoiceLink</code></td>\n<td>String</td>\n<td>❌</td>\n<td>URL da nota fiscal</td>\n</tr>\n<tr>\n<td><code>invoiceNumber</code></td>\n<td>String</td>\n<td>❌</td>\n<td>Número da nota fiscal</td>\n</tr>\n<tr>\n<td><code>paymentDueDate</code></td>\n<td>DateTime</td>\n<td>❌</td>\n<td>Data de vencimento (deve ser futura)</td>\n</tr>\n<tr>\n<td><code>paymentDate</code></td>\n<td>DateTime</td>\n<td>❌</td>\n<td>Data de pagamento</td>\n</tr>\n<tr>\n<td><code>value</code></td>\n<td>Number</td>\n<td>❌</td>\n<td>Valor em centavos</td>\n</tr>\n<tr>\n<td><code>observation</code></td>\n<td>String</td>\n<td>❌</td>\n<td>Observações adicionais</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"exemplo-de-request\">Exemplo de request</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>PATCH /api/partner/balance-requests/240080d0-2bb7-4a4f-9f3f-8b4f341d92a8/invoices/invoice-uuid-001\n\n</code></pre><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"invoiceNumber\": 1235,\n  \"paymentDate\": \"2026-03-18T00:00:00.000Z\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"response-de-sucesso-200\">Response de sucesso <code>200</code></h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"invoice-uuid-001\",\n  \"balanceRequestId\": \"240080d0-2bb7-4a4f-9f3f-8b4f341d92a8\",\n  \"invoiceLink\": \"https://exemplo.com/nota-fiscal.pdf\",\n  \"invoiceNumber\": 1235,\n  \"paymentDueDate\": \"2026-03-15T00:00:00.000Z\",\n  \"paymentDate\": \"2026-03-18T00:00:00.000Z\",\n  \"value\": 105000,\n  \"observation\": \"Observação atualizada\",\n  \"createdAt\": \"2026-02-27T15:30:00.000Z\",\n  \"updatedAt\": \"2026-02-27T16:00:00.000Z\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"descrição-dos-campos-da-resposta\">Descrição dos campos da resposta</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>UUID</td>\n<td>ID da invoice</td>\n</tr>\n<tr>\n<td><code>balanceRequestId</code></td>\n<td>UUID</td>\n<td>ID da solicitação de saldo</td>\n</tr>\n<tr>\n<td><code>invoiceLink</code></td>\n<td>String</td>\n<td>URL da nota fiscal</td>\n</tr>\n<tr>\n<td><code>invoiceNumber</code></td>\n<td>String</td>\n<td>Número da nota fiscal</td>\n</tr>\n<tr>\n<td><code>paymentDueDate</code></td>\n<td>DateTime</td>\n<td>Data de vencimento</td>\n</tr>\n<tr>\n<td><code>paymentDate</code></td>\n<td>DateTime</td>\n<td>Data de pagamento</td>\n</tr>\n<tr>\n<td><code>value</code></td>\n<td>Number</td>\n<td>Valor em centavos</td>\n</tr>\n<tr>\n<td><code>observation</code></td>\n<td>String</td>\n<td>Observações</td>\n</tr>\n<tr>\n<td><code>createdAt</code></td>\n<td>DateTime</td>\n<td>Data de criação</td>\n</tr>\n<tr>\n<td><code>updatedAt</code></td>\n<td>DateTime</td>\n<td>Data de atualização</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"conversão-de-valores\">Conversão de valores</h2>\n<blockquote>\n</blockquote>\n<p>Os valores são retornados em centavos. Para converter:</p>\n<ul>\n<li><code>105000</code> = R$ 1.050,00</li>\n</ul>\n<hr />\n<h2 id=\"códigos-de-erro\">Códigos de erro</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>400</code></td>\n<td>Dados inválidos</td>\n</tr>\n<tr>\n<td><code>401</code></td>\n<td>Não autenticado</td>\n</tr>\n<tr>\n<td><code>403</code></td>\n<td>Acesso negado</td>\n</tr>\n<tr>\n<td><code>404</code></td>\n<td>Invoice ou solicitação não encontrada</td>\n</tr>\n<tr>\n<td><code>422</code></td>\n<td>Data de vencimento deve ser futura</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","partner","balance-requests","240080d0-2bb7-4a4f-9f3f-8b4f341d92a8","invoices","18b581f1-7593-4817-b83c-a83120a15899"],"host":["api","hub4pay","com","br"],"query":[],"variable":[]}},"response":[{"id":"84de5171-5858-45b0-b37f-e09319c65be8","name":"update-invoice","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n  \"paymentDate\": \"2026-04-05\",\n  \"value\": 950\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:3335/api/partner/balance-requests/240080d0-2bb7-4a4f-9f3f-8b4f341d92a8/invoices/18b581f1-7593-4817-b83c-a83120a15899"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-RateLimit-Limit","value":"50"},{"key":"X-RateLimit-Remaining","value":"49"},{"key":"X-RateLimit-Reset","value":"1"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"483"},{"key":"ETag","value":"W/\"1e3-/440vEcW0Kvp4Xl9V9IZ58UnQiI\""},{"key":"Date","value":"Thu, 26 Feb 2026 14:44:19 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"18b581f1-7593-4817-b83c-a83120a15899\",\n    \"externalInvoiceId\": null,\n    \"invoiceNumber\": \"NF-12345\",\n    \"invoiceLink\": \"https://empresa.com/nota.pdf\",\n    \"value\": 950,\n    \"status\": \"CREATED\",\n    \"flowStatus\": \"WAITING_CALCULATE_TAXES\",\n    \"paymentDate\": \"2026-04-05T00:00:00.000Z\",\n    \"paymentDueDate\": \"2026-04-10T00:00:00.000Z\",\n    \"balanceRequestId\": \"240080d0-2bb7-4a4f-9f3f-8b4f341d92a8\",\n    \"createdAt\": \"2026-02-26T14:38:08.060Z\",\n    \"updatedAt\": \"2026-02-26T14:44:18.936Z\",\n    \"observation\": \"Pagamento referente à campanha X\"\n}"}],"_postman_id":"04a2252e-b9b0-4384-80a8-8eccad0ec282"}],"id":"2b85caa4-09f9-40ce-b98c-2a5a510a8516","_postman_id":"2b85caa4-09f9-40ce-b98c-2a5a510a8516","description":"","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}}},{"name":"create balance request","id":"956bcacd-2957-458a-a04d-74c62e729fd2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"companyId\": \"1dc1d79c-332f-4f46-8016-5d9f52fbe181\",\n  \"campaignId\": \"c7789670-fa0d-449a-b9d0-18a189bc2728\",\n  \"responsible\": \"João Silva\",\n  \"taxPercentage\": 20, //optional- update campaing tax \n  \"value\": 1000,\n  \"paymentDueDate\": \"2026-03-30\",\n  \"details\": \"Compra de saldo para campanha X\",\n  \"destination\": \"pix\",\n  \"spreadsheetUrl\": \"https://docs.google.com/spreadsheets/d/abc\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.hub4pay.com.br/api/partner/balance-requests","description":"<h2 id=\"headers\">Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Chave</th>\n<th>Valor</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Content-Type</td>\n<td><code>application/json</code></td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td>Bearer <code>{token}</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"body-json\">Body (JSON)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"companyId\": \"uuid-da-empresa\",\n  \"campaignId\": \"uuid-da-campanha\",\n  \"responsible\": \"Nome do responsável\",\n  \"value\": 100000,\n  \"paymentDueDate\": \"2026-03-15T00:00:00.000Z\",\n  \"details\": \"Observações adicionais (opcional)\",\n  \"destination\": \"linkpremiocard\",\n  \"spreadsheetUrl\": \"https://url-da-planilha.com/planilha.xlsx\",\n  \"taxPercentage\": 5.5\n}\n\n</code></pre>\n<hr />\n<h2 id=\"campos\">Campos</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>companyId</code></td>\n<td>UUID</td>\n<td>✅</td>\n<td>ID da empresa que está solicitando o saldo</td>\n</tr>\n<tr>\n<td><code>campaignId</code></td>\n<td>UUID</td>\n<td>✅</td>\n<td>ID da campanha que será utilizada</td>\n</tr>\n<tr>\n<td><code>responsible</code></td>\n<td>String</td>\n<td>✅</td>\n<td>Nome do responsável pela solicitação</td>\n</tr>\n<tr>\n<td><code>value</code></td>\n<td>Number</td>\n<td>✅</td>\n<td>Valor em centavos — mínimo: <code>100</code> (equivale a R$ 1,00)</td>\n</tr>\n<tr>\n<td><code>paymentDueDate</code></td>\n<td>DateTime</td>\n<td>❌</td>\n<td>Data de vencimento (para destino <code>linkpremiocard</code> e tipo pré-pago)</td>\n</tr>\n<tr>\n<td><code>details</code></td>\n<td>String</td>\n<td>❌</td>\n<td>Observações adicionais</td>\n</tr>\n<tr>\n<td><code>destination</code></td>\n<td>Enum</td>\n<td>❌</td>\n<td><code>linkpremiocard</code> (padrão) ou <code>pix</code></td>\n</tr>\n<tr>\n<td><code>spreadsheetUrl</code></td>\n<td>URL</td>\n<td>❌</td>\n<td>URL da planilha de beneficiários</td>\n</tr>\n<tr>\n<td><code>taxPercentage</code></td>\n<td>Number</td>\n<td>❌</td>\n<td>Percentual de taxa override (<code>0</code>–<code>100</code>). Se enviado, atualiza o valor na campanha</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"valores-possíveis-para-destination\">Valores possíveis para <code>destination</code></h2>\n<ul>\n<li><p><code>linkpremiocard</code> — Link Prêmio Card</p>\n</li>\n<li><p><code>pix</code> — PIX</p>\n</li>\n</ul>\n<hr />\n<h2 id=\"response-de-sucesso-200\">Response de sucesso <code>200</code></h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"requestId\": \"uuid-da-solicitacao\",\n  \"deductionsAmount\": 1000.00,\n  \"servicesAmount\": 1055.00,\n  \"invoiceId\": \"uuid-da-nota\",\n  \"invoiceExternalId\": \"id-externo-nfe\",\n  \"invoiceNumber\": 1234,\n  \"nfeStatus\": \"Pending\",\n  \"balanceRequestStatus\": \"GENERATING_INVOICE\",\n  \"balanceRequestCode\": \"COD-2026-XXXXX\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"códigos-de-erro\">Códigos de erro</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>3031</code></td>\n<td>Nenhum usuário encontrado para a agência</td>\n</tr>\n<tr>\n<td><code>3032</code></td>\n<td>Endereço da empresa não encontrado</td>\n</tr>\n<tr>\n<td><code>3033</code></td>\n<td>Código IBGE não encontrado</td>\n</tr>\n<tr>\n<td><code>3034</code></td>\n<td>Campanha já finalizada</td>\n</tr>\n<tr>\n<td><code>3035</code></td>\n<td>Campanha desativada</td>\n</tr>\n<tr>\n<td><code>3036</code></td>\n<td>Campanha não pertence à empresa</td>\n</tr>\n<tr>\n<td><code>3037</code></td>\n<td>Código do serviço da cidade não encontrado</td>\n</tr>\n<tr>\n<td><code>3038</code></td>\n<td>Nenhum tipo de pagamento habilitado</td>\n</tr>\n<tr>\n<td><code>3039</code></td>\n<td>Destino inválido</td>\n</tr>\n<tr>\n<td><code>3040</code></td>\n<td>Data de vencimento inválida</td>\n</tr>\n<tr>\n<td><code>3041</code></td>\n<td>Data de vencimento no passado</td>\n</tr>\n<tr>\n<td><code>3047</code></td>\n<td>Configuração de taxas da campanha não encontrada</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","partner","balance-requests"],"host":["api","hub4pay","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"956bcacd-2957-458a-a04d-74c62e729fd2"},{"name":"fetch balance request","id":"880c2390-ac01-43a2-a06b-0d0637427421","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[{"key":"page","value":"1","type":"text"},{"key":"limit","value":"10","type":"text"}],"url":"https://api.hub4pay.com.br/api/partner/balance-requests","description":"<h2 id=\"headers\">Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Valor</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Content-Type</td>\n<td><code>application/json</code></td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td>Bearer <code>{token}</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"query-params\">Query Params</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Padrão</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>page</code></td>\n<td>Number</td>\n<td>❌</td>\n<td><code>1</code></td>\n<td>Número da página</td>\n</tr>\n<tr>\n<td><code>limit</code></td>\n<td>Number</td>\n<td>❌</td>\n<td><code>10</code></td>\n<td>Itens por página</td>\n</tr>\n<tr>\n<td><code>query</code></td>\n<td>String</td>\n<td>❌</td>\n<td>—</td>\n<td>Buscar por código</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>Enum</td>\n<td>❌</td>\n<td>—</td>\n<td>Filtrar por status</td>\n</tr>\n<tr>\n<td><code>companyId</code></td>\n<td>UUID</td>\n<td>❌</td>\n<td>—</td>\n<td>Filtrar por empresa</td>\n</tr>\n<tr>\n<td><code>campaignId</code></td>\n<td>UUID</td>\n<td>❌</td>\n<td>—</td>\n<td>Filtrar por campanha</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"status-disponíveis\">Status disponíveis</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>GENERATING_INVOICE</code></td>\n<td>Gerando invoice</td>\n</tr>\n<tr>\n<td><code>WAITING_PAYMENT</code></td>\n<td>Aguardando pagamento</td>\n</tr>\n<tr>\n<td><code>BALANCE_RELEASE</code></td>\n<td>Liberação de saldo</td>\n</tr>\n<tr>\n<td><code>COMPLETED</code></td>\n<td>Concluído</td>\n</tr>\n<tr>\n<td><code>REJECTED</code></td>\n<td>Rejeitado</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"exemplos-de-request\">Exemplos de request</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code># Listar todas\nGET /api/partner/balance-requests\n# Com paginação\nGET /api/partner/balance-requests?page=1&amp;limit=10\n# Com filtros\nGET /api/partner/balance-requests?status=WAITING_PAYMENT&amp;companyId=123e4567-e89b-12d3-a456-426614174000\n# Buscar por código\nGET /api/partner/balance-requests?query=COD-2026-0001\n# Filtrar por campanha\nGET /api/partner/balance-requests?campaignId=550e8400-e29b-41d4-a716-446655440000\n\n</code></pre><hr />\n<h2 id=\"response-de-sucesso-200\">Response de sucesso <code>200</code></h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": [\n    {\n      \"id\": \"550e8400-e29b-41d4-a716-446655440000\",\n      \"code\": \"COD-2026-0001\",\n      \"value\": 100000,\n      \"totalValue\": 105000,\n      \"status\": \"WAITING_PAYMENT\",\n      \"destination\": \"linkpremiocard\",\n      \"createdAt\": \"2026-02-27T10:30:00.000Z\",\n      \"balanceReleaseDate\": \"2026-03-04T10:30:00.000Z\",\n      \"campaign\": {\n        \"name\": \"Campanha Prize 2026\"\n      }\n    },\n    {\n      \"id\": \"660e8400-e29b-41d4-a716-446655440001\",\n      \"code\": \"COD-2026-0002\",\n      \"value\": 50000,\n      \"totalValue\": 51500,\n      \"status\": \"COMPLETED\",\n      \"destination\": \"pix\",\n      \"createdAt\": \"2026-02-20T14:00:00.000Z\",\n      \"balanceReleaseDate\": \"2026-02-25T14:00:00.000Z\",\n      \"campaign\": {\n        \"name\": \"Campanha PIX Bonus\"\n      }\n    }\n  ],\n  \"totalItems\": 2,\n  \"totalPages\": 1\n}\n\n</code></pre>\n<hr />\n<h2 id=\"descrição-dos-campos-da-resposta\">Descrição dos campos da resposta</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>data</code></td>\n<td>Array</td>\n<td>Lista de solicitações</td>\n</tr>\n<tr>\n<td><code>data[].id</code></td>\n<td>UUID</td>\n<td>ID da solicitação</td>\n</tr>\n<tr>\n<td><code>data[].code</code></td>\n<td>String</td>\n<td>Código da solicitação</td>\n</tr>\n<tr>\n<td><code>data[].value</code></td>\n<td>Number</td>\n<td>Valor solicitado em centavos</td>\n</tr>\n<tr>\n<td><code>data[].totalValue</code></td>\n<td>Number</td>\n<td>Valor total com taxas em centavos</td>\n</tr>\n<tr>\n<td><code>data[].status</code></td>\n<td>Enum</td>\n<td>Status da solicitação</td>\n</tr>\n<tr>\n<td><code>data[].destination</code></td>\n<td>String</td>\n<td>Destino (<code>linkpremiocard</code> ou <code>pix</code>)</td>\n</tr>\n<tr>\n<td><code>data[].createdAt</code></td>\n<td>DateTime</td>\n<td>Data de criação</td>\n</tr>\n<tr>\n<td><code>data[].balanceReleaseDate</code></td>\n<td>DateTime</td>\n<td>Data de liberação do saldo</td>\n</tr>\n<tr>\n<td><code>data[].campaign</code></td>\n<td>Object</td>\n<td>Dados da campanha</td>\n</tr>\n<tr>\n<td><code>data[].campaign.name</code></td>\n<td>String</td>\n<td>Nome da campanha</td>\n</tr>\n<tr>\n<td><code>totalItems</code></td>\n<td>Number</td>\n<td>Total de itens</td>\n</tr>\n<tr>\n<td><code>totalPages</code></td>\n<td>Number</td>\n<td>Total de páginas</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"conversão-de-valores\">Conversão de valores</h2>\n<blockquote>\n</blockquote>\n<p>Os valores são retornados em centavos. Para converter:</p>\n<ul>\n<li><code>100000</code> = R$ 1.000,00</li>\n</ul>\n<hr />\n<h2 id=\"códigos-de-erro\">Códigos de erro</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>401</code></td>\n<td>Não autenticado</td>\n</tr>\n<tr>\n<td><code>403</code></td>\n<td>Acesso negado</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","partner","balance-requests"],"host":["api","hub4pay","com","br"],"query":[],"variable":[]}},"response":[{"id":"ca43f632-194c-4d65-b6bb-c2f89af4dccd","name":"fetch-balance-request","originalRequest":{"method":"GET","header":[{"key":"page","value":"1","type":"text"},{"key":"limit","value":"10","type":"text"},{"key":"status","value":"","type":"text","disabled":true},{"key":"companyId","value":"","type":"text","disabled":true},{"key":"type","value":"","type":"text","disabled":true},{"key":"startDate","value":"","type":"text","disabled":true},{"key":"endDate","value":"","type":"text","disabled":true}],"url":"http://localhost:3335/api/partner/balance-requests"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-RateLimit-Limit","value":"50"},{"key":"X-RateLimit-Remaining","value":"49"},{"key":"X-RateLimit-Reset","value":"1"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"3205"},{"key":"ETag","value":"W/\"c85-Iphwt1ScPMR+CGYFMbPFPPP6MVw\""},{"key":"Date","value":"Thu, 26 Feb 2026 13:18:49 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": \"0a4bcfea-c91f-4505-b675-3ec993089c79\",\n            \"code\": \"20260225203846331PS\",\n            \"value\": 1000,\n            \"balanceReleaseDate\": null,\n            \"createdAt\": \"2026-02-25T20:38:46.903Z\",\n            \"status\": \"GENERATING_INVOICE\",\n            \"totalValue\": 1010,\n            \"destination\": \"linkpremiocard\",\n            \"invoices\": [],\n            \"company\": {\n                \"name\": \"Empresa Teste LTDA\",\n                \"fantasyName\": \"Empresa Teste\",\n                \"document\": \"62540805000185\"\n            },\n            \"campaign\": {\n                \"name\": \"Campanha Atualizada\"\n            }\n        },\n        {\n            \"id\": \"240080d0-2bb7-4a4f-9f3f-8b4f341d92a8\",\n            \"code\": \"20260225201615869BQ\",\n            \"value\": 1000,\n            \"balanceReleaseDate\": null,\n            \"createdAt\": \"2026-02-25T20:16:15.870Z\",\n            \"status\": \"GENERATING_INVOICE\",\n            \"totalValue\": 1010,\n            \"destination\": \"linkpremiocard\",\n            \"invoices\": [],\n            \"company\": {\n                \"name\": \"Empresa Teste LTDA\",\n                \"fantasyName\": \"Empresa Teste\",\n                \"document\": \"62540805000185\"\n            },\n            \"campaign\": {\n                \"name\": \"Campanha Atualizada\"\n            }\n        },\n        {\n            \"id\": \"5e63f5bb-0b84-48d8-90e1-bdce4363a620\",\n            \"code\": \"20250714195141697IO\",\n            \"value\": 1200,\n            \"balanceReleaseDate\": null,\n            \"createdAt\": \"2025-07-14T19:51:41.698Z\",\n            \"status\": \"BALANCE_RELEASE\",\n            \"totalValue\": 0,\n            \"destination\": \"linkpremiocard\",\n            \"invoices\": [\n                {\n                    \"id\": \"cb6fa7a6-7a7d-41e3-98bd-802c9daa8176\",\n                    \"externalInvoiceId\": null,\n                    \"flowStatus\": \"WAITING_CALCULATE_TAXES\",\n                    \"status\": \"CREATED\",\n                    \"value\": 1200\n                },\n                {\n                    \"id\": \"db902c55-4529-4e35-8518-b63edc370353\",\n                    \"externalInvoiceId\": null,\n                    \"flowStatus\": \"WAITING_CALCULATE_TAXES\",\n                    \"status\": \"CREATED\",\n                    \"value\": 100\n                }\n            ],\n            \"company\": {\n                \"name\": \"RC Trade\",\n                \"fantasyName\": null,\n                \"document\": \"06305761000138\"\n            },\n            \"campaign\": null\n        },\n        {\n            \"id\": \"727cf6f8-4e6e-4d83-b5e4-8a1b4ecb75ec\",\n            \"code\": \"20250714194730323WL\",\n            \"value\": 100,\n            \"balanceReleaseDate\": null,\n            \"createdAt\": \"2025-07-14T19:47:30.324Z\",\n            \"status\": \"WAITING_PAYMENT\",\n            \"totalValue\": 0,\n            \"destination\": \"linkpremiocard\",\n            \"invoices\": [],\n            \"company\": {\n                \"name\": \"RC Trade\",\n                \"fantasyName\": null,\n                \"document\": \"06305761000138\"\n            },\n            \"campaign\": null\n        },\n        {\n            \"id\": \"50cc4c5f-3256-4ffa-b4d3-75299201b03d\",\n            \"code\": \"20250713171957667CF\",\n            \"value\": 50000,\n            \"balanceReleaseDate\": null,\n            \"createdAt\": \"2025-07-13T17:19:57.667Z\",\n            \"status\": \"BALANCE_RELEASE\",\n            \"totalValue\": 0,\n            \"destination\": \"linkpremiocard\",\n            \"invoices\": [\n                {\n                    \"id\": \"61ee8420-9b01-472d-a302-1e71e76613bb\",\n                    \"externalInvoiceId\": null,\n                    \"flowStatus\": \"WAITING_CALCULATE_TAXES\",\n                    \"status\": \"CREATED\",\n                    \"value\": 50000\n                }\n            ],\n            \"company\": {\n                \"name\": \"RC Trade\",\n                \"fantasyName\": null,\n                \"document\": \"06305761000138\"\n            },\n            \"campaign\": null\n        },\n        {\n            \"id\": \"1bb7a840-9051-4c34-b667-9a125ee09424\",\n            \"code\": \"20250713171355378DW\",\n            \"value\": 1000000,\n            \"balanceReleaseDate\": \"2025-07-13T17:19:27.869Z\",\n            \"createdAt\": \"2025-07-13T17:13:55.379Z\",\n            \"status\": \"COMPLETED\",\n            \"totalValue\": 0,\n            \"destination\": \"linkpremiocard\",\n            \"invoices\": [\n                {\n                    \"id\": \"de8687ca-dd13-43f5-ad1c-c080fe9faa81\",\n                    \"externalInvoiceId\": null,\n                    \"flowStatus\": \"WAITING_CALCULATE_TAXES\",\n                    \"status\": \"CREATED\",\n                    \"value\": 1000000\n                }\n            ],\n            \"company\": {\n                \"name\": \"RC Trade\",\n                \"fantasyName\": null,\n                \"document\": \"06305761000138\"\n            },\n            \"campaign\": null\n        },\n        {\n            \"id\": \"fde12a4c-b377-4677-81d3-4dd17570c0c9\",\n            \"code\": \"20250703154043071AJ\",\n            \"value\": 1000,\n            \"balanceReleaseDate\": null,\n            \"createdAt\": \"2025-07-03T15:40:43.072Z\",\n            \"status\": \"BALANCE_RELEASE\",\n            \"totalValue\": 0,\n            \"destination\": \"linkpremiocard\",\n            \"invoices\": [\n                {\n                    \"id\": \"38af5508-1c5f-4e56-b477-bcb6eabf4ee4\",\n                    \"externalInvoiceId\": null,\n                    \"flowStatus\": \"WAITING_CALCULATE_TAXES\",\n                    \"status\": \"CREATED\",\n                    \"value\": 1000\n                }\n            ],\n            \"company\": {\n                \"name\": \"RC Trade\",\n                \"fantasyName\": null,\n                \"document\": \"06305761000138\"\n            },\n            \"campaign\": null\n        }\n    ],\n    \"totalItems\": 7,\n    \"totalPages\": 1\n}"}],"_postman_id":"880c2390-ac01-43a2-a06b-0d0637427421"},{"name":"get balance request by code","id":"c8e8056b-5935-46a7-bebf-8817e1af977f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api.hub4pay.com.br/api/partner/balance-requests/20260225201615869BQ","description":"<h2 id=\"headers\">Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Valor</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Content-Type</td>\n<td><code>application/json</code></td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td>Bearer <code>{token}</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"parâmetros-de-path\">Parâmetros de path</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>code</code></td>\n<td>String</td>\n<td>✅</td>\n<td>Código da solicitação de saldo</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"exemplo-de-request\">Exemplo de request</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /api/partner/balance-requests/COD-2026-0001\n\n</code></pre><hr />\n<h2 id=\"response-de-sucesso-200\">Response de sucesso <code>200</code></h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"550e8400-e29b-41d4-a716-446655440000\",\n  \"code\": \"COD-2026-0001\",\n  \"status\": \"WAITING_PAYMENT\",\n  \"value\": 100000,\n  \"totalValue\": 105000,\n  \"details\": \"Observações adicionais\",\n  \"destination\": \"linkpremiocard\",\n  \"responsible\": \"João Silva\",\n  \"campaignFeeType\": \"prepaid\",\n  \"campaignFeePercentage\": 5,\n  \"pixTariffCents\": null,\n  \"spreadsheetUrl\": \"https://exemplo.com/planilha.xlsx\",\n  \"createdAt\": \"2026-02-27T10:30:00.000Z\",\n  \"updatedAt\": \"2026-02-27T10:30:00.000Z\",\n  \"balanceReleaseDate\": \"2026-03-04T10:30:00.000Z\",\n  \"companyId\": \"123e4567-e89b-12d3-a456-426614174000\",\n  \"agencyId\": \"987fcdeb-51a2-3d45-e678-901234567890\",\n  \"campaignId\": \"abc12345-6789-0abc-def1-234567890abc\",\n  \"requester\": {\n    \"id\": \"user-uuid-123\",\n    \"firstName\": \"João\",\n    \"lastName\": \"Silva\"\n  },\n  \"agency\": {\n    \"id\": \"987fcdeb-51a2-3d45-e678-901234567890\",\n    \"name\": \"Agência Exemplo Ltda\"\n  },\n  \"campaign\": {\n    \"name\": \"Campanha Prize 2026\"\n  }\n}\n\n</code></pre>\n<hr />\n<h2 id=\"descrição-dos-campos-da-resposta\">Descrição dos campos da resposta</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>UUID</td>\n<td>ID único da solicitação</td>\n</tr>\n<tr>\n<td><code>code</code></td>\n<td>String</td>\n<td>Código da solicitação</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>Enum</td>\n<td>Status atual da solicitação</td>\n</tr>\n<tr>\n<td><code>value</code></td>\n<td>Number</td>\n<td>Valor solicitado em centavos</td>\n</tr>\n<tr>\n<td><code>totalValue</code></td>\n<td>Number</td>\n<td>Valor total com taxas em centavos</td>\n</tr>\n<tr>\n<td><code>details</code></td>\n<td>String</td>\n<td>Observações adicionais</td>\n</tr>\n<tr>\n<td><code>destination</code></td>\n<td>String</td>\n<td>Destino (<code>linkpremiocard</code> ou <code>pix</code>)</td>\n</tr>\n<tr>\n<td><code>responsible</code></td>\n<td>String</td>\n<td>Nome do responsável</td>\n</tr>\n<tr>\n<td><code>campaignFeeType</code></td>\n<td>String</td>\n<td>Tipo de taxa (<code>prepaid</code>, <code>postpaid</code> ou <code>pix</code>)</td>\n</tr>\n<tr>\n<td><code>campaignFeePercentage</code></td>\n<td>Number</td>\n<td>Percentual da taxa</td>\n</tr>\n<tr>\n<td><code>pixTariffCents</code></td>\n<td>Number</td>\n<td>Tarifa PIX em centavos</td>\n</tr>\n<tr>\n<td><code>spreadsheetUrl</code></td>\n<td>String</td>\n<td>URL da planilha de beneficiários</td>\n</tr>\n<tr>\n<td><code>createdAt</code></td>\n<td>DateTime</td>\n<td>Data de criação</td>\n</tr>\n<tr>\n<td><code>updatedAt</code></td>\n<td>DateTime</td>\n<td>Data de atualização</td>\n</tr>\n<tr>\n<td><code>balanceReleaseDate</code></td>\n<td>DateTime</td>\n<td>Data prevista para liberação do saldo</td>\n</tr>\n<tr>\n<td><code>companyId</code></td>\n<td>UUID</td>\n<td>ID da empresa</td>\n</tr>\n<tr>\n<td><code>agencyId</code></td>\n<td>UUID</td>\n<td>ID da agência</td>\n</tr>\n<tr>\n<td><code>campaignId</code></td>\n<td>UUID</td>\n<td>ID da campanha</td>\n</tr>\n<tr>\n<td><code>requester</code></td>\n<td>Object</td>\n<td>Dados do solicitante</td>\n</tr>\n<tr>\n<td><code>requester.id</code></td>\n<td>UUID</td>\n<td>ID do usuário</td>\n</tr>\n<tr>\n<td><code>requester.firstName</code></td>\n<td>String</td>\n<td>Primeiro nome</td>\n</tr>\n<tr>\n<td><code>requester.lastName</code></td>\n<td>String</td>\n<td>Sobrenome</td>\n</tr>\n<tr>\n<td><code>agency</code></td>\n<td>Object</td>\n<td>Dados da agência</td>\n</tr>\n<tr>\n<td><code>agency.id</code></td>\n<td>UUID</td>\n<td>ID da agência</td>\n</tr>\n<tr>\n<td><code>agency.name</code></td>\n<td>String</td>\n<td>Nome da agência</td>\n</tr>\n<tr>\n<td><code>campaign</code></td>\n<td>Object</td>\n<td>Dados da campanha</td>\n</tr>\n<tr>\n<td><code>campaign.name</code></td>\n<td>String</td>\n<td>Nome da campanha</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"status-disponíveis\">Status disponíveis</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>GENERATING_INVOICE</code></td>\n<td>Gerando invoice</td>\n</tr>\n<tr>\n<td><code>WAITING_PAYMENT</code></td>\n<td>Aguardando pagamento</td>\n</tr>\n<tr>\n<td><code>BALANCE_RELEASE</code></td>\n<td>Liberação de saldo</td>\n</tr>\n<tr>\n<td><code>COMPLETED</code></td>\n<td>Concluído</td>\n</tr>\n<tr>\n<td><code>REJECTED</code></td>\n<td>Rejeitado</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"conversão-de-valores\">Conversão de valores</h2>\n<blockquote>\n</blockquote>\n<p>Os valores são retornados em centavos. Para converter:</p>\n<ul>\n<li><code>100000</code> = R$ 1.000,00</li>\n</ul>\n<hr />\n<h2 id=\"códigos-de-erro\">Códigos de erro</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>401</code></td>\n<td>Não autenticado</td>\n</tr>\n<tr>\n<td><code>403</code></td>\n<td>Acesso negado</td>\n</tr>\n<tr>\n<td><code>404</code></td>\n<td>Solicitação não encontrada</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","partner","balance-requests","20260225201615869BQ"],"host":["api","hub4pay","com","br"],"query":[],"variable":[]}},"response":[{"id":"af8f774c-89f5-423a-9c09-48d0e41d8bfd","name":"get-balance-request","originalRequest":{"method":"GET","header":[],"url":"http://localhost:3335/api/partner/balance-requests/20260225201615869BQ"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-RateLimit-Limit","value":"50"},{"key":"X-RateLimit-Remaining","value":"49"},{"key":"X-RateLimit-Reset","value":"1"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"1054"},{"key":"ETag","value":"W/\"41e-077oIITtWVKos4AjibTcc+8ESmA\""},{"key":"Date","value":"Thu, 26 Feb 2026 13:10:20 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"240080d0-2bb7-4a4f-9f3f-8b4f341d92a8\",\n    \"requesterId\": \"21f351cd-66db-4706-989e-64be37afa308\",\n    \"agencyId\": \"dbf984ae-7c24-4ba2-a1f7-966f40f90cb4\",\n    \"value\": 1000,\n    \"details\": \"Compra de saldo para campanha X\",\n    \"status\": \"GENERATING_INVOICE\",\n    \"updatedAt\": \"2026-02-25T20:16:15.870Z\",\n    \"createdAt\": \"2026-02-25T20:16:15.870Z\",\n    \"code\": \"20260225201615869BQ\",\n    \"reason\": null,\n    \"balanceReleaseDate\": null,\n    \"companyId\": \"1dc1d79c-332f-4f46-8016-5d9f52fbe181\",\n    \"campaignFeePercentage\": 1,\n    \"campaignFeeType\": \"prepaid\",\n    \"pixTariffCents\": null,\n    \"campaignId\": \"b2fb3cd8-e1f4-404c-b105-f7f121bf53aa\",\n    \"responsible\": \"João Silva\",\n    \"totalValue\": 1010,\n    \"destination\": \"linkpremiocard\",\n    \"spreadsheetUrl\": \"https://docs.google.com/spreadsheets/d/abc\",\n    \"agency\": {\n        \"id\": \"dbf984ae-7c24-4ba2-a1f7-966f40f90cb4\",\n        \"name\": \"RC Trade\"\n    },\n    \"company\": {\n        \"id\": \"1dc1d79c-332f-4f46-8016-5d9f52fbe181\",\n        \"name\": \"Empresa Teste LTDA\"\n    },\n    \"requester\": {\n        \"id\": \"21f351cd-66db-4706-989e-64be37afa308\",\n        \"firstName\": \"Ana\",\n        \"lastName\": \"Pereira\"\n    },\n    \"invoices\": [],\n    \"campaign\": {\n        \"id\": \"b2fb3cd8-e1f4-404c-b105-f7f121bf53aa\",\n        \"name\": \"Campanha Atualizada\"\n    }\n}"}],"_postman_id":"c8e8056b-5935-46a7-bebf-8817e1af977f"},{"name":"update balance request status","id":"b6519feb-3da2-41a0-80fa-f90864ac32ea","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n  \"status\": \"WAITING_PAYMENT\",\n  \"reason\": \"Aguardando pagamento do cliente\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.hub4pay.com.br/api/partner/balance-requests/fde12a4c-b377-4677-81d3-4dd17570c0c9/status","description":"<h2 id=\"headers\">Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Valor</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Content-Type</td>\n<td><code>application/json</code></td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td>Bearer <code>{token}</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"parâmetros-de-path\">Parâmetros de path</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>code</code></td>\n<td>String</td>\n<td>✅</td>\n<td>ID (UUID) da solicitação de saldo</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"body-json\">Body (JSON)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"WAITING_PAYMENT\",\n  \"reason\": \"Motivo da alteração (opcional)\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"campos\">Campos</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>status</code></td>\n<td>Enum</td>\n<td>✅</td>\n<td>Novo status da solicitação</td>\n</tr>\n<tr>\n<td><code>reason</code></td>\n<td>String</td>\n<td>⚠️ Condicional</td>\n<td>Motivo da alteração. Obrigatório quando <code>status</code> = <code>REJECTED</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"status-disponíveis\">Status disponíveis</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>GENERATING_INVOICE</code></td>\n<td>Gerando invoice</td>\n</tr>\n<tr>\n<td><code>WAITING_PAYMENT</code></td>\n<td>Aguardando pagamento</td>\n</tr>\n<tr>\n<td><code>BALANCE_RELEASE</code></td>\n<td>Liberação de saldo</td>\n</tr>\n<tr>\n<td><code>REJECTED</code></td>\n<td>Rejeitado</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"exemplo-de-request\">Exemplo de request</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>PATCH /api/partner/balance-requests/{{UUID}}/status\n\n</code></pre><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"WAITING_PAYMENT\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"response-de-sucesso-201\">Response de sucesso <code>201</code></h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"550e8400-e29b-41d4-a716-446655440000\",\n  \"status\": \"WAITING_PAYMENT\",\n  \"updatedAt\": \"2026-02-27T11:00:00.000Z\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"regras-de-validação\">Regras de validação</h2>\n<ol>\n<li><p><strong>Status permitido</strong> — Não é possível alterar para <code>COMPLETED</code> diretamente (somente via liberação de saldo)</p>\n</li>\n<li><p><strong><code>reason</code></strong> <strong>obrigatório</strong> — Quando o status for <code>REJECTED</code>, o campo <code>reason</code> é obrigatório</p>\n</li>\n<li><p><strong>Invoice obrigatória</strong> — Para alterar para <code>BALANCE_RELEASE</code>, a solicitação deve ter pelo menos uma invoice associada</p>\n</li>\n</ol>\n<hr />\n<h2 id=\"códigos-de-erro\">Códigos de erro</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>400</code></td>\n<td>Dados inválidos</td>\n</tr>\n<tr>\n<td><code>401</code></td>\n<td>Não autenticado</td>\n</tr>\n<tr>\n<td><code>403</code></td>\n<td>Acesso negado</td>\n</tr>\n<tr>\n<td><code>404</code></td>\n<td>Solicitação não encontrada</td>\n</tr>\n<tr>\n<td><code>422</code></td>\n<td>Não é possível alterar status (já está completo ou invoice não encontrada)</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","partner","balance-requests","fde12a4c-b377-4677-81d3-4dd17570c0c9","status"],"host":["api","hub4pay","com","br"],"query":[],"variable":[]}},"response":[{"id":"07c72b3f-2d91-432b-bb5a-784ba13c1e45","name":"get-balance-request-by-code Copy","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n  \"status\": \"WAITING_PAYMENT\",\n  \"reason\": \"Aguardando pagamento do cliente\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:3335/api/partner/balance-requests/fde12a4c-b377-4677-81d3-4dd17570c0c9/status"},"status":"Created","code":201,"_postman_previewlanguage":"Text","header":[{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-RateLimit-Limit","value":"50"},{"key":"X-RateLimit-Remaining","value":"49"},{"key":"X-RateLimit-Reset","value":"1"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"115"},{"key":"ETag","value":"W/\"73-gzEh+ScvGuJclVw0UcJnUCcZlJM\""},{"key":"Date","value":"Thu, 26 Feb 2026 14:20:44 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"fde12a4c-b377-4677-81d3-4dd17570c0c9\",\n    \"status\": \"WAITING_PAYMENT\",\n    \"reason\": \"Aguardando pagamento do cliente\"\n}"}],"_postman_id":"b6519feb-3da2-41a0-80fa-f90864ac32ea"},{"name":"release balance request","id":"6d78a056-b49f-48f8-9ab2-9cdbd762ecdc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"url":"https://api.hub4pay.com.br/api/partner/balance-requests/fde12a4c-b377-4677-81d3-4dd17570c0c9/release-balance","description":"<h2 id=\"headers\">Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Valor</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Content-Type</td>\n<td><code>application/json</code></td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td>Bearer <code>{token}</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"parâmetros-de-path\">Parâmetros de path</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>UUID</td>\n<td>✅</td>\n<td>ID da solicitação de saldo</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"exemplo-de-request\">Exemplo de request</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST /api/partner/balance-requests/:UUID/release-balance\n\n</code></pre><blockquote>\n<p>&lt;p &gt;Body: Vazio (não requer body)&lt;/p&gt; </p>\n</blockquote>\n<hr />\n<h2 id=\"response-de-sucesso-201\">Response de sucesso <code>201</code></h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"550e8400-e29b-41d4-a716-446655440000\",\n  \"status\": \"COMPLETED\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"descrição-dos-campos-da-resposta\">Descrição dos campos da resposta</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>UUID</td>\n<td>ID da solicitação</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>Enum</td>\n<td>Status atualizado para <code>COMPLETED</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"códigos-de-erro\">Códigos de erro</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>401</code></td>\n<td>Não autenticado</td>\n</tr>\n<tr>\n<td><code>403</code></td>\n<td>Acesso negado</td>\n</tr>\n<tr>\n<td><code>404</code></td>\n<td>Solicitação não encontrada</td>\n</tr>\n<tr>\n<td><code>422</code></td>\n<td>Status atual não permite liberação (não está em <code>BALANCE_RELEASE</code>)</td>\n</tr>\n<tr>\n<td><code>422</code></td>\n<td>Solicitação já concluída ou rejeitada</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","partner","balance-requests","fde12a4c-b377-4677-81d3-4dd17570c0c9","release-balance"],"host":["api","hub4pay","com","br"],"query":[],"variable":[]}},"response":[{"id":"b2f4fa9a-3f5c-4f76-a408-49d042397ab8","name":"status-error","originalRequest":{"method":"POST","header":[],"url":"http://localhost:3335/api/partner/balance-requests/fde12a4c-b377-4677-81d3-4dd17570c0c9/release-balance"},"status":"Bad Request","code":400,"_postman_previewlanguage":"Text","header":[{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-RateLimit-Limit","value":"50"},{"key":"X-RateLimit-Remaining","value":"49"},{"key":"X-RateLimit-Reset","value":"1"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"196"},{"key":"ETag","value":"W/\"c4-IZR8UCI1K3bbu4AysN2/E4bBB90\""},{"key":"Date","value":"Thu, 26 Feb 2026 14:26:19 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"title\": \"Status incorreto\",\n    \"message\": \"Status da solicitação incorreto. Aguardando BALANCE_RELEASE.\",\n    \"code\": 3023,\n    \"details\": {\n        \"currentStatus\": \"WAITING_PAYMENT\",\n        \"expectedStatus\": \"BALANCE_RELEASE\"\n    }\n}"}],"_postman_id":"6d78a056-b49f-48f8-9ab2-9cdbd762ecdc"},{"name":"get balance request logs by id","id":"ba83bebf-4dc2-4665-aa0e-4d145d1b4f80","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api.hub4pay.com.br/api/partner/balance-requests/fde12a4c-b377-4677-81d3-4dd17570c0c9/logs","description":"<h2 id=\"headers\">Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Valor</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Content-Type</td>\n<td><code>application/json</code></td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td>Bearer <code>{token}</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"parâmetros-de-path\">Parâmetros de path</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>String</td>\n<td>✅</td>\n<td>ID da solicitação de saldo</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"query-params\">Query Params</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Padrão</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>page</code></td>\n<td>Number</td>\n<td>❌</td>\n<td><code>1</code></td>\n<td>Número da página</td>\n</tr>\n<tr>\n<td><code>limit</code></td>\n<td>Number</td>\n<td>❌</td>\n<td><code>10</code></td>\n<td>Itens por página</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"exemplo-de-request\">Exemplo de request</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /api/partner/balance-requests/20260225201615869BQ/logs\n\n</code></pre><hr />\n<h2 id=\"response-de-sucesso-200\">Response de sucesso <code>200</code></h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": [\n    {\n      \"id\": \"log-uuid-001\",\n      \"message\": \"Solicitação de saldo criada pela agência Exemplo Ltda com o valor de R$ 1000.00.\",\n      \"createdAt\": \"2026-02-25T20:16:15.000Z\"\n    },\n    {\n      \"id\": \"log-uuid-002\",\n      \"message\": \"Status alterado para WAITING_PAYMENT.\",\n      \"createdAt\": \"2026-02-25T20:20:00.000Z\"\n    },\n    {\n      \"id\": \"log-uuid-003\",\n      \"message\": \"Status alterado para BALANCE_RELEASE.\",\n      \"createdAt\": \"2026-02-26T10:00:00.000Z\"\n    }\n  ],\n  \"totalItems\": 3,\n  \"totalPages\": 1\n}\n\n</code></pre>\n<hr />\n<h2 id=\"descrição-dos-campos-da-resposta\">Descrição dos campos da resposta</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>data</code></td>\n<td>Array</td>\n<td>Lista de logs</td>\n</tr>\n<tr>\n<td><code>data[].id</code></td>\n<td>UUID</td>\n<td>ID do log</td>\n</tr>\n<tr>\n<td><code>data[].message</code></td>\n<td>String</td>\n<td>Mensagem descritiva da ação</td>\n</tr>\n<tr>\n<td><code>data[].createdAt</code></td>\n<td>DateTime</td>\n<td>Data de criação do log</td>\n</tr>\n<tr>\n<td><code>totalItems</code></td>\n<td>Number</td>\n<td>Total de itens</td>\n</tr>\n<tr>\n<td><code>totalPages</code></td>\n<td>Number</td>\n<td>Total de páginas</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"códigos-de-erro\">Códigos de erro</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>401</code></td>\n<td>Não autenticado</td>\n</tr>\n<tr>\n<td><code>403</code></td>\n<td>Acesso negado</td>\n</tr>\n<tr>\n<td><code>404</code></td>\n<td>Solicitação não encontrada</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","partner","balance-requests","fde12a4c-b377-4677-81d3-4dd17570c0c9","logs"],"host":["api","hub4pay","com","br"],"query":[],"variable":[]}},"response":[{"id":"fae7ad98-55cc-4787-bf30-2eb461aafc31","name":"get-balance-request-by-code Copy","originalRequest":{"method":"GET","header":[],"url":"http://localhost:3335/api/partner/balance-requests/fde12a4c-b377-4677-81d3-4dd17570c0c9/logs"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-RateLimit-Limit","value":"50"},{"key":"X-RateLimit-Remaining","value":"49"},{"key":"X-RateLimit-Reset","value":"1"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"1656"},{"key":"ETag","value":"W/\"678-Tru+SB7w9VdhkIcnvAsKvwWaqd4\""},{"key":"Date","value":"Thu, 26 Feb 2026 13:22:30 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": \"9797bdfc-bd69-46e4-ba8f-73123a6c7004\",\n            \"balanceRequestId\": \"fde12a4c-b377-4677-81d3-4dd17570c0c9\",\n            \"message\": \"O status da solicitação foi alterado para 'BALANCE_RELEASE' pelo usuário Admin (ID: 8f371133-629e-43b3-9395-12e6c27042da).\",\n            \"createdAt\": \"2025-07-14T21:09:15.949Z\"\n        },\n        {\n            \"id\": \"170fa766-b822-464c-a490-15063167d842\",\n            \"balanceRequestId\": \"fde12a4c-b377-4677-81d3-4dd17570c0c9\",\n            \"message\": \"Fatura 436345643563456435732451245467345vgg2435g43j34y4h65h345 atualizada por Admin (admin@example.com)\",\n            \"createdAt\": \"2025-07-14T21:09:06.249Z\"\n        },\n        {\n            \"id\": \"d42de803-0876-499f-a215-a07e60280256\",\n            \"balanceRequestId\": \"fde12a4c-b377-4677-81d3-4dd17570c0c9\",\n            \"message\": \"Fatura 436345643563456435732451245467345vgg2435g43j34y4h65h345 atualizada por Admin (admin@example.com)\",\n            \"createdAt\": \"2025-07-14T21:08:58.121Z\"\n        },\n        {\n            \"id\": \"8e93df8f-6a29-4be1-88a4-25aa884cc9c4\",\n            \"balanceRequestId\": \"fde12a4c-b377-4677-81d3-4dd17570c0c9\",\n            \"message\": \"Fatura 436345643563456435732451245467345vgg2435g43j34y4h65h345 atualizada por Admin (admin@example.com)\",\n            \"createdAt\": \"2025-07-14T21:08:50.867Z\"\n        },\n        {\n            \"id\": \"2b3efe45-191e-49c6-813c-e7fb8909dee9\",\n            \"balanceRequestId\": \"fde12a4c-b377-4677-81d3-4dd17570c0c9\",\n            \"message\": \"Nota fiscal adicionada: 436345643563456435732451245467345vgg2435g43j34y4h65h345 por Admin (ID: 8f371133-629e-43b3-9395-12e6c27042da). Valor: R$10.00, Taxa: 20%, Total: R$12.00\",\n            \"createdAt\": \"2025-07-14T21:08:33.338Z\"\n        },\n        {\n            \"id\": \"08ef38ca-f985-4348-8e3e-abaa7df5a990\",\n            \"balanceRequestId\": \"fde12a4c-b377-4677-81d3-4dd17570c0c9\",\n            \"message\": \"Solicitação de saldo criada pelo usuário Admin com o valor de R$ 10.\",\n            \"createdAt\": \"2025-07-03T15:40:43.072Z\"\n        }\n    ],\n    \"totalItems\": 6,\n    \"totalPages\": 1\n}"}],"_postman_id":"ba83bebf-4dc2-4665-aa0e-4d145d1b4f80"},{"name":"create balance request pix qr code","id":"d16bd53f-33a4-4aba-818b-abaf701ffb3d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"companyId\": \"1dc1d79c-332f-4f46-8016-5d9f52fbe181\",\n  \"campaignId\": \"b2fb3cd8-e1f4-404c-b105-f7f121bf53aa\",\n  \"responsible\": \"João Silva\",\n  \"value\": 1000,\n  \"paymentDueDate\": \"2026-03-30\",\n  \"details\": \"Compra de saldo para campanha X\",\n  \"destination\": \"linkpremiocard\",\n  \"spreadsheetUrl\": \"https://docs.google.com/spreadsheets/d/abc\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.hub4pay.com.br/api/partner/balance-requests/20260225201615869BQ/pix","description":"<h2 id=\"headers\">Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Valor</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Content-Type</td>\n<td><code>application/json</code></td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td>Bearer <code>{token}</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"parâmetros-de-path\">Parâmetros de path</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>code</code></td>\n<td>String</td>\n<td>✅</td>\n<td>Código da solicitação de saldo</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"exemplo-de-request\">Exemplo de request</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST /api/partner/balance-requests/20260225201615869BQ/pix\n\n</code></pre><blockquote>\n<p>&lt;p &gt;Body: Vazio (não requer body)&lt;/p&gt; </p>\n</blockquote>\n<hr />\n<h2 id=\"response-de-sucesso-201\">Response de sucesso <code>201</code></h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"transactionId\": \"tx-uuid-001\",\n  \"emv\": \"00020101021229330014br.gov.bcb.pix0133a8f9d8-7b6c-4f5e-9a3d-2e1f0a9b8c9d5204000053039865404100.005802BR5909LinkPremio6010São Paulo62070503*__6304D3E7\",\n  \"expiresAt\": \"2026-02-28T10:30:00.000Z\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"descrição-dos-campos-da-resposta\">Descrição dos campos da resposta</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>transactionId</code></td>\n<td>String</td>\n<td>ID da transação no provedor PIX</td>\n</tr>\n<tr>\n<td><code>emv</code></td>\n<td>String</td>\n<td>Código EMV do PIX (QR Code)</td>\n</tr>\n<tr>\n<td><code>expiresAt</code></td>\n<td>DateTime</td>\n<td>Data de expiração do QR Code</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"status-permitidos-para-geração\">Status permitidos para geração</h2>\n<p>A solicitação deve estar em um dos seguintes status:</p>\n<ul>\n<li><p><code>GENERATING_INVOICE</code></p>\n</li>\n<li><p><code>WAITING_PAYMENT</code></p>\n</li>\n</ul>\n<hr />\n<h2 id=\"regras-de-validação\">Regras de validação</h2>\n<ol>\n<li><p>A solicitação deve ter <code>destination</code> igual a <code>pix</code></p>\n</li>\n<li><p>A solicitação deve ter uma empresa vinculada (<code>companyId</code>)</p>\n</li>\n<li><p>O QR Code expira em <strong>5 minutos</strong></p>\n</li>\n</ol>\n<hr />\n<h2 id=\"observações\">Observações</h2>\n<blockquote>\n</blockquote>\n<ul>\n<li><p>Se já existir um QR Code ativo, ele será substituído (<code>superseded</code>)</p>\n</li>\n<li><p>O valor do PIX é baseado no <code>totalValue</code> da solicitação, ou no <code>value</code> se <code>totalValue</code> for zero ou nulo</p>\n</li>\n</ul>\n<hr />\n<h2 id=\"códigos-de-erro\">Códigos de erro</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>401</code></td>\n<td>Não autenticado</td>\n</tr>\n<tr>\n<td><code>403</code></td>\n<td>Acesso negado</td>\n</tr>\n<tr>\n<td><code>404</code></td>\n<td>Solicitação não encontrada</td>\n</tr>\n<tr>\n<td><code>422</code></td>\n<td>Status atual não permite geração do QR Code</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","partner","balance-requests","20260225201615869BQ","pix"],"host":["api","hub4pay","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"d16bd53f-33a4-4aba-818b-abaf701ffb3d"},{"name":"get balance request pix qr code","id":"e336dce6-c074-4212-a277-5dce294b4065","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"https://api.hub4pay.com.br/api/partner/balance-requests/20260225201615869BQ/pix","description":"<h2 id=\"headers\">Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Valor</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Content-Type</td>\n<td><code>application/json</code></td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td>Bearer <code>{token}</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"parâmetros-de-path\">Parâmetros de path</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>code</code></td>\n<td>String</td>\n<td>✅</td>\n<td>Código da solicitação de saldo</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"exemplo-de-request\">Exemplo de request</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /api/partner/balance-requests/20260225201615869BQ/pix\n\n</code></pre><hr />\n<h2 id=\"response-de-sucesso-200\">Response de sucesso <code>200</code></h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"transactionId\": \"tx-uuid-001\",\n  \"emv\": \"00020101021229330014br.gov.bcb.pix0133a8f9d8-7b6c-4f5e-9a3d-2e1f0a9b8c9d5204000053039865404100.005802BR5909LinkPremio6010São Paulo62070503*\\\\6304D3E7\",\n  \"expiresAt\": \"2026-02-28T10:30:00.000Z\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"descrição-dos-campos-da-resposta\">Descrição dos campos da resposta</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>transactionId</code></td>\n<td>String</td>\n<td>ID da transação no provedor PIX</td>\n</tr>\n<tr>\n<td><code>emv</code></td>\n<td>String</td>\n<td>Código EMV do PIX (QR Code)</td>\n</tr>\n<tr>\n<td><code>expiresAt</code></td>\n<td>DateTime</td>\n<td>Data de expiração do QR Code</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"observações\">Observações</h2>\n<blockquote>\n</blockquote>\n<ul>\n<li><p>A solicitação deve ter <code>destination</code> igual a <code>pix</code></p>\n</li>\n<li><p>O QR Code possui um tempo de expiração</p>\n</li>\n<li><p>É necessário gerar o QR Code primeiro via <code>POST</code> antes de consultá-lo</p>\n</li>\n</ul>\n<hr />\n<h2 id=\"códigos-de-erro\">Códigos de erro</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>401</code></td>\n<td>Não autenticado</td>\n</tr>\n<tr>\n<td><code>403</code></td>\n<td>Acesso negado</td>\n</tr>\n<tr>\n<td><code>404</code></td>\n<td>Solicitação não encontrada ou QR Code não gerado</td>\n</tr>\n<tr>\n<td><code>410</code></td>\n<td>QR Code expirado</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","partner","balance-requests","20260225201615869BQ","pix"],"host":["api","hub4pay","com","br"],"query":[],"variable":[]}},"response":[{"id":"0c59afdc-e374-4a85-a3c6-4a8edcdf522f","name":"create-balance-request-pix-qr-code Copy","originalRequest":{"method":"GET","header":[],"url":"http://localhost:3335/api/partner/balance-requests/20260225201615869BQ/pix"},"status":"Not Found","code":404,"_postman_previewlanguage":"Text","header":[{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-RateLimit-Limit","value":"50"},{"key":"X-RateLimit-Remaining","value":"49"},{"key":"X-RateLimit-Reset","value":"1"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"84"},{"key":"ETag","value":"W/\"54-4PWW5HBJO0b+mgbD/NuTa0zaDn4\""},{"key":"Date","value":"Thu, 26 Feb 2026 13:36:53 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"title\": \"QR Code não encontrado\",\n    \"message\": \"QR Code não encontrado.\",\n    \"code\": 3026\n}"}],"_postman_id":"e336dce6-c074-4212-a277-5dce294b4065"}],"id":"3443ab90-86a7-4783-9011-f1482123c037","_postman_id":"3443ab90-86a7-4783-9011-f1482123c037","description":"","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}}},{"name":"Webhook","item":[{"name":"create webhook","id":"a6b502cc-0e6f-4535-97aa-c5f1fd95c799","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"companyId\": \"d82990aa-7a75-4f7e-b4dd-4bf0d274369d\",\n\n    \"url\": \"https://webhook.site/0a80f924-d18d-46ae-a93c-f511076f02d8\",\n    \"events\": [\n        \"balance_request.paid\",\n        \"balance_request.failed\",\n        \"balance_request.refunded\",\n        \"balance_request.cancelled\"\n    ],\n    \"headers\": {},\n    \"description\": \"Webhook para notificações de balance request\",\n    \"status\": \"Active\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.hub4pay.com.br/api/partner/webhooks","description":"<h2 id=\"headers\">Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Chave</th>\n<th>Valor</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>Bearer <code>{token_jwt}</code></td>\n</tr>\n<tr>\n<td>Content-Type</td>\n<td><code>application/json</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"body-json\">Body (JSON)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"companyId\": \"uuid-da-company\",\n  \"url\": \"https://seudominio.com/webhook\",\n  \"events\": [\n    \"balance_request.paid\",\n    \"balance_request.failed\",\n    \"balance_request.refunded\",\n    \"balance_request.cancelled\"\n  ],\n  \"headers\": {\n    \"Authorization\": \"Bearer token\",\n    \"X-API-Key\": \"sua-chave\"\n  },\n  \"description\": \"Webhook para notificações de balance request\",\n  \"status\": \"Active\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"campos\">Campos</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>companyId</code></td>\n<td>UUID</td>\n<td>✅</td>\n<td>ID da empresa</td>\n</tr>\n<tr>\n<td><code>url</code></td>\n<td>String (URL)</td>\n<td>✅</td>\n<td>URL de callback</td>\n</tr>\n<tr>\n<td><code>events</code></td>\n<td>Array</td>\n<td>✅</td>\n<td>Lista de eventos (mínimo 1)</td>\n</tr>\n<tr>\n<td><code>headers</code></td>\n<td>Object</td>\n<td>❌</td>\n<td>Headers customizados para o request</td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td>String</td>\n<td>❌</td>\n<td>Descrição do webhook</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>Enum</td>\n<td>❌</td>\n<td><code>Active</code> ou <code>Disabled</code> (padrão: <code>Active</code>)</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"eventos-disponíveis\">Eventos disponíveis</h2>\n<ul>\n<li><p><code>balance_request.paid</code></p>\n</li>\n<li><p><code>balance_request.failed</code></p>\n</li>\n<li><p><code>balance_request.refunded</code></p>\n</li>\n<li><p><code>balance_request.cancelled</code></p>\n</li>\n</ul>\n<hr />\n<h2 id=\"response-de-sucesso-201\">Response de sucesso <code>201</code></h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"uuid-do-webhook\",\n  \"url\": \"https://seudominio.com/webhook\",\n  \"events\": [\"balance_request.paid\"],\n  \"headers\": {},\n  \"description\": \"Webhook para notificações\",\n  \"status\": \"Active\",\n  \"companyId\": \"uuid-da-company\",\n  \"createdAt\": \"2026-03-03T10:00:00Z\",\n  \"updatedAt\": \"2026-03-03T10:00:00Z\"\n}\n` ` `\n\n</code></pre>\n<p>Webhook Balance Request — Payloads</p>\n<p>Documentação dos payloads enviados para cada evento de <code>balance_request</code>.</p>\n<hr />\n<h2 id=\"evento-balance_requestpaid\">Evento: <code>balance_request.paid</code></h2>\n<p>Disparado quando o pagamento da requisição de saldo é confirmado e o saldo é liberado.</p>\n<h3 id=\"payload\">Payload</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"event\": \"balance_request.paid\",\n  \"timestamp\": \"2026-03-18T10:30:00Z\",\n  \"data\": {\n    \"id\": \"uuid-da-balance-request\",\n    \"code\": \"BR-20260318-ABC123\",\n    \"value\": 500000,\n    \"totalValue\": 505250,\n    \"status\": \"COMPLETED\",\n    \"reason\": null,\n    \"destination\": \"linkpremiocard\",\n    \"createdAt\": \"2026-03-18T09:00:00Z\",\n    \"updatedAt\": \"2026-03-18T10:30:00Z\",\n    \"balanceReleaseDate\": \"2026-03-18T10:30:00Z\",\n    \"campaignFeePercentage\": 5,\n    \"campaignFeeType\": \"prepaid\",\n    \"pixTariffCents\": null,\n    \"requester\": {\n      \"id\": \"uuid-do-usuario\",\n      \"firstName\": \"João\",\n      \"lastName\": \"Silva\",\n      \"email\": \"joao.silva@empresa.com\"\n    },\n    \"agency\": {\n      \"id\": \"uuid-da-agencia\",\n      \"name\": \"Agência Central\"\n    },\n    \"company\": {\n      \"id\": \"uuid-da-company\",\n      \"name\": \"Empresa XYZ\",\n      \"document\": \"12345678000190\"\n    },\n    \"campaign\": {\n      \"id\": \"uuid-da-campanha\",\n      \"name\": \"Campanha Natal 2026\",\n      \"type\": \"STANDARD\"\n    }\n  }\n}\n\n</code></pre>\n<h3 id=\"campos-1\">Campos</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>event</code></td>\n<td>String</td>\n<td>Identificador do evento: <code>balance_request.paid</code></td>\n</tr>\n<tr>\n<td><code>timestamp</code></td>\n<td>DateTime</td>\n<td>Data/hora em que o webhook foi disparado (ISO 8601)</td>\n</tr>\n<tr>\n<td><code>data</code></td>\n<td>Object</td>\n<td>Dados da requisição de saldo</td>\n</tr>\n<tr>\n<td><code>data.id</code></td>\n<td>UUID</td>\n<td>Identificador único da requisição de saldo</td>\n</tr>\n<tr>\n<td><code>data.code</code></td>\n<td>String</td>\n<td>Código único da requisição (formato: <code>BR-YYYYMMDD-XXXXXX</code>)</td>\n</tr>\n<tr>\n<td><code>data.value</code></td>\n<td>Integer</td>\n<td>Valor líquido da requisição em centavos</td>\n</tr>\n<tr>\n<td><code>data.totalValue</code></td>\n<td>Integer</td>\n<td>Valor total incluindo tarifas em centavos</td>\n</tr>\n<tr>\n<td><code>data.status</code></td>\n<td>Enum</td>\n<td>Status final: <code>COMPLETED</code> (pagamento confirmado)</td>\n</tr>\n<tr>\n<td><code>data.reason</code></td>\n<td>String</td>\n<td>null</td>\n</tr>\n<tr>\n<td><code>data.destination</code></td>\n<td>Enum</td>\n<td>Destino do saldo: <code>linkpremiocard</code> ou <code>pix</code></td>\n</tr>\n<tr>\n<td><code>data.createdAt</code></td>\n<td>DateTime</td>\n<td>Data/hora de criação da requisição</td>\n</tr>\n<tr>\n<td><code>data.updatedAt</code></td>\n<td>DateTime</td>\n<td>Data/hora da última atualização</td>\n</tr>\n<tr>\n<td><code>data.balanceReleaseDate</code></td>\n<td>DateTime</td>\n<td>null</td>\n</tr>\n<tr>\n<td><code>data.campaignFeePercentage</code></td>\n<td>Integer</td>\n<td>Percentual da taxa de campanha (0–100)</td>\n</tr>\n<tr>\n<td><code>data.campaignFeeType</code></td>\n<td>String</td>\n<td>Tipo de taxa: <code>prepaid</code> ou <code>postpaid</code></td>\n</tr>\n<tr>\n<td><code>data.pixTariffCents</code></td>\n<td>Integer</td>\n<td>null</td>\n</tr>\n<tr>\n<td><code>data.requester</code></td>\n<td>Object</td>\n<td>Dados do usuário que fez a requisição</td>\n</tr>\n<tr>\n<td><code>data.requester.id</code></td>\n<td>UUID</td>\n<td>Identificador do usuário</td>\n</tr>\n<tr>\n<td><code>data.requester.firstName</code></td>\n<td>String</td>\n<td>Primeiro nome do usuário</td>\n</tr>\n<tr>\n<td><code>data.requester.lastName</code></td>\n<td>String</td>\n<td>Sobrenome do usuário</td>\n</tr>\n<tr>\n<td><code>data.requester.email</code></td>\n<td>String</td>\n<td>Email do usuário</td>\n</tr>\n<tr>\n<td><code>data.agency</code></td>\n<td>Object</td>\n<td>Dados da agência responsável</td>\n</tr>\n<tr>\n<td><code>data.agency.id</code></td>\n<td>UUID</td>\n<td>Identificador da agência</td>\n</tr>\n<tr>\n<td><code>data.agency.name</code></td>\n<td>String</td>\n<td>Nome da agência</td>\n</tr>\n<tr>\n<td><code>data.company</code></td>\n<td>Object</td>\n<td>Dados da empresa</td>\n</tr>\n<tr>\n<td><code>data.company.id</code></td>\n<td>UUID</td>\n<td>Identificador da empresa</td>\n</tr>\n<tr>\n<td><code>data.company.name</code></td>\n<td>String</td>\n<td>Nome fantasia da empresa</td>\n</tr>\n<tr>\n<td><code>data.company.document</code></td>\n<td>String</td>\n<td>CNPJ da empresa</td>\n</tr>\n<tr>\n<td><code>data.campaign</code></td>\n<td>Object</td>\n<td>null</td>\n</tr>\n<tr>\n<td><code>data.campaign.id</code></td>\n<td>UUID</td>\n<td>Identificador da campanha</td>\n</tr>\n<tr>\n<td><code>data.campaign.name</code></td>\n<td>String</td>\n<td>Nome da campanha</td>\n</tr>\n<tr>\n<td><code>data.campaign.type</code></td>\n<td>Enum</td>\n<td>Tipo da campanha: <code>STANDARD</code>, <code>BENEFIT</code>, etc.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"evento-balance_requestfailed\">Evento: <code>balance_request.failed</code></h2>\n<p>Disparado quando o pagamento da requisição de saldo falha.</p>\n<h3 id=\"payload-1\">Payload</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"event\": \"balance_request.failed\",\n  \"timestamp\": \"2026-03-18T10:30:00Z\",\n  \"data\": {\n    \"id\": \"uuid-da-balance-request\",\n    \"code\": \"BR-20260318-ABC123\",\n    \"value\": 500000,\n    \"totalValue\": 505250,\n    \"status\": \"REJECTED\",\n    \"reason\": \"Pagamento não identificado após expiração do prazo\",\n    \"destination\": \"linkpremiocard\",\n    \"createdAt\": \"2026-03-18T09:00:00Z\",\n    \"updatedAt\": \"2026-03-18T10:30:00Z\",\n    \"balanceReleaseDate\": null,\n    \"campaignFeePercentage\": 5,\n    \"campaignFeeType\": \"prepaid\",\n    \"pixTariffCents\": null,\n    \"requester\": {\n      \"id\": \"uuid-do-usuario\",\n      \"firstName\": \"João\",\n      \"lastName\": \"Silva\",\n      \"email\": \"joao.silva@empresa.com\"\n    },\n    \"agency\": {\n      \"id\": \"uuid-da-agencia\",\n      \"name\": \"Agência Central\"\n    },\n    \"company\": {\n      \"id\": \"uuid-da-company\",\n      \"name\": \"Empresa XYZ\",\n      \"document\": \"12345678000190\"\n    },\n    \"campaign\": {\n      \"id\": \"uuid-da-campanha\",\n      \"name\": \"Campanha Natal 2026\",\n      \"type\": \"STANDARD\"\n    }\n  }\n}\n\n</code></pre>\n<h3 id=\"campos-2\">Campos</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>event</code></td>\n<td>String</td>\n<td>Identificador do evento: <code>balance_request.failed</code></td>\n</tr>\n<tr>\n<td><code>timestamp</code></td>\n<td>DateTime</td>\n<td>Data/hora em que o webhook foi disparado (ISO 8601)</td>\n</tr>\n<tr>\n<td><code>data</code></td>\n<td>Object</td>\n<td>Dados da requisição de saldo</td>\n</tr>\n<tr>\n<td><code>data.id</code></td>\n<td>UUID</td>\n<td>Identificador único da requisição de saldo</td>\n</tr>\n<tr>\n<td><code>data.code</code></td>\n<td>String</td>\n<td>Código único da requisição</td>\n</tr>\n<tr>\n<td><code>data.value</code></td>\n<td>Integer</td>\n<td>Valor da requisição em centavos</td>\n</tr>\n<tr>\n<td><code>data.totalValue</code></td>\n<td>Integer</td>\n<td>Valor total em centavos</td>\n</tr>\n<tr>\n<td><code>data.status</code></td>\n<td>Enum</td>\n<td>Status: <code>REJECTED</code> (pagamento falhou)</td>\n</tr>\n<tr>\n<td><code>data.reason</code></td>\n<td>String</td>\n<td>Motivo da falha</td>\n</tr>\n<tr>\n<td><code>data.destination</code></td>\n<td>Enum</td>\n<td>Destino do saldo: <code>linkpremiocard</code> ou <code>pix</code></td>\n</tr>\n<tr>\n<td><code>data.createdAt</code></td>\n<td>DateTime</td>\n<td>Data/hora de criação da requisição</td>\n</tr>\n<tr>\n<td><code>data.updatedAt</code></td>\n<td>DateTime</td>\n<td>Data/hora da última atualização</td>\n</tr>\n<tr>\n<td><code>data.balanceReleaseDate</code></td>\n<td>DateTime</td>\n<td>null</td>\n</tr>\n<tr>\n<td><code>data.campaignFeePercentage</code></td>\n<td>Integer</td>\n<td>Percentual da taxa de campanha</td>\n</tr>\n<tr>\n<td><code>data.campaignFeeType</code></td>\n<td>String</td>\n<td>Tipo de taxa: <code>prepaid</code> ou <code>postpaid</code></td>\n</tr>\n<tr>\n<td><code>data.pixTariffCents</code></td>\n<td>Integer</td>\n<td>null</td>\n</tr>\n<tr>\n<td><code>data.requester</code></td>\n<td>Object</td>\n<td>Dados do usuário que fez a requisição</td>\n</tr>\n<tr>\n<td><code>data.agency</code></td>\n<td>Object</td>\n<td>Dados da agência</td>\n</tr>\n<tr>\n<td><code>data.company</code></td>\n<td>Object</td>\n<td>Dados da empresa</td>\n</tr>\n<tr>\n<td><code>data.campaign</code></td>\n<td>Object</td>\n<td>null</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"possíveis-motivos-de-falha-reason\">Possíveis motivos de falha (<code>reason</code>)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Motivo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Pagamento não identificado após expiração do prazo</code></td>\n<td>PIX/Boleto expirou sem pagamento</td>\n</tr>\n<tr>\n<td><code>Transferência bancária não realizada</code></td>\n<td>Falha na transferência</td>\n</tr>\n<tr>\n<td><code>Boleto fora do prazo de validade</code></td>\n<td>Boleto venceu</td>\n</tr>\n<tr>\n<td><code>Inadimplência detectada</code></td>\n<td>Empresa com pendências</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"evento-balance_requestrefunded\">Evento: <code>balance_request.refunded</code></h2>\n<p>Disparado quando há um estorno de uma requisição de saldo já paga.</p>\n<h3 id=\"payload-2\">Payload</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"event\": \"balance_request.refunded\",\n  \"timestamp\": \"2026-03-18T14:00:00Z\",\n  \"data\": {\n    \"id\": \"uuid-da-balance-request\",\n    \"code\": \"BR-20260318-ABC123\",\n    \"value\": 500000,\n    \"totalValue\": 505250,\n    \"status\": \"REFUNDED\",\n    \"reason\": \"Estorno solicitado pelo cliente\",\n    \"destination\": \"linkpremiocard\",\n    \"createdAt\": \"2026-03-18T09:00:00Z\",\n    \"updatedAt\": \"2026-03-18T14:00:00Z\",\n    \"balanceReleaseDate\": \"2026-03-18T10:30:00Z\",\n    \"refundedAt\": \"2026-03-18T14:00:00Z\",\n    \"refundedValue\": 500000,\n    \"campaignFeePercentage\": 5,\n    \"campaignFeeType\": \"prepaid\",\n    \"pixTariffCents\": null,\n    \"requester\": {\n      \"id\": \"uuid-do-usuario\",\n      \"firstName\": \"João\",\n      \"lastName\": \"Silva\",\n      \"email\": \"joao.silva@empresa.com\"\n    },\n    \"agency\": {\n      \"id\": \"uuid-da-agencia\",\n      \"name\": \"Agência Central\"\n    },\n    \"company\": {\n      \"id\": \"uuid-da-company\",\n      \"name\": \"Empresa XYZ\",\n      \"document\": \"12345678000190\"\n    },\n    \"campaign\": {\n      \"id\": \"uuid-da-campanha\",\n      \"name\": \"Campanha Natal 2026\",\n      \"type\": \"STANDARD\"\n    }\n  }\n}\n\n</code></pre>\n<h3 id=\"campos-3\">Campos</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>event</code></td>\n<td>String</td>\n<td>Identificador do evento: <code>balance_request.refunded</code></td>\n</tr>\n<tr>\n<td><code>timestamp</code></td>\n<td>DateTime</td>\n<td>Data/hora em que o webhook foi disparado</td>\n</tr>\n<tr>\n<td><code>data</code></td>\n<td>Object</td>\n<td>Dados da requisição de saldo</td>\n</tr>\n<tr>\n<td><code>data.id</code></td>\n<td>UUID</td>\n<td>Identificador único da requisição</td>\n</tr>\n<tr>\n<td><code>data.code</code></td>\n<td>String</td>\n<td>Código único da requisição</td>\n</tr>\n<tr>\n<td><code>data.value</code></td>\n<td>Integer</td>\n<td>Valor original da requisição em centavos</td>\n</tr>\n<tr>\n<td><code>data.totalValue</code></td>\n<td>Integer</td>\n<td>Valor total original em centavos</td>\n</tr>\n<tr>\n<td><code>data.status</code></td>\n<td>Enum</td>\n<td>Status: <code>REFUNDED</code> (estornado)</td>\n</tr>\n<tr>\n<td><code>data.reason</code></td>\n<td>String</td>\n<td>Motivo do estorno</td>\n</tr>\n<tr>\n<td><code>data.destination</code></td>\n<td>Enum</td>\n<td>Destino original do saldo</td>\n</tr>\n<tr>\n<td><code>data.createdAt</code></td>\n<td>DateTime</td>\n<td>Data/hora de criação</td>\n</tr>\n<tr>\n<td><code>data.updatedAt</code></td>\n<td>DateTime</td>\n<td>Data/hora da última atualização</td>\n</tr>\n<tr>\n<td><code>data.balanceReleaseDate</code></td>\n<td>DateTime</td>\n<td>null</td>\n</tr>\n<tr>\n<td><code>data.refundedAt</code></td>\n<td>DateTime</td>\n<td>Data/hora em que o estorno foi processado</td>\n</tr>\n<tr>\n<td><code>data.refundedValue</code></td>\n<td>Integer</td>\n<td>Valor estornado em centavos</td>\n</tr>\n<tr>\n<td><code>data.campaignFeePercentage</code></td>\n<td>Integer</td>\n<td>Percentual da taxa de campanha</td>\n</tr>\n<tr>\n<td><code>data.campaignFeeType</code></td>\n<td>String</td>\n<td>Tipo de taxa</td>\n</tr>\n<tr>\n<td><code>data.pixTariffCents</code></td>\n<td>Integer</td>\n<td>null</td>\n</tr>\n<tr>\n<td><code>data.requester</code></td>\n<td>Object</td>\n<td>Dados do usuário</td>\n</tr>\n<tr>\n<td><code>data.agency</code></td>\n<td>Object</td>\n<td>Dados da agência</td>\n</tr>\n<tr>\n<td><code>data.company</code></td>\n<td>Object</td>\n<td>Dados da empresa</td>\n</tr>\n<tr>\n<td><code>data.campaign</code></td>\n<td>Object</td>\n<td>null</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"possíveis-motivos-de-estorno-reason\">Possíveis motivos de estorno (<code>reason</code>)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Motivo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Estorno solicitado pelo cliente</code></td>\n<td>Cliente solicitou cancelamento</td>\n</tr>\n<tr>\n<td><code>Duplicidade de pagamento</code></td>\n<td>Pagamento duplicado detectado</td>\n</tr>\n<tr>\n<td><code>Erro no processamento</code></td>\n<td>Falha interna no processamento</td>\n</tr>\n<tr>\n<td><code>Contestação de carga</code></td>\n<td>Contestação do valor</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"evento-balance_requestcancelled\">Evento: <code>balance_request.cancelled</code></h2>\n<p>Disparado quando uma requisição de saldo é cancelada pelo solicitante ou pelo sistema.</p>\n<h3 id=\"payload-3\">Payload</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"event\": \"balance_request.cancelled\",\n  \"timestamp\": \"2026-03-18T09:15:00Z\",\n  \"data\": {\n    \"id\": \"uuid-da-balance-request\",\n    \"code\": \"BR-20260318-ABC123\",\n    \"value\": 500000,\n    \"totalValue\": 505250,\n    \"status\": \"CANCELLED\",\n    \"reason\": \"Cancelado pelo solicitante\",\n    \"destination\": \"linkpremiocard\",\n    \"createdAt\": \"2026-03-18T09:00:00Z\",\n    \"updatedAt\": \"2026-03-18T09:15:00Z\",\n    \"balanceReleaseDate\": null,\n    \"cancellationDetails\": {\n      \"cancelledBy\": \"user\",\n      \"cancelledByUserId\": \"uuid-do-usuario\",\n      \"cancellationType\": \"manual\"\n    },\n    \"campaignFeePercentage\": 5,\n    \"campaignFeeType\": \"prepaid\",\n    \"pixTariffCents\": null,\n    \"requester\": {\n      \"id\": \"uuid-do-usuario\",\n      \"firstName\": \"João\",\n      \"lastName\": \"Silva\",\n      \"email\": \"joao.silva@empresa.com\"\n    },\n    \"agency\": {\n      \"id\": \"uuid-da-agencia\",\n      \"name\": \"Agência Central\"\n    },\n    \"company\": {\n      \"id\": \"uuid-da-company\",\n      \"name\": \"Empresa XYZ\",\n      \"document\": \"12345678000190\"\n    },\n    \"campaign\": {\n      \"id\": \"uuid-da-campanha\",\n      \"name\": \"Campanha Natal 2026\",\n      \"type\": \"STANDARD\"\n    }\n  }\n}\n\n</code></pre>\n<h3 id=\"campos-4\">Campos</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>event</code></td>\n<td>String</td>\n<td>Identificador do evento: <code>balance_request.cancelled</code></td>\n</tr>\n<tr>\n<td><code>timestamp</code></td>\n<td>DateTime</td>\n<td>Data/hora em que o webhook foi disparado</td>\n</tr>\n<tr>\n<td><code>data</code></td>\n<td>Object</td>\n<td>Dados da requisição de saldo</td>\n</tr>\n<tr>\n<td><code>data.id</code></td>\n<td>UUID</td>\n<td>Identificador único da requisição</td>\n</tr>\n<tr>\n<td><code>data.code</code></td>\n<td>String</td>\n<td>Código único da requisição</td>\n</tr>\n<tr>\n<td><code>data.value</code></td>\n<td>Integer</td>\n<td>Valor da requisição em centavos</td>\n</tr>\n<tr>\n<td><code>data.totalValue</code></td>\n<td>Integer</td>\n<td>Valor total em centavos</td>\n</tr>\n<tr>\n<td><code>data.status</code></td>\n<td>Enum</td>\n<td>Status: <code>CANCELLED</code> (cancelado)</td>\n</tr>\n<tr>\n<td><code>data.reason</code></td>\n<td>String</td>\n<td>Motivo do cancelamento</td>\n</tr>\n<tr>\n<td><code>data.destination</code></td>\n<td>Enum</td>\n<td>Destino configurado</td>\n</tr>\n<tr>\n<td><code>data.createdAt</code></td>\n<td>DateTime</td>\n<td>Data/hora de criação</td>\n</tr>\n<tr>\n<td><code>data.updatedAt</code></td>\n<td>DateTime</td>\n<td>Data/hora do cancelamento</td>\n</tr>\n<tr>\n<td><code>data.balanceReleaseDate</code></td>\n<td>DateTime</td>\n<td>null</td>\n</tr>\n<tr>\n<td><code>data.cancellationDetails</code></td>\n<td>Object</td>\n<td>Detalhes de quem cancelou</td>\n</tr>\n<tr>\n<td><code>data.cancellationDetails.cancelledBy</code></td>\n<td>String</td>\n<td>Quem cancelou: <code>user</code>, <code>system</code>, <code>admin</code></td>\n</tr>\n<tr>\n<td><code>data.cancellationDetails.cancelledByUserId</code></td>\n<td>UUID</td>\n<td>null</td>\n</tr>\n<tr>\n<td><code>data.cancellationDetails.cancellationType</code></td>\n<td>String</td>\n<td>Tipo: <code>manual</code>, <code>automatic</code>, <code>expired</code></td>\n</tr>\n<tr>\n<td><code>data.campaignFeePercentage</code></td>\n<td>Integer</td>\n<td>Percentual da taxa</td>\n</tr>\n<tr>\n<td><code>data.campaignFeeType</code></td>\n<td>String</td>\n<td>Tipo de taxa</td>\n</tr>\n<tr>\n<td><code>data.pixTariffCents</code></td>\n<td>Integer</td>\n<td>null</td>\n</tr>\n<tr>\n<td><code>data.requester</code></td>\n<td>Object</td>\n<td>Dados do usuário</td>\n</tr>\n<tr>\n<td><code>data.agency</code></td>\n<td>Object</td>\n<td>Dados da agência</td>\n</tr>\n<tr>\n<td><code>data.company</code></td>\n<td>Object</td>\n<td>Dados da empresa</td>\n</tr>\n<tr>\n<td><code>data.campaign</code></td>\n<td>Object</td>\n<td>null</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"tipos-de-cancelamento\">Tipos de cancelamento</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>manual</code></td>\n<td>Cancelado pelo usuário solicitante</td>\n</tr>\n<tr>\n<td><code>automatic</code></td>\n<td>Cancelado automaticamente pelo sistema</td>\n</tr>\n<tr>\n<td><code>expired</code></td>\n<td>Cancelado por expiração (ex: PIX expirou)</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"tabela-resumo-dos-status\">Tabela resumo dos status</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Evento</th>\n<th>Status no Payload</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>balance_request.paid</code></td>\n<td><code>COMPLETED</code></td>\n<td>Pagamento confirmado e saldo liberado</td>\n</tr>\n<tr>\n<td><code>balance_request.failed</code></td>\n<td><code>REJECTED</code></td>\n<td>Pagamento falhou</td>\n</tr>\n<tr>\n<td><code>balance_request.refunded</code></td>\n<td><code>REFUNDED</code></td>\n<td>Estorno realizado</td>\n</tr>\n<tr>\n<td><code>balance_request.cancelled</code></td>\n<td><code>CANCELLED</code></td>\n<td>Requisição cancelada</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"notas-importantes\">Notas importantes</h2>\n<ol>\n<li><p><strong>Valores em centavos</strong> — Todos os valores monetários (<code>value</code>, <code>totalValue</code>, <code>refundedValue</code>, <code>pixTariffCents</code>) são em centavos. Ex: <code>500000</code> = R$ 5.000,00</p>\n</li>\n<li><p><strong>Timestamps</strong> — Todos os campos de data/hora seguem o formato ISO 8601. Ex: <code>2026-03-18T10:30:00Z</code></p>\n</li>\n<li><p><strong>Campos nulos</strong> — Os campos <code>campaign</code>, <code>company</code>, <code>pixTariffCents</code>, <code>reason</code> e <code>balanceReleaseDate</code> podem ser <code>null</code> dependendo do contexto</p>\n</li>\n<li><p><strong>Taxa de campanha</strong> — O campo <code>campaignFeePercentage</code> indica o percentual da taxa cobrada. O tipo (<code>prepaid</code> ou <code>postpaid</code>) afeta como a taxa é calculada no valor total</p>\n</li>\n</ol>\n","urlObject":{"protocol":"https","path":["api","partner","webhooks"],"host":["api","hub4pay","com","br"],"query":[],"variable":[]}},"response":[{"id":"4f68edea-e0b5-479d-9d7f-bb99bdad5b6b","name":"create webhook","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"companyId\": \"1dc1d79c-332f-4f46-8016-5d9f52fbe181\",\n    \"url\": \"https://webhook.site/0a80f924-d18d-46ae-a93c-f511076f02d8\",\n    \"events\": [\n        \"balance_request.created\",\n        \"balance_request.completed\",\n        \"balance_request.rejected\",\n        \"balance_request.cancelled\"\n    ],\n    \"headers\": {},\n    \"description\": \"Webhook para notificações de balance request\",\n    \"status\": \"Active\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.hub4pay.com.br/api/partner/webhooks"},"status":"Created","code":201,"_postman_previewlanguage":"Text","header":[{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-RateLimit-Limit","value":"50"},{"key":"X-RateLimit-Remaining","value":"49"},{"key":"X-RateLimit-Reset","value":"1"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"456"},{"key":"ETag","value":"W/\"1c8-qjXzquVnPdo4qFHCgQ3lN8uQtB0\""},{"key":"Date","value":"Tue, 03 Mar 2026 18:16:58 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"37c655c5-67df-49ec-aef9-c4f4ee41135c\",\n    \"status\": \"Active\",\n    \"createdAt\": \"2026-03-03T18:16:39.021Z\",\n    \"updatedAt\": \"2026-03-03T18:16:39.021Z\",\n    \"url\": \"https://webhook.site/0a80f924-d18d-46ae-a93c-f511076f02d8\",\n    \"events\": [\n        \"balance_request.paid\",\n        \"balance_request.failed\",\n        \"balance_request.refunded\",\n        \"balance_request.cancelled\",\n    ],\n    \"description\": \"Webhook para notificações de balance request\",\n    \"headers\": \"{}\",\n    \"companyId\": \"1dc1d79c-332f-4f46-8016-5d9f52fbe181\"\n}"}],"_postman_id":"a6b502cc-0e6f-4535-97aa-c5f1fd95c799"},{"name":"update webhook","id":"b313d773-14c5-4d5e-bfe9-f366b5996ccd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"companyId\": \"1dc1d79c-332f-4f46-8016-5d9f52fbe181\",\n    \"url\": \"https://webhook.site/0a80f924-d18d-46ae-a93c-f511076f02d8\",\n    \"events\": [\n        \"balance_request.paid\",\n        \"balance_request.paid\",\n        \"balance_request.paid\"\n    ],\n    \"headers\": {},\n    \"description\": \"Webhook para notificações de balance request111\",\n    \"status\": \"Active\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.hub4pay.com.br/api/partner/webhooks/37c655c5-67df-49ec-aef9-c4f4ee41135c","description":"<h2 id=\"headers\">Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Chave</th>\n<th>Valor</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>Bearer <code>{token_jwt}</code></td>\n</tr>\n<tr>\n<td>Content-Type</td>\n<td><code>application/json</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"body-json\">Body (JSON)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"companyId\": \"uuid-da-company\",\n  \"url\": \"https://novodominio.com/webhook\",\n  \"events\": [\n    \"balance_request.paid\",\n    \"balance_request.failed\"\n  ],\n  \"headers\": {\n    \"Authorization\": \"Bearer novo-token\"\n  },\n  \"description\": \"Nova descrição\",\n  \"status\": \"Active\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"campos\">Campos</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>companyId</code></td>\n<td>UUID</td>\n<td>✅</td>\n<td>ID da empresa</td>\n</tr>\n<tr>\n<td><code>url</code></td>\n<td>String (URL)</td>\n<td>❌</td>\n<td>Nova URL de callback</td>\n</tr>\n<tr>\n<td><code>events</code></td>\n<td>Array</td>\n<td>❌</td>\n<td>Lista de eventos</td>\n</tr>\n<tr>\n<td><code>headers</code></td>\n<td>Object</td>\n<td>❌</td>\n<td>Headers customizados</td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td>String</td>\n<td>❌</td>\n<td>Nova descrição</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>Enum</td>\n<td>❌</td>\n<td><code>Active</code> ou <code>Disabled</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"exemplo-de-request\">Exemplo de request</h2>\n<p>PUT /api/partner/webhooks/uuid-do-webhook</p>\n<hr />\n<h2 id=\"response-de-sucesso-200\">Response de sucesso <code>200</code></h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n\"id\": \"uuid-do-webhook\",\n\"url\": \"https://novodominio.com/webhook\",\n\"events\": [\n\"balance_request.paid\",\n\"balance_request.failed\"\n],\n\"headers\": {\n\"Authorization\": \"Bearer novo-token\"\n},\n\"description\": \"Nova descrição\",\n\"status\": \"Active\",\n\"companyId\": \"uuid-da-company\",\n\"createdAt\": \"2026-03-03T10:00:00Z\",\n\"updatedAt\": \"2026-03-03T12:00:00Z\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"response-de-erro-404--webhook-não-encontrado\">Response de erro <code>404</code> — Webhook não encontrado</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Webhook uuid-do-webhook not found\",\n  \"error\": \"Not Found\",\n  \"statusCode\": 404\n}\n` ` `\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","partner","webhooks","37c655c5-67df-49ec-aef9-c4f4ee41135c"],"host":["api","hub4pay","com","br"],"query":[],"variable":[]}},"response":[{"id":"5ee4d3cf-b364-4e58-8f01-447cf0c9b81d","name":"update webhook","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"companyId\": \"1dc1d79c-332f-4f46-8016-5d9f52fbe181\",\n    \"url\": \"https://webhook.site/0a80f924-d18d-46ae-a93c-f511076f02d8\",\n    \"events\": [\n        \"balance_request.completed\",\n        \"balance_request.rejected\",\n        \"balance_request.cancelled\"\n    ],\n    \"headers\": {},\n    \"description\": \"Webhook para notificações de balance request111\",\n    \"status\": \"Active\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.hub4pay.com.br/api/partner/webhooks/37c655c5-67df-49ec-aef9-c4f4ee41135c"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-RateLimit-Limit","value":"50"},{"key":"X-RateLimit-Remaining","value":"49"},{"key":"X-RateLimit-Reset","value":"1"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"433"},{"key":"ETag","value":"W/\"1b1-AR4i4ey7PSdcJRe1hlD90HOSbAc\""},{"key":"Date","value":"Tue, 03 Mar 2026 18:36:48 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"37c655c5-67df-49ec-aef9-c4f4ee41135c\",\n    \"status\": \"Active\",\n    \"createdAt\": \"2026-03-03T18:16:39.021Z\",\n    \"updatedAt\": \"2026-03-03T18:36:48.003Z\",\n    \"url\": \"https://webhook.site/0a80f924-d18d-46ae-a93c-f511076f02d8\",\n    \"events\": [\n        \"balance_request.paid\",\n        \"balance_request.failed\",\n        \"balance_request.cancelled\"\n    ],\n    \"description\": \"Webhook para notificações de balance request111\",\n    \"headers\": \"{}\",\n    \"companyId\": \"1dc1d79c-332f-4f46-8016-5d9f52fbe181\"\n}"}],"_postman_id":"b313d773-14c5-4d5e-bfe9-f366b5996ccd"},{"name":"delete webhook","id":"7ae68dfa-4858-4d0e-aa66-29022efedfaa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://api.hub4pay.com.br/api/partner/webhooks/219dca6b-e607-4476-b628-3ad79eebd36f","description":"<h2 id=\"headers\">Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Chave</th>\n<th>Valor</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>Bearer <code>{token_jwt}</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"query-params\">Query Params</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parâmetro</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>companyId</code></td>\n<td>UUID</td>\n<td>✅</td>\n<td>ID da empresa</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"exemplo-de-request\">Exemplo de request</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>DELETE /api/partner/webhooks/uuid-do-webhook?companyId=uuid-da-company\n\n</code></pre><hr />\n<h2 id=\"response-de-sucesso-204\">Response de sucesso <code>204</code></h2>\n<blockquote>\n<p>No Content </p>\n</blockquote>\n<hr />\n<h2 id=\"response-de-erro-404--webhook-não-encontrado\">Response de erro <code>404</code> — Webhook não encontrado</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Webhook uuid-do-webhook not found\",\n  \"error\": \"Not Found\",\n  \"statusCode\": 404\n}\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","partner","webhooks","219dca6b-e607-4476-b628-3ad79eebd36f"],"host":["api","hub4pay","com","br"],"query":[],"variable":[]}},"response":[{"id":"6b492dbb-61b5-4cc9-9952-aa3c71889add","name":"update webhook","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"companyId\": \"1dc1d79c-332f-4f46-8016-5d9f52fbe181\",\n    \"url\": \"https://webhook.site/0a80f924-d18d-46ae-a93c-f511076f02d8\",\n    \"events\": [\n        \"balance_request.completed\",\n        \"balance_request.rejected\",\n        \"balance_request.cancelled\"\n    ],\n    \"headers\": {},\n    \"description\": \"Webhook para notificações de balance request111\",\n    \"status\": \"Active\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:3335/api/partner/webhooks/37c655c5-67df-49ec-aef9-c4f4ee41135c"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-RateLimit-Limit","value":"50"},{"key":"X-RateLimit-Remaining","value":"49"},{"key":"X-RateLimit-Reset","value":"1"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"433"},{"key":"ETag","value":"W/\"1b1-AR4i4ey7PSdcJRe1hlD90HOSbAc\""},{"key":"Date","value":"Tue, 03 Mar 2026 18:36:48 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"37c655c5-67df-49ec-aef9-c4f4ee41135c\",\n    \"status\": \"Active\",\n    \"createdAt\": \"2026-03-03T18:16:39.021Z\",\n    \"updatedAt\": \"2026-03-03T18:36:48.003Z\",\n    \"url\": \"https://webhook.site/0a80f924-d18d-46ae-a93c-f511076f02d8\",\n    \"events\": [\n        \"balance_request.completed\",\n        \"balance_request.rejected\",\n        \"balance_request.cancelled\"\n    ],\n    \"description\": \"Webhook para notificações de balance request111\",\n    \"headers\": \"{}\",\n    \"companyId\": \"1dc1d79c-332f-4f46-8016-5d9f52fbe181\"\n}"}],"_postman_id":"7ae68dfa-4858-4d0e-aa66-29022efedfaa"},{"name":"list company webhooks","id":"4bb8e52b-d1a9-4f32-ab4b-89ec79d2660d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api.hub4pay.com.br/api/partner/webhooks?companyId=1dc1d79c-332f-4f46-8016-5d9f52fbe181","description":"<h2 id=\"headers\">Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Chave</th>\n<th>Valor</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>Bearer <code>{token_jwt}</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"query-params\">Query Params</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parâmetro</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>companyId</code></td>\n<td>UUID</td>\n<td>✅</td>\n<td>ID da empresa</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>Integer</td>\n<td>❌</td>\n<td>Página (padrão: <code>1</code>)</td>\n</tr>\n<tr>\n<td><code>limit</code></td>\n<td>Integer</td>\n<td>❌</td>\n<td>Limite por página (padrão: <code>10</code>, máx: <code>100</code>)</td>\n</tr>\n<tr>\n<td><code>query</code></td>\n<td>String</td>\n<td>❌</td>\n<td>Busca por <code>url</code> ou <code>description</code></td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>String</td>\n<td>❌</td>\n<td>Filtrar por <code>Active</code> ou <code>Disabled</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"exemplo-de-request\">Exemplo de request</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /api/partner/webhooks?companyId=uuid-da-company&amp;page=1&amp;limit=10\n\n</code></pre><hr />\n<h2 id=\"response-de-sucesso-200\">Response de sucesso <code>200</code></h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": [\n    {\n      \"id\": \"uuid-do-webhook\",\n      \"url\": \"https://seudominio.com/webhook\",\n      \"events\": [\"balance_request.created\"],\n      \"headers\": {},\n      \"description\": \"Webhook para notificações\",\n      \"status\": \"Active\",\n      \"companyId\": \"uuid-da-company\",\n      \"createdAt\": \"2026-03-03T10:00:00Z\",\n      \"updatedAt\": \"2026-03-03T10:00:00Z\"\n    }\n  ],\n  \"totalItems\": 1,\n  \"totalPages\": 1\n}\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","partner","webhooks"],"host":["api","hub4pay","com","br"],"query":[{"key":"companyId","value":"1dc1d79c-332f-4f46-8016-5d9f52fbe181"}],"variable":[]}},"response":[],"_postman_id":"4bb8e52b-d1a9-4f32-ab4b-89ec79d2660d"},{"name":"get by id","id":"59c94927-ac52-46bb-a849-f57573588f0e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api.hub4pay.com.br/api/partner/webhooks/37c655c5-67df-49ec-aef9-c4f4ee41135c","description":"<h2 id=\"headers\">Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Chave</th>\n<th>Valor</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>Bearer <code>{token_jwt}</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"query-params\">Query Params</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parâmetro</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>companyId</code></td>\n<td>UUID</td>\n<td>✅</td>\n<td>ID da empresa</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"exemplo-de-request\">Exemplo de request</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /api/partner/webhooks/uuid-do-webhook?companyId=uuid-da-company\n\n</code></pre><hr />\n<h2 id=\"response-de-sucesso-200\">Response de sucesso <code>200</code></h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"id\": \"uuid-do-webhook\",\n    \"url\": \"https://seudominio.com/webhook\",\n    \"events\": [\"balance_request.created\"],\n    \"headers\": {},\n    \"description\": \"Webhook para notificações\",\n    \"status\": \"Active\",\n    \"companyId\": \"uuid-da-company\",\n    \"createdAt\": \"2026-03-03T10:00:00Z\",\n    \"updatedAt\": \"2026-03-03T10:00:00Z\"\n  }\n}\n\n</code></pre>\n<hr />\n<h2 id=\"response-se-não-encontrar-200\">Response se não encontrar <code>200</code></h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": null\n}\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","partner","webhooks","37c655c5-67df-49ec-aef9-c4f4ee41135c"],"host":["api","hub4pay","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"59c94927-ac52-46bb-a849-f57573588f0e"}],"id":"f47476b1-0ec6-4740-8cc0-cf0a53b1c83f","_postman_id":"f47476b1-0ec6-4740-8cc0-cf0a53b1c83f","description":"","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}}},{"name":"Authentication","id":"3217c6ea-3904-4c83-bf86-52239c3d76fe","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"clientId\": \"string\",\n  \"secret\": \"string\"\n}"},"url":"{{baseUrl}}/api/partner/auth","description":"<h1 id=\"🔐-autenticação\">🔐 Autenticação</h1>\n<p>Para acessar a maioria das rotas da <strong>API de Parceiros</strong>, é necessário gerar um token de acesso utilizando as credenciais fornecidas (<code>clientId</code> e <code>secret</code>).</p>\n<hr />\n<h2 id=\"🎟️-gerar-token-de-acesso\">🎟️ Gerar Token de Acesso</h2>\n<p>Autentica o parceiro e retorna um JWT (JSON Web Token).</p>\n<p><strong>URL:</strong> <code>/api/partner/auth</code><br /><strong>Método:</strong> <code>POST</code><br /><strong>Autenticação:</strong> Não requer token prévio</p>\n<hr />\n<h3 id=\"📥-requisição-body\">📥 Requisição (Body)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"clientId\": \"71348122-8356-427c-9588-44448555e088\",\n  \"secret\": \"sua_chave_secreta_aqui\"\n}\n\n</code></pre>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>clientId</td>\n<td>UUID</td>\n<td>Sim</td>\n<td>ID único do cliente/parceiro (agência).</td>\n</tr>\n<tr>\n<td>secret</td>\n<td>String</td>\n<td>Sim</td>\n<td>Chave secreta para autenticação.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"✅-resposta-de-sucesso-200-ok\">✅ Resposta de Sucesso (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"accessToken\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n  \"expiresIn\": 1715600000\n}\n\n</code></pre>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>accessToken</td>\n<td>JWT assinado para autenticação nas rotas.</td>\n</tr>\n<tr>\n<td>expiresIn</td>\n<td>Timestamp de expiração do token.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h1 id=\"🏢-autenticação-em-nível-de-company\">🏢 Autenticação em Nível de Company</h1>\n<p>A API possui dois níveis de autenticação:</p>\n<h3 id=\"nível-agência-partner\">Nível Agência (Partner)</h3>\n<p>Permite acesso aos recursos globais da agência.</p>\n<h3 id=\"nível-company\">Nível Company</h3>\n<p>Necessário para consumir recursos específicos de uma empresa vinculada à agência.</p>\n<hr />\n<h2 id=\"🔁-regra-para-acessar-rotas-de-company\">🔁 Regra para acessar rotas de Company</h2>\n<p>Para consumir rotas que operam em <strong>nível de company</strong>, é obrigatório gerar o token informando o <code>companyId</code> no payload.</p>\n<h3 id=\"📥-exemplo-de-geração-de-token-em-nível-company\">📥 Exemplo de geração de token em nível company</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"clientId\": \"71348122-8356-427c-9588-44448555e088\",\n  \"secret\": \"sua_chave_secreta_aqui\",\n  \"companyId\": \"9dc7b6f1-12a4-4c9e-8f9b-123456789abc\"\n}\n\n</code></pre>\n<h3 id=\"🔎-regra-de-negócio\">🔎 Regra de Negócio</h3>\n<ul>\n<li><p>Tokens gerados apenas com <code>clientId</code> e <code>secret</code> → nível <strong>agência</strong></p>\n</li>\n<li><p>Tokens gerados com <code>clientId</code>, <code>secret</code> e <code>companyId</code> → nível <strong>company</strong></p>\n</li>\n<li><p>Para acessar rotas de company, o <code>companyId</code> deve estar presente no payload do token</p>\n</li>\n</ul>\n<p>Se o token não contiver <code>companyId</code>, o acesso às rotas de company será negado.</p>\n<hr />\n<h1 id=\"🔑-envio-do-token-nas-requisições\">🔑 Envio do Token nas Requisições</h1>\n<p>Todas as rotas que exigem autenticação aceitam:</p>\n<h3 id=\"authorization-bearer\">Authorization Bearer</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer &lt;accessToken&gt;\n\n</code></pre><h1 id=\"⚠️-regra-importante\">⚠️ Regra Importante</h1>\n<ul>\n<li><p>Se utilizar <code>Authorization: Bearer</code>, <strong>não deve enviar</strong> <strong><code>x-api-key</code></strong></p>\n</li>\n<li><p>Se utilizar <code>x-api-key</code>, <strong>não deve enviar Authorization</strong></p>\n</li>\n<li><p>O envio simultâneo dos dois headers resultará em <code>401 Unauthorized</code></p>\n</li>\n</ul>\n<p>Um request, um token, um formato. Simples, direto, sem ambiguidade.</p>\n<hr />\n<h1 id=\"🧠-resumo-da-regra-de-ouro\">🧠 Resumo da Regra de Ouro</h1>\n<ul>\n<li><p>Agência acessando recursos globais → token simples</p>\n</li>\n<li><p>Agência acessando recursos de uma empresa → token com <code>companyId</code></p>\n</li>\n<li><p>Toda rota protegida aceita <code>x-api-key</code> ou <code>Authorization: Bearer</code></p>\n</li>\n</ul>\n<p>Se o token não tiver o escopo correto, a API responde com <code>401 Unauthorized</code>.</p>\n<hr />\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"path":["api","partner","auth"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"3217c6ea-3904-4c83-bf86-52239c3d76fe"}],"id":"b4a1e235-ae90-4183-8f08-b029c8bd6fc9","_postman_id":"b4a1e235-ae90-4183-8f08-b029c8bd6fc9","description":"","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}}}],"id":"260d696a-1d46-4597-b695-c7857b1e6e55","description":"<p>Entities section manages both individual persons and business entities within the platform.</p>\n","_postman_id":"260d696a-1d46-4597-b695-c7857b1e6e55","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}}},{"name":"Transfer","item":[{"name":"Balance","id":"6be5bad2-9b40-4b08-b7a1-4a1099000040","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance","description":"<h2 id=\"transfer-balance\">Transfer Balance</h2>\n<p>This endpoint allows you to transfer balance from your company to a customer (person or business). The transfer can be made to both active customers and customers in pre-registration mode. For pre-registered customers, the balance will be held until they complete their registration and become active. The system automatically handles different customer statuses and ensures proper balance validation before processing the transfer.</p>\n<h2 id=\"request-body\">Request Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Requirement</th>\n<th>Rule</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>customerId</td>\n<td>string</td>\n<td>Required</td>\n<td>Must be a valid UUID of an existing person or business.</td>\n</tr>\n<tr>\n<td>balanceTypeId</td>\n<td>string</td>\n<td>Required</td>\n<td>Must be a valid UUID of an existing balance type.</td>\n</tr>\n<tr>\n<td>campaignId</td>\n<td>string</td>\n<td>Required</td>\n<td>Must be a valid UUID of an existing campaign.</td>\n</tr>\n<tr>\n<td>description</td>\n<td>string</td>\n<td>Optional</td>\n<td>Transfer description for transaction records.</td>\n</tr>\n<tr>\n<td>amount</td>\n<td>integer</td>\n<td>Required</td>\n<td>Must be a positive integer in cents. Min: 1.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-structure\">Response Structure</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>amount</td>\n<td>integer</td>\n<td>Transfer amount in cents</td>\n</tr>\n<tr>\n<td>description</td>\n<td>string</td>\n<td>Transfer description</td>\n</tr>\n<tr>\n<td>status</td>\n<td>string</td>\n<td>Transfer status (always \"Completed\" on success)</td>\n</tr>\n<tr>\n<td>createdAt</td>\n<td>string</td>\n<td>Transfer creation timestamp (ISO 8601 format)</td>\n</tr>\n<tr>\n<td>personId</td>\n<td>string</td>\n<td>Person ID (if customer is a person, null otherwise)</td>\n</tr>\n<tr>\n<td>businessId</td>\n<td>string</td>\n<td>Business ID (if customer is a business, null otherwise)</td>\n</tr>\n<tr>\n<td>campaignId</td>\n<td>string</td>\n<td>Campaign ID (if provided, null otherwise)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"transfer-behavior-by-customer-status\">Transfer Behavior by Customer Status</h2>\n<h3 id=\"active-customers\">Active Customers</h3>\n<ul>\n<li><p>Balance is immediately transferred to the customer's account</p>\n</li>\n<li><p>Customer can access and use the transferred balance immediately</p>\n</li>\n<li><p>Transaction is processed through the payment system</p>\n</li>\n</ul>\n<h3 id=\"custormerpending\">Custormer/Pending</h3>\n<ul>\n<li><p>Balance is held in pre-registration mode</p>\n</li>\n<li><p>Customer cannot access the balance until they become active</p>\n</li>\n<li><p>Balance will be available once customer completes registration</p>\n</li>\n<li><p>Transaction is recorded but not processed through payment system</p>\n</li>\n</ul>\n<h2 id=\"validation-rules\">Validation Rules</h2>\n<h3 id=\"company-validation\">Company Validation</h3>\n<ul>\n<li><p>Company must exist and be active</p>\n</li>\n<li><p>Company must have sufficient available balances</p>\n</li>\n<li><p>Company balance must account for pending transactions</p>\n</li>\n<li><p>Company balance must account for pre-registered amounts</p>\n</li>\n</ul>\n<h3 id=\"customer-validation\">Customer Validation</h3>\n<ul>\n<li><p>Customer (person or business) must exist</p>\n</li>\n<li><p>Customer must be in a valid status for transfer</p>\n</li>\n<li><p>Customer must have the specified balance type</p>\n</li>\n</ul>\n<h3 id=\"balance-type-validation\">Balance Type Validation</h3>\n<ul>\n<li><p>Balance type must exist and be active</p>\n</li>\n<li><p>Balance type must be valid for the customer</p>\n</li>\n</ul>\n<h3 id=\"campaign-validation\">Campaign Validation</h3>\n<ul>\n<li><p>If provided, campaign must exist</p>\n</li>\n<li><p>Campaign is required</p>\n</li>\n</ul>\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li><p>Amount: Must always be sent in cents (e.g., 1500 = R$ 15,00)</p>\n</li>\n<li><p>Rate Limiting: Only one transfer per customer per 60 seconds</p>\n</li>\n<li><p>Customer Types: Supports both persons and businesses</p>\n</li>\n<li><p>Pre-Registration: Balance is held for inactive customers until they become active</p>\n</li>\n<li><p>Transaction Tracking: All transfers are recorded with unique transaction IDs</p>\n</li>\n</ul>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"path":["transfer","balance"],"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"5bcac17d-fc1f-40a1-b402-e1ccbfc7e072","name":"201 Created","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"amount\": 100,\r\n  \"description\": \"Transfer description\",\r\n  \"status\": \"Completed\",\r\n  \"createdAt\": \"2024-01-15T10:30:00.000Z\",\r\n  \"personId\": \"123e4567-e89b-12d3-a456-426614174000\",\r\n  \"businessId\": null,\r\n  \"campaignId\": \"789e0123-e89b-12d3-a456-426614174002\"\r\n}"},{"id":"5ff304f9-6119-4f4a-b940-a7f4dbecaa68","name":"400 Bad Request","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"123e4567-e89b-12d3-a456-426614174000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    {\r\n      \"code\": \"invalid_type\",\r\n      \"expected\": \"string\",\r\n      \"received\": \"undefined\",\r\n      \"message\": \"Required\",\r\n      \"path\": [\"balanceTypeId\"]\r\n    },\r\n    {\r\n      \"code\": \"invalid_type\",\r\n      \"expected\": \"number\",\r\n      \"received\": \"undefined\",\r\n      \"message\": \"Required\",\r\n      \"path\": [\"amount\"]\r\n    }\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"},{"id":"3264ffaa-766a-4724-8a3c-2cf51ae71f08","name":"400 Bad Request - Company Disabled","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Compay is disabled.\"\r\n}"},{"id":"aa9dfd44-06c0-4c31-9fb7-60579fe610cd","name":"400 Bad Request - Company Balance Not Found","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Compay balance was not found.\"\r\n}"},{"id":"a000b18c-392d-4fe4-9a80-b9b511b220bd","name":"400 Bad Request - Balance Type Disabled","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Balance Type is disabled.\"\r\n}"},{"id":"edf4bbc8-6ef6-43c5-9c0c-ed446bd85a15","name":"400 Bad Request - Customer Disabled","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Person is disabled.\"\r\n}"},{"id":"b2856337-18bc-4db0-b09e-043e98dc1c16","name":"400 Bad Request - Customer Not Ready for Transaction","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Person is not ready for the transaction.\"\r\n}"},{"id":"e0ef1a72-1ea6-4605-9436-7e92743f20fe","name":"400 Bad Request - Insufficient Balance","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Insufficient balance for transfer\"\r\n}"},{"id":"af70ee35-7b19-45aa-90f2-e6653ec3d933","name":"400 Bad Request - Company Does Not Have Enough Balance for Pre-registration","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Company does not have enough balance for the transfer.\"\r\n}"},{"id":"12b0a414-1e9c-483b-b328-1336297273c8","name":"400 Bad Request - Balance Not Found by Balance Type ID","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"It was not possible to find the balance by Balance Type ID.\"\r\n}"},{"id":"165aa461-5243-4db6-ae13-160e1e64b869","name":"400 Bad Request - Company Does Not Have Enough Balance for Transfer","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": \"A carteira da empresa não possui saldo suficiente para realizar esta operação. Por favor, crie uma solicitação de saldo ou entre em contato com o suporte para resolver o problema.: [company-id]\",\r\n  \"code\": 3002\r\n}"},{"id":"772ba435-9c56-41c3-ace5-53e591e9ecc6","name":"401 Unauthorized","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 401,\r\n  \"message\": \"API key is missing\",\r\n  \"error\": \"Unauthorized\"\r\n}"},{"id":"8c3c43e9-19ab-4b2c-bab7-b75c1a1ba7a4","name":"401 Unauthorized","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 401,\r\n  \"message\": \"Invalid API key\",\r\n  \"error\": \"Unauthorized\"\r\n}"},{"id":"96591ca5-c07a-4d29-b4cf-6a16ea612c81","name":"404 Not Found - Company Not Found","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"123e4567-e89b-12d3-a456-426614174000\",\r\n  \"balanceTypeId\": \"456e7890-e89b-12d3-a456-426614174001\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Company was not found.\"\r\n}"},{"id":"0b3ff63c-c202-466d-8557-708528bcf9aa","name":"404 Not Found - Balance Type Not Found","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"123e4567-e89b-12d3-a456-426614174000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Balance Type was not found.\"\r\n}"},{"id":"35a94507-6b20-463f-96ed-11a3d5419f91","name":"404 Not Found - Customer Not Found","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Person was not found.\"\r\n}"},{"id":"d26cb233-0a11-4df0-8096-f940d8f31343","name":"404 Not Found - Campaign Not Found","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"123e4567-e89b-12d3-a456-426614174000\",\r\n  \"balanceTypeId\": \"456e7890-e89b-12d3-a456-426614174001\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Campaign was not found.\"\r\n}"},{"id":"4298a5d4-54fe-45b0-a742-780fc9813177","name":"404 Not Found - Company Disabled","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 404,\r\n  \"message\": \"A empresa [company-id] está desativada. Por favor, entre em contato com o suporte para resolver o problema.\",\r\n  \"code\": 3006\r\n}"},{"id":"87e4ddff-f949-448e-9430-4395a728e95c","name":"404 Not Found - Balance Type Not Found in Origin Company","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 404,\r\n  \"message\": \"Tipo de saldo não encontrado na empresa de origem: Company: [company-id] - Balance Type: [00000000-0000-0000-0000-000000000000]\",\r\n  \"code\": 3007\r\n}"},{"id":"ac3f953b-8d05-4442-b920-78c09567d458","name":"404 Not Found - Balance Type Disabled","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 404,\r\n  \"message\": \"Tipo de saldo informado está desativado: Company: [company-id] - Balance Type: [00000000-0000-0000-0000-000000000000]\",\r\n  \"code\": 3008\r\n}"},{"id":"4daef5fb-a0e9-4b93-8205-7462c60671f0","name":"404 Not Found - Entity Not Found","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":[],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\r\n  \"statusCode\": 404,\r\n  \"message\": \"O Person informado não foi encontrado: Company: [company-id] - Customer: [00000000-0000-0000-0000-000000000000]\",\r\n  \"code\": 3009\r\n}"},{"id":"c7c8393d-f800-496a-9c5c-d3982a1c0168","name":"404 Not Found - Balance Type Not Found in Receiver","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 404,\r\n  \"message\": \"Tipo de saldo não foi encontrado na carteira do recebedor: Person: [person-id] - Balance Type: [00000000-0000-0000-0000-000000000000]. Favor entrar em contato com o suporte.\",\r\n  \"code\": 2008\r\n}"},{"id":"03a076f5-6307-44f0-993f-3aebdb5a71a4","name":"409 Conflict - Transfer in Progress","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"123e4567-e89b-12d3-a456-426614174000\",\r\n  \"balanceTypeId\": \"456e7890-e89b-12d3-a456-426614174001\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 409,\r\n  \"message\": \"Já existe uma transferência em andamento para este saldo.\",\r\n  \"error\": \"Conflict\"\r\n}"},{"id":"986018d5-773e-42b6-9582-9930c61b606b","name":"500 Internal Server Error - User Disabled","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 500,\r\n  \"message\": \"O usuário user-id está desativado, Por favor, entre em contato com o suporte para resolver o problema.\",\r\n  \"code\": 2006\r\n}"},{"id":"af71ea1b-6d12-4c9a-862e-33cb50fdc2b9","name":"500 Internal Server Error - User Not Ready for Transaction","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 500,\r\n  \"message\": \"O usuário user-id não esta apto a receber transações no momento, Por favor, entre em contato com o suporte para resolver o problema.\",\r\n  \"code\": 2007\r\n}"},{"id":"b8ef662c-a6b5-4c13-85af-f1a752ec2fac","name":"500 Internal Server Error - Campaign Search Error","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 500,\r\n  \"message\": \"Erro ao buscar campanha: Error details, Por favor, entre em contato com o suporte para resolver o problema.\",\r\n  \"code\": 5000\r\n}"},{"id":"39125605-9411-4287-94c5-eaf9a21da535","name":"500 Internal Server Error - Transfer Failed","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 500,\r\n  \"message\": \"Não foi possível realizar a transferência. Tente novamente mais tarde, ou entre em contato com o suporte.\",\r\n  \"code\": 5000,\r\n  \"details\": {\r\n    \"error\": \"Transaction failure details\"\r\n  }\r\n}"}],"_postman_id":"6be5bad2-9b40-4b08-b7a1-4a1099000040"},{"name":"Balance V2","id":"deebdb6c-0fab-46d7-b2b8-7162e9f44705","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"x-api-key","value":"","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"referenceId\": \"transf-2024-001\",\r\n  \"customerId\": \"c9bf9e5b-5e17-4c61-a7e1-1c9043f3c9c1\",\r\n  \"balanceTypeId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\r\n  \"campaignId\": \"550e8400-e29b-41d4-a716-446655440000\",\r\n  \"amount\": 10000,\r\n  \"description\": \"Bônus de boas-vindas - campanha natalina\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url-v2}}/transfer/balance","description":"<h1 id=\"transferência-de-saldo-v2-assíncrono\">Transferência de Saldo V2 (Assíncrono)</h1>\n<h2 id=\"visão-geral\">Visão Geral</h2>\n<p>A rota <code>POST /api/v2/external/transfer/balance</code> permite transferir saldo para participantes de forma <strong>assíncrona</strong>. Diferente da V1, esta rota retorna imediatamente um ID de transferência e o processamento real ocorre em segundo plano, com notificações via <strong>Webhook</strong>.</p>\n<h3 id=\"resumo-do-endpoint\">Resumo do Endpoint</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Método</th>\n<th>Endpoint</th>\n<th>Autenticação</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>POST</code></td>\n<td><code>/api/v2/external/transfer/balance</code></td>\n<td>API Key via header <code>x-api-key</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"autenticação\">Autenticação</h2>\n<p>Todos os requests devem incluir o header <code>x-api-key</code> com sua chave de API fornecida.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>x-api-key: sua-chave-api-aqui\nContent-Type: application/json\n\n</code></pre><hr />\n<h2 id=\"request-body\">Request Body</h2>\n<h3 id=\"campos\">Campos</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>referenceId</code></td>\n<td><code>string</code></td>\n<td><strong>Sim</strong></td>\n<td>Seu identificador único para esta requisição. Usado para idempotência — se enviar o mesmo <code>referenceId</code> novamente, a API retorna o status atual em vez de criar uma nova transferência.</td>\n</tr>\n<tr>\n<td><code>customerId</code></td>\n<td><code>string</code></td>\n<td><strong>Sim</strong></td>\n<td>ID do participante (pessoa ou empresa) que receberá o saldo.</td>\n</tr>\n<tr>\n<td><code>balanceTypeId</code></td>\n<td><code>string</code></td>\n<td><strong>Sim</strong></td>\n<td>ID do tipo de saldo que será transferido.</td>\n</tr>\n<tr>\n<td><code>campaignId</code></td>\n<td><code>string (UUID)</code></td>\n<td><strong>Sim</strong></td>\n<td>ID da campanha associada à transferência.</td>\n</tr>\n<tr>\n<td><code>amount</code></td>\n<td><code>integer</code></td>\n<td><strong>Sim</strong></td>\n<td>Valor a ser transferido em centavos (min. 1, número inteiro positivo).</td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td><code>string</code></td>\n<td>Não</td>\n<td>Descrição da transferência (min. 1, max. 255 caracteres).</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"exemplos-de-request\">Exemplos de Request</h2>\n<p><strong>Exemplo Completo (com descrição)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"referenceId\": \"transf-2024-001\",\n  \"customerId\": \"c9bf9e5b-5e17-4c61-a7e1-1c9043f3c9c1\",\n  \"balanceTypeId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n  \"campaignId\": \"550e8400-e29b-41d4-a716-446655440000\",\n  \"amount\": 10000,\n  \"description\": \"Bônus de boas-vindas - campanha natalina\"\n}\n\n</code></pre>\n<p><strong>Exemplo Mínimo</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"referenceId\": \"transf-2024-002\",\n  \"customerId\": \"c9bf9e5b-5e17-4c61-a7e1-1c9043f3c9c1\",\n  \"balanceTypeId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n  \"campaignId\": \"550e8400-e29b-41d4-a716-446655440000\",\n  \"amount\": 1\n}\n\n</code></pre>\n<p><strong>Exemplo com Valor Alto (R$ 500,00)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"referenceId\": \"transf-premio-003\",\n  \"customerId\": \"d8e7f6a5-b4c3-2d1e-0f9a-8b7c6d5e4f3a\",\n  \"balanceTypeId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n  \"campaignId\": \"550e8400-e29b-41d4-a716-446655440000\",\n  \"amount\": 50000,\n  \"description\": \"Prêmio do sorteio mensal\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"respostas-de-sucesso-201-created\">Respostas de Sucesso (201 Created)</h2>\n<h3 id=\"nova-requisição-enfileirada\">Nova Requisição Enfileirada</h3>\n<p>Retornado quando o <code>referenceId</code> é único e a transferência foi colocada na fila com sucesso.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"transferQueueId\": \"d290f1ee-6c54-4b01-90e6-d701748f0851\",\n  \"referenceId\": \"transf-2024-001\",\n  \"status\": \"QUEUED\",\n  \"jobId\": \"bull:balance-transfer-abc123:1\"\n}\n\n</code></pre>\n<h3 id=\"requisição-duplicada-idempotência\">Requisição Duplicada (Idempotência)</h3>\n<p>Retornado quando você envia o mesmo <code>referenceId</code> novamente. O campo <code>status</code> reflete o estado atual da transferência existente.</p>\n<p><strong>Ainda na fila</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"transferQueueId\": \"d290f1ee-6c54-4b01-90e6-d701748f0851\",\n  \"referenceId\": \"transf-2024-001\",\n  \"status\": \"QUEUED\",\n  \"message\": \"Transfer already exists.\"\n}\n\n</code></pre>\n<p><strong>Em processamento</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"transferQueueId\": \"d290f1ee-6c54-4b01-90e6-d701748f0851\",\n  \"referenceId\": \"transf-2024-001\",\n  \"status\": \"PROCESSING\",\n  \"message\": \"Transfer already exists.\"\n}\n\n</code></pre>\n<p><strong>Concluída</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"transferQueueId\": \"d290f1ee-6c54-4b01-90e6-d701748f0851\",\n  \"referenceId\": \"transf-2024-001\",\n  \"status\": \"COMPLETED\",\n  \"message\": \"Transfer already exists.\"\n}\n\n</code></pre>\n<p><strong>Falhou</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"transferQueueId\": \"d290f1ee-6c54-4b01-90e6-d701748f0851\",\n  \"referenceId\": \"transf-2024-001\",\n  \"status\": \"FAILED\",\n  \"message\": \"Transfer already exists.\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"webhook-events\">Webhook Events</h2>\n<p>Como o processamento é assíncrono, você <strong>deve</strong> configurar um Webhook para receber as atualizações de status. Consulte a documentação de <a href=\"#\">Gerenciamento de Webhooks</a> para saber como registrar sua URL.</p>\n<h3 id=\"1-balance_transferprocessing\">1. <code>balance_transfer.processing</code></h3>\n<p>Disparado quando a transferência sai da fila e inicia o processamento.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"transferQueueId\": \"d290f1ee-6c54-4b01-90e6-d701748f0851\",\n  \"referenceId\": \"transf-2024-001\",\n  \"status\": \"PROCESSING\"\n}\n\n</code></pre>\n<h3 id=\"2-balance_transfercompleted\">2. <code>balance_transfer.completed</code></h3>\n<p>Disparado quando a transferência é concluída com sucesso. O campo <code>result</code> contém os detalhes da transação realizada.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"transferQueueId\": \"d290f1ee-6c54-4b01-90e6-d701748f0851\",\n  \"referenceId\": \"transf-2024-001\",\n  \"status\": \"COMPLETED\",\n  \"result\": {\n    \"transactionId\": \"tx-9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d\",\n    \"customerId\": \"c9bf9e5b-5e17-4c61-a7e1-1c9043f3c9c1\",\n    \"balanceTypeId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n    \"amount\": 10000,\n    \"description\": \"Bônus de boas-vindas - campanha natalina\"\n  }\n}\n\n</code></pre>\n<h3 id=\"3-balance_transferfailed\">3. <code>balance_transfer.failed</code></h3>\n<p>Disparado quando a transferência falha após todas as tentativas de retry (3 tentativas com backoff exponencial).</p>\n<p><strong>Saldo insuficiente da empresa</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"transferQueueId\": \"d290f1ee-6c54-4b01-90e6-d701748f0851\",\n  \"referenceId\": \"transf-2024-001\",\n  \"status\": \"FAILED\",\n  \"error\": \"Saldo insuficiente para esta operação.\"\n}\n\n</code></pre>\n<p><strong>Cliente (participante) não encontrado</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"transferQueueId\": \"d290f1ee-6c54-4b01-90e6-d701748f0851\",\n  \"referenceId\": \"transf-2024-001\",\n  \"status\": \"FAILED\",\n  \"error\": \"Cliente não encontrado.\"\n}\n\n</code></pre>\n<p><strong>Tipo de saldo não encontrado ou desabilitado</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"transferQueueId\": \"d290f1ee-6c54-4b01-90e6-d701748f0851\",\n  \"referenceId\": \"transf-2024-001\",\n  \"status\": \"FAILED\",\n  \"error\": \"Tipo de saldo não encontrado.\"\n}\n\n</code></pre>\n<p><strong>Carteira da empresa não configurada</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"transferQueueId\": \"d290f1ee-6c54-4b01-90e6-d701748f0851\",\n  \"referenceId\": \"transf-2024-001\",\n  \"status\": \"FAILED\",\n  \"error\": \"Carteira da empresa não encontrada.\"\n}\n\n</code></pre>\n<p><strong>Cliente não está em estado ativo</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"transferQueueId\": \"d290f1ee-6c54-4b01-90e6-d701748f0851\",\n  \"referenceId\": \"transf-2024-001\",\n  \"status\": \"FAILED\",\n  \"error\": \"O cliente não está em um estado ativo.\"\n}\n\n</code></pre>\n<p><strong>Empresa não encontrada ou desabilitada</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"transferQueueId\": \"d290f1ee-6c54-4b01-90e6-d701748f0851\",\n  \"referenceId\": \"transf-2024-001\",\n  \"status\": \"FAILED\",\n  \"error\": \"Empresa não encontrada.\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"fluxo-de-processamento\">Fluxo de Processamento</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[Request 201] → QUEUED → PROCESSING → COMPLETED  (sucesso)\n                                    → FAILED      (erro após retries)\n\n</code></pre><ol>\n<li><p>Sua requisição é validada e retorna <code>201</code> com status <code>QUEUED</code></p>\n</li>\n<li><p>O job entra na fila e aguarda processamento</p>\n</li>\n<li><p>Quando um worker pega o job, o status muda para <code>PROCESSING</code> e o webhook <code>balance_transfer.processing</code> é disparado</p>\n</li>\n<li><p>A transferência é executada (validações de saldo, cliente, tipo de saldo, etc.)</p>\n</li>\n<li><p><strong>Sucesso</strong>: status muda para <code>COMPLETED</code>, a transação é registrada e o webhook <code>balance_transfer.completed</code> é disparado com os detalhes da transação</p>\n</li>\n<li><p><strong>Erro</strong>: o job tenta novamente (até 3 vezes). Se falhar em todas, status muda para <code>FAILED</code> e o webhook <code>balance_transfer.failed</code> é disparado</p>\n</li>\n</ol>\n<hr />\n<h2 id=\"idempotência\">Idempotência</h2>\n<p>A rota usa a combinação de <code>referenceId</code> + <code>companyId</code> como chave de idempotência. Isso garante que:</p>\n<ul>\n<li><p>O mesmo <code>referenceId</code> nunca será processado duas vezes</p>\n</li>\n<li><p>Se você reenviar o mesmo <code>referenceId</code>, a API retorna o status atual da transferência existente</p>\n</li>\n<li><p>É seguro fazer retry de requisições que tiveram timeout ou falha de rede</p>\n</li>\n</ul>\n<p><strong>Recomendação</strong>: Use um identificador único da sua aplicação (ex: ID do seu banco de dados, UUID gerado pelo seu sistema) como <code>referenceId</code>.</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"path":["transfer","balance"],"host":["{{url-v2}}"],"query":[],"variable":[]}},"response":[{"id":"f6392abf-82a4-4257-b435-66b4f9409067","name":"201 Created","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"amount\": 100,\r\n  \"description\": \"Transfer description\",\r\n  \"status\": \"Completed\",\r\n  \"createdAt\": \"2024-01-15T10:30:00.000Z\",\r\n  \"personId\": \"123e4567-e89b-12d3-a456-426614174000\",\r\n  \"businessId\": null,\r\n  \"campaignId\": \"789e0123-e89b-12d3-a456-426614174002\"\r\n}"},{"id":"b1bd003c-fe13-4034-b874-169bedbf0eec","name":"400 Bad Request","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"123e4567-e89b-12d3-a456-426614174000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    {\r\n      \"code\": \"invalid_type\",\r\n      \"expected\": \"string\",\r\n      \"received\": \"undefined\",\r\n      \"message\": \"Required\",\r\n      \"path\": [\"balanceTypeId\"]\r\n    },\r\n    {\r\n      \"code\": \"invalid_type\",\r\n      \"expected\": \"number\",\r\n      \"received\": \"undefined\",\r\n      \"message\": \"Required\",\r\n      \"path\": [\"amount\"]\r\n    }\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"},{"id":"2cf9367e-7f03-4c9e-a8aa-17217b0d29f4","name":"400 Bad Request - Company Disabled","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Compay is disabled.\"\r\n}"},{"id":"e016cd6a-d7df-48ec-89f7-d4d4144b585b","name":"400 Bad Request - Company Balance Not Found","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Compay balance was not found.\"\r\n}"},{"id":"53626355-0e81-4c37-ab06-0f971c31952a","name":"400 Bad Request - Balance Type Disabled","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Balance Type is disabled.\"\r\n}"},{"id":"65b2a927-bae8-462f-b5ff-4f9092cfed44","name":"400 Bad Request - Customer Disabled","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Person is disabled.\"\r\n}"},{"id":"593ae240-0787-4dc2-83c6-5741ddb08ac9","name":"400 Bad Request - Customer Not Ready for Transaction","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Person is not ready for the transaction.\"\r\n}"},{"id":"f0d75b23-0b53-402f-8321-073479d8ea4b","name":"400 Bad Request - Insufficient Balance","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Insufficient balance for transfer\"\r\n}"},{"id":"367ba5b7-cee0-4b2c-9dd1-ef5b7883cc0f","name":"400 Bad Request - Company Does Not Have Enough Balance for Pre-registration","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Company does not have enough balance for the transfer.\"\r\n}"},{"id":"b2cc0ce3-ad23-44f3-8ac4-f338d731088c","name":"400 Bad Request - Balance Not Found by Balance Type ID","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"It was not possible to find the balance by Balance Type ID.\"\r\n}"},{"id":"fe26a857-d118-4fd1-8ea3-d567ce5f795f","name":"400 Bad Request - Company Does Not Have Enough Balance for Transfer","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": \"A carteira da empresa não possui saldo suficiente para realizar esta operação. Por favor, crie uma solicitação de saldo ou entre em contato com o suporte para resolver o problema.: [company-id]\",\r\n  \"code\": 3002\r\n}"},{"id":"a66e37d1-5d1a-498b-b7fc-5f4df0876e4d","name":"401 Unauthorized","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 401,\r\n  \"message\": \"API key is missing\",\r\n  \"error\": \"Unauthorized\"\r\n}"},{"id":"51200196-f46e-4e6f-be6a-f49e33f3c1ee","name":"401 Unauthorized","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 401,\r\n  \"message\": \"Invalid API key\",\r\n  \"error\": \"Unauthorized\"\r\n}"},{"id":"ca6c65f2-0e33-49bb-804a-23be57d51745","name":"404 Not Found - Company Not Found","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"123e4567-e89b-12d3-a456-426614174000\",\r\n  \"balanceTypeId\": \"456e7890-e89b-12d3-a456-426614174001\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Company was not found.\"\r\n}"},{"id":"4dc90dc5-c8d1-4322-aff6-41ec26ebc10d","name":"404 Not Found - Balance Type Not Found","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"123e4567-e89b-12d3-a456-426614174000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Balance Type was not found.\"\r\n}"},{"id":"69219f63-87e4-473f-b8fd-622b6de51cd3","name":"404 Not Found - Customer Not Found","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Person was not found.\"\r\n}"},{"id":"5c2660b4-5b38-4225-bf98-0ebb1e22ba96","name":"404 Not Found - Campaign Not Found","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"123e4567-e89b-12d3-a456-426614174000\",\r\n  \"balanceTypeId\": \"456e7890-e89b-12d3-a456-426614174001\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"code\": \"BAD_REQUEST\",\r\n  \"message\": \"Campaign was not found.\"\r\n}"},{"id":"23a5d7e5-1009-4cd0-88b9-4067adb80e50","name":"404 Not Found - Company Disabled","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 404,\r\n  \"message\": \"A empresa [company-id] está desativada. Por favor, entre em contato com o suporte para resolver o problema.\",\r\n  \"code\": 3006\r\n}"},{"id":"6ea47a78-0dd6-4ea2-b9e2-cc8a31e61c36","name":"404 Not Found - Balance Type Not Found in Origin Company","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 404,\r\n  \"message\": \"Tipo de saldo não encontrado na empresa de origem: Company: [company-id] - Balance Type: [00000000-0000-0000-0000-000000000000]\",\r\n  \"code\": 3007\r\n}"},{"id":"e6e10116-39ec-4cc5-9674-2709ab49fc1d","name":"404 Not Found - Balance Type Disabled","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 404,\r\n  \"message\": \"Tipo de saldo informado está desativado: Company: [company-id] - Balance Type: [00000000-0000-0000-0000-000000000000]\",\r\n  \"code\": 3008\r\n}"},{"id":"0bdfdae6-9412-49e3-9279-aba6550dbcf5","name":"404 Not Found - Entity Not Found","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":[],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\r\n  \"statusCode\": 404,\r\n  \"message\": \"O Person informado não foi encontrado: Company: [company-id] - Customer: [00000000-0000-0000-0000-000000000000]\",\r\n  \"code\": 3009\r\n}"},{"id":"de6791cd-d71c-4ab0-9d77-dd6f7f2710e8","name":"404 Not Found - Balance Type Not Found in Receiver","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 404,\r\n  \"message\": \"Tipo de saldo não foi encontrado na carteira do recebedor: Person: [person-id] - Balance Type: [00000000-0000-0000-0000-000000000000]. Favor entrar em contato com o suporte.\",\r\n  \"code\": 2008\r\n}"},{"id":"6f6ec64f-ac27-4a98-8673-f3ed5e3cba6e","name":"409 Conflict - Transfer in Progress","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"123e4567-e89b-12d3-a456-426614174000\",\r\n  \"balanceTypeId\": \"456e7890-e89b-12d3-a456-426614174001\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 409,\r\n  \"message\": \"Já existe uma transferência em andamento para este saldo.\",\r\n  \"error\": \"Conflict\"\r\n}"},{"id":"b4193422-5c85-46c1-bc0f-90557557f3ba","name":"500 Internal Server Error - User Disabled","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 500,\r\n  \"message\": \"O usuário user-id está desativado, Por favor, entre em contato com o suporte para resolver o problema.\",\r\n  \"code\": 2006\r\n}"},{"id":"c2bf319f-7ccd-4194-a6e6-7b7ad21248cc","name":"500 Internal Server Error - User Not Ready for Transaction","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 500,\r\n  \"message\": \"O usuário user-id não esta apto a receber transações no momento, Por favor, entre em contato com o suporte para resolver o problema.\",\r\n  \"code\": 2007\r\n}"},{"id":"15d18da5-46e2-4c4f-972d-c6e9ef25267a","name":"500 Internal Server Error - Campaign Search Error","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 500,\r\n  \"message\": \"Erro ao buscar campanha: Error details, Por favor, entre em contato com o suporte para resolver o problema.\",\r\n  \"code\": 5000\r\n}"},{"id":"5c2b92a0-3fef-42a9-b7a2-748ce0a46d9d","name":"500 Internal Server Error - Transfer Failed","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 500,\r\n  \"message\": \"Não foi possível realizar a transferência. Tente novamente mais tarde, ou entre em contato com o suporte.\",\r\n  \"code\": 5000,\r\n  \"details\": {\r\n    \"error\": \"Transaction failure details\"\r\n  }\r\n}"}],"_postman_id":"deebdb6c-0fab-46d7-b2b8-7162e9f44705"}],"id":"185605c3-20dd-4a0c-9fc0-a4c8bcc30a27","description":"<p>Transfer section handles financial transactions and balance management.</p>\n","_postman_id":"185605c3-20dd-4a0c-9fc0-a4c8bcc30a27","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}}},{"name":"Card","item":[{"name":"Virtual Card","item":[{"name":"Issue a Virtual Card","id":"a5b68d21-9202-4cea-b2db-d66d38b7550d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"personId\": \"00000000-0000-0000-0000-000000000000\",\r\n    \"singleUse\": \"yes\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/card/virtual","description":"<h4 id=\"every-user-created-through-the-creation-route-once-approved-will-automatically-have-a-card-already-generated\">(Every user created through the creation route, once approved, will automatically have a card already generated)</h4>\n<p>Create Virtual Card</p>\n<p>This endpoint allows you to create a new virtual card for an active person in your system. The card is issued through the platform and can be configured as either a single-use card (for one-time transactions) or a reusable card for ongoing use.</p>\n<h3 id=\"request-body\">Request Body</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Requirement</th>\n<th>Rule</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>personId</td>\n<td>string</td>\n<td>Required</td>\n<td>Must be a valid UUID of an existing person.</td>\n</tr>\n<tr>\n<td>singleUse</td>\n<td>boolean</td>\n<td>Optional</td>\n<td>Determines if the card can only be used once. Default: false.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"response-structure\">Response Structure</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>string</td>\n<td>Unique virtual card identifier</td>\n</tr>\n<tr>\n<td>status</td>\n<td>string</td>\n<td>Card status (active, inactive, etc.)</td>\n</tr>\n<tr>\n<td>panMasked</td>\n<td>string</td>\n<td>Masked Primary Account Number (e.g., \"1234\")</td>\n</tr>\n<tr>\n<td>expiry</td>\n<td>string</td>\n<td>Card expiry date (ISO 8601 format)</td>\n</tr>\n<tr>\n<td>singleUse</td>\n<td>boolean</td>\n<td>Whether the card is single-use</td>\n</tr>\n<tr>\n<td>createdAt</td>\n<td>string</td>\n<td>Card creation timestamp (ISO 8601 format)</td>\n</tr>\n<tr>\n<td>updatedAt</td>\n<td>string</td>\n<td>Card last update timestamp (ISO 8601 format)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"validation-rules\">Validation Rules</h3>\n<h4 id=\"person-validation\">Person Validation</h4>\n<ul>\n<li><p>Person must exist and belong to your company</p>\n</li>\n<li><p>Person must have status 'Active'</p>\n</li>\n<li><p>Person must have valid Swap integration data</p>\n</li>\n<li><p>Person must have a valid balance group with Swap integration</p>\n</li>\n</ul>\n<h4 id=\"company-validation\">Company Validation</h4>\n<ul>\n<li><p>Company must exist and have valid Swap integration</p>\n</li>\n<li><p>Company must have a valid treasury account holder ID</p>\n</li>\n</ul>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"path":["card","virtual"],"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"3dcb4f81-21cd-409c-9c8a-e85224a68696","name":"201 Created","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"personId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"singleUse\": true\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/card/virtual"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"id\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"status\": \"active\",\r\n  \"panMasked\": \"5123********1234\",\r\n  \"singleUse\": true,\r\n  \"expiry\": \"2027-06-01T00:00:00.000Z\",\r\n  \"personId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"createdAt\": \"2025-10-15T12:00:00.000Z\",\r\n  \"updatedAt\": \"2024-01-15T10:30:00.000Z\"\r\n}"},{"id":"428fdec5-9a80-47a8-997c-8cb07caaa5fa","name":"400 Bad Request - Company lacks valid integration","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"personId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/card/virtual"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": \"Company does not have a valid integration.\"\r\n}"},{"id":"4e95444c-7397-4daa-8c9f-b7a207d772e7","name":"400 Bad Request - Body validation failed","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"personId\": \"\",\r\n  \"singleUse\": \"yes\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/card/virtual"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    {\r\n      \"code\": \"invalid_type\",\r\n      \"expected\": \"string\",\r\n      \"received\": \"undefined\",\r\n      \"message\": \"Required\",\r\n      \"path\": [\"personId\"]\r\n    }\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"},{"id":"69d776df-476c-4d47-b4ea-9c7a8642ff3b","name":"400 Bad Request - Invalid Boolean Value","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"personId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/card/virtual"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    {\r\n      \"code\": \"invalid_type\",\r\n      \"expected\": \"boolean\",\r\n      \"received\": \"string\",\r\n      \"message\": \"Expected boolean, received string\",\r\n      \"path\": [\"singleUse\"]\r\n    }\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"},{"id":"cd0bef71-a5d8-4a3d-bf51-0f911ff2a7ea","name":"400 Not Found - Person Not Active","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"personId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/card/virtual"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": \"Person is not active.\"\r\n}"},{"id":"676582b1-428b-4267-be84-4154c705aefe","name":"400 Not Found - Company Does Not Have Valid Integration","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"personId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/card/virtual"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": \"Company does not have a valid integration.\",\r\n  \"error\": \"Bad Request\"\r\n}"},{"id":"9a422364-bde8-4cd3-8939-03ab70017f0a","name":"400 Not Found - Virtual Card Creation Failed","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"personId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/card/virtual"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": \"It was not possible to create the virtual card.\"\r\n}"},{"id":"b74da30c-e5ee-4379-99f0-de7c8d5b819f","name":"401 Unauthorized - Missing/invalid API key","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"personId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/card/virtual"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 401,\r\n  \"message\": \"API key is missing\"\r\n}"},{"id":"69cdd67a-75e4-453a-9f87-89ee141bc798","name":"404 Not Found - Person not found or not in your company","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"personId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/card/virtual"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 404,\r\n  \"message\": \"Person was not found.\",\r\n  \"error\": \"Not Found\"\r\n}"}],"_postman_id":"a5b68d21-9202-4cea-b2db-d66d38b7550d"},{"name":"Retrieve Virtual Cards","id":"f285b01e-4066-446a-a9fd-3d532c2c804b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{url}}/card/virtual","description":"<h2 id=\"retrieve-virtual-cards\">Retrieve Virtual Cards</h2>\n<p>This endpoint allows you to retrieve a paginated list of virtual cards for a specific person. Results are filtered by the person ID and can be searched by masked card number for easy identification.</p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Requirement</th>\n<th>Rule</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>personId</td>\n<td>string</td>\n<td>Required</td>\n<td>Must be a valid UUID of an existing person.</td>\n</tr>\n<tr>\n<td>page</td>\n<td>integer</td>\n<td>Optional</td>\n<td>Page number (starts from 1). Default: 1. Min: 1. Max: 9999.</td>\n</tr>\n<tr>\n<td>limit</td>\n<td>integer</td>\n<td>Optional</td>\n<td>Number of items per page. Default: 10. Min: 1. Max: 9999.</td>\n</tr>\n<tr>\n<td>query</td>\n<td>string</td>\n<td>Optional</td>\n<td>Search term to filter by masked card number.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"response-structure\">Response Structure</h3>\n<h4 id=\"pagination-information\">Pagination Information</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>data</td>\n<td>array</td>\n<td>Array of virtual card objects</td>\n</tr>\n<tr>\n<td>totalItems</td>\n<td>integer</td>\n<td>Total number of virtual cards for the person</td>\n</tr>\n<tr>\n<td>totalPages</td>\n<td>integer</td>\n<td>Total number of pages available</td>\n</tr>\n<tr>\n<td>page</td>\n<td>integer</td>\n<td>Current page number</td>\n</tr>\n<tr>\n<td>limit</td>\n<td>integer</td>\n<td>Number of items per page</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"virtual-card-object\">Virtual Card Object</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>string</td>\n<td>Unique virtual card identifier</td>\n</tr>\n<tr>\n<td>status</td>\n<td>string</td>\n<td>Card status</td>\n</tr>\n<tr>\n<td>panMasked</td>\n<td>string</td>\n<td>Masked Primary Account Number</td>\n</tr>\n<tr>\n<td>singleUse</td>\n<td>boolean</td>\n<td>Whether the card is single-use</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li><p>Single-Use Cards: Can only be used for one transaction and become invalid after use</p>\n</li>\n<li><p>Reusable Cards: Can be used multiple times until expiry</p>\n</li>\n<li><p>Masking: Card numbers are masked for security (only last 4 digits visible)</p>\n</li>\n<li><p>Expiry: Cards have standard expiry dates managed by the payment platform</p>\n</li>\n<li><p>Company Scoping: You can only create and view cards for persons in your company</p>\n</li>\n<li><p>Active Status: Only active persons can have virtual cards created</p>\n</li>\n<li><p>Search: The query parameter searches within the masked card number for easy card identification</p>\n</li>\n</ul>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"path":["card","virtual"],"host":["{{url}}"],"query":[{"disabled":true,"description":{"content":"<p>Must be a valid UUID of an existing person.</p>\n","type":"text/plain"},"key":"personId","value":""},{"disabled":true,"description":{"content":"<p>Page number (starts from 1). Default: 1. Min: 1. Max: 9999.</p>\n","type":"text/plain"},"key":"page","value":""},{"disabled":true,"description":{"content":"<p>Number of items per page. Default: 10. Min: 1. Max: 9999.</p>\n","type":"text/plain"},"key":"limit","value":""},{"disabled":true,"description":{"content":"<p>Search term to filter by masked card number.</p>\n","type":"text/plain"},"key":"query","value":""}],"variable":[]}},"response":[{"id":"f9d5504b-65ca-4ca7-8e47-551eae33de20","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"url":"{{url}}/card/virtual"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"data\": [\r\n    {\r\n      \"id\": \"00000000-0000-0000-0000-000000000000\",\r\n      \"status\": \"active\",\r\n      \"panMasked\": \"5123********1234\",\r\n      \"singleUse\": false\r\n    },\r\n    {\r\n      \"id\": \"00000000-0000-0000-0000-000000000000\",\r\n      \"status\": \"inactive\",\r\n      \"panMasked\": \"5123********5678\",\r\n      \"singleUse\": true\r\n    }\r\n  ],\r\n  \"totalItems\": 2,\r\n  \"totalPages\": 1,\r\n  \"page\": 1,\r\n  \"limit\": 10\r\n}"},{"id":"36c949d1-4aa0-48be-a375-03bf127a6fa1","name":"400 Bad Request - Invalid query params","originalRequest":{"method":"GET","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"url":{"raw":"{{url}}/card/virtual","host":["{{url}}"],"path":["card","virtual"],"query":[{"key":"page","value":null,"disabled":true},{"key":"limit","value":null,"disabled":true},{"key":"personId","value":null,"disabled":true}]}},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    \"page must be greater than or equal to 1\",\r\n    \"limit must be greater than or equal to 1\",\r\n    \"personId is required\"\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"},{"id":"cff37212-cb46-40fb-a72b-0c975ec41e3f","name":"401 Unauthorized - Missing/invalid API key","originalRequest":{"method":"GET","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"url":"{{url}}/card/virtual"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 401,\r\n  \"message\": \"API key is missing\"\r\n}"}],"_postman_id":"f285b01e-4066-446a-a9fd-3d532c2c804b"}],"id":"a69224b9-ca91-4f24-bef5-8218fafe469e","_postman_id":"a69224b9-ca91-4f24-bef5-8218fafe469e","description":"","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}}}],"id":"9dfa4245-d537-4f3f-88a7-8e18fca22b3a","description":"<p>Card section manages virtual card creation and management.</p>\n","_postman_id":"9dfa4245-d537-4f3f-88a7-8e18fca22b3a","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}}},{"name":"Banking","item":[{"name":"Boleto","item":[{"name":"Pay Boleto","id":"372e555f-b7ba-4436-b3be-f91e12819267","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"x-api-key","value":"{{api_key}}","description":"<p>Company API key</p>\n"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"barcode\": \"33690000090000001004126514423149400000000000000\"\n}"},"url":"{{base_url}}/api/external/boleto/pay","description":"<h1 id=\"boleto-pay\">Boleto Pay</h1>\n<p>Pay a boleto using the company's available balance.</p>\n<hr />\n<h2 id=\"post-apiexternalboletopay\">POST /api/external/boleto/pay</h2>\n<h3 id=\"authentication\">Authentication</h3>\n<ul>\n<li><p><strong>Type</strong>: API Key + Company</p>\n</li>\n<li><p><strong>Header</strong>: <code>x-api-key</code></p>\n</li>\n<li><p><strong>Required</strong>: Yes</p>\n</li>\n</ul>\n<h3 id=\"request\">Request</h3>\n<p><strong>Method</strong>: <code>POST</code></p>\n<p><strong>URL</strong>: <code>{{base_url}}/api/external/boleto/pay</code></p>\n<p><strong>Headers</strong>:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>x-api-key</td>\n<td>string</td>\n<td>Yes</td>\n<td>Company API key</td>\n</tr>\n<tr>\n<td>Content-Type</td>\n<td>string</td>\n<td>Yes</td>\n<td>application/json</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Body</strong>:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>barcode</td>\n<td>string</td>\n<td>Yes</td>\n<td>Boleto barcode (47 digits)</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Body Example</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"barcode\": \"00190500949244918902316910436569870000000000\"\n}\n\n</code></pre>\n<h3 id=\"responses\">Responses</h3>\n<h4 id=\"200---ok-payment-successful\">200 - OK (Payment successful)</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"status\": \"success\",\n  \"logId\": \"123e4567-e89b-12d3-a456-426614174000\"\n}\n\n</code></pre>\n<h4 id=\"202---accepted-pending-operation---uncertain-state\">202 - Accepted (Pending operation - uncertain state)</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": false,\n  \"status\": \"pending\",\n  \"logId\": \"123e4567-e89b-12d3-a456-426614174000\"\n}\n\n</code></pre>\n<p><strong>Important</strong>: Status 202 means the operation was received but the final result is uncertain. The company MUST query the <code>/stuck</code> endpoint to verify the real payment status.</p>\n<h4 id=\"400---bad-request-validation-error\">400 - Bad Request (Validation error)</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"Validation error\",\n  \"message\": \"The provided data is invalid.\",\n  \"code\": 1001,\n  \"details\": [\n    {\n      \"path\": \"barcode\",\n      \"message\": \"Expected string, received undefined\"\n    }\n  ]\n}\n\n</code></pre>\n<h4 id=\"400---bad-request-insufficient-balance\">400 - Bad Request (Insufficient balance)</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"Insufficient balance\",\n  \"message\": \"Insufficient balance to complete the transaction.\",\n  \"code\": 3002,\n  \"details\": {\n    \"available\": 5000,\n    \"requested\": 15000\n  }\n}\n\n</code></pre>\n<h4 id=\"401---unauthorized\">401 - Unauthorized</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"Unauthorized\",\n  \"message\": \"Invalid or expired API key.\",\n  \"code\": 401\n}\n\n</code></pre>\n<h4 id=\"404---not-found\">404 - Not Found</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"Boleto not found\",\n  \"message\": \"Invalid or not found barcode.\",\n  \"code\": 3020\n}\n\n</code></pre>\n<h4 id=\"409---conflict-payment-in-progress\">409 - Conflict (Payment in progress)</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"Payment in progress\",\n  \"message\": \"There is already a payment being processed for this company.\",\n  \"code\": 3026\n}\n\n</code></pre>\n<h4 id=\"409---conflict-boleto-already-paid-or-in-recent-processing\">409 - Conflict (Boleto already paid or in recent processing)</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"Boleto already paid\",\n  \"message\": \"This boleto has already been paid or is in recent processing.\",\n  \"code\": 3027\n}\n\n</code></pre>\n<h4 id=\"422---unprocessable-entity-invalid-barcode\">422 - Unprocessable Entity (Invalid barcode)</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"Invalid barcode\",\n  \"message\": \"Malformed barcode. Please verify and try again.\",\n  \"code\": 3021\n}\n\n</code></pre>\n<h4 id=\"422---unprocessable-entity-outside-operating-hours\">422 - Unprocessable Entity (Outside operating hours)</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"Outside operating hours\",\n  \"message\": \"Request made outside normal operating hours for Boleto payments. Try again on the next business day.\",\n  \"code\": 3023\n}\n\n</code></pre>\n<h4 id=\"422---unprocessable-entity-limit-exceeded\">422 - Unprocessable Entity (Limit exceeded)</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"Limit exceeded\",\n  \"message\": \"Transaction limit exceeded for this account.\",\n  \"code\": 3024\n}\n\n</code></pre>\n<h4 id=\"422---unprocessable-entity-pending-payment-detected\">422 - Unprocessable Entity (Pending payment detected)</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"Pending payment\",\n  \"message\": \"There is a pending transaction for this boleto. Wait or contact support.\",\n  \"code\": 3025\n}\n\n</code></pre>\n<h4 id=\"429---too-many-requests\">429 - Too Many Requests</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"Request limit exceeded\",\n  \"message\": \"Too many requests. Wait a moment and try again.\",\n  \"code\": 429\n}\n\n</code></pre>\n<h4 id=\"500---internal-server-error\">500 - Internal Server Error</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"Internal error\",\n  \"message\": \"Internal error. Contact support.\",\n  \"code\": 3031\n}\n\n</code></pre>\n<h4 id=\"503---service-unavailable-service-temporarily-unavailable\">503 - Service Unavailable (Service temporarily unavailable)</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"Service unavailable\",\n  \"message\": \"Boleto payment service temporarily unavailable. Try again later.\",\n  \"code\": 3028\n}\n\n</code></pre>\n<h4 id=\"503---service-unavailable-institution-unavailable\">503 - Service Unavailable (Institution unavailable)</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"Institution unavailable\",\n  \"message\": \"Error communicating with the institution. Try again.\",\n  \"code\": 3029\n}\n\n</code></pre>\n<h3 id=\"important-notes\">Important Notes</h3>\n<ul>\n<li><p><strong>Available balance</strong>: Calculation considers <code>balance.value - consignedValue - totalPendingTransactions</code></p>\n</li>\n<li><p><strong>Status 202</strong>: Means uncertain state - NOT a failure. The payment may or may not have been processed. The company MUST query <code>/stuck</code> to verify the status.</p>\n</li>\n<li><p><strong>Idempotency</strong>: The same barcode cannot be paid again within 60 seconds for the same company</p>\n</li>\n<li><p><strong>Distributed lock</strong>: A company can only have one payment in progress at a time</p>\n</li>\n<li><p><strong>Rollback</strong>: If payment fails after balance debit, the value is automatically CREDITED back (not a reverse transaction, it is compensation)</p>\n</li>\n<li><p><strong>LogId</strong>: The <code>logId</code> field is the audit log identifier - save for traceability</p>\n</li>\n</ul>\n<hr />\n<h2 id=\"error-codes\">Error Codes</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Title</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>3002</td>\n<td>Insufficient balance</td>\n<td>Insufficient balance for transaction</td>\n</tr>\n<tr>\n<td>3020</td>\n<td>Boleto not found</td>\n<td>Invalid or not found barcode</td>\n</tr>\n<tr>\n<td>3021</td>\n<td>Invalid barcode</td>\n<td>Malformed barcode</td>\n</tr>\n<tr>\n<td>3022</td>\n<td>Boleto already paid</td>\n<td>Payment already made</td>\n</tr>\n<tr>\n<td>3023</td>\n<td>Outside operating hours</td>\n<td>Outside operating hours</td>\n</tr>\n<tr>\n<td>3024</td>\n<td>Limit exceeded</td>\n<td>Transaction limit exceeded</td>\n</tr>\n<tr>\n<td>3025</td>\n<td>Pending payment</td>\n<td>Pending transaction exists</td>\n</tr>\n<tr>\n<td>3026</td>\n<td>Payment in progress</td>\n<td>Payment being processed</td>\n</tr>\n<tr>\n<td>3027</td>\n<td>Duplicity</td>\n<td>Recent payment detected</td>\n</tr>\n<tr>\n<td>3028</td>\n<td>Service unavailable</td>\n<td>Service temporarily unavailable</td>\n</tr>\n<tr>\n<td>3029</td>\n<td>Institution unavailable</td>\n<td>Error communicating with institution</td>\n</tr>\n<tr>\n<td>3031</td>\n<td>Internal error</td>\n<td>Server internal error</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"path":["api","external","boleto","pay"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"f455eeab-7f9b-4255-8183-86da1079c2dc","name":"Success - 200","originalRequest":{"method":"POST","header":[],"url":"{{base_url}}/api/external/boleto/pay"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"status\": \"success\",\n  \"amount\": 6458,\n  \"barcode\": \"858700000006645803282107900708210764544880537616\",\n  \"paidAt\": \"2025-04-10T15:45:00Z\",\n  \"authentication\": \"5100\",\n  \"settleDate\": \"2025-04-10\",\n  \"issuer\": \"Companhia de Águas\",\n  \"receipt\": \"PROTOCOLO 0006363616\\r\\n1          10/04/2025        14:45\\r\\nTERM 228005 AGENTE 228005 AUTE 05100\\r\\n----------------------------------------\\r\\nAUTO 959946           RECEBIMENTO CONTA\\r\\n                    \\r\\n        COMPANHIA DE ÁGUAS\\r\\n      85870000000-6 64580328210-7      \\r\\n         90070821076-4 54488053761-6\\r\\n----------------------------------------\\r\\nDATA DE LIQUIDACAO           10/04/2025\\r\\nVALOR COBRADO                     64,58\\r\\n    VALIDO COMO RECIBO DE PAGAMENTO\\r\\n----------------------------------------\\r\\n\",\n  \"id\": \"7ef48f57-41ed-4546-b385-6ddd36ac4ac3\"\n}"},{"id":"5a94a525-8387-4214-bdf6-dff97bde40c2","name":"Pending - 202","originalRequest":{"method":"POST","header":[],"url":"{{base_url}}/api/external/boleto/pay"},"status":"Accepted","code":202,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"status\": \"pending\",\n  \"amount\": 6458,\n  \"barcode\": \"858700000006645803282107900708210764544880537616\",\n  \"id\": \"7ef48f57-41ed-4546-b385-6ddd36ac4ac3\",\n  \"message\": \"Operação recebida mas não confirmada. Verifique o status em /api/external/boleto/stuck\"\n}"},{"id":"d1b827a7-6e03-4b33-a9e9-3e882fe5f0a9","name":"Error - Insufficient Balance - 400","originalRequest":{"method":"POST","header":[],"url":"{{base_url}}/api/external/boleto/pay"},"status":"Bad Request","code":400,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"title\": \"Saldo insuficiente\",\n  \"message\": \"Saldo insuficiente para realizar o pagamento.\",\n  \"code\": 3002,\n  \"details\": {\n    \"available\": 5000,\n    \"requested\": 6458\n  }\n}"},{"id":"83a3ace4-851c-452d-b1e0-cc4ec51a374c","name":"Error - Boleto Not Found - 404","originalRequest":{"method":"POST","header":[],"url":"{{base_url}}/api/external/boleto/pay"},"status":"Not Found","code":404,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"title\": \"Boleto não encontrado\",\n  \"message\": \"Código de barras inválido ou não encontrado.\",\n  \"code\": 3020\n}"},{"id":"24db2930-f133-4971-9afe-469371300912","name":"Error - Invalid Barcode - 422","originalRequest":{"method":"POST","header":[],"url":"{{base_url}}/api/external/boleto/pay"},"status":"Unprocessable Entity","code":422,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"title\": \"Código de barras inválido\",\n  \"message\": \"Código de barras malformado. Verifique e tente novamente.\",\n  \"code\": 3021\n}"},{"id":"bb518f24-255d-47af-9fa6-6dc0e6289d88","name":"Error - Boleto Already Paid - 409","originalRequest":{"method":"POST","header":[],"url":"{{base_url}}/api/external/boleto/pay"},"status":"Conflict","code":409,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"title\": \"Boleto já pago\",\n  \"message\": \"Este boleto já foi pago.\",\n  \"code\": 3022\n}"},{"id":"9b06a8cd-be45-4ac0-80c0-1f2a58aa689e","name":"Error - Payment In Progress - 409","originalRequest":{"method":"POST","header":[],"url":"{{base_url}}/api/external/boleto/pay"},"status":"Conflict","code":409,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"title\": \"Pagamento em andamento\",\n  \"message\": \"Já existe um pagamento em andamento para esta empresa. Aguarde ou tente novamente.\",\n  \"code\": 3026\n}"},{"id":"0fd60fe6-77d3-4cd7-8dac-72c03237eb28","name":"Error - Duplicate Payment - 409","originalRequest":{"method":"POST","header":[],"url":"{{base_url}}/api/external/boleto/pay"},"status":"Conflict","code":409,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"title\": \"Pagamento duplicado\",\n  \"message\": \"Este boleto já foi pago recentemente. Verifique o histórico de pagamentos.\",\n  \"code\": 3027\n}"},{"id":"039d1d6a-5526-457a-b496-701a102ebb39","name":"Error - Outside Business Hours - 422","originalRequest":{"method":"POST","header":[],"url":"{{base_url}}/api/external/boleto/pay"},"status":"Unprocessable Entity","code":422,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"title\": \"Fora do horário de funcionamento\",\n  \"message\": \"Fora do horário de funcionamento. Tente novamente no próximo dia útil.\",\n  \"code\": 3023\n}"},{"id":"43f0e032-7fde-4999-b4ca-4010419afbbf","name":"Error - Limit Exceeded - 422","originalRequest":{"method":"POST","header":[],"url":"{{base_url}}/api/external/boleto/pay"},"status":"Unprocessable Entity","code":422,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"title\": \"Limite excedido\",\n  \"message\": \"Limite de transação excedido para esta conta.\",\n  \"code\": 3024\n}"},{"id":"c088b35f-9e1f-4e64-a3ea-9a0be86a7398","name":"Error - Pending Transaction - 422","originalRequest":{"method":"POST","header":[],"url":"{{base_url}}/api/external/boleto/pay"},"status":"Unprocessable Entity","code":422,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"title\": \"Transação pendente\",\n  \"message\": \"Existe uma transação pendente para este boleto. Aguarde ou entre em contato.\",\n  \"code\": 3025\n}"},{"id":"07e7953c-0a4d-436f-a4ae-41956f02d37a","name":"Error - Service Unavailable - 503","originalRequest":{"method":"POST","header":[],"url":"{{base_url}}/api/external/boleto/pay"},"status":"Service Unavailable","code":503,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"title\": \"Serviço indisponível\",\n  \"message\": \"Serviço de pagamento de boleto temporariamente indisponível. Tente novamente mais tarde.\",\n  \"code\": 3028\n}"},{"id":"6e726ca3-ce55-4024-9418-7342f4116525","name":"Error - Institution Unavailable - 503","originalRequest":{"method":"POST","header":[],"url":"{{base_url}}/api/external/boleto/pay"},"status":"Service Unavailable","code":503,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"title\": \"Erro de comunicação\",\n  \"message\": \"Erro ao comunicar com a instituição. Tente novamente.\",\n  \"code\": 3029\n}"},{"id":"e3ff2c1a-478d-4ec5-87f0-40f7145ba30f","name":"Error - Network Problem - 503","originalRequest":{"method":"POST","header":[],"url":"{{base_url}}/api/external/boleto/pay"},"status":"Service Unavailable","code":503,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"title\": \"Problema de conexão\",\n  \"message\": \"Problema de conexão. Verifique sua rede e tente novamente.\",\n  \"code\": 3030\n}"},{"id":"75b433ee-176c-45ad-8ac9-8d8645491368","name":"Error - Internal Error - 500","originalRequest":{"method":"POST","header":[],"url":"{{base_url}}/api/external/boleto/pay"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"title\": \"Erro interno\",\n  \"message\": \"Erro interno. Entre em contato com o suporte.\",\n  \"code\": 3031\n}"},{"id":"4d853784-a39c-4979-a4c3-ac611e7ccf99","name":"Error - Payment Failed - 200 (status: failed)","originalRequest":{"method":"POST","header":[],"url":"{{base_url}}/api/external/boleto/pay"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"status\": \"failed\",\n  \"amount\": 6458,\n  \"barcode\": \"858700000006645803282107900708210764544880537616\",\n  \"errorCode\": 3022\n}"}],"_postman_id":"372e555f-b7ba-4436-b3be-f91e12819267"},{"name":"Consult Boleto","id":"d77a6736-34d5-4820-8abf-d0c658f72ea3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"x-api-key","value":"{{api_key}}"}],"url":"{{url}}/boleto/consult?barcode=33690000090000001004126514423149400000000000000","description":"<h1 id=\"boleto-consult\">Boleto Consult</h1>\n<p>Consult information of a boleto before payment.</p>\n<hr />\n<h2 id=\"get-apiexternalboletoconsult\">GET /api/external/boleto/consult</h2>\n<h3 id=\"authentication\">Authentication</h3>\n<ul>\n<li><p><strong>Type</strong>: API Key</p>\n</li>\n<li><p><strong>Header</strong>: <code>x-api-key</code></p>\n</li>\n<li><p><strong>Required</strong>: Yes</p>\n</li>\n</ul>\n<h3 id=\"request\">Request</h3>\n<p><strong>Method</strong>: <code>GET</code></p>\n<p><strong>URL</strong>: <code>{{base_url}}/api/external/boleto/consult</code></p>\n<p><strong>Headers</strong>:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>x-api-key</td>\n<td>string</td>\n<td>Yes</td>\n<td>Company API key</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Query Params</strong>:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>barcode</td>\n<td>string</td>\n<td>Yes</td>\n<td>Boleto barcode (47 digits)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"responses\">Responses</h3>\n<h4 id=\"200---ok\">200 - OK</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"123e4567-e89b-12d3-a456-426614174000\",\n  \"barcode\": \"00190500949244918902316910436569870000000000\",\n  \"amount\": 15000,\n  \"due_date\": \"2026-12-31\",\n  \"payee\": {\n    \"name\": \"Empresa de Serviços Ltda\",\n    \"document\": \"12345678901234\"\n  },\n  \"payer\": {\n    \"name\": \"João Silva\",\n    \"document\": \"12345678901\"\n  },\n  \"status\": \"active\",\n  \"allow_change_value\": false,\n  \"isOverdue\": false,\n  \"isNearDueDate\": false,\n  \"warningMessage\": null\n}\n\n</code></pre>\n<h4 id=\"400---bad-request\">400 - Bad Request</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"Validation error\",\n  \"message\": \"The provided data is invalid.\",\n  \"code\": 1001,\n  \"details\": [\n    {\n      \"path\": \"barcode\",\n      \"message\": \"Expected string, received undefined\"\n    }\n  ]\n}\n\n</code></pre>\n<h4 id=\"401---unauthorized\">401 - Unauthorized</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"Unauthorized\",\n  \"message\": \"Invalid or expired API key.\",\n  \"code\": 401\n}\n\n</code></pre>\n<h4 id=\"404---not-found\">404 - Not Found</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"Boleto not found\",\n  \"message\": \"Invalid or not found barcode.\",\n  \"code\": 3020\n}\n\n</code></pre>\n<h4 id=\"409---conflict\">409 - Conflict</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"Boleto already paid\",\n  \"message\": \"This boleto has already been paid.\",\n  \"code\": 3022\n}\n\n</code></pre>\n<h4 id=\"422---unprocessable-entity-outside-operating-hours\">422 - Unprocessable Entity (Outside operating hours)</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"Outside operating hours\",\n  \"message\": \"Request made outside normal operating hours for Boleto payments. Try again on the next business day.\",\n  \"code\": 3023\n}\n\n</code></pre>\n<h4 id=\"422---unprocessable-entity-invalid-barcode\">422 - Unprocessable Entity (Invalid barcode)</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"Invalid barcode\",\n  \"message\": \"Malformed barcode. Please verify and try again.\",\n  \"code\": 3021\n}\n\n</code></pre>\n<h4 id=\"429---too-many-requests\">429 - Too Many Requests</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"Request limit exceeded\",\n  \"message\": \"Too many requests. Wait a moment and try again.\",\n  \"code\": 429\n}\n\n</code></pre>\n<h4 id=\"500---internal-server-error\">500 - Internal Server Error</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"Internal error\",\n  \"message\": \"Internal error. Contact support.\",\n  \"code\": 3031\n}\n\n</code></pre>\n<h4 id=\"503---service-unavailable\">503 - Service Unavailable</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"Service unavailable\",\n  \"message\": \"Boleto payment service temporarily unavailable. Try again later.\",\n  \"code\": 3028\n}\n\n</code></pre>\n<h3 id=\"important-notes\">Important Notes</h3>\n<ul>\n<li><p>The <code>amount</code> field is returned in cents (15000 = R$ 150.00)</p>\n</li>\n<li><p>The <code>isNearDueDate</code> field is true when due date is within 3 days</p>\n</li>\n<li><p>The <code>warningMessage</code> field is populated when the boleto is overdue</p>\n</li>\n<li><p>If the boleto is overdue, the <code>warningMessage</code> field will contain: \"Boleto overdue. The amount may have additional charges.\"</p>\n</li>\n</ul>\n<hr />\n<h2 id=\"error-codes\">Error Codes</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Title</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>3020</td>\n<td>Boleto not found</td>\n<td>Invalid or not found barcode</td>\n</tr>\n<tr>\n<td>3021</td>\n<td>Invalid barcode</td>\n<td>Malformed barcode</td>\n</tr>\n<tr>\n<td>3022</td>\n<td>Boleto already paid</td>\n<td>Payment already made</td>\n</tr>\n<tr>\n<td>3023</td>\n<td>Outside operating hours</td>\n<td>Outside operating hours</td>\n</tr>\n<tr>\n<td>3028</td>\n<td>Service unavailable</td>\n<td>Service temporarily unavailable</td>\n</tr>\n<tr>\n<td>3031</td>\n<td>Internal error</td>\n<td>Server internal error</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"path":["boleto","consult"],"host":["{{url}}"],"query":[{"key":"barcode","value":"33690000090000001004126514423149400000000000000"}],"variable":[]}},"response":[{"id":"f837a668-dcd4-4537-a704-d79acffe111e","name":"Success - 200","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{base_url}}/api/external/boleto/consult?barcode=858700000006645803282107900708210764544880537616","host":["{{base_url}}"],"path":["api","external","boleto","consult"],"query":[{"key":"barcode","value":"858700000006645803282107900708210764544880537616"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"9a937d8d-f22a-4ead-8c68-d1b4a1555e9b\",\n    \"barcode\": \"33690000090000001004126514423149400000000000000\",\n    \"amount\": 150000,\n    \"due_date\": \"2026-04-08\",\n    \"payee\": \"BENEFICIARIO AMBIENTE HOMOLOGACAO\",\n    \"payee_document\": \"87.754.347/0001-08\",\n    \"payer\": \"PAGADOR AMBIENTE DE HOMOLOGACAO\",\n    \"payer_document\": \"698.447.801-44\",\n    \"status\": \"pending_payment\",\n    \"allow_change_value\": false,\n    \"is_overdue\": false,\n    \"is_near_due_date\": true,\n    \"warning_message\": null\n}"},{"id":"d5d848bd-3c7d-4941-b057-707db70a5db5","name":"Error - Boleto Not Found - 404","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{base_url}}/api/external/boleto/consult?barcode=000000000000000000000000000000000000000000000000","host":["{{base_url}}"],"path":["api","external","boleto","consult"],"query":[{"key":"barcode","value":"000000000000000000000000000000000000000000000000"}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"title\": \"Boleto não encontrado\",\n  \"message\": \"Código de barras inválido ou não encontrado.\",\n  \"code\": 3020\n}"},{"id":"415b3d87-adc4-4c52-9e5d-fe1114561342","name":"Error - Invalid Barcode - 422","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{base_url}}/api/external/boleto/consult?barcode=123","host":["{{base_url}}"],"path":["api","external","boleto","consult"],"query":[{"key":"barcode","value":"123"}]}},"status":"Unprocessable Entity","code":422,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"title\": \"Código de barras inválido\",\n  \"message\": \"Código de barras malformado. Verifique e tente novamente.\",\n  \"code\": 3021\n}"},{"id":"b97ad4d8-f3d8-4c75-8d0f-822a708c628a","name":"Error - Boleto Expired - 422","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{base_url}}/api/external/boleto/consult?barcode=858700000006645803282107900708210764544880537616","host":["{{base_url}}"],"path":["api","external","boleto","consult"],"query":[{"key":"barcode","value":"858700000006645803282107900708210764544880537616"}]}},"status":"Unprocessable Entity","code":422,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"title\": \"Boleto vencido\",\n  \"message\": \"Este boleto está vencido e não pode ser pago.\",\n  \"code\": 3033\n}"},{"id":"211deeba-f6be-4f56-a6b2-0f35b8206ea9","name":"Error - Outside Business Hours - 422","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{base_url}}/api/external/boleto/consult?barcode=858700000006645803282107900708210764544880537616","host":["{{base_url}}"],"path":["api","external","boleto","consult"],"query":[{"key":"barcode","value":"858700000006645803282107900708210764544880537616"}]}},"status":"Unprocessable Entity","code":422,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"title\": \"Fora do horário de funcionamento\",\n  \"message\": \"Fora do horário de funcionamento. Tente novamente no próximo dia útil.\",\n  \"code\": 3023\n}"},{"id":"59fdae47-3afc-4768-8479-fe2ef8982b9d","name":"Error - Service Unavailable - 503","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{base_url}}/api/external/boleto/consult?barcode=858700000006645803282107900708210764544880537616","host":["{{base_url}}"],"path":["api","external","boleto","consult"],"query":[{"key":"barcode","value":"858700000006645803282107900708210764544880537616"}]}},"status":"Service Unavailable","code":503,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"title\": \"Serviço indisponível\",\n  \"message\": \"Serviço de pagamento de boleto temporariamente indisponível. Tente novamente mais tarde.\",\n  \"code\": 3028\n}"}],"_postman_id":"d77a6736-34d5-4820-8abf-d0c658f72ea3"},{"name":"Get Boleto Details","id":"f2680482-163e-4b58-8ad2-c29a49121dc4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"x-api-key","value":"{{api_key}}"}],"url":"{{url}}/api/external/boleto/02f40ab2-5beb-40a0-a5dd-9f9ecb5690ec","description":"<p>Get details of a paid boleto by ID. Use the 'id' field returned from payment response.</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"path":["api","external","boleto","02f40ab2-5beb-40a0-a5dd-9f9ecb5690ec"],"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"b969b00b-2bb1-44ba-8197-3272944c45ef","name":"Success - 200","originalRequest":{"method":"GET","header":[],"url":"{{base_url}}/api/external/boleto/7ef48f57-41ed-4546-b385-6ddd36ac4ac3"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"status\": \"paid\",\n  \"amount\": 6458,\n  \"barcode\": \"858700000006645803282107900708210764544880537616\",\n  \"paidAt\": \"2025-04-10T15:45:00Z\",\n  \"authentication\": \"5100\",\n  \"settleDate\": \"2025-04-10\",\n  \"issuer\": \"Companhia de Águas\",\n  \"receipt\": \"PROTOCOLO 0006363616\\r\\n1          10/04/2025        14:45\\r\\nTERM 228005 AGENTE 228005 AUTE 05100\\r\\n----------------------------------------\\r\\nAUTO 959946           RECEBIMENTO CONTA\\r\\n                    \\r\\n        COMPANHIA DE ÁGUAS\\r\\n      85870000000-6 64580328210-7      \\r\\n         90070821076-4 54488053761-6\\r\\n----------------------------------------\\r\\nDATA DE LIQUIDACAO           10/04/2025\\r\\nVALOR COBRADO                     64,58\\r\\n    VALIDO COMO RECIBO DE PAGAMENTO\\r\\n----------------------------------------\\r\\n\",\n  \"id\": \"7ef48f57-41ed-4546-b385-6ddd36ac4ac3\"\n}"},{"id":"f11280e7-14d6-4417-813f-e908d42b61cb","name":"Error - Boleto Not Found - 404","originalRequest":{"method":"GET","header":[],"url":"{{base_url}}/api/external/boleto/00000000-0000-0000-0000-000000000000"},"status":"Not Found","code":404,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"title\": \"Boleto não encontrado\",\n  \"message\": \"Código de barras inválido ou não encontrado.\",\n  \"code\": 3020\n}"}],"_postman_id":"f2680482-163e-4b58-8ad2-c29a49121dc4"}],"id":"104f97a9-f87c-4c86-ba85-21800e923749","description":"<p>Endpoints for consulting and paying utility bills (boletos) through the Linkpremio integration API.</p>\n<p><strong>Base URL:</strong> {{base_url}}/api/external/boleto</p>\n<p><strong>Authentication:</strong> API Key (x-api-key header)</p>\n<p><strong>Boleto to test:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><em>Serial Number</em></th>\n<th><em>Barcode</em></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>23793381286008301352856000063307789840000150000</td>\n<td>23797898400001500003381260083013525600006330</td>\n</tr>\n<tr>\n<td>12190000050000001111442325241141800000000000000</td>\n<td>12198000000000000000000000000011114232524114</td>\n</tr>\n<tr>\n<td>33690000090000001004126514423149400000000000000</td>\n<td>33694000000000000000000000000010042651442314</td>\n</tr>\n<tr>\n<td>36490000190001508760400000706457500000000009990</td>\n<td>36495000000000099900000100015087600000070645</td>\n</tr>\n<tr>\n<td>34191090080025732445903616490003691150000020000</td>\n<td>34196911500000200001090000257324450361649000</td>\n</tr>\n<tr>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div>","_postman_id":"104f97a9-f87c-4c86-ba85-21800e923749","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}}},{"name":"Pix","item":[{"name":"Order","item":[{"name":"Create","id":"68d44af6-d9bd-4d64-8053-7105b89563f6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"x-api-key","value":"","type":"text"}],"body":{"mode":"raw","raw":"{ \"transfers\": [ { \"method\": \"pix\", \"amount\": 1500, \"typeKey\": \"PHONE\", \"creditKey\": \"+5511993387834\" }, { \"method\": \"pix\", \"amount\": 2000, \"typeKey\": \"PHONE\", \"creditKey\": \"+5511993367367\" } ] }","options":{"raw":{"language":"json"}}},"url":"{{url}}/orders","description":"<p>(<strong>That's a pix request and will not be processed immediately.</strong>)</p>\n<p>This endpoint allows you to create a <strong>Pix order</strong> within a specific campaign.</p>\n<p>It supports batch transfers, where each transfer must contain the payment method, amount, and the corresponding payment details (Pix key or full bank account).</p>\n<h2 id=\"validation-rules\">Validation Rules</h2>\n<h3 id=\"general\">General</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Requirement</th>\n<th>Rule</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>transfers</code></td>\n<td>array</td>\n<td>required</td>\n<td>Must contain <strong>at least 1 item</strong></td>\n</tr>\n<tr>\n<td><code>amount</code></td>\n<td>integer</td>\n<td>required</td>\n<td>Positive number in <strong>cents</strong> (e.g., <code>1500 = R$ 15,00</code>)</td>\n</tr>\n<tr>\n<td><code>method</code></td>\n<td>string</td>\n<td>required</td>\n<td>Allowed values: <code>\"pix\"</code> or <code>\"bank_transfer\"</code></td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"pix-with-key\">Pix with key</h3>\n<p>Pix transfers support multiple key types.<br />Use the <code>typeKey</code> field to explicitly define the Pix key type.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Requirement</th>\n<th>Rule</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>typeKey</td>\n<td>string</td>\n<td>Required</td>\n<td>Defines the Pix key type. Accepted values:  <br />• PHONE  <br />• CPF  <br />• CNPJ  <br />• EMAIL  <br />• EVP (random UUID)  <br />• PIX_PAYLOAD (Pix copy-and-paste payload)</td>\n</tr>\n<tr>\n<td>creditKey</td>\n<td>string</td>\n<td>Required</td>\n<td>Accepted formats:  <br />• Phone: International format with country code (E.164), e.g., \"+1415552671\", \"+5511999999999\"  <br />• CPF: Valid Brazilian CPF (11 digits, e.g., \"12345678901\")  <br />• CNPJ: Valid Brazilian CNPJ (14 digits, e.g., \"12345678000195\")  <br />• E-mail: Valid email (e.g., \"<a href=\"https://mailto:user@example.com\">user@example.com</a>\")  <br />• EVP: Valid UUID (e.g., \"123e4567-e89b-12d3-a456-426614174000\")  <br />• PIX_PAYLOAD: EMV-compliant Pix payload (must start with \"000201\" or contains \"BR.GOV.BCB.PIX\")</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"pix-with-full-bank-details\">Pix with full bank details</h3>\n<p>StartFragment</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Requirement</th>\n<th>Rule</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>creditName</td>\n<td>string</td>\n<td>Required</td>\n<td>Beneficiary full name</td>\n</tr>\n<tr>\n<td>creditDocument</td>\n<td>string</td>\n<td>Required</td>\n<td>CPF (11 digits or 123.456.789-01) or CNPJ (14 digits or 12.345.678/0001-95)</td>\n</tr>\n<tr>\n<td>creditBankCode</td>\n<td>string</td>\n<td>Required</td>\n<td>Bank code (e.g., \"001\" = Banco do Brasil, \"237\" = Bradesco)</td>\n</tr>\n<tr>\n<td>creditAccountBranch</td>\n<td>string</td>\n<td>Required</td>\n<td>Branch number (usually 3–5 digits)</td>\n</tr>\n<tr>\n<td>creditAccountNumber</td>\n<td>string</td>\n<td>Required</td>\n<td>Account number (3–10 digits)</td>\n</tr>\n<tr>\n<td>creditAccountDigit</td>\n<td>string</td>\n<td>Required</td>\n<td>Account check digit (1 character, numeric or \"X\")</td>\n</tr>\n<tr>\n<td>creditAccountType</td>\n<td>string</td>\n<td>Required</td>\n<td>Allowed values: \"ccac\" (checking account), \"svgs\" (savings account)</td>\n</tr>\n</tbody>\n</table>\n</div><p>EndFragment</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"path":["orders"],"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"03440ff2-421b-4d0f-aa57-0a16542eb79e","name":"200 Create Pix order","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"transfers\": [\n    {\n        \"method\": \"pix\",\n        \"amount\": 2500,\n        \"typeKey\": \"PHONE\",\n        \"creditKey\": \"+5511999999998\"\n    },\n    {\n        \"method\": \"pix\",\n        \"amount\": 2500,\n        \"typeKey\": \"PHONE\",\n        \"creditKey\": \"+5511999999999\"\n    },\n    {\n        \"method\": \"pix\",\n        \"amount\": 1500,\n        \"typeKey\": \"EMAIL\",\n        \"creditKey\": \"user@example.com\"\n    }\n  ]\n}\n","options":{"raw":{"language":"json"}}},"url":"{{url}}/orders"},"status":"Created","code":201,"_postman_previewlanguage":"Text","header":[{"key":"Content-Length","value":"50"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Date","value":"Fri, 03 Oct 2025 19:34:28 GMT"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"32-vfAD3gDgUZTOQMzRslyupZu/76o\""},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-RateLimit-Limit","value":"50"},{"key":"X-RateLimit-Remaining","value":"49"},{"key":"X-RateLimit-Reset","value":"1"}],"cookie":[],"responseTime":null,"body":"{\n  \"orderId\": \"aac277d6-b06f-4f3a-9ce3-d3424bff4272\",\n  \"transfers\": [\n    {\n      \"id\": \"1b522f72-f36c-4759-8262-31780f4bd6fa\",\n      \"amount\": 2500,\n      \"method\": \"pix\",\n      \"status\": \"Processando\",\n      \"createdAt\": \"2025-11-21T19:19:04.503Z\",\n      \"creditKey\": \"+5511999999998\"\n    },\n    {\n      \"id\": \"45bd4ef9-4fad-4b2c-bb9a-7a9df2dcfb1e\",\n      \"amount\": 2500,\n      \"method\": \"pix\",\n      \"status\": \"Processando\",\n      \"createdAt\": \"2025-11-21T19:19:04.503Z\",\n      \"creditKey\": \"+5511999999999\"\n    },\n    {\n      \"id\": \"a1a210fa-ec2d-46ac-8be3-d1f9d51250f6\",\n      \"amount\": 1500,\n      \"method\": \"pix\",\n      \"status\": \"Processando\",\n      \"createdAt\": \"2025-11-21T19:19:04.503Z\",\n      \"creditKey\": \"user@example.com\"\n    }\n  ]\n}"},{"id":"d8d4b250-3c73-4545-ab6f-bd26892069d4","name":"200 Create order with bank transfer","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"transfers\": [\n    {\n      \"method\": \"bank_transfer\",\n      \"amount\": 5000,\n      \"creditName\": \"João da Silva\",\n      \"creditDocument\": \"12345678901\",\n      \"creditBankCode\": \"001\",\n      \"creditAccountBranch\": \"1234\",\n      \"creditAccountNumber\": \"56789\",\n      \"creditAccountDigit\": \"0\",\n      \"creditAccountType\": \"ccac\"\n    }\n  ]\n}\n","options":{"raw":{"language":"json"}}},"url":"{{url}}/orders"},"status":"Created","code":201,"_postman_previewlanguage":"Text","header":[{"key":"Content-Length","value":"50"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Date","value":"Fri, 03 Oct 2025 19:35:23 GMT"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"32-f3Pt2oXFhHFFndgB1LVRrudnCKI\""},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-RateLimit-Limit","value":"50"},{"key":"X-RateLimit-Remaining","value":"49"},{"key":"X-RateLimit-Reset","value":"1"}],"cookie":[],"responseTime":null,"body":"{\n  \"orderId\": \"aac277d6-b06f-4f3a-9ce3-d3424bff4272\",\n  \"transfers\": [\n    {\n      \"id\": \"7cc75cf6-21fc-46c8-be23-994d863e0765\",\n      \"amount\": 5000,\n      \"method\": \"bank_transfer\",\n      \"status\": \"Processando\",\n      \"createdAt\": \"2025-11-21T19:19:46.187Z\",\n      \"creditName\": \"João da Silva\",\n      \"creditDocument\": \"12345678901\",\n      \"creditBankName\": \"Banco do Brasil S.A.\",\n      \"creditBankIspb\": \"00000000\",\n      \"creditAccountBranch\": \"1234\",\n      \"creditAccountNumber\": \"56789\",\n      \"creditAccountDigit\": \"0\",\n      \"creditAccountType\": \"ccac\"\n    }\n  ]\n}"},{"id":"591525da-9651-4b95-9b53-16a337d12554","name":"400 Missing required field","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"transfers\": []\n}\n","options":{"raw":{"language":"json"}}},"url":"{{url}}/orders"},"status":"Bad Request","code":400,"_postman_previewlanguage":"Text","header":[{"key":"Content-Length","value":"368"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Date","value":"Fri, 03 Oct 2025 19:42:23 GMT"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"170-deZXZyCSb9Ei4zYVjXiUJXW2h9E\""},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-RateLimit-Limit","value":"50"},{"key":"X-RateLimit-Remaining","value":"49"},{"key":"X-RateLimit-Reset","value":"1"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 400,\n  \"message\": \"Validation failed\",\n  \"errors\": [\n    {\n      \"code\": \"too_small\",\n      \"minimum\": 1,\n      \"type\": \"array\",\n      \"inclusive\": true,\n      \"exact\": false,\n      \"message\": \"Pelo menos uma transferência é necessária.\",\n      \"path\": [\n        \"transfers\"\n      ]\n    }\n  ]\n}"},{"id":"2fa22189-d8db-4d9f-92bb-be1d138d6103","name":"400 Pix - invalid phone number","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"transfers\": [\n    {\n        \"method\": \"pix\",\n        \"amount\": 2500,\n        \"typeKey\": \"PHONE\",\n        \"creditKey\": \"11999999999\"\n    }\n  ]\n}\n","options":{"raw":{"language":"json"}}},"url":"{{url}}/orders"},"status":"Bad Request","code":400,"_postman_previewlanguage":"Text","header":[{"key":"Content-Length","value":"177"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Date","value":"Fri, 03 Oct 2025 19:43:17 GMT"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"b1-5jYB0P6FtZwPf/qXf+ykIL/ehh0\""},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-RateLimit-Limit","value":"50"},{"key":"X-RateLimit-Remaining","value":"49"},{"key":"X-RateLimit-Reset","value":"1"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 400,\n  \"message\": \"Validation failed\",\n  \"errors\": [\n    {\n      \"path\": [\n        \"transfers\",\n        0,\n        \"creditKey\"\n      ],\n      \"code\": \"custom\",\n      \"message\": \"Telefone inválido. Use o formato internacional com código do país (ex: +5599999999999).\"\n    }\n  ]\n}"},{"id":"1636c9fd-5b6c-4433-90fe-3bfced08af29","name":"400 Pix - type key is required","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"transfers\": [\n    {\n        \"method\": \"pix\",\n        \"amount\": 2500,\n        \"creditKey\": \"+12133734253\"\n    }\n  ]\n}\n","options":{"raw":{"language":"json"}}},"url":"{{url}}/orders"},"status":"Bad Request","code":400,"_postman_previewlanguage":"Text","header":[{"key":"Content-Length","value":"177"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Date","value":"Fri, 03 Oct 2025 19:43:17 GMT"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"b1-5jYB0P6FtZwPf/qXf+ykIL/ehh0\""},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-RateLimit-Limit","value":"50"},{"key":"X-RateLimit-Remaining","value":"49"},{"key":"X-RateLimit-Reset","value":"1"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 400,\n  \"message\": \"Validation failed\",\n  \"errors\": [\n    {\n      \"path\": [\n        \"transfers\",\n        0,\n        \"typeKey\"\n      ],\n      \"code\": \"custom\",\n      \"message\": \"O tipo da chave Pix (typeKey) é obrigatório quando o método é Pix.\"\n    }\n  ]\n}"},{"id":"29c72523-0290-41fa-90f4-399b84d31ec9","name":"400 Pix without a key","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"transfers\": [\n    {\n      \"method\": \"pix\",\n      \"amount\": 2000\n    }\n  ]\n}\n","options":{"raw":{"language":"json"}}},"url":"{{url}}/orders"},"status":"Bad Request","code":400,"_postman_previewlanguage":"Text","header":[{"key":"Content-Length","value":"177"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Date","value":"Fri, 03 Oct 2025 19:43:17 GMT"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"b1-5jYB0P6FtZwPf/qXf+ykIL/ehh0\""},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-RateLimit-Limit","value":"50"},{"key":"X-RateLimit-Remaining","value":"49"},{"key":"X-RateLimit-Reset","value":"1"}],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 400,\n  \"message\": \"Validation failed\",\n  \"errors\": [\n    {\n      \"path\": [\n        \"transfers\",\n        0,\n        \"typeKey\"\n      ],\n      \"code\": \"custom\",\n      \"message\": \"O tipo da chave Pix (typeKey) é obrigatório quando o método é Pix.\"\n    },\n    {\n      \"path\": [\n        \"transfers\",\n        0,\n        \"creditKey\"\n      ],\n      \"code\": \"custom\",\n      \"message\": \"A chave Pix é obrigatória quando o método é Pix.\"\n    }\n  ]\n}"},{"id":"60b57e57-b394-45b4-b8d4-d34bb785a522","name":"409 - Duplicated request","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"transfers\": [\n    {\n        \"method\": \"pix\",\n        \"amount\": 1500,\n        \"typeKey\": \"PHONE\",\n        \"creditKey\": \"+5511993387834\"\n    }]\n}\n","options":{"raw":{"language":"json"}}},"url":"{{url}}/orders"},"status":"Conflict","code":409,"_postman_previewlanguage":"Text","header":[],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n  \"message\": \"Essa solicitação já foi processada recentemente. Aguarde 1 minuto antes de reenviar.\",\n  \"code\": 4009,\n  \"details\": {\n    \"orderId\": \"aac277d6-b06f-4f3a-9ce3-d3424bff4272\"\n  }\n}"},{"id":"bf4088cd-e1b6-4dee-81ec-3170574ecb89","name":"500 Non existent bank","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"transfers\": [\n    {\n      \"method\": \"bank_transfer\",\n      \"amount\": 3000,\n      \"creditName\": \"Maria Souza\",\n      \"creditDocument\": \"98765432100\",\n      \"creditBankCode\": \"999\",\n      \"creditAccountBranch\": \"1234\",\n      \"creditAccountNumber\": \"98765\",\n      \"creditAccountDigit\": \"1\",\n      \"creditAccountType\": \"svgs\"\n    }\n  ]\n}\n","options":{"raw":{"language":"json"}}},"url":"{{url}}/orders"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"Text","header":[{"key":"Content-Length","value":"62"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Date","value":"Fri, 03 Oct 2025 19:44:39 GMT"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"3e-meXuo0m+bS3djeW4zqa4RQK/L8E\""},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"X-RateLimit-Limit","value":"50"},{"key":"X-RateLimit-Remaining","value":"49"},{"key":"X-RateLimit-Reset","value":"1"}],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"O banco informado não foi encontrado.\",\n  \"code\": 3201,\n  \"details\": {\n    \"bankCode\": \"999\"\n  }\n}"}],"_postman_id":"68d44af6-d9bd-4d64-8053-7105b89563f6"},{"name":"fetch-transfers","id":"e7595641-c117-4ae1-bee2-b85348d6a900","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"x-api-key","value":"{{token}}","type":"text"}],"url":"{{url}}/orders/transfers?page=1&limit=20&query=&startDate=2025-11-08T18:02:03.353Z&endDate=2025-11-08T18:02:03.353Z","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"path":["orders","transfers"],"host":["{{url}}"],"query":[{"key":"page","value":"1"},{"key":"limit","value":"20"},{"key":"query","value":""},{"key":"startDate","value":"2025-11-08T18:02:03.353Z"},{"description":{"content":"<p>timestamp</p>\n","type":"text/plain"},"key":"endDate","value":"2025-11-08T18:02:03.353Z"}],"variable":[]}},"response":[],"_postman_id":"e7595641-c117-4ae1-bee2-b85348d6a900"},{"name":"get-transfer-details","id":"771de42f-4574-4865-8cb5-7fa5a50bbb87","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{url}}/orders/transfers/:transfer_id","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"path":["orders","transfers",":transfer_id"],"host":["{{url}}"],"query":[],"variable":[{"id":"d0369149-e0ee-41d1-913e-8a301710bb4b","type":"any","value":"","key":"transfer_id"}]}},"response":[],"_postman_id":"771de42f-4574-4865-8cb5-7fa5a50bbb87"}],"id":"1a019558-a87d-45e8-8ed4-71d1bb5255ee","_postman_id":"1a019558-a87d-45e8-8ed4-71d1bb5255ee","description":"","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}}}],"id":"46d7e13c-2d36-4936-bf58-8a80250ffd24","_postman_id":"46d7e13c-2d36-4936-bf58-8a80250ffd24","description":"","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}}}],"id":"5d85ad5c-a5f2-4e29-87cc-5dd94be5a821","description":"<p>Banking section handles financial operations and payment processing.</p>\n","_postman_id":"5d85ad5c-a5f2-4e29-87cc-5dd94be5a821","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}}},{"name":"Webhooks","item":[{"name":"Banking","item":[{"name":"Pix","item":[{"name":"Order","item":[{"name":"order.updated","id":"348ab9c0-c45f-46a8-9935-4b9655fd6885","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"connection":true,"accept-encoding":true,"user-agent":true,"accept":true,"host":true,"content-type":true,"content-length":true}},"request":{"method":"HEAD","header":[{"key":"Authorization","value":"\"Bearer {{token}}\"","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"event\": \"order.updated\",\n    \"timestamp\": \"2025-11-24T23:59:40.201Z\",\n    \"webhookId\": \"7b4cc5bd-ea4b-42e1-a38f-9b31727419d3\",\n    \"orders\": [\n        {\n        \"orderId\": \"d7c41c22-9c52-48a1-9b7e-07d9c7e2a1a9\",\n        \"code\": \"925424\",\n        \"campaign\": \"Campaign Test\",\n        \"transfers\": [\n            {\n            \"transferId\": \"98aa43c1-56c9-4f62-8cd0-6f53db7f7c3e\",\n            \"identifier\": \"12345678900\",\n            \"amount\": 15000,\n            \"receiptUrl\": \"https://api.sistema.com/storage/receipts/PED123/98aa43c1-56c9-4f62-8cd0-6f53db7f7c3e.pdf\",\n            \"status\": \"sucesso\"\n            }\n        ]\n        }\n    ]\n}\n","options":{"raw":{"language":"json"}}},"url":"","description":"<h2 id=\"description\">Description</h2>\n<p>This document describes the order.updated webhook — the POST request automatically sent by the system to notify companies about orders that have had status updates (completed or with errors). The scheduled job runs daily and sends a batch of orders per company.</p>\n<h2 id=\"🕒-when-the-webhook-is-sent\">🕒 When the Webhook is Sent</h2>\n<ul>\n<li><p>Event: order.updated</p>\n</li>\n<li><p>Schedule: Daily execution (cron job), typically at 23:59 (sends orders updated on that day)</p>\n</li>\n<li><p>Batching: For each company with an active webhook, the system groups all relevant orders from the day and sends a single POST containing an array of orders</p>\n</li>\n<li><p>Filtering: Companies without configured webhooks or with inactive webhooks are ignored</p>\n</li>\n</ul>\n<h2 id=\"🌐-endpoint-configuration\">🌐 Endpoint Configuration</h2>\n<ul>\n<li><p>Method: POST</p>\n</li>\n<li><p>URL: Configurable per company — webhook.url field in the system. In Postman use {{webhook_url}}</p>\n</li>\n<li><p>Headers: Defined by company (webhook.headers field stored as JSON). If headers are invalid, the system falls back to {} (empty headers)</p>\n</li>\n<li><p>Timeout: ~15 seconds (HTTP request with timeout)</p>\n</li>\n</ul>\n<h2 id=\"field-descriptions\">Field Descriptions</h2>\n<h3 id=\"main-fields\">Main Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>event</td>\n<td>string</td>\n<td>Always \"order.updated\"</td>\n</tr>\n<tr>\n<td>timestamp</td>\n<td>string</td>\n<td>ISO timestamp when the webhook was sent</td>\n</tr>\n<tr>\n<td>webhookId</td>\n<td>string</td>\n<td>UUID of the webhook that triggered this notification</td>\n</tr>\n<tr>\n<td>orders</td>\n<td>array</td>\n<td>List of orders included in the batch for the company</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"order-object\">Order Object</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>orderId</td>\n<td>string</td>\n<td>Unique identifier of the order in the system (UUID format)</td>\n</tr>\n<tr>\n<td>code</td>\n<td>string</td>\n<td>Human-readable order code (also used to build receiptUrl)</td>\n</tr>\n<tr>\n<td>campaign</td>\n<td>string \\</td>\n<td>null</td>\n</tr>\n<tr>\n<td>transfers</td>\n<td>array</td>\n<td>List of transfers related to the order</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"transfer-object\">Transfer Object</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>transferId</td>\n<td>string</td>\n<td>Unique identifier of the transfer (UUID format)</td>\n</tr>\n<tr>\n<td>identifier</td>\n<td>string</td>\n<td>credit_key or credit_account_number (identifier of the payment destination)</td>\n</tr>\n<tr>\n<td>amount</td>\n<td>number</td>\n<td>Transfer amount in cents</td>\n</tr>\n<tr>\n<td>receiptUrl</td>\n<td>string</td>\n<td>null</td>\n</tr>\n<tr>\n<td>status</td>\n<td>string</td>\n<td>\"success\" or \"error\"</td>\n</tr>\n<tr>\n<td>error</td>\n<td>object</td>\n<td>null</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"❗-error-object-structure\"><strong>❗ Error Object Structure</strong></h2>\n<p>When a transfer fails, the <code>error</code> object provides human-readable information plus contextual metadata:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">\"error\": {\n  \"message\": \"The transaction was rejected by the destination bank.\",\n  \"code\": 2202,\n  \"details\": {\n    \"info\": \"The destination financial institution refused the operation.\",\n    \"original\": {\n      \"raw\": \"Creditor account number invalid or missing\"\n    }\n  }\n}\n\n</code></pre>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>message</code></td>\n<td>string</td>\n<td>Friendly, user-safe error message</td>\n</tr>\n<tr>\n<td><code>code</code></td>\n<td>number</td>\n<td>Standard internal error code</td>\n</tr>\n<tr>\n<td><code>details.info</code></td>\n<td>string</td>\n<td>Context description of the failure</td>\n</tr>\n<tr>\n<td><code>details.original</code></td>\n<td>object</td>\n<td>Raw error returned by the financial institution</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"error-codes-table\">Error codes table</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Type</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>2201</strong></td>\n<td>Invalid field</td>\n<td>Banking information sent to perform the transfer is invalid (e.g. account number, branch, CPF/CNPJ, ISPB, name).</td>\n</tr>\n<tr>\n<td><strong>2202</strong></td>\n<td>Bank rejected the transaction</td>\n<td>The destination financial institution refused the transfer (e.g. account inconsistency, blocked account, unsupported transaction type).</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"when-each-code-is-triggered\">When each code is triggered</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Trigger</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>2201 — Invalid field</strong></td>\n<td>The transfer failed due to invalid banking information.</td>\n</tr>\n<tr>\n<td><strong>2202 — Rejected by bank</strong></td>\n<td>The receiving bank rejected the operation for operational or data consistency reasons.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"🔍-examples\"><strong>🔍 Examples</strong></h3>\n<h4 id=\"successful-transfer\">Successful transfer</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"transferId\": \"...\",\n  \"identifier\": \"70162565453\",\n  \"amount\": 3000,\n  \"receiptUrl\": \"https://.../receipts/&lt;code class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;/&lt;id&gt;.pdf\",\n  \"status\": \"success\"\n}\n\n</code></pre>\n<h4 id=\"failed-transfer\">Failed transfer</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"transferId\": \"...\",\n  \"identifier\": \"70162565453\",\n  \"amount\": 30000000,\n  \"receiptUrl\": null,\n  \"status\": \"error\",\n  \"error\": {\n    \"message\": \"The transaction was rejected by the destination bank.\",\n    \"code\": 2202,\n    \"details\": {\n      \"info\": \"The destination financial institution refused the operation.\",\n      \"original\": {\n        \"raw\": \"Creditor account number invalid or missing\"\n      }\n    }\n  }\n}\n\n</code></pre>\n<h2 id=\"📌-key-notes\">📌 Key Notes</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Item</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Daily batching</strong></td>\n<td>Orders are sent once per day</td>\n</tr>\n<tr>\n<td><strong>Per-company scope</strong></td>\n<td>Each company receives only its own orders</td>\n</tr>\n<tr>\n<td><strong>Webhook must be active</strong></td>\n<td>Only companies with an active webhook receive notifications</td>\n</tr>\n<tr>\n<td><strong>No automatic retry</strong></td>\n<td>The integrator is responsible for retry logic if needed</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"query":[],"variable":[]}},"response":[],"_postman_id":"348ab9c0-c45f-46a8-9935-4b9655fd6885"}],"id":"8ff5c397-4a20-4e29-b97e-1aad86f3cd78","_postman_id":"8ff5c397-4a20-4e29-b97e-1aad86f3cd78","description":"","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}}}],"id":"203b707d-9b8d-45a2-8e16-eef8b22eab77","_postman_id":"203b707d-9b8d-45a2-8e16-eef8b22eab77","description":"","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}}}],"id":"1f5863da-9a2b-4ea2-9f97-69f7e7907508","_postman_id":"1f5863da-9a2b-4ea2-9f97-69f7e7907508","description":"","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}}},{"name":"Create Webhook","id":"29260e95-47ba-4240-a1c0-2f158eb29583","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"{{x-api-key}}","description":"<p>Chave de API da empresa para autenticação.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"url\": \"https://mywebsite.com/webhook-receiver\",\n  \"events\": [\n    \"person.updated\",\n    \"order.updated\"\n  ],\n  \"headers\": {\n    \"Custom-Auth-Token\": \"my-secret-token-123\"\n  },\n  \"description\": \"Webhook to notify order updates.\",\n  \"status\": \"Active\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/webhook","description":"<h1 id=\"gerenciamento-de-webhooks\">Gerenciamento de Webhooks</h1>\n<h2 id=\"visão-geral\">Visão Geral</h2>\n<p>Webhooks permitem que sua aplicação receba notificações em tempo real sobre eventos que ocorrem na plataforma. Quando um evento é disparado, a plataforma envia automaticamente uma requisição HTTP <code>POST</code> para a URL configurada, contendo os dados do evento.</p>\n<p>Esse mecanismo é essencial para acompanhar o processamento assíncrono das rotas da versão V2, como cadastro de participantes e transferência de saldo.</p>\n<hr />\n<h2 id=\"criar-webhook\">Criar Webhook</h2>\n<h3 id=\"endpoint\">Endpoint</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST /api/external/webhooks\n\n</code></pre><h3 id=\"headers\">Headers</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>x-api-key: sua-chave-api-aqui\nContent-Type: application/json\n\n</code></pre><hr />\n<h2 id=\"request-body\">Request Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>url</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>URL que receberá as notificações via HTTP POST</td>\n</tr>\n<tr>\n<td><code>events</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Lista de eventos que o webhook deve escutar</td>\n</tr>\n<tr>\n<td><code>headers</code></td>\n<td><code>object</code></td>\n<td>Não</td>\n<td>Headers personalizados enviados em cada requisição</td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td><code>string</code></td>\n<td>Não</td>\n<td>Descrição do webhook</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td><code>enum</code></td>\n<td>Não</td>\n<td><code>\"Active\"</code> ou <code>\"Disabled\"</code> (padrão: <code>\"Active\"</code>)</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"eventos-suportados\">Eventos Suportados</h2>\n<h3 id=\"eventos-gerais\">Eventos gerais</h3>\n<ul>\n<li><p><code>person.updated</code></p>\n</li>\n<li><p><code>order.updated</code></p>\n</li>\n</ul>\n<h3 id=\"eventos-assíncronos-v2\">Eventos assíncronos (V2)</h3>\n<ul>\n<li><p><code>person_registration.processing</code></p>\n</li>\n<li><p><code>person_registration.completed</code></p>\n</li>\n<li><p><code>person_registration.failed</code></p>\n</li>\n<li><p><code>balance_transfer.processing</code></p>\n</li>\n<li><p><code>balance_transfer.completed</code></p>\n</li>\n<li><p><code>balance_transfer.failed</code></p>\n</li>\n</ul>\n<hr />\n<h2 id=\"exemplo-de-request\">Exemplo de Request</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"url\": \"https://meusistema.com/webhook\",\n  \"events\": [\n    \"person_registration.completed\",\n    \"person_registration.failed\",\n    \"balance_transfer.completed\"\n  ],\n  \"headers\": {\n    \"Authorization\": \"Bearer meu-token-secreto\"\n  },\n  \"description\": \"Webhook para acompanhar cadastros e transferências\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"resposta-de-sucesso-201-created\">Resposta de Sucesso (201 Created)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"webhook-123\",\n  \"url\": \"https://meusistema.com/webhook\",\n  \"events\": [\n    \"person_registration.completed\",\n    \"balance_transfer.completed\"\n  ],\n  \"status\": \"Active\",\n  \"createdAt\": \"2026-04-30T12:00:00Z\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"funcionamento\">Funcionamento</h2>\n<p>Quando um evento ocorre:</p>\n<ol>\n<li><p>A plataforma envia uma requisição HTTP <code>POST</code> para a URL configurada</p>\n</li>\n<li><p>O corpo da requisição contém os dados do evento</p>\n</li>\n<li><p>Sua aplicação deve responder com um status HTTP da família <code>2xx</code></p>\n</li>\n</ol>\n<p>Caso a entrega falhe:</p>\n<ul>\n<li><p>A plataforma realiza até 3 tentativas de reenvio</p>\n</li>\n<li><p>É aplicado backoff exponencial entre as tentativas</p>\n</li>\n</ul>\n<hr />\n<h2 id=\"estrutura-do-payload\">Estrutura do Payload</h2>\n<h3 id=\"formato-padrão\">Formato padrão</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"event\": \"person_registration.completed\",\n  \"timestamp\": \"2026-04-30T12:00:00Z\",\n  \"data\": {}\n}\n\n</code></pre>\n<hr />\n<h2 id=\"exemplo-de-evento\">Exemplo de Evento</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"event\": \"person_registration.completed\",\n  \"timestamp\": \"2026-04-30T12:00:00Z\",\n  \"data\": {\n    \"registrationId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\",\n    \"referenceId\": \"cad-unico-2024-001\",\n    \"personId\": \"c9bf9e5b-5e17-4c61-a7e1-1c9043f3c9c1\",\n    \"status\": \"COMPLETED\"\n  }\n}\n\n</code></pre>\n<hr />\n<h2 id=\"boas-práticas\">Boas Práticas</h2>\n<h3 id=\"validação-de-origem\">Validação de Origem</h3>\n<p>Implemente mecanismos para validar a autenticidade das requisições recebidas, como:</p>\n<ul>\n<li><p>Tokens em headers personalizados</p>\n</li>\n<li><p>Validação de IP de origem</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"processamento-assíncrono\">Processamento Assíncrono</h3>\n<p>Evite realizar operações demoradas diretamente no recebimento do webhook. Recomenda-se:</p>\n<ul>\n<li><p>Registrar o evento</p>\n</li>\n<li><p>Enfileirar o processamento</p>\n</li>\n<li><p>Responder imediatamente com status <code>200</code></p>\n</li>\n</ul>\n<hr />\n<h3 id=\"tempo-de-resposta\">Tempo de Resposta</h3>\n<p>Certifique-se de que sua API responde rapidamente. Respostas lentas podem ser interpretadas como falha e gerar reenvios.</p>\n<hr />\n<h2 id=\"possíveis-problemas\">Possíveis Problemas</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Situação</th>\n<th>Possível Causa</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Webhook não recebido</td>\n<td>URL inválida ou indisponível</td>\n</tr>\n<tr>\n<td>Eventos duplicados</td>\n<td>Reenvio após falha</td>\n</tr>\n<tr>\n<td>Evento não disparado</td>\n<td>Evento não configurado no webhook</td>\n</tr>\n<tr>\n<td>Erro de autenticação</td>\n<td>Headers incorretos ou ausentes</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"path":["webhook"],"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"26488f37-7445-4eb7-92a8-62e27e61f910","name":"201 Created","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"{{x-api-key}}","description":"Chave de API da empresa para autenticação.","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"url\": \"https://mywebsite.com/webhook-receiver\",\n  \"events\": [\n    \"person.updated\",\n    \"order.updated\"\n  ],\n  \"headers\": {\n    \"Custom-Auth-Token\": \"my-secret-token-123\"\n  },\n  \"description\": \"Webhook to notify order updates.\",\n  \"status\": \"Active\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/webhook"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"id\": \"webhook-uuid-987fcdeb-51a2-43d1-b789-123456789abc\",\r\n  \"url\": \"https://orders.example.com/webhook\",\r\n  \"events\": [\"person.updated\", \"order.updated\"],\r\n  \"status\": \"Active\",\r\n  \"headers\": {\r\n    \"Authorization\": \"Bearer token123\",\r\n    \"X-Custom-Header\": \"value\"\r\n  },\r\n  \"description\": \"Main webhook for order updates\"\r\n}"},{"id":"927a929d-e140-45b1-a224-ed3b2ca653fc","name":"400 Bad Request","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"{{x-api-key}}","description":"Chave de API da empresa para autenticação.","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"url\": \"https://mywebsite.com/webhook-receiver\",\n  \"events\": [\n    \"person.updated\",\n    \"order.updated\"\n  ],\n  \"headers\": {\n    \"Custom-Auth-Token\": \"my-secret-token-123\"\n  },\n  \"description\": \"Webhook to notify order updates.\",\n  \"status\": \"Active\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/webhook"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    {\r\n      \"code\": \"invalid_type\",\r\n      \"expected\": \"string\",\r\n      \"received\": \"undefined\",\r\n      \"message\": \"Required\",\r\n      \"path\": [\"url\"]\r\n    }\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"},{"id":"b127e4e5-58a6-4ced-83e5-a7da2801c777","name":"400 Bad Request","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"{{x-api-key}}","description":"Chave de API da empresa para autenticação.","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"url\": \"https://mywebsite.com/webhook-receiver\",\n  \"events\": [\n    \"person.updated\",\n    \"order.updated\"\n  ],\n  \"headers\": {\n    \"Custom-Auth-Token\": \"my-secret-token-123\"\n  },\n  \"description\": \"Webhook to notify order updates.\",\n  \"status\": \"Active\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/webhook"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    {\r\n      \"code\": \"invalid_string\",\r\n      \"expected\": \"url\",\r\n      \"received\": \"string\",\r\n      \"message\": \"Invalid url\",\r\n      \"path\": [\"url\"]\r\n    }\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"},{"id":"4af4035e-8690-492d-bb14-05a2586253aa","name":"400 Bad Request","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"{{x-api-key}}","description":"Chave de API da empresa para autenticação.","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"url\": \"https://mywebsite.com/webhook-receiver\",\n  \"events\": [\n    \"person.updated\",\n    \"order.updated\"\n  ],\n  \"headers\": {\n    \"Custom-Auth-Token\": \"my-secret-token-123\"\n  },\n  \"description\": \"Webhook to notify order updates.\",\n  \"status\": \"Active\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/webhook"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    {\r\n      \"code\": \"invalid_type\",\r\n      \"expected\": \"array\",\r\n      \"received\": \"undefined\",\r\n      \"message\": \"Required\",\r\n      \"path\": [\"events\"]\r\n    }\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"},{"id":"1b2a506a-46c7-486e-a5b8-c85ff4c798f4","name":"400 Bad Request","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"{{x-api-key}}","description":"Chave de API da empresa para autenticação.","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"url\": \"https://mywebsite.com/webhook-receiver\",\n  \"events\": [\n    \"person.updated\",\n    \"order.updated\"\n  ],\n  \"headers\": {\n    \"Custom-Auth-Token\": \"my-secret-token-123\"\n  },\n  \"description\": \"Webhook to notify order updates.\",\n  \"status\": \"Active\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/webhook"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    {\r\n      \"code\": \"too_small\",\r\n      \"minimum\": 1,\r\n      \"type\": \"array\",\r\n      \"inclusive\": true,\r\n      \"exact\": false,\r\n      \"message\": \"Array must contain at least 1 element(s)\",\r\n      \"path\": [\"events\"]\r\n    }\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"},{"id":"81296677-fc98-4ae0-8476-e8c481789243","name":"400 Bad Request","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"{{x-api-key}}","description":"Chave de API da empresa para autenticação.","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"url\": \"https://mywebsite.com/webhook-receiver\",\n  \"events\": [\n    \"person.updated\",\n    \"order.updated\"\n  ],\n  \"headers\": {\n    \"Custom-Auth-Token\": \"my-secret-token-123\"\n  },\n  \"description\": \"Webhook to notify order updates.\",\n  \"status\": \"Active\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/webhook"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    {\r\n      \"code\": \"custom\",\r\n      \"message\": \"Invalid event provided. Allowed events: person.updated, order.updated\",\r\n      \"path\": [\"events\"]\r\n    }\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"},{"id":"9b3d305f-d824-451c-8d81-6c23cfb4f865","name":"400 Bad Request","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"{{x-api-key}}","description":"Chave de API da empresa para autenticação.","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"url\": \"https://mywebsite.com/webhook-receiver\",\n  \"events\": [\n    \"person.updated\",\n    \"order.updated\"\n  ],\n  \"headers\": {\n    \"Custom-Auth-Token\": \"my-secret-token-123\"\n  },\n  \"description\": \"Webhook to notify order updates.\",\n  \"status\": \"Active\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/webhook"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    {\r\n      \"code\": \"invalid_enum_value\",\r\n      \"options\": [\"Active\", \"Disabled\"],\r\n      \"received\": \"InvalidStatus\",\r\n      \"path\": [\"status\"],\r\n      \"message\": \"Invalid enum value. Expected 'Active' | 'Disabled', received 'InvalidStatus'\"\r\n    }\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"},{"id":"917ea06b-97fc-47f9-a9d7-23737237624b","name":"400 Bad Request","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"{{x-api-key}}","description":"Chave de API da empresa para autenticação.","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"url\": \"https://mywebsite.com/webhook-receiver\",\n  \"events\": [\n    \"person.updated\",\n    \"order.updated\"\n  ],\n  \"headers\": {\n    \"Custom-Auth-Token\": \"my-secret-token-123\"\n  },\n  \"description\": \"Webhook to notify order updates.\",\n  \"status\": \"Active\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/webhook"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    {\r\n      \"code\": \"invalid_type\",\r\n      \"expected\": \"string\",\r\n      \"received\": \"number\",\r\n      \"path\": [\"headers\", \"Authorization\"],\r\n      \"message\": \"Expected string, received number\"\r\n    }\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"},{"id":"844544bb-17c5-49db-a0f1-165167ca7ede","name":"400 Bad Request","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"{{x-api-key}}","description":"Chave de API da empresa para autenticação.","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"url\": \"https://mywebsite.com/webhook-receiver\",\n  \"events\": [\n    \"person.updated\",\n    \"order.updated\"\n  ],\n  \"headers\": {\n    \"Custom-Auth-Token\": \"my-secret-token-123\"\n  },\n  \"description\": \"Webhook to notify order updates.\",\n  \"status\": \"Active\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/webhook"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    {\r\n      \"code\": \"invalid_type\",\r\n      \"expected\": \"string\",\r\n      \"received\": \"number\",\r\n      \"path\": [\"headers\", \"123\"],\r\n      \"message\": \"Expected string, received number\"\r\n    }\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"}],"_postman_id":"29260e95-47ba-4240-a1c0-2f158eb29583"},{"name":"List Webhooks","id":"150ed546-c01e-498c-bcd8-beb9e6f06c7c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"x-api-key","value":"{{x-api-key}}","description":"<p>Chave de API da empresa para autenticação.</p>\n","type":"text"}],"url":"{{url}}/webhook","description":"<h2 id=\"description\">Description</h2>\n<p>Retrieves a paginated list of all webhooks associated with the company. This endpoint allows you to view, search, and filter your webhook subscriptions with pagination support.</p>\n<h2 id=\"response-fields-description\">Response Fields Description</h2>\n<h3 id=\"main-response-object\">Main Response Object</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>data</td>\n<td>array</td>\n<td>Array of webhook objects matching the query criteria</td>\n</tr>\n<tr>\n<td>totalItems</td>\n<td>number</td>\n<td>Total number of webhooks matching the filters (across all pages)</td>\n</tr>\n<tr>\n<td>totalPages</td>\n<td>number</td>\n<td>Total number of pages available (calculated as Math.ceil(totalItems / limit))</td>\n</tr>\n<tr>\n<td>page</td>\n<td>number</td>\n<td>Current page number</td>\n</tr>\n<tr>\n<td>limit</td>\n<td>number</td>\n<td>Number of items per page</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"webhook-object-in-data-array\">Webhook Object (in data array)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>string</td>\n<td>Unique identifier of the webhook (UUID format)</td>\n</tr>\n<tr>\n<td>url</td>\n<td>string</td>\n<td>The webhook endpoint URL</td>\n</tr>\n<tr>\n<td>events</td>\n<td>array of strings</td>\n<td>Array of events this webhook is subscribed to</td>\n</tr>\n<tr>\n<td>status</td>\n<td>string</td>\n<td>Current status of the webhook (\"Active\" or \"Disabled\")</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"important-notes\">Important Notes</h2>\n<h3 id=\"pagination\">Pagination</h3>\n<ul>\n<li><p>Default Values: If not specified, page defaults to 1 and limit defaults to 10</p>\n</li>\n<li><p>Limits: Maximum page is 9999, maximum limit is 999</p>\n</li>\n<li><p>Empty Results: Returns empty data array when no webhooks match the criteria</p>\n</li>\n</ul>\n<h3 id=\"search-and-filtering\">Search and Filtering</h3>\n<ul>\n<li><p>Query Search: The query parameter searches in webhook URLs and descriptions (case-insensitive partial match)</p>\n</li>\n<li><p>Status Filter: Use status parameter to filter by webhook status (\"Active\" or \"Disabled\")</p>\n</li>\n<li><p>Combined Filters: All filters can be used together for precise results</p>\n</li>\n</ul>\n<h3 id=\"response-data\">Response Data</h3>\n<ul>\n<li><p>Limited Fields: The response only includes essential fields (id, url, events, status)</p>\n</li>\n<li><p>Company Scoped: Only returns webhooks belonging to your company</p>\n</li>\n<li><p>Real-time Data: Results reflect the current state of your webhooks</p>\n</li>\n</ul>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"path":["webhook"],"host":["{{url}}"],"query":[{"disabled":true,"description":{"content":"<p>Page number for pagination. Must be between 1 and 9999.</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>Number of results per page. Must be between 1 and 999.</p>\n","type":"text/plain"},"key":"limit","value":"20"},{"disabled":true,"description":{"content":"<p>Search term to filter webhooks by URL or description (case-insensitive partial match).</p>\n","type":"text/plain"},"key":"query","value":""},{"disabled":true,"description":{"content":"<p>Filter results by webhook status. Allowed values: \"Active\", \"Disabled\".</p>\n","type":"text/plain"},"key":"status","value":"Active"}],"variable":[]}},"response":[{"id":"fd1a51a8-5a2c-437c-a8b4-1de75047fe4b","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"x-api-key","value":"{{x-api-key}}","description":"Chave de API da empresa para autenticação.","type":"text"}],"url":{"raw":"{{url}}/webhook","host":["{{url}}"],"path":["webhook"],"query":[{"key":"page","value":"1","description":"Page number for pagination. Must be between 1 and 9999.","disabled":true},{"key":"limit","value":"20","description":"Number of results per page. Must be between 1 and 999.","disabled":true},{"key":"query","value":"","description":"Search term to filter webhooks by URL or description (case-insensitive partial match).","disabled":true},{"key":"status","value":"Active","description":"Filter results by webhook status. Allowed values: \"Active\", \"Disabled\".","disabled":true}]}},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"data\": [\r\n    {\r\n      \"id\": \"webhook-uuid-123e4567-e89b-12d3-a456-426614174000\",\r\n      \"url\": \"https://crm.example.com/webhook-listener\",\r\n      \"events\": [\"person.updated\"],\r\n      \"status\": \"Active\"\r\n    },\r\n    {\r\n      \"id\": \"webhook-uuid-987fcdeb-51a2-43d1-b789-123456789abc\",\r\n      \"url\": \"https://analytics.example.com/webhook\",\r\n      \"events\": [\"order.updated\", \"person.updated\"],\r\n      \"status\": \"Active\"\r\n    },\r\n    {\r\n      \"id\": \"webhook-uuid-456def12-34a5-67b8-9cde-f01234567890\",\r\n      \"url\": \"https://notifications.example.com/webhook\",\r\n      \"events\": [\"order.updated\"],\r\n      \"status\": \"Disabled\"\r\n    }\r\n  ],\r\n  \"totalItems\": 3,\r\n  \"totalPages\": 1,\r\n  \"page\": 1,\r\n  \"limit\": 10\r\n}"},{"id":"d6c7a59e-5926-4485-b3ce-f19361483910","name":"401 Unauthorized","originalRequest":{"method":"GET","header":[{"key":"x-api-key","value":"{{x-api-key}}","description":"Chave de API da empresa para autenticação.","type":"text"}],"url":{"raw":"{{url}}/webhook","host":["{{url}}"],"path":["webhook"],"query":[{"key":"page","value":"1","disabled":true},{"key":"limit","value":"20","disabled":true},{"key":"query","value":"","disabled":true},{"key":"status","value":"Active","disabled":true}]}},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 401,\r\n  \"message\": \"API key is missing\",\r\n  \"error\": \"Unauthorized\"\r\n}"},{"id":"c7bacb05-25ba-4d82-b60f-7f9fc62444dd","name":"400 Bad Request","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"{{x-api-key}}","description":"Chave de API da empresa para autenticação.","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"url\": \"https://mywebsite.com/webhook-receiver\",\n  \"events\": [\n    \"person.updated\",\n    \"order.updated\"\n  ],\n  \"headers\": {\n    \"Custom-Auth-Token\": \"my-secret-token-123\"\n  },\n  \"description\": \"Webhook to notify order updates.\",\n  \"status\": \"Active\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/webhook"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    {\r\n      \"code\": \"too_small\",\r\n      \"minimum\": 1,\r\n      \"type\": \"number\",\r\n      \"inclusive\": true,\r\n      \"exact\": false,\r\n      \"message\": \"Number must be greater than or equal to 1\",\r\n      \"path\": [\"page\"]\r\n    }\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"},{"id":"8997408e-16d5-4c15-b557-45aebf11ae12","name":"400 Bad Request","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"{{x-api-key}}","description":"Chave de API da empresa para autenticação.","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"url\": \"https://mywebsite.com/webhook-receiver\",\n  \"events\": [\n    \"person.updated\",\n    \"order.updated\"\n  ],\n  \"headers\": {\n    \"Custom-Auth-Token\": \"my-secret-token-123\"\n  },\n  \"description\": \"Webhook to notify order updates.\",\n  \"status\": \"Active\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/webhook"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    {\r\n      \"code\": \"too_small\",\r\n      \"minimum\": 1,\r\n      \"type\": \"number\",\r\n      \"inclusive\": true,\r\n      \"exact\": false,\r\n      \"message\": \"Number must be greater than or equal to 1\",\r\n      \"path\": [\"limit\"]\r\n    }\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"},{"id":"4b46705e-d88e-44ac-b99e-9917631fc9d0","name":"400 Bad Request","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"{{x-api-key}}","description":"Chave de API da empresa para autenticação.","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"url\": \"https://mywebsite.com/webhook-receiver\",\n  \"events\": [\n    \"person.updated\",\n    \"order.updated\"\n  ],\n  \"headers\": {\n    \"Custom-Auth-Token\": \"my-secret-token-123\"\n  },\n  \"description\": \"Webhook to notify order updates.\",\n  \"status\": \"Active\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/webhook"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    {\r\n      \"code\": \"too_big\",\r\n      \"maximum\": 9999,\r\n      \"type\": \"number\",\r\n      \"inclusive\": true,\r\n      \"exact\": false,\r\n      \"message\": \"Number must be less than or equal to 9999\",\r\n      \"path\": [\"page\"]\r\n    }\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"},{"id":"73430a1d-0928-4bd6-b24d-3fbaf178757a","name":"400 Bad Request","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"{{x-api-key}}","description":"Chave de API da empresa para autenticação.","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"url\": \"https://mywebsite.com/webhook-receiver\",\n  \"events\": [\n    \"person.updated\",\n    \"order.updated\"\n  ],\n  \"headers\": {\n    \"Custom-Auth-Token\": \"my-secret-token-123\"\n  },\n  \"description\": \"Webhook to notify order updates.\",\n  \"status\": \"Active\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/webhook"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    {\r\n      \"code\": \"too_big\",\r\n      \"maximum\": 999,\r\n      \"type\": \"number\",\r\n      \"inclusive\": true,\r\n      \"exact\": false,\r\n      \"message\": \"Number must be less than or equal to 999\",\r\n      \"path\": [\"limit\"]\r\n    }\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"},{"id":"41efc083-289f-4cfe-a0be-10b3170f4c4b","name":"400 Bad Request","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"{{x-api-key}}","description":"Chave de API da empresa para autenticação.","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"url\": \"https://mywebsite.com/webhook-receiver\",\n  \"events\": [\n    \"person.updated\",\n    \"order.updated\"\n  ],\n  \"headers\": {\n    \"Custom-Auth-Token\": \"my-secret-token-123\"\n  },\n  \"description\": \"Webhook to notify order updates.\",\n  \"status\": \"Active\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/webhook"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    {\r\n      \"code\": \"invalid_type\",\r\n      \"expected\": \"number\",\r\n      \"received\": \"nan\",\r\n      \"message\": \"Expected number, received nan\",\r\n      \"path\": [\"page\"]\r\n    }\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"},{"id":"d48b335f-bcad-4bee-b2e6-93c09fd4bbe0","name":"400 Bad Request","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"{{x-api-key}}","description":"Chave de API da empresa para autenticação.","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"url\": \"https://mywebsite.com/webhook-receiver\",\n  \"events\": [\n    \"person.updated\",\n    \"order.updated\"\n  ],\n  \"headers\": {\n    \"Custom-Auth-Token\": \"my-secret-token-123\"\n  },\n  \"description\": \"Webhook to notify order updates.\",\n  \"status\": \"Active\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/webhook"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    {\r\n      \"code\": \"invalid_type\",\r\n      \"expected\": \"number\",\r\n      \"received\": \"nan\",\r\n      \"message\": \"Expected number, received nan\",\r\n      \"path\": [\"limit\"]\r\n    }\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"}],"_postman_id":"150ed546-c01e-498c-bcd8-beb9e6f06c7c"},{"name":"Retrieve Webhook by ID","id":"e911bc22-1fe0-4327-8905-adc4a53eba6b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"x-api-key","value":"{{x-api-key}}","description":"<p>Chave de API da empresa para autenticação.</p>\n","type":"text"}],"url":"{{url}}/webhook/:id","description":"<h2 id=\"description\">Description</h2>\n<p>Retrieves detailed information about a specific webhook by its ID. Returns a subset of webhook fields (id, url, events, status).</p>\n<h2 id=\"response-fields-description\">Response Fields Description</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>string</td>\n<td>Unique identifier of the webhook (UUID format)</td>\n</tr>\n<tr>\n<td>url</td>\n<td>string</td>\n<td>The webhook endpoint URL where notifications are sent</td>\n</tr>\n<tr>\n<td>events</td>\n<td>array of strings</td>\n<td>Array of events this webhook is subscribed to. Possible values: \"person.updated\", \"order.updated\"</td>\n</tr>\n<tr>\n<td>status</td>\n<td>string</td>\n<td>Current status of the webhook (\"Active\" or \"Disabled\")</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"response-data\">Response Data</h3>\n<ul>\n<li><p>Limited Fields: The response only includes essential fields (not description, headers, createdAt, updatedAt)</p>\n</li>\n<li><p>No Company Validation: Unlike list endpoints, this endpoint does not validate company ownership on retrieval</p>\n</li>\n<li><p>Company Scoped: Webhooks belong to specific companies, but ownership validation is not performed on GET</p>\n</li>\n</ul>\n<h3 id=\"use-cases\">Use Cases</h3>\n<ul>\n<li><p>Webhook Verification: Verify if a webhook exists before updating it</p>\n</li>\n<li><p>Quick Status Check: Check webhook status and subscribed events</p>\n</li>\n<li><p>Integration Testing: Test webhook configuration during development</p>\n</li>\n<li><p>Monitoring: Monitor webhook configuration in production systems</p>\n</li>\n</ul>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"path":["webhook",":id"],"host":["{{url}}"],"query":[],"variable":[{"id":"3c285b1e-45c3-4de9-b9df-1d397a657ec0","description":{"content":"<p>The UUID of the webhook to retrieve. Must be a valid webhook ID.</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[{"id":"70280969-a0cd-4a51-84f5-b8939f34878e","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"x-api-key","value":"{{x-api-key}}","description":"Chave de API da empresa para autenticação.","type":"text"}],"url":{"raw":"{{url}}/webhook/:id","host":["{{url}}"],"path":["webhook",":id"],"variable":[{"key":"id","value":"","description":"The UUID of the webhook to retrieve. Must be a valid webhook ID."}]}},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"id\": \"123e4567-e89b-12d3-a456-426614174000\",\r\n  \"url\": \"https://crm.example.com/webhook-listener\",\r\n  \"events\": [\"person.updated\", \"order.updated\"],\r\n  \"status\": \"Active\"\r\n}"},{"id":"acdf6078-84bf-4afa-b779-62a4c4a9e99d","name":"401 Unauthorized - Missing API key","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"personId\": \"00000000-0000-0000-0000-000000000000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/card/virtual"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 401,\r\n  \"message\": \"API key is missing\",\r\n  \"error\": \"Unauthorized\"\r\n}"},{"id":"51a7cd94-36b8-496e-b059-edf0f0a5d53f","name":"401 Unauthorized - Invalid API key","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{x-api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"balanceTypeId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"description\": \"Description\",\r\n  \"campaignId\": \"00000000-0000-0000-0000-000000000000\",\r\n  \"amount\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/transfer/balance"},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 401,\r\n  \"message\": \"Invalid API key\",\r\n  \"error\": \"Unauthorized\"\r\n}"}],"_postman_id":"e911bc22-1fe0-4327-8905-adc4a53eba6b"},{"name":"Update Webhook","id":"98b10106-3ccd-407c-afea-c468420f69ef","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"{{x-api-key}}","description":"<p>Chave de API da empresa para autenticação.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"url\": \"https://mywebsite.com/new-endpoint\",\n  \"status\": \"Disabled\",\n  \"events\": [\n      \"person.updated\"\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/webhook/:id","description":"<h2 id=\"description\">Description</h2>\n<p>Updates the data of an existing webhook. You can send only the fields you want to change (partial update). The webhook must belong to your company and exist in the system.</p>\n<h2 id=\"request-body-parameters\">Request Body Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Requirement</th>\n<th>Rule</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>url</td>\n<td>string</td>\n<td>Optional</td>\n<td>The new URL of the webhook endpoint. Must be a valid URL format (e.g., <a href=\"https://your-system.com/webhook\">https://your-system.com/webhook</a>).</td>\n</tr>\n<tr>\n<td>events</td>\n<td>array of strings</td>\n<td>Optional</td>\n<td>The updated list of events for which this webhook will be triggered. Must contain at least 1 event. Allowed values: \"person.updated\", \"order.updated\".</td>\n</tr>\n<tr>\n<td>headers</td>\n<td>object</td>\n<td>Optional</td>\n<td>The new set of custom HTTP headers (key-value pairs) that will be sent with each webhook notification.</td>\n</tr>\n<tr>\n<td>description</td>\n<td>string</td>\n<td>Optional</td>\n<td>The new description of the webhook's purpose.</td>\n</tr>\n<tr>\n<td>status</td>\n<td>enum</td>\n<td>Optional</td>\n<td>The new status of the webhook. Possible values: \"Active\", \"Disabled\".</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"autenticação\">Autenticação</h3>\n<p>É necessário enviar a chave de API da empresa no cabeçalho <code>x-api-key</code>.</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}},"urlObject":{"path":["webhook",":id"],"host":["{{url}}"],"query":[],"variable":[{"id":"76ea7924-554a-4782-8925-102fff7895c3","description":{"content":"<p>The UUID of the webhook to be updated. Must be a valid webhook ID that belongs to your company.</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[{"id":"3b85e239-bfd3-46bd-9450-a99a3e9bcab9","name":"200 OK","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"{{x-api-key}}","description":"Chave de API da empresa para autenticação.","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"url\": \"https://mywebsite.com/new-endpoint\",\n  \"status\": \"Disabled\",\n  \"events\": [\n      \"person.updated\"\n  ]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{url}}/webhook/:id","host":["{{url}}"],"path":["webhook",":id"],"variable":[{"key":"id","value":"","description":"The UUID of the webhook to be updated. Must be a valid webhook ID that belongs to your company."}]}},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"id\": \"webhook-uuid-123e4567-e89b-12d3-a456-426614174000\",\r\n  \"url\": \"https://your-system.com/webhook-listener\",\r\n  \"events\": [\"person.updated\", \"order.updated\"],\r\n  \"status\": \"Active\"\r\n}"},{"id":"662f131d-b47f-4ab8-9de9-ee1a29fba06a","name":"429 Too Many Requests","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"{{x-api-key}}","description":"Chave de API da empresa para autenticação.","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"url\": \"https://mywebsite.com/new-endpoint\",\n  \"status\": \"Disabled\",\n  \"events\": [\n      \"person.updated\"\n  ]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{url}}/webhook/:id","host":["{{url}}"],"path":["webhook",":id"],"variable":[{"key":"id","value":"","description":"The UUID of the webhook to be updated. Must be a valid webhook ID that belongs to your company."}]}},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"Text","header":[],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\r\n  \"statusCode\": 429,\r\n  \"message\": \"Você atingiu o limite de requisições permitidas. Tente novamente mais tarde.\",\r\n  \"error\": \"Too Many Requests\"\r\n}"},{"id":"a2dfc17a-7fdc-4646-84b9-8ce1b8d40b40","name":"400 Bad Request","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"{{x-api-key}}","description":"Chave de API da empresa para autenticação.","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"url\": \"https://mywebsite.com/new-endpoint\",\n  \"status\": \"Disabled\",\n  \"events\": [\n      \"person.updated\"\n  ]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{url}}/webhook/:id","host":["{{url}}"],"path":["webhook",":id"],"variable":[{"key":"id","value":"","description":"The UUID of the webhook to be updated. Must be a valid webhook ID that belongs to your company."}]}},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    {\r\n      \"code\": \"invalid_string\",\r\n      \"expected\": \"url\",\r\n      \"received\": \"string\",\r\n      \"message\": \"Invalid url\",\r\n      \"path\": [\"url\"]\r\n    }\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"},{"id":"8b715e42-5f2a-4a35-8ebc-7517ed8f5cce","name":"400 Bad Request","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"{{x-api-key}}","description":"Chave de API da empresa para autenticação.","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"url\": \"https://mywebsite.com/new-endpoint\",\n  \"status\": \"Disabled\",\n  \"events\": [\n      \"person.updated\"\n  ]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{url}}/webhook/:id","host":["{{url}}"],"path":["webhook",":id"],"variable":[{"key":"id","value":"","description":"The UUID of the webhook to be updated. Must be a valid webhook ID that belongs to your company."}]}},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    {\r\n      \"code\": \"too_small\",\r\n      \"minimum\": 1,\r\n      \"type\": \"array\",\r\n      \"inclusive\": true,\r\n      \"exact\": false,\r\n      \"message\": \"Array must contain at least 1 element(s)\",\r\n      \"path\": [\"events\"]\r\n    }\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"},{"id":"5a7c6603-7756-43d4-8730-4f8588e68cd2","name":"400 Bad Request","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"{{x-api-key}}","description":"Chave de API da empresa para autenticação.","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"url\": \"https://mywebsite.com/new-endpoint\",\n  \"status\": \"Disabled\",\n  \"events\": [\n      \"person.updated\"\n  ]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{url}}/webhook/:id","host":["{{url}}"],"path":["webhook",":id"],"variable":[{"key":"id","value":"","description":"The UUID of the webhook to be updated. Must be a valid webhook ID that belongs to your company."}]}},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    {\r\n      \"code\": \"custom\",\r\n      \"message\": \"Invalid event provided. Allowed events: person.updated, order.updated\",\r\n      \"path\": [\"events\"]\r\n    }\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"},{"id":"674f90f1-9ff8-46b1-bb53-2803eb3aec67","name":"400 Bad Request","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"{{x-api-key}}","description":"Chave de API da empresa para autenticação.","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"url\": \"https://mywebsite.com/new-endpoint\",\n  \"status\": \"Disabled\",\n  \"events\": [\n      \"person.updated\"\n  ]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{url}}/webhook/:id","host":["{{url}}"],"path":["webhook",":id"],"variable":[{"key":"id","value":"","description":"The UUID of the webhook to be updated. Must be a valid webhook ID that belongs to your company."}]}},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    {\r\n      \"code\": \"invalid_enum_value\",\r\n      \"options\": [\"Active\", \"Disabled\"],\r\n      \"received\": \"InvalidStatus\",\r\n      \"path\": [\"status\"],\r\n      \"message\": \"Invalid enum value. Expected 'Active' | 'Disabled', received 'InvalidStatus'\"\r\n    }\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"},{"id":"0a1ac79a-6f7a-419a-b366-6e305efa0100","name":"400 Bad Request","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"{{x-api-key}}","description":"Chave de API da empresa para autenticação.","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"url\": \"https://mywebsite.com/new-endpoint\",\n  \"status\": \"Disabled\",\n  \"events\": [\n      \"person.updated\"\n  ]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{url}}/webhook/:id","host":["{{url}}"],"path":["webhook",":id"],"variable":[{"key":"id","value":"","description":"The UUID of the webhook to be updated. Must be a valid webhook ID that belongs to your company."}]}},"_postman_previewlanguage":"Text","header":null,"cookie":[],"responseTime":null,"body":"{\r\n  \"statusCode\": 400,\r\n  \"message\": [\r\n    {\r\n      \"code\": \"invalid_type\",\r\n      \"expected\": \"string\",\r\n      \"received\": \"number\",\r\n      \"path\": [\"headers\", \"Authorization\"],\r\n      \"message\": \"Expected string, received number\"\r\n    }\r\n  ],\r\n  \"error\": \"Bad Request\"\r\n}"}],"_postman_id":"98b10106-3ccd-407c-afea-c468420f69ef"}],"id":"b74070cb-1efd-4595-a61c-53f816512bab","description":"<p>Webhooks section manages real-time notifications and event subscriptions.</p>\n","_postman_id":"b74070cb-1efd-4595-a61c-53f816512bab","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","id":"f66d0b0b-4c0f-424d-a956-83eb7c2ddb19","name":"Link Premio Card API - Documentation","type":"collection"}}}],"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{token}}"}]}},"event":[{"listen":"prerequest","script":{"id":"70b5a80a-b0ba-45d7-8f25-48f552ac4159","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"c951d6ed-2df6-448d-812e-df93c8616842","type":"text/javascript","exec":[""]}}]}