Comece aqui
Primeiros passos
Do pedido de credenciais à primeira chamada autenticada.
Endereço da API
| URL base | Uso |
|---|---|
https://cuidaro.com.br/api/v1 | todas as chamadas da API v1 |
Ids de clientes, serviços, OS e endpoints são próprios de cada empresa. Descubra-os pela API (por exemplo, o serviço em
GET /services) e nunca fixe um id no código.Para testar sem emitir nota válida, use uma empresa de testes configurada com ambiente fiscal em Homologação (menu Configuração Fiscal). Esse ambiente fiscal é da empresa: a nota sair de teste ou de verdade não depende do endereço da API.
Credenciais
Quem gera as credenciais é o dono ou um administrador da empresa no Cuidaro.
- Configurações → Integrações (API) → Nova integração. Informe um nome (ex.: "Loja virtual") e marque os escopos mínimos que o sistema precisa.
- Criar integração. A tela mostra o
client_id(cli_...) e oclient_secret(cs_...) uma única vez. Entregue ao desenvolvedor por canal seguro. - Só para faturar pagamento recebido fora do Cuidaro: em Pagamentos recebidos fora do Cuidaro, a empresa libera a integração e escolhe a conta que recebe as baixas. Vem desligado.
| Escopo | Libera |
|---|---|
services:read | GET /me, clientes, OS e catálogo (leitura) |
services:write | criar clientes e OS, faturar e cancelar |
webhooks:manage | todas as rotas /webhook-endpoints |
Trocar o segredo derruba na hora todos os tokens emitidos com o anterior. Revogar desliga a integração de forma definitiva.
Primeira chamada
Peça um token (Autenticação) e chame GET /me para confirmar a empresa da credencial.
Requisição
cURL
curl -X GET 'https://cuidaro.com.br/api/v1/me' \
-H 'Accept: application/json' \
-H "Authorization: Bearer $TOKEN"
PHP
// composer require guzzlehttp/guzzle
$client = new \GuzzleHttp\Client(['base_uri' => 'https://cuidaro.com.br/api/v1/']);
$token = getenv('CUIDARO_TOKEN');
$response = $client->request('GET', 'me', [
'headers' => ['Accept' => 'application/json', 'Authorization' => 'Bearer '.$token],
'http_errors' => false,
]);
$data = json_decode((string) $response->getBody(), true);
Node.js
const token = process.env.CUIDARO_TOKEN;
const response = await fetch('https://cuidaro.com.br/api/v1/me', {
method: 'GET',
headers: { 'Accept': 'application/json', Authorization: `Bearer ${token}` },
});
const data = response.status === 204 ? null : await response.json();
Python
import os
import requests
token = os.environ["CUIDARO_TOKEN"]
response = requests.request(
"GET",
"https://cuidaro.com.br/api/v1/me",
headers={"Accept": "application/json", "Authorization": f"Bearer {token}"},
timeout=15,
)
data = response.json() if response.status_code != 204 else None
Resposta 200
{
"data": {
"integrator": {
"name": "Loja virtual",
"client_id": "cli_exemplo",
"scopes": [
"services:read",
"services:write"
]
},
"token": {
"scopes": [
"services:read",
"services:write"
],
"expires_at": "2026-10-27T15:00:00-03:00"
},
"company": {
"id": 42,
"name": "Empresa Exemplo Ltda"
}
}
}
Checklist antes de colocar no ar
- Fluxo completo testado com a empresa de testes, inclusive cancelamento e webhooks.
- Empresa de testes com ambiente fiscal em Homologação; a empresa real, com o ambiente fiscal de produção.
- Serviços do catálogo com dados fiscais completos (
nfse_ready: trueemGET /services). - Clientes enviados com endereço completo e código IBGE de 7 dígitos.
- Integração e endpoint de webhook criados na empresa real; ids descobertos de novo nela.
- Consulta periódica das OS em aberto como rede de segurança dos webhooks.
- Segredos fora do código-fonte e dos logs.
Referência gerada a partir do contrato OpenAPI 3.1 da API v1 (versão 2026-10-26), conferido contra o código por teste automatizado. Dúvidas: suporte@cuidaro.com.br.