Pular para o conteúdo principal
v1 no arAPI RMF

A inteligência fiscal da RMF, dentro do seu sistema.

Alíquota de ICMS por NCM e UF, consultas da Reforma Tributária, envio de SPED e XML e relatórios fiscais. Uma API REST com campos em português e erros que dizem o que fazer.

  • Sandbox separado da produção
  • Contrato OpenAPI 3.1
  • Exemplos em 7 linguagens, Delphi incluído
sandbox
GET /v1/icms/aliquotas?ncm=85414121&uf=SP&inicio=2026-10&fim=2026-10
Authorization: Bearer $RMF_API_KEY
200 OKapplication/json
{
"ncm": "85414121",
"uf": "SP",
"versao_base": "e964db7cb0e8",
"periodos": [
{
"inicio": "2026-10",
"fim": "2026-10",
"aliquota_interna": 12,
"aliquota_st": 12,
"na_st": true,
"situacao_st": "Na lista de ST",
"origem": "lei",
"confianca": "confirmada"
}
]
}

A API entrega o resultado, nunca a regra.

As respostas trazem o valor final e o estado. Não trazem memória de cálculo, fórmula nem colunas intermediárias, e cada erro diz o que fazer. Para entender um valor específico, fale com a equipe da RMF.

Exemplos

Integre hoje, na linguagem do seu sistema

O mesmo exemplo nas 7 linguagens, lendo a chave de RMF_API_KEY. Cada um roda no CI a cada mudança, antes de ir para o portal.

consulta.shconsulta de alíquota no sandbox
#!/bin/sh
# Consulta a alíquota de ICMS de um NCM e trata o 429 (espera o Retry-After).
# Precisa de RMF_API_URL (comece pelo sandbox) e RMF_API_KEY no ambiente. Requer curl e jq.
set -eu
: "${RMF_API_URL:?defina RMF_API_URL (sandbox: https://sandbox.api.rmfestrategia.com/v1)}"
: "${RMF_API_KEY:?defina RMF_API_KEY (chave rmf_test_ no sandbox)}"
tmp=$(mktemp -d)
trap 'rm -rf "$tmp"' EXIT
for tentativa in 1 2 3 4 5; do
# RMF_SIMULAR_429=1 pede ao sandbox um 429 na primeira tentativa (X-Sandbox-Simular: limite), para ver a espera funcionar
simular=""; [ "$tentativa" = 1 ] && [ "${RMF_SIMULAR_429:-}" = 1 ] && simular="X-Sandbox-Simular: limite"
status=$(curl -sS -G "$RMF_API_URL/icms/aliquotas" \
--data-urlencode ncm=85414121 --data-urlencode uf=SP \
--data-urlencode inicio=2026-10 --data-urlencode fim=2026-10 \
-H "Authorization: Bearer $RMF_API_KEY" -H 'Accept: application/json' ${simular:+-H "$simular"} \
-D "$tmp/cabecalhos" -o "$tmp/corpo" -w '%{http_code}')
if [ "$status" = 429 ]; then
espera=$(awk -F': ' 'tolower($1)=="retry-after" {print int($2)}' "$tmp/cabecalhos")
echo "429: aguardando ${espera:-1}s (tentativa $tentativa)" >&2
sleep "${espera:-1}"
continue
fi
if [ "$status" -ge 400 ]; then # application/problem+json
jq -r '"\(.codigo) (\(.request_id)): \(.detail)"' "$tmp/corpo" >&2
exit 1
fi
jq -r '.periodos[0] | "aliquota_interna=\(.aliquota_interna) aliquota_st=\(.aliquota_st) confianca=\(.confianca)"' "$tmp/corpo"
exit 0
done
echo "limite_excedido: tente mais tarde" >&2
exit 1
Roda no CI a cada mudançaBom para testar no terminal antes de escrever código.Guia completo nesta linguagem
Experimente

Do NCM ao relatório, em cinco chamadas

Escolha uma operação e veja a requisição e a resposta do sandbox. Os arquivos de exemplo do portal devolvem sempre o mesmo resultado.

Abrir na referência
GET/v1/icms/aliquotassandbox
GET /v1/icms/aliquotas?ncm=85414121&uf=SP&inicio=2026-10&fim=2026-10
Authorization: Bearer $RMF_API_KEY
200 OKapplication/json
{
"ncm": "85414121",
"uf": "SP",
"periodos": [
{
"inicio": "2026-10",
"fim": "2026-10",
"aliquota_interna": 12,
"aliquota_st": 12,
"na_st": true,
"origem": "lei",
"confianca": "confirmada"
}
]
}
O que a API faz

