Visao geral
A API publica reutiliza os controllers em /Controllers que ja atendem o PDV. As rotas seguem o padrao do ASP.NET Web API: /api/{controller}, com respostas em JSON.
Para integracoes novas, trate esta documentacao como o contrato minimo suportado. Alguns endpoints ainda retornam modelos internos do Easy4me; por isso, envie apenas campos documentados ou combinados no projeto de integracao.
Autenticacao
Use o endpoint POST /Token com application/x-www-form-urlencoded. O token deve ser enviado nas demais chamadas pelo cabecalho Authorization: Bearer {access_token}.
POST https://easyforme.com.br/Token
Content-Type: application/x-www-form-urlencoded
grant_type=password&username=usuario@empresa.com.br&password=sua-senha
| Campo | Uso |
|---|---|
grant_type |
Informe sempre password. |
username |
Usuario cadastrado no Easy4me para a empresa que sera integrada. |
password |
Senha do usuario. O token atual expira em 14 dias. |
Crie usuarios especificos para integracoes externas, com permissoes e empresas bem definidas. Evite compartilhar usuarios pessoais de operadores.
Sincronizacao
O fluxo mais completo para o PDV e integradores e o endpoint de carga incremental. Ele retorna cadastros alterados desde a data informada e, opcionalmente, movimentos.
/api/TodosRegistros?dataAlteracao={data}&force=false&mov=false
Retorna produtos, clientes, formas de pagamento, impostos, tabelas, terminais e demais cadastros alterados. Com mov=true, inclui movimentos como vendas, itens e pagamentos.
Parametros
| Parametro | Tipo | Descricao |
|---|---|---|
dataAlteracao |
datetime | Data/hora inicial da janela incremental. Use ISO 8601, por exemplo 2026-05-27T08:00:00. |
force |
boolean | Quando true, ignora a janela minima de sincronizacao configurada para a empresa. |
mov |
boolean | Quando true, inclui listas de movimentacoes no retorno. |
Endpoints principais
/api/Produto?dataAlteracao={data}
Lista produtos incluidos ou alterados apos a data informada.
/api/Produto/{codigo}
Consulta um produto pelo codigo interno.
/api/Produto/PostProdutos
Insere uma lista de produtos no formato de migracao.
/api/Produto/PostProdutos
Atualiza ou insere produtos no formato de migracao.
/api/Pessoa?dataAlteracao={data}
Lista pessoas alteradas desde a data informada.
/api/Pessoa?clientes=true&CodigoEmpresa={codigo}
Lista clientes filtrando por empresa quando necessario.
/api/Venda
Recebe uma lista de vendas e retorna os codigos processados.
/api/Venda
Atualiza ou insere vendas usando o mesmo processamento de upsert.
/api/Venda?dataFiltro={data}
Lista vendas emitidas a partir da data informada, incluindo itens e formas de pagamento.
/api/VendaItem
Recebe itens de venda em lote.
/api/VendaFormaPagamento
Recebe formas de pagamento de venda em lote.
/api/Nfce
Recebe NFC-e vinculada as vendas sincronizadas.
Cadastros com padrao incremental
Os controllers abaixo seguem o padrao GET /api/{controller}?dataAlteracao={data} e, quando disponivel, GET /api/{controller}/{codigo}, POST /api/{controller} e PUT /api/{controller} em lote.
ProdutoGrupo, FormaPagamento, UnidadeMedida, Imposto, CFOP, CEST, NCM, CentralTributo, IBPT, Impressora, LocalProducao, PessoaGrupo, TabelaPreco, TaxaAdministrativa, Terminal, Observacao, Promocao e Estoque.
Modelos e payloads por endpoint
Os exemplos abaixo mostram o corpo esperado ou o principal retorno de cada endpoint. Os campos de navegacao do Entity Framework, como Produto, Venda, Empresa, Cliente e colecoes relacionadas, devem ser omitidos no envio para evitar duplicidade de registros.
Quando o endpoint recebe uma lista, envie sempre um array JSON, mesmo que exista apenas um registro.
Mapa rapido endpoint x model
| Endpoint | Model usado | Corpo |
|---|---|---|
POST /Token |
OAuth password grant | application/x-www-form-urlencoded |
GET /api/TodosRegistros |
TodosRegistros |
Nao possui body. |
POST|PUT /api/Produto/PostProdutos |
List<ProdutoMigrador> |
Array de produtos de migracao. |
GET|POST|PUT /api/Pessoa |
Pessoa |
GET sem body; POST/PUT usam array de pessoas. |
POST|PUT /api/Venda |
IEnumerable<Venda> |
Array de vendas. |
POST|PUT /api/VendaItem |
IEnumerable<VendaItem> |
Array de itens de venda. |
POST /api/VendaFormaPagamento |
IEnumerable<VendaFormaPagamento> |
Array de pagamentos, com Parcelas quando houver. |
POST /api/VendaParcela |
IEnumerable<VendaParcela> |
Array de parcelas avulsas. |
POST|PUT /api/Nfce |
IEnumerable<Nfce> |
Array de documentos NFC-e. |
POST /api/SAT |
IEnumerable<SAT> |
Array de documentos SAT. |
POST /api/Crediario/Pagamento |
List<CrediarioPagamento> |
Array de pagamentos de crediario. |
POST /api/BackupDesktop |
BackupDesktop |
Objeto unico. |
PUT /api/ConfiguracaoBackup/Backup |
KeyValuePair<int,int> |
Objeto com Key e Value. |
Autenticacao - POST /Token
grant_type=password&username=integracao@empresa.com.br&password=senha
Resposta esperada
{
"access_token": "TOKEN_GERADO",
"token_type": "bearer",
"expires_in": 1209599
}
| Campo | Tipo | Uso |
|---|---|---|
grant_type |
string | Use password. |
username |
string | Usuario de integracao cadastrado no Easy4me. |
password |
string | Senha do usuario. |
TodosRegistros - GET /api/TodosRegistros
{
"Status": 1,
"ProdutoGrupos": [],
"FormaPagamentos": [],
"CartaoAdquirentes": [],
"CartaoBandeiras": [],
"UnidadeMedidas": [],
"Impostos": [],
"Cfops": [],
"Cests": [],
"Ncms": [],
"CentralTributos": [],
"Ibpt": [],
"Impressoras": [],
"LocaisProducao": [],
"Permissoes": [],
"PessoaGrupos": [],
"TabelaPrecos": [],
"Pessoas": [],
"PessoaAutNfe": [],
"PessoasObservacao": [],
"PessoasNfceConfig": [],
"TaxasAdministrativas": [],
"DescontosFuncionarios": [],
"Produtos": [],
"ProdutoComplementos": [],
"ProdutoComplementoOpcoes": [],
"ProdutoCodigoBarras": [],
"ProdutoBalanca": [],
"ProdutoDescontoQuantidade": [],
"ProdutoImagem": [],
"Observacoes": [],
"ProdutoObservacoes": [],
"TabelaPrecoItens": [],
"Promocao": [],
"PromocaoItens": [],
"Terminais": [],
"Estoques": [],
"ModeloEtiquetas": [],
"ModeloEtiquetaItens": [],
"Etiquetas": [],
"Botoes": [],
"Layouts": [],
"MotivoCancelamentoTrocas": [],
"Configuracao": {},
"Movimentacoes": {
"Venda": [],
"VendaItem": [],
"VendaFormaPagamento": [],
"VendaParcela": [],
"MovimentacaoCaixa": [],
"ConferenciaCaixa": [],
"ConferenciaCaixaItem": [],
"FiadoSaldo": [],
"FiadoMovimentacao": [],
"FiadoFormaPagamento": [],
"FiadoParcela": [],
"Vales": []
}
}
Quando Status voltar 0, a sincronizacao foi recusada pela janela de intervalo configurada. Reexecute depois ou use force=true quando a integracao tiver permissao para forcar a carga.
ProdutoMigrador - POST/PUT /api/Produto/PostProdutos
[
{
"Codigo": 1001,
"Nome": "Camiseta Basica",
"NomeReduzido": "Camiseta",
"CodigoBarras": "7891234567890",
"GrupoProduto": "Vestuario",
"Fornecedor": "Fornecedor Exemplo",
"UnidadeMedida": "UN",
"NCM": "61091000",
"CEST": "",
"Origem": 0,
"Ex": "",
"QuantidadeMinimaEstoque": 2.0,
"QuantidadeEstoque": 12.0,
"PrecoCusto": 25.00,
"PrecoVenda": 59.90,
"UsaBalanca": "N",
"CodigoReferencia": "CAM-BAS-001",
"possuiVariacao": "S",
"produtoPai": "",
"variacaoCor": "Preto",
"variacaoTamanho": "M",
"Largura": "20",
"Altura": "2",
"Comprimento": "30"
}
]
| Campo | Tipo | Uso |
|---|---|---|
Nome | string | Nome principal do produto. |
GrupoProduto, Fornecedor, UnidadeMedida | string | O sistema tenta localizar os cadastros pelo nome/sigla. |
NCM, CEST | string numerica | Convertidos para codigo interno quando possivel. |
UsaBalanca, possuiVariacao | string | Use S ou N. |
QuantidadeEstoque, PrecoCusto, PrecoVenda | decimal | Usados para criar estoque e precificacao inicial. |
Produto - GET /api/Produto e retorno de produtos
{
"Codigo": 1001,
"CodigoInternoProduto": 1001,
"CodigoExternoEcommerce": "EXT-1001",
"CodigoProdutoGrupo": 10,
"CodigoUnidadeMedida": 1,
"CodigoFornecedor": 50,
"CodigoNCM": 61091000,
"CodigoCEST": null,
"CodigoLocalProducao": null,
"CodigoBarras": "7891234567890",
"Nome": "Camiseta Basica",
"DescricaoEcommerce": "Produto de exemplo",
"NomeEcommerce": "Camiseta Basica",
"PedeObservacao": false,
"NomeReduzido": "Camiseta",
"EstoqueAtual": 12.0,
"PrecoCusto": 25.00,
"Margem": 139.60,
"PrecoVenda": 59.90,
"TaxaServico": false,
"Origem": 0,
"Ex": "",
"GradeCorTamanho": false,
"Kit": false,
"Combo": false,
"UsaComplemento": false,
"UsaCodigoBarraExtra": false,
"Altura": 2.0,
"Largura": 20.0,
"Comprimento": 30.0,
"DataInclusao": "2026-05-27T10:00:00",
"DataUltimaAlteracao": "2026-05-27T10:30:00",
"Excluido": false,
"CodigoEmpresa": 1,
"Ecommerce": true,
"UsaBalanca": false,
"CodigoReferencia": "CAM-BAS-001"
}
Para inserir produtos via API publica use ProdutoMigrador. O model Produto aparece principalmente em retornos de consulta e na carga incremental.
Pessoa - GET/POST/PUT /api/Pessoa
[
{
"Codigo": 2001,
"CodigoPessoaGrupo": 1,
"CodigoInterno": 2001,
"CodigoExternoEcommerce": "CLI-EXT-2001",
"Tipo": 3,
"FisicaJuridica": false,
"RegimeTributacao": null,
"CodigoTabelaPreco": null,
"Nome": "Cliente Exemplo",
"Apelido": "Cliente",
"DataNascimento": "1990-01-20T00:00:00",
"RG": "12345678",
"CPF": "12345678909",
"CNPJ": "",
"IE": "",
"IM": "",
"Email": "cliente@exemplo.com.br",
"Telefone": "1133334444",
"Celular": "11999998888",
"Whatsapp": "11999998888",
"CEP": "01001000",
"Estado": "SP",
"Cidade": "Sao Paulo",
"Bairro": "Centro",
"Logradouro": "Rua Exemplo",
"Numero": 100,
"Complemento": "Sala 1",
"CodigoMunicipioIBGE": 3550308,
"DataInclusao": "2026-05-27T10:00:00",
"DataUltimaAlteracao": "2026-05-27T10:30:00",
"Excluido": false,
"CodigoEmpresa": 1,
"ClienteFiado": false,
"ClienteLimiteCredito": 0.0
}
]
| Campo | Tipo | Uso |
|---|---|---|
Codigo | int | Chave usada para inserir/atualizar. |
Tipo | int | 3 para cliente; use os demais tipos apenas quando a integracao realmente gerenciar empresas, usuarios ou fornecedores. |
FisicaJuridica | bool? | false pessoa fisica, true juridica. |
DataUltimaAlteracao | datetime? | No POST/PUT, registros antigos podem ser ignorados quando a base ja possui versao mais nova. |
Venda - POST/PUT /api/Venda e PUT /api/PedidoOnline
[
{
"Codigo": 3001,
"CodigoExterno": 90001,
"CodigoEmpresa": 1,
"CodigoUsuario": 2,
"CodigoVendedor": 2,
"CodigoCliente": 2001,
"CodigoTerminal": 1,
"CodigoPedido": null,
"Status": 1,
"CPF": "12345678909",
"ValorBruto": 99.90,
"ValorTaxaServico": 0.00,
"ValorDesconto": 10.00,
"ValorLiquido": 89.90,
"ValorPago": 89.90,
"Troco": 0.00,
"Senha": 12,
"Entrega": false,
"TipoCupomFiscal": 2,
"NumeroCupomFiscal": 12345,
"NumeroCupomFiscalCancelado": null,
"DataHoraEmissao": "2026-05-27T10:30:00",
"DataInclusao": "2026-05-27T10:30:00",
"DataUltimaAlteracao": "2026-05-27T10:31:00",
"DataFaturamento": "2026-05-27T10:30:00",
"Excluido": false
}
]
| Campo | Tipo | Uso |
|---|---|---|
Status | int | 0 aberto, 1 fechado, 2 cancelado, 3 devolvido. |
TipoCupomFiscal | int | 1 SAT, 2 NFC-e. |
CodigoEmpresa, CodigoUsuario, CodigoVendedor, CodigoCliente | int | Devem apontar para cadastros existentes/sincronizados. |
ValorBruto, ValorDesconto, ValorLiquido, ValorPago | decimal | Valores totais da venda. |
VendaItem - POST/PUT /api/VendaItem
[
{
"Codigo": 4001,
"CodigoVenda": 3001,
"CodigoProduto": 1001,
"CodigoTabelaPreco": null,
"NumeroItem": 1,
"Quantidade": 2.0,
"ValorUnitario": 49.95,
"ValorDescontoCalculado": 10.00,
"PorcentagemDesconto": 10.00,
"ValorDesconto": 10.00,
"ValorTotal": 89.90,
"PorcTaxaServico": 0.00,
"ValorTaxaServico": 0.00,
"ItemCombo": 0,
"CodigoCombo": 0,
"IdProdutoKit": null,
"CodigoProdutoComplementoKit": null,
"QuantidadeKit": null,
"Observacao": "Sem observacao",
"Cfop": "5102",
"CstIcms": "102",
"BcIcms": 0.00,
"AliqIcms": 0.00,
"ValorIcms": 0.00,
"ValorFcp": 0.00,
"CstPis": "01",
"BcPis": 89.90,
"AliqPis": 1.65,
"ValorPis": 1.48,
"CstCofins": "01",
"BcCofins": 89.90,
"AliqCofins": 7.60,
"ValorCofins": 6.83,
"DataInclusao": "2026-05-27T10:30:00",
"DataUltimaAlteracao": "2026-05-27T10:31:00",
"Excluido": false,
"DescontoProgressivo": false,
"CSTIBSCBS": null,
"cClassTribIBSCBS": null,
"vBCIBSCBS": null,
"pIBSUF": null,
"vIBSUF": null,
"pIBSMun": null,
"vIBSMun": null,
"vIBS": null,
"pCBS": null,
"vCBS": null
}
]
O model possui campos fiscais opcionais de IBS/CBS e tributacao regular, como pDifIBSUF, vDifIBSUF, pRedAliqIBSUF, pAliqEfetIBSUF, pDifIBSMun, vDifIBSMun, pRedAliqIBSMun, pAliqEfetIBSMun, pDifCBS, vDifCBS, pRedAliqCBS, pAliqEfetCBS, CSTReg, cClassTribReg, vTribRegIBSUF, vTribRegIBSMun e vTribRegCBS. Envie esses campos apenas quando a emissao fiscal da integracao precisar deles.
VendaFormaPagamento e VendaParcela - POST /api/VendaFormaPagamento
[
{
"Codigo": 5001,
"CodigoVenda": 3001,
"CodigoFormaPagamento": 1,
"Valor": 89.90,
"CodigoCartaoBandeira": null,
"CodigoCartaoAdquirente": null,
"CartaoNumero": "",
"NumeroAutorizacao": "",
"CodigoTaxaAdministrativa": null,
"PorcentagemTaxaAdministrativa": 0.00,
"ValorTaxaAdministrativa": 0.00,
"DataInclusao": "2026-05-27T10:30:00",
"Parcelas": [
{
"Codigo": 6001,
"CodigoVendaFormaPagamento": 5001,
"Vencimento": "2026-06-27T00:00:00",
"Valor": 89.90,
"DataInclusao": "2026-05-27T10:30:00"
}
]
}
]
| Campo | Tipo | Uso |
|---|---|---|
CodigoFormaPagamento | int | Forma de pagamento ja sincronizada. |
CodigoCartaoBandeira, CodigoCartaoAdquirente | int? | Obrigatorios apenas quando a forma for cartao e houver taxa configurada. |
Parcelas | array | Informe quando a venda gerar parcelas/crediario. |
CodigoTaxaAdministrativa, ValorTaxaAdministrativa | int?/decimal | Podem ser enviados, mas o controller recalcula antes de persistir. |
Nfce e SAT - documentos fiscais
Nfce
[
{
"Codigo": 7001,
"CodigoExterno": 90001,
"CodigoVenda": 3001,
"Lote": 10,
"Recibo": "123456789012345",
"Protocolo": "13526000000000000000",
"TipoAmbienteNfce": 1,
"Tipo": 1,
"Chave": "NFe35260500000000000100650010000012341000012345",
"XmlConteudo": "<NFe>...xml autorizado...</NFe>",
"Contingencia": false,
"StatusContingencia": 0,
"Transmitida": true,
"MsgRetorno": "Autorizado o uso da NF-e",
"DataAutorizacao": "2026-05-27T10:31:00",
"AguardandoProcessamento": false,
"CodigoEmpresa": 1,
"DataInclusao": "2026-05-27T10:31:00",
"DataUltimaAlteracao": "2026-05-27T10:31:00"
}
]
SAT
[
{
"Codigo": 8001,
"CodigoVenda": 3001,
"Tipo": 1,
"Chave": "35260500000000000100590000000000000000000000",
"QrCode": "https://satsp.fazenda.sp.gov.br/...",
"XML": "<CFe>...xml sat...</CFe>",
"DataInclusao": "2026-05-27T10:31:00",
"Excluido": false
}
]
Em Nfce, Tipo indica 1 emissao, 2 cancelamento e 3 inutilizacao. Quando XmlConteudo for enviado, o servidor tenta armazenar o XML no S3 e pode limpar o conteudo persistido.
CrediarioPagamento - POST /api/Crediario/Pagamento
[
{
"Codigo": 0,
"CodigoUsuario": 2,
"CodigoContaReceber": 1234,
"CodigoFormaPagamento": 1,
"ValorCalculado": 100.00,
"ValorDesconto": 5.00,
"ValorAcrescimo": 0.00,
"Valor": 95.00
}
]
O servidor agrupa por CodigoContaReceber, cria movimentacoes financeiras e atualiza o status da conta para pago parcial ou pago total.
Modelos operacionais - backup, ecommerce e pedido online
BackupDesktop - POST /api/BackupDesktop
{
"Codigo": 0,
"CodigoEmpresa": 1,
"NomeArquivo": "backup-terminal-01-20260527.zip",
"CodigoTerminal": 1,
"Terminal": "Terminal 01",
"DataInclusao": "2026-05-27T23:00:00",
"Tamanho": 20480.50
}
ConfiguracaoBackup - PUT /api/ConfiguracaoBackup/Backup
{
"Key": 1,
"Value": 2
}
Key e o codigo da empresa; Value e o novo status de transferencia da base desktop.
EcommerceSyncResult - GET /api/Ecommerce/SincronizarProdutos e /api/Ecommerce/SincronizarPedidos
{
"Sucesso": true,
"Msg": "Executado com sucesso"
}
VendaEcommerce - GET /api/PedidoOnline
{
"Codigo": 9001,
"CodigoVenda": 3001,
"CodigoPedido": 4501,
"CodigoEmpresa": 1,
"CodigoEcommerce": 3,
"OrderId": "IFOOD-123",
"MerchantId": "merchant-001",
"Status": "CONFIRMED",
"ObservacaoPedido": "",
"ObservacaoEntrega": "",
"EntregaTipo": "DELIVERY",
"EntregaAgenda": "",
"EntregaAgendaDataInicio": null,
"EntregaAgendaDataFim": null,
"DataInclusao": "2026-05-27T10:00:00",
"DataUltimaAlteracao": "2026-05-27T10:05:00",
"JsonOrder": "{...}",
"EntregaEndereco": "Rua Exemplo, 100",
"NomeCliente": "Cliente Exemplo",
"DisplayId": "1234",
"NomeEcommerce": "iFood",
"ImprimiuProducao": false,
"ImprimiuExpedicao": false,
"Arquivado": false
}
Cadastros auxiliares - GET/POST/PUT em lote
Os endpoints de cadastro abaixo seguem a convencao /api/{Model}. Para POST/PUT, envie array do proprio model. Para GET incremental, use ?dataAlteracao=2026-05-27T08:00:00.
| Model/endpoint | Campos principais do JSON |
|---|---|
ProdutoGrupo | Codigo, CodigoProdutoGrupoPai, Nome, CodigoEmpresa, CodigoEmpresas, DataInclusao, DataUltimaAlteracao, Excluido. |
FormaPagamento | Codigo, Nome, CodigoSAT, DescricaoXPag, Tipo, IntegrarGatewayPagamento, CodigoEmpresas, DataInclusao, DataUltimaAlteracao, Excluido. |
UnidadeMedida | Codigo, Nome, Sigla, CodigoEmpresa, CodigoEmpresas, DataInclusao, DataUltimaAlteracao, Excluido. |
CFOP | Codigo, CodigoReferencia, Nome, TipoOperacao, CodigoEmpresa, CodigoEmpresas, DataInclusao, DataUltimaAlteracao, Excluido. |
CEST | Codigo, CodigoNCM, CodigoReferencia, Nome, Mva, MvaExcecao, CodigoEmpresa, CodigoEmpresas, DataInclusao, DataUltimaAlteracao, Excluido. |
NCM | Codigo, CodigoReferencia, Nome, Tributado, SubstituicaoTributaria, AliquotaFCP, CentralAutomatica, TipoTributacaoPisCofins, CodigoEmpresa, CodigoEmpresas, DataInclusao, DataUltimaAlteracao, Excluido. |
Imposto | Codigo, CodigoReferencia, Tipo, SimplesNacional, Tributado, SubstituicaoTribtuaria, Nome, CodigoEmpresa, CodigoEmpresas, DataInclusao, DataUltimaAlteracao, Excluido. |
CentralTributo | Codigo, Nome, CodigoCFOP, SAT, CodigoICMS, AliquotaICMS, CodigoPIS, AliquotaPIS, CodigoCOFINS, AliquotaCOFINS, Estado, CodigoEmpresa, CodigoEmpresas, DataInclusao, DataUltimaAlteracao, Excluido. |
IBPT | Codigo, CodigoEmpresa, NCM, Tipo, Ex, Chave, AliquotaFederalNacional, AliquotaFederalImportado, AliquotaEstadual, AliquotaMunicipal, DataInicialVigencia, DataFinalVigencia, DataInclusao, DataUltimaAlteracao, Excluido. |
Impressora | Codigo, Nome, Endereco, Modelo, CodigoEmpresa, CodigoEmpresas, DataInclusao, DataUltimaAlteracao, Excluido. |
LocalProducao | Codigo, Nome, CodigoImpressora, SepararQuantidade, CodigoEmpresa, CodigoEmpresas, DataInclusao, DataUltimaAlteracao, Excluido. |
PessoaGrupo | Codigo, Nome, ArredondamentoMaximo, DescontoMaximo, DescontoAutomatico, PermitePromocao, BloqueiaDesconto, PermissoesCodigos, DataInclusao, DataUltimaAlteracao, Excluido. |
TabelaPreco | Codigo, Nome, Precificar, Ativo, CodigoEmpresas, Itens, DataInclusao, DataUltimaAlteracao, Excluido. |
TaxaAdministrativa | Codigo, Nome, CodigoEmpresa, CodigoCartaoAdquirente, CodigoCartaoBandeira, CodigoFormaPagamento, PrazoRecebimento, TaxaFixa, TaxaAVista, TaxaAteTresParcelas, TaxaAteSeisParcelas, TaxaAcimaSeisParcelas, DataInclusao, DataUltimaAlteracao, Excluido. |
Terminal | Codigo, CodigoExterno, CodigoEmpresa, Nome, Chave, Tipo, TerminalSAT, TerminalNfce, CodigoImpressoraPadrao, DocumentoFiscalPrincipal, ImprimirFicha, UsaTouch, UsaGaveta. |
Observacao | Codigo, Nome, CodigoEmpresa, CodigoEmpresas, DataInclusao, DataUltimaAlteracao, Excluido. |
ProdutoObservacao | Codigo, CodigoProduto, CodigoObservacao, CodigoEmpresa, Posicao, DataInclusao, DataUltimaAlteracao, Excluido. |
Promocao | Codigo, CodigoEmpresa, Descricao, dias da semana, DataInicial, DataFinal, HoraInicial, HoraFinal, Itens, DataInclusao, DataUltimaAlteracao, Excluido. |
Estoque | Codigo, CodigoEmpresa, CodigoProduto, Quantidade, QuantidadeMinima, QuantidadeCusto, CustoTotal, UltimoCusto, CustoMedio, PrecoCusto, Margem, PrecoVenda, DataInclusao, DataUltimaAlteracao. |
Exemplo generico de cadastro
[
{
"Codigo": 10,
"Nome": "Cadastro exemplo",
"CodigoEmpresa": 1,
"CodigoEmpresas": [1],
"DataInclusao": "2026-05-27T10:00:00",
"DataUltimaAlteracao": "2026-05-27T10:30:00",
"Excluido": false
}
]
Movimentacoes complementares - caixa, conferencia, fiado, vale e devolucao
Esses endpoints tambem recebem arrays do proprio model.
| Endpoint | Campos principais |
|---|---|
POST /api/MovimentacaoCaixa | Codigo, CodigoEmpresa, CodigoTerminal, CodigoFormaPagamento, CodigoVenda, CodigoUsuario, Tipo, Periodo, NumeroCaixa, Valor, NumeroItem, Observacao, DataInclusao, Excluido. |
POST /api/ConferenciaCaixa | Codigo, CodigoCaixa, CodigoUsuario, DataInclusao. |
POST /api/ConferenciaCaixaItem | Codigo, CodigoConferenciaCaixa, CodigoFormaPagamento, ValorInformado, ValorCalculado, ValorConferido, OpcaoLancamentoDiferenca, NominalOperador, CodigoPlanoContas. |
POST|PUT /api/FiadoSaldo | Codigo, CodigoEmpresa, CodigoCliente, Valor, DataInclusao, DataUltimaAlteracao. |
POST|PUT /api/FiadoMovimentacao | Codigo, CodigoEmpresa, CodigoCliente, CodigoUsuario, CodigoVenda, NumeroCaixa, Tipo, Valor, CodigoContaReceberCrediario, DataInclusao, DataUltimaAlteracao, Estornado. |
POST /api/FiadoFormaPagamento | Codigo, CodigoFiadoMovimentacao, CodigoFormaPagamento, CodigoCartaoAdquirente, CodigoCartaoBandeira, CartaoNumero, NumeroAutorizacao, Valor, DataInclusao, DataUltimaAlteracao, Excluido. |
POST /api/FiadoParcela | Codigo, CodigoFiadoFormaPagamento, Vencimento, Valor, DataInclusao. |
POST|PUT /api/Vale | Codigo, CodigoUsuario, CodigoVendaDevolucao, CodigoVendaTroca, NumeroCaixaDevolucao, NumeroCaixaTroca, Valor, Excluido, DataInclusao, DataUltimaAlteracao. |
POST /api/Devolucao | Codigo, CodigoUsuario, CodigoVenda, CodigoProduto, NumeroItem, Quantidade, ValorUnitario, PorcentagemDesconto, ValorDesconto, ValorTotal, NumeroCaixa, DataInclusao. |
POST /api/TerminalLog | Codigo, CodigoExterno, CodigoTerminal, DataHora, CodigoUsuario, NomeMaquina, SistemaOperacional, VersaoSistemaOperacional, Guid. |
Exemplos
Gerar token
curl -X POST "https://easyforme.com.br/Token" ^
-H "Content-Type: application/x-www-form-urlencoded" ^
-d "grant_type=password&username=integracao@empresa.com.br&password=senha"
Buscar carga incremental
curl "https://easyforme.com.br/api/TodosRegistros?dataAlteracao=2026-05-27T08:00:00&force=true&mov=false" ^
-H "Authorization: Bearer SEU_ACCESS_TOKEN" ^
-H "Accept: application/json"
Enviar vendas
curl -X POST "https://easyforme.com.br/api/Venda" ^
-H "Authorization: Bearer SEU_ACCESS_TOKEN" ^
-H "Content-Type: application/json" ^
-d "[{ \"Codigo\": 123, \"CodigoEmpresa\": 1, \"ValorLiquido\": 49.90, \"DataInclusao\": \"2026-05-27T10:30:00\" }]"
Erros e limites
| Status | Significado |
|---|---|
200 |
Requisicao processada. Alguns endpoints retornam lista de codigos inseridos/atualizados. |
400 |
Dados obrigatorios ausentes, data invalida ou payload fora do formato esperado. |
401 |
Token ausente, expirado ou invalido. |
404 |
Registro nao encontrado quando a consulta e por codigo. |
500 |
Erro interno durante processamento ou persistencia. |
Boas praticas
- Use HTTPS em producao e guarde o token fora do front-end publico.
- Controle a ultima data sincronizada no integrador e reexecute a janela com margem em caso de falha.
- Envie lotes moderados para vendas, itens e pagamentos, evitando payloads muito grandes.
- Use
CodigoEmpresasempre que o endpoint aceitar esse campo, principalmente em ambientes multiempresa. - Valide produtos, clientes e formas de pagamento antes de enviar movimentos vinculados.