Smart: Taxa de Cartão
Endpoints da WebApiAlcance para o CRUD de taxas de cartão consumido pelo produto Smart. Cada registro representa um lote de movimentação de cartão junto a uma credenciadora/convênio de maquininha (mcc), com os créditos e débitos do lote, a conciliação de saldo e os totais disponíveis para repasse. Os endpoints cobrem listagem com filtro por CNPJ e paginação, consulta por ID, criação, atualização e exclusão.
Todos os endpoints exigem autenticação. Veja Autenticação para o fluxo de API Key. O Swagger oficial está em api.contabilidadealcance.com.br/docs.
Campos monetários saem como string
Os campos monetários deste domínio são Decimal no schema (não float), para preservar a precisão do valor gravado no banco. O Pydantic serializa Decimal como string em JSON: por exemplo, "saldo": "-248235.22", não "saldo": -248235.22. Faça a conversão explícita (Number(...)/parseFloat) no consumidor.
Base path
/api/v1/smart-taxa-cartaoEscopos necessários
smart_taxa_cartao:read- listagem e consulta por IDsmart_taxa_cartao:write- criação, atualização e exclusão
O escopo é derivado do prefixo público da rota: /smart-taxa-cartao vira o recurso smart_taxa_cartao (hífen → underscore), e o método HTTP define a ação (read para GET, write para POST/PUT/PATCH/DELETE).
Endpoints
GET /smart-taxa-cartao/
Lista as taxas de cartão, com filtro opcional por CNPJ e paginação. Lista vazia é um estado válido - o retorno normal é 200 OK com data: [], não um erro.
Parâmetros
| Parâmetro | Tipo | Local | Obrigatório | Descrição |
|---|---|---|---|---|
cnpj | str | query | não | Filtra os registros pelo CNPJ informado. |
limit | int | query | não | Itens por página. Entre 1 e 500. Padrão 100. |
offset | int | query | não | Deslocamento de paginação. Padrão 0. |
Request
Sem corpo de requisição.
Response 200 OK
{
"status": "success",
"message": "Taxas de cartão recuperadas com sucesso",
"data": [
{
"id": 6601,
"cnpj": "12345678000199",
"mcc_cnv": "CIELO",
"mcc_lote": 990,
"mcc_dt": "2026-01-10T00:00:00",
"saldo": "-248235.22",
"co_mcc_cre": "12000.00",
"co_mcc_deb": "12300.00",
"cfo_nome": "CIELO S.A.",
"mcc_obs": null,
"mcc_doc": "990",
"st_mw": "CONCILIADO",
"saldo_fim": "-248235.22",
"saldo_conc": "-200000.00",
"saldo_nao_conc": "-48235.22",
"tot_disp": "11500.00",
"ccr_ccr_sini": "0.00",
"tot_rec": "11500.00",
"tipo": "CARTAO CREDITO",
"saldo_ini_grupo": "-236235.22",
"saldo_subtotal": "-248235.22",
"data_hora_criacao": "2026-01-15T10:00:00"
}
]
}Escopo: smart_taxa_cartao:read
GET /smart-taxa-cartao/{smart_taxa_id}
Busca uma taxa de cartão pelo ID.
Parâmetros
| Parâmetro | Tipo | Local | Obrigatório | Descrição |
|---|---|---|---|---|
smart_taxa_id | int | path | sim | ID da taxa de cartão. |
Request
Sem corpo de requisição.
Response 200 OK
{
"status": "success",
"message": "Taxa de cartão recuperada com sucesso",
"data": {
"id": 6601,
"cnpj": "12345678000199",
"saldo": "-248235.22",
"...": "demais campos como em SmartTaxaCartaoRead"
}
}Quando o ID não existe, retorna 404 Not Found com {"message": "Taxa de cartão não encontrada."}. Escopo: smart_taxa_cartao:read
POST /smart-taxa-cartao/
Cria uma nova taxa de cartão.
Parâmetros
Este endpoint não recebe parâmetros de rota ou query. O corpo é o schema SmartTaxaCartaoCreate.
Request
{
"cnpj": "12.345.678/0001-99",
"mcc_cnv": "CIELO",
"mcc_lote": 990,
"mcc_dt": "2026-01-10T00:00:00",
"saldo": -248235.22,
"co_mcc_cre": 12000.00,
"co_mcc_deb": 12300.00,
"cfo_nome": "CIELO S.A.",
"mcc_doc": "990",
"st_mw": "CONCILIADO",
"saldo_fim": -248235.22,
"saldo_conc": -200000.00,
"saldo_nao_conc": -48235.22,
"tot_disp": 11500.00,
"tot_rec": 11500.00,
"tipo": "CARTAO CREDITO",
"saldo_ini_grupo": -236235.22,
"saldo_subtotal": -248235.22
}Response 201 Created
{
"status": "success",
"message": "Taxa de cartão criada com sucesso",
"data": {
"id": 6601,
"cnpj": "12345678000199",
"saldo": "-248235.22",
"...": "demais campos como em SmartTaxaCartaoRead"
}
}Em falha inesperada ao persistir, retorna 500 Internal Server Error com {"message": "Não foi possível criar a taxa de cartão."}. Escopo: smart_taxa_cartao:write
PUT /smart-taxa-cartao/{smart_taxa_id}
Atualiza uma taxa de cartão existente. O cnpj não é editável por este endpoint - o schema de atualização não o inclui.
Parâmetros
| Parâmetro | Tipo | Local | Obrigatório | Descrição |
|---|---|---|---|---|
smart_taxa_id | int | path | sim | ID da taxa de cartão. |
O corpo é o schema SmartTaxaCartaoUpdate, com todos os campos opcionais.
Request
{
"st_mw": "CONCILIADO",
"saldo_nao_conc": 0.00
}Response 200 OK
{
"status": "success",
"message": "Taxa de cartão atualizada com sucesso",
"data": {
"id": 6601,
"cnpj": "12345678000199",
"st_mw": "CONCILIADO",
"saldo_nao_conc": "0.00",
"...": "demais campos como em SmartTaxaCartaoRead"
}
}Quando o ID não existe, retorna 404 Not Found com {"message": "Taxa de cartão não encontrada."}. Escopo: smart_taxa_cartao:write
DELETE /smart-taxa-cartao/{smart_taxa_id}
Remove uma taxa de cartão.
Parâmetros
| Parâmetro | Tipo | Local | Obrigatório | Descrição |
|---|---|---|---|---|
smart_taxa_id | int | path | sim | ID da taxa de cartão. |
Request
Sem corpo de requisição.
Response 200 OK
{
"status": "success",
"message": "Taxa de cartão removida com sucesso",
"data": null
}Quando o ID não existe, retorna 404 Not Found com {"message": "Taxa de cartão não encontrada."}. Escopo: smart_taxa_cartao:write
Schemas
SmartTaxaCartaoCreate
Corpo do POST /smart-taxa-cartao/. Todos os campos são opcionais no schema (nenhum é obrigatório para o Pydantic aceitar o payload), mas cnpj é a chave prática de identificação do cliente. Os campos monetários são Decimal. Diferente dos demais domínios da família Smart, este schema não tem o campo cfg_emp.
| Campo | Tipo | Observações |
|---|---|---|
cnpj | str | Máx. 30 caracteres. |
mcc_cnv | str | Máx. 20 caracteres. Código da credenciadora/convênio de cartão (ex.: bandeira/adquirente). |
mcc_lote | int | Número do lote de movimentação. |
mcc_dt | datetime | Data/hora do lote. |
saldo | Decimal | Saldo do lote (pode ser negativo). |
co_mcc_cre | Decimal | Valor de crédito do lote. |
co_mcc_deb | Decimal | Valor de débito do lote. |
cfo_nome | str | Máx. 300 caracteres. Nome da credenciadora/fornecedor. |
mcc_obs | str | Máx. 300 caracteres. Observação livre. |
mcc_doc | str | Máx. 20 caracteres. Número do documento do lote. |
st_mw | str | Máx. 300 caracteres. Status de conciliação do lote (ex.: CONCILIADO). |
saldo_fim | Decimal | Saldo final do lote. |
saldo_conc | Decimal | Parcela do saldo já conciliada. |
saldo_nao_conc | Decimal | Parcela do saldo ainda não conciliada. |
tot_disp | Decimal | Total disponível para repasse. |
ccr_ccr_sini | Decimal | Valor de sinistro/retenção da conta corrente de repasse. |
tot_rec | Decimal | Total recebido no lote. |
tipo | str | Máx. 300 caracteres. Tipo do lote (ex.: CARTAO CREDITO, CARTAO DEBITO). |
saldo_ini_grupo | Decimal | Saldo inicial do grupo de lotes. |
saldo_subtotal | Decimal | Subtotal do saldo no grupo. |
SmartTaxaCartaoUpdate
Corpo do PUT /smart-taxa-cartao/{smart_taxa_id}. Mesmos campos de SmartTaxaCartaoCreate, exceto cnpj - trocar o CNPJ dono do registro não é permitido por este endpoint. Todos os campos são opcionais.
SmartTaxaCartaoRead
Retornado nas listagens e nas respostas de criação/atualização. Estende SmartTaxaCartaoCreate com:
| Campo | Tipo | Notas |
|---|---|---|
id | int | Identificador do registro. |
data_hora_criacao | datetime | Data/hora de criação do registro. |
Notas
- Toda resposta segue o envelope
{ status: "success", message, data }. - Os campos monetários (
saldo,co_mcc_cre,co_mcc_deb,saldo_fim,saldo_conc,saldo_nao_conc,tot_disp,ccr_ccr_sini,tot_rec,saldo_ini_grupo,saldo_subtotal) sãoDecimale trafegam como string em JSON, tanto na entrada (aceita número ou string) quanto na saída (sempre string). Valores negativos são normais (saldo devedor do lote). - Erros de negócio manualmente sinalizados pela rota (
404 Not Found,500 Internal Server Error) seguem o formato{ "message": "..." }- não usam o campodetail. - Erros de validação de schema (tipo/formato inválido no payload) seguem o padrão do FastAPI:
422 Unprocessable Entitycom{ "detail": [...] }. GET /smart-taxa-cartao/sempre retorna200 OK; lista vazia (data: []) é estado normal, não um erro.- O filtro
?cnpj=aceita o CNPJ com ou sem máscara; internamente é normalizado antes da consulta.