Seis famílias de operação, num lançamento só

Tudo abaixo está no lançamento v1, em produção. O que cada chave pode chamar depende do plano da conta e dos escopos da chave.

Lançamento v1

Consultas de ICMS

Alíquota interna por NCM e UF, período a período, com a alíquota que a ST usa, a situação na substituição tributária e a confiança. Também em lote, até 500 pares por chamada, e a cobertura por estado.

GET/v1/icms/aliquotas
POST/v1/icms/aliquotas/consultas
GET/v1/icms/cobertura
consultas:ler

Consultas da Reforma

NCM e NBS na tabela da LC 214/2025, série de alíquotas de CBS, IBS e IS de 2026 a 2033, simulação da transição ano a ano, comparação de regimes e linha do tempo por perfil.

GET/v1/reforma/ncm/{codigo}
POST/v1/reforma/simulacoes/transicao
POST/v1/reforma/simulacoes/regimes
consultas:ler

Empresas

Lista as empresas da conta (a rede ou, em conta de parceiro, a carteira) e cadastra empresa pelo CNPJ, com a cobertura de arquivos por competência.

GET/v1/empresas
POST/v1/empresas
GET/v1/empresas/{cnpj}
empresas:lerempresas:escrever

Envio de SPED e XML

EFD ICMS/IPI e EFD Contribuições até 400 MB; ZIP de XML de NF-e e CF-e até 200 MB. Tipo, CNPJ e período saem do próprio arquivo, e um arquivo repetido devolve o que já existe.

POST/v1/arquivos
GET/v1/arquivos
GET/v1/arquivos/{id}
arquivos:enviararquivos:ler

Relatórios

ICMS-ST, diagnóstico federal e SPED em planilha. O resumo vem sempre em JSON e, se o plano incluir, também a planilha de resultado.

GET/v1/relatorios/tipos
POST/v1/relatorios
GET/v1/relatorios/{id}
relatorios:criarrelatorios:ler

Jobs e webhooks

Trabalho assíncrono responde 202 com Location para o job. Webhooks assinados (Standard Webhooks, HMAC-SHA256) avisam quando o arquivo é lido e quando o relatório fica pronto, sem dado fiscal no corpo.

GET/v1/jobs/{id}
POST/v1/webhooks
POST/v1/webhooks/{id}/teste
webhooks:gerenciar

Captura de documentos

Em seguida, por plano

Arquivos da empresa na Receita, XML de NF-e pela chave e documentos fiscais emitidos contra o CNPJ. Fora do lançamento v1. A API só dispara a consulta e entrega o arquivo; certificado e procuração ficam com a equipe da RMF.

Integração

IA, autenticação e limites

Use com IA

Integre com o seu assistente de código

Prompt de integração por caso de uso e linguagem, llms.txt, cada página em .md, modelo de AGENTS.md e um MCP que busca nesta documentação.

Ver o pacote de IA
Autenticação

Uma chave por ambiente, com escopos

Toda chamada leva Authorization: Bearer, nunca a chave na URL. rmf_live_ para produção e rmf_test_ para o sandbox. Cada chave tem escopos, vencimento e lista de IPs opcional; até duas ativas por conta, para trocar sem parar.

Autenticação e escopos
Limites

Limites, cotas e idempotência

Acima do limite, a resposta é 429 com Retry-After, RateLimit-Policy e RateLimit. A cota do dia está em GET /v1/conta/uso. Todo POST que cria recurso leva Idempotency-Key, guardada por 24 horas.

Limites e cotas
Planos e acesso

O plano da conta define o que a chave pode chamar

A conta de API é da rede (as empresas dela) ou do parceiro (a carteira de clientes). O plano define os produtos, os escopos que as chaves podem receber e se a planilha de resultado está incluída.

GET /v1/conta mostra o que a sua chave pode chamar. Mudança de plano é feita pela equipe da RMF, nunca pela API.

  • Consultas de ICMS
  • Consultas da Reforma
  • Arquivos SPED e XML
  • Relatórios
  • Planilha de resultado
  • Captura, em seguida
Condições com o seu contato comercial.Falar com a equipe

Pronto para a primeira chamada?

Peça a chave de sandbox ao seu contato comercial e faça a primeira consulta em 5 minutos. A chave de produção sai quando a integração estiver pronta.