# Adquirentes (/adquirentes) Esta página concentra a tabela de adquirentes homologadas para operação com Smart TEF. ## Tabela de adquirentes [#tabela-de-adquirentes] Versões mais atuais: Controle `1.26.6*` e Smart TEF `1.4.6*`.
| Adquirente | Terminal | PDV.MOBI | COMANDA.MOBI | SMART TEF V2 | POS CONTROLE | POS COMANDA | | ---------------- | ------------------------- | --------------- | ------------ | --------------- | ------------------ | ----------- | | REDE | L400 RFAL | 1.26.4 | - | 1.4.5 | 1.26.4 | - | | REDE | L400 TEF | - | - | - | 1.25.1-L.J-Privada | - | | REDE | N960K | 1.26.4 | - | 1.4.4 | 1.26.4 | - | | REDE | DELIVERY | - | - | 1.3.4 | - | - | | CIELO | Lio2 | 1.26.3 | - | 1.4.5 | 1.26.3 | - | | CIELO | LioOn | 1.26.3 | - | 1.4.5 | 1.26.3 | - | | CIELO | L300 \| L400 | 1.26.3 | - | 1.4.5 | 1.26.3 | - | | CIELO | DX8000 | 1.26.3 | - | 1.4.5 | 1.26.3 | - | | GETNET | P3 | 1.26.2 | - | 1.4.5 | 1.26.2 | - | | GETNET | P2 | 1.26.2 | - | 1.4.5 | 1.26.2 | - | | GETNET | N920 | 1.26.2 | - | 1.4.5 | 1.26.2 | - | | GETNET | A8 | 1.26.2 | - | 1.4.5 | 1.26.2 | - | | GETNET | DX8000 | 1.26.2 | - | 1.4.5 | 1.26.2 | - | | STONE | A8 | 1.23.01 | 1.23.01 | 1.3.8 | 1.23.01 | 1.23.01 | | STONE | P2 \| P2 A11 | 1.23.01 | 1.23.01 | 1.3.8 | 1.23.01 | 1.23.01 | | STONE | Tectoy T8 | - | - | 1.3.8 | - | - | | STONE | L300 \| L400 | 1.23.01 | 1.23.01 | 1.3.8 | 1.23.01 | 1.23.01 | | PAGBANK | A920 | 1.26.2 | - | 1.4.0 | 1.26.2 | - | | PAGBANK | P2 | 1.26.2 | - | 1.4.0 | 1.26.2 | - | | PAGBANK | GPOS780 | 1.26.2 | - | 1.4.0 | 1.26.2 | - | | SAFRAPAY | P2 | 1.26.3 | - | 1.4.2 | 1.26.3 | - | | SAFRAPAY | A8 | 1.26.3 | - | 1.4.2 | 1.26.3 | - | | SAFRAPAY | L300 | 1.26.3 | - | 1.4.2 | 1.26.3 | - | | VERO | L300 | 1.26.5 | - | 1.3.9 | 1.26.5 | - | | VERO | GPO700 | 1.26.5 | - | - | 1.26.5 | - | | VERO | NewLand N950 | 1.26.5 | - | 1.3.9 | 1.26.5 | - | | VERO | P2 | 1.26.5 | - | 1.3.9 | 1.26.5 | - | | SIPAG | DX8000 | 1.25.6-RC2 | - | 1.4.0 | - | - | | SIPAG | P2 | 1.25.6 | 1.25.6 | 1.4.0 | - | - | | SIPAG | X990 | 1.25.6-RC2 | - | 1.4.0 | - | - | | PHOEBUS | A910 / A920 | 1.26.3 | - | 1.3.9 | - | - | | PHOEBUS | L300 | 1.26.3 | - | 1.2.0 | - | - | | PHOEBUS | P2 | 1.26.3 | - | - | - | - | | PAY.NET | P2 - sob consulta | - | - | - | - | - | | ADITUM | L300 - sob consulta | - | - | - | - | - | | CLOVER | FLEX | 1.26.3 | - | 1.4.6 | 1.26.3 | - | | CLOVER | MINI | 1.26.3 | - | 1.4.6 | 1.26.3 | - | | CLOVER | TOTEM KIOSK | 1.9.8 | - | - | - | - | | GOOGLE PLAY | CELULAR | 1.26.1 | - | 1.3.0 | 1.25.2 | 1.25.2 | | SICREDI | DX8000 / MsiTEF (Aliança) | - | - | - | - | - | | SICREDI | DX8000 / ClisiTEF | 1.26.2 | 1.21.19 | - | 1.26.2 | 1.21.19 | | SICREDI | P2 / MsiTEF (Aliança) | - | 1.25.5-RC2 | - | 1.25.5-RC2 | 1.25.5-RC2 | | SICREDI | P2 / ClisiTEF | 1.26.3 | - | - | 1.26.3 | - | | SICREDI | CLOVER | 1.25.3 | 1.25.3 | 1.4.2 | - | - | | BIN | DX8000 / MsiTEF (Aliança) | - | - | - | - | - | | BIN | DX8000 / ClisiTEF | 1.26.2 | 1.21.19 | - | 1.26.2 | 1.21.19 | | BIN | P2 / MsiTEF (Aliança) | - | - | - | 1.25.5-RC2 | - | | BIN | P2 / ClisiTEF | 1.26.3 | 1.25.5-RC2 | - | 1.26.3 | 1.25.5-RC2 | | BIN | CLOVER | 1.26.3 | - | 1.4.2 | 1.26.3 | - | | CEF | DX8000 / MsiTEF (Aliança) | - | - | - | - | - | | CEF | DX8000 / ClisiTEF | 1.26.2 | - | - | 1.26.2 | - | | CEF | P2 / MsiTEF (Aliança) | - | 1.25.5-RC2 | - | 1.25.5-RC2 | 1.25.5-RC2 | | CEF | P2 / ClisiTEF | 1.26.3 | - | - | 1.26.3 | - | | CEF | CLOVER | 1.26.3 | - | 1.4.2 | 1.26.3 | - | | REDEFLEX | DX8000 | 1.24.0 | - | - | 1.24.0 | - | | PICPAY | P2 | 1.26.0 | - | Em certificação | 1.26.0 | 1.26.0 | | JUSTA | L300 | 1.25.0 | 1.25.0 | - | 1.25.0 | 1.25.0 | | PUNTO | N910 - sob consulta | - | - | - | 1.21.17 | 1.21.17 | | SCOPE PAY | L400 | Em certificação | - | - | - | - | | ADIQ | A920 - sob consulta | Em certificação | - | - | - | - | | GERTEC -> MsiTEF | TOTEM SK210 | 1.9.6 | - | - | - | - | | GERTEC -> MsiTEF | MINI PDV GS300 | 1.24.2 | - | - | 1.24.2 | - | | TECTOY -> MsiTEF | MINI PDV D2 MINI | 1.25.5-RC2 | 1.25.5-RC2 | - | 1.23.11-RC3 | - | | TECTOY -> MsiTEF | TOTEM K2 MINI | 1.9.6 | - | - | 1.9.6 | - | | TECTOY -> MsiTEF | TOTEM K2 | 1.9.6 | - | - | 1.9.6 | - | | ELGIN -> MsiTEF | SHALTER EVO TOTEM | 1.9.3 | - | - | 1.9.3 | - | | ELGIN -> MsiTEF | M10 \| M10 Pro \| M11 | 1.25.6 | 1.25.6 | - | 1.25.6 | - | | ELGIN -> MsiTEF | MK 156A | 1.9.7 | - | - | 1.9.7 | - | | ELGIN -> MsiTEF | MINI PDV M10 | 1.25.5 | 1.25.5 | - | 1.25.5 | 1.25.5 | | MERCADO PAGO | N960 | - | - | - | 1.25.6 | - | | SCOPE PAY | L300 | 1.26.7 | - | - | - | - |
## Campos de retorno relacionados [#campos-de-retorno-relacionados] Alguns campos de retorno são preenchidos pela adquirente durante ou após o processamento da transação: | Campo | Descrição | | ------------------- | ------------------------------------------------- | | `acquirer` | Nome da adquirente. | | `acquirer_cnpj` | CNPJ da adquirente. | | `nsu_host` | NSU atribuído pelo host. | | `autorization_code` | Código de autorização retornado no processamento. | Esses campos podem retornar `null` até a conclusão da transação. # Anonimização (/anonimizacao) Anonimização remove ou mascara dados pessoais associados a pagamentos, reduzindo o risco de identificação direta ou indireta. ## Conceito [#conceito] Depois de anonimizado, o dado deixa de ser dado pessoal, e a pessoa não pode mais ser reidentificada por aquele payload. Exemplo antes da anonimização: ```json { "CPF": "123.456.789-00", "Nome": "Fulano" } ``` Exemplo depois da anonimização: ```json { "Nome": "*************", "CPF": "***********" } ``` > O mecanismo substitui todo o conteúdo de extras dos pagamentos anonimizados por valores mascarados, mesmo quando existirem outras chaves no objeto. ## Anonimizar pagamentos [#anonimizar-pagamentos] ```http POST https://api.smarttef.mobi/manager/store/payments/anonymize ``` ```json { "payments_identifers": [ "01970d18-aac3-7ff4-ba76-78e785409d09" ] } ``` | Campo | Obrigatório | Descrição | | --------------------- | ----------- | ----------------------------------------------------------------- | | `payments_identifers` | Sim | Lista de identificadores de pagamento que devem ser anonimizados. | ## Retorno da anonimização [#retorno-da-anonimização] ```json { "rowsAffected": 3, "hasChanges": true, "message": "Payments anonymized successfully" } ``` | Campo | Tipo | Descrição | | -------------- | --------- | -------------------------------------------------- | | `rowsAffected` | `number` | Quantidade de pagamentos anonimizados com sucesso. | | `hasChanges` | `boolean` | Indica se houve alteração nos dados. | | `message` | `string` | Mensagem descritiva do resultado. | Depois da anonimização, os dados pessoais deixam de ser apresentados nos retornos da API. # Gestão (/gestao) As operações de gestão mantêm a loja pronta para executar cards no Smart TEF. Elas usam o escopo da loja e devem ser chamadas com token compatível. ## Loja [#loja] Use as operações de loja para consultar cadastro, atualizar dados, alterar configurações e anonimizar pagamentos quando aplicável. Endpoints detalhados: [Loja](/api-reference/loja). ## Usuários [#usuários] Usuários representam operadores e administradores vinculados à loja. Eles podem ser listados, criados, atualizados, bloqueados e configurados para MFA. Endpoints detalhados: [Usuários](/api-reference/usuarios). ## Terminais [#terminais] Terminais são os POS vinculados à loja. Antes de direcionar uma ordem, confirme que o terminal está ativo, pertence à loja e não está bloqueado. Endpoints detalhados: [Terminais](/api-reference/terminais). ## Boas práticas [#boas-práticas] * Mantenha cadastros e terminais atualizados antes de iniciar a operação. * Use identificadores de usuário ou serial do POS apenas quando o fluxo exigir card direcionado. * Revise bloqueios de usuário e terminal ao investigar ordens não exibidas no POS. # Integrador (/integrador) O escopo de integrador é usado por parceiros autorizados que administram lojas vinculadas ao Smart TEF. Use esse escopo para ativar, desativar, bloquear, desbloquear ou reativar lojas, além de gerar e revogar tokens operacionais de loja. ## Quando usar [#quando-usar] | Necessidade | Operação esperada | | ------------------ | ---------------------------------------------- | | Habilitar loja | Ativar ou reativar loja vinculada. | | Suspender operação | Bloquear ou desativar loja. | | Liberar operação | Desbloquear loja. | | Trocar credenciais | Gerar ou revogar token da loja. | | Ajustar parâmetros | Listar ou alterar configurações do integrador. | ## Regras de escopo [#regras-de-escopo] * O token de integrador deve ser usado somente nas rotas próprias de integrador. * A loja precisa estar vinculada ao integrador autenticado. * O token de loja gerado pelo integrador deve ser usado nas operações operacionais da loja. * Revogue tokens em caso de troca de credenciais, suspeita de vazamento ou encerramento da integração. Endpoints detalhados: [Integrador](/api-reference/integrador). # Fluxo de implantação (/fluxo-implantacao) Use este fluxo como roteiro para preparar uma loja antes de operar pagamentos, impressões ou formulários em produção. ## Passo 1: preparar a loja [#passo-1-preparar-a-loja] Confirme que a loja foi criada e habilitada no Smart TEF. Parceiros White Label devem solicitar a liberação ao atendimento comercial antes de iniciar. ## Passo 2: obter credenciais [#passo-2-obter-credenciais] Separe o Bearer Token da loja, o Gateway Token quando aplicável e as credenciais de portal para pelo menos um usuário administrador e um operador. Veja os detalhes em [Autenticação](./autenticacao). ## Passo 3: ativar terminais [#passo-3-ativar-terminais] Garanta que os terminais estejam vinculados à loja, ativos e não bloqueados. Operações direcionadas para POS dependem de terminal válido. ## Passo 4: configurar gestão operacional [#passo-4-configurar-gestão-operacional] Cadastre ou revise usuários, terminais e dados da loja. A visão geral está em [Gestão](./gestao), e os endpoints detalhados ficam em [API](/api). ## Passo 5: configurar webhook [#passo-5-configurar-webhook] Quando desejar callbacks automáticos, configure uma URL pública HTTPS para receber eventos de status. Veja os payloads e regras em [Webhook](./webhook). ## Passo 6: validar o primeiro fluxo [#passo-6-validar-o-primeiro-fluxo] Crie uma ordem, guarde o identificador retornado e acompanhe o status por polling ou webhook até o estado final. Para uma validação mínima, siga o [Quickstart](./quickstart). # Referência (/referencia) Use esta página como apoio rápido para interpretar retornos e montar requisições para a API Smart TEF. ## Status de pagamento [#status-de-pagamento] | Status | Descrição | | ---------- | --------------------- | | `PDT` | Pendente | | `PROC_PAG` | Processando pagamento | | `CNC` | Concluído | | `CAN_ERP` | Cancelado pelo ERP | | `REJ_PAG` | Pagamento rejeitado | | `SOL_EST` | Estorno solicitado | | `PROC_EST` | Processando estorno | | `EST` | Estornado | | `REJ_EST` | Estorno rejeitado | ## Status de impressão e formulário [#status-de-impressão-e-formulário] | Status | Descrição | | --------- | ------------------ | | `PDT` | Pendente | | `PROC` | Processando | | `IMP` | Impresso | | `CNC` | Concluído | | `REJ` | Rejeitado | | `CAN_ERP` | Cancelado pelo ERP | ## Tipos de pagamento [#tipos-de-pagamento] | ID | Descrição | | --------- | --------------------------------------- | | `CREDIT` | Crédito | | `DEBIT` | Débito | | `PIX` | Pix | | `VOUCHER` | Voucher | | `OTHERS` | Forma escolhida durante o processamento | ## Operações no POS [#operações-no-pos] | Operação | Cor | | ------------ | -------- | | Pagamento | Cinza | | Cancelamento | Vermelho | | Impressão | Amarelo | ## Tipos de exibição [#tipos-de-exibição] | Tipo | Descrição | | ----------- | ------------------------------------------------------------- | | `NRM` | Ordem normal, disponível na lista de operações. | | `CRD_UNICO` | Ordem direcionada a um único destino, exibida com prioridade. | Quando `order_type` for `CRD_UNICO`, informe apenas um destino: `user_id` ou `serial_pos`. Os dois campos não devem ser enviados juntos. ## Regras gerais de criação [#regras-gerais-de-criação] | Regra | Aplicação | | --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | CNPJ | Quando informado no payload, deve pertencer ao mesmo escopo do token usado na requisição. | | Destino único | `serial_pos` e `user_id` são mutuamente exclusivos. | | Duplicidade funcional | Identificadores externos como `charge_id`, `print_id` e `form_name` não devem ser reutilizados enquanto houver operação pendente, processando ou em fluxo de estorno para a mesma loja. | | Cancelamento | Cancelamentos pelo ERP se aplicam a ordens ainda pendentes. | | Consulta por período | Em listagens por período, use janelas curtas e evite reprocessar grandes intervalos quando o webhook estiver configurado. | ## Juros de parcelamento [#juros-de-parcelamento] | Valor | Descrição | | ---------- | --------------------------------------------- | | `F_STORE` | Padrão. A loja paga os juros do parcelamento. | | `F_CLIENT` | O cliente paga os juros do parcelamento. | ## Campos extras [#campos-extras] O campo `extras` carrega informações adicionais da ordem, como `CPF`, `CNPJ`, `Nome` ou dados de pedido. Use `has_details` para definir se esses dados aparecem em uma tela auxiliar. ## Convenções de retorno [#convenções-de-retorno] * Campos de adquirente como `autorization_code`, `nsu_host`, `acquirer`, `coupon` e `payment_value` podem retornar `null` até o fim do processamento. * Quando `order_type` for `CRD_UNICO`, envie somente um destino: `user_id` ou `serial_pos`. * No payload de pagamento, `type` será `PAYMENT`. No payload de impressão, `type` será `PRINT`. * Em anonimização, todo o conteúdo de `extras` pode ser substituído por valores mascarados. ## Envelope de resposta [#envelope-de-resposta] As APIs retornam o status HTTP e um objeto `data`. Em erros de validação ou regra de negócio, `data.message` pode conter uma lista de mensagens. ```json { "status": 400, "data": { "message": ["Loja não encontrada"], "timestamp": "2026-02-09T12:00:00.000Z", "path": "/commands/order/create" } } ``` | HTTP | Uso comum | | ----- | ---------------------------------------------------------- | | `400` | Campo inválido ou operação bloqueada por regra de negócio. | | `401` | Token ausente, inválido, bloqueado ou incompatível. | | `404` | Entidade não encontrada. | | `409` | Conflito de estado ou duplicidade funcional. | # Autenticação (/autenticacao) Os endpoints da API Smart TEF usam JSON e autenticação por Bearer Token. Em rotas protegidas, também pode ser necessário enviar o Gateway Token no header de assinatura. ## Headers comuns [#headers-comuns] | Nome | Descrição | Valor | | --------------------------- | ---------------------------------------------------------- | -------------------- | | `Authorization` | Bearer Token recebido na criação da loja ou do integrador. | `Bearer ` | | `ocp-apim-subscription-key` | Gateway Token recebido na criação da loja. | `` | | `Content-Type` | Tipo de conteúdo da requisição. | `application/json` | ## Token da loja [#token-da-loja] Use o token da loja para operações do dia a dia, como criar pagamentos, consultar status, configurar webhook, gerenciar usuários e terminais da própria loja. Quando a loja for gerenciada por um integrador, o token pode ser gerado pela rota: ```http POST https://api.smarttef.mobi/integrator/store/get/token ``` ## Token do integrador [#token-do-integrador] Use o token do integrador apenas para operações de gestão sobre lojas integradas, como ativação, bloqueio, desbloqueio, reativação e revogação de token. ## Escopo e autorização [#escopo-e-autorização] | Contexto | Regra | | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | | Loja | A operação fica limitada à loja representada pelo token. Quando um payload aceitar `cnpj`, ele deve ser o mesmo CNPJ associado ao token. | | Integrador | O integrador precisa estar ativo e autorizado a operar sobre a loja informada. Operações de integrador não substituem o token operacional da loja. | | Terminal | Operações executadas no POS dependem de terminal ativo, pertencente à loja e não bloqueado. | | Operador | Quando a operação receber `user_id`, o usuário deve pertencer à loja e estar apto a operar no Smart TEF. | ## Direcionamento de ordens [#direcionamento-de-ordens] Ordens podem ser abertas para a lista geral ou direcionadas para um destino específico: * `order_type: "NRM"` deixa o card disponível na lista de operações. * `order_type: "CRD_UNICO"` direciona o card para um único destino e exige apenas `user_id` ou apenas `serial_pos`. * `user_id` e `serial_pos` não devem ser enviados juntos na mesma ordem. ## Credenciais de portal [#credenciais-de-portal] Tenha disponível pelo menos: * Um usuário administrador para configurações. * Um usuário operador para fluxos operacionais. * Loja criada e habilitada no ambiente correto. * Terminal ativado, quando o fluxo depender de card direcionado a POS. ## Observações [#observações] * Parceiros White Label devem solicitar habilitação comercial antes de começar. * Nem todos os endpoints exigem as mesmas credenciais, mas o `Authorization` deve ser tratado como obrigatório na integração. * Use HTTPS para webhook e para qualquer endpoint exposto publicamente pelo ERP. ## Boas práticas de segurança [#boas-práticas-de-segurança] * Guarde tokens em variáveis de ambiente ou cofre de segredos. * Não exponha tokens em aplicações frontend. * Revogue e gere um novo token quando houver suspeita de vazamento. * Registre somente identificadores técnicos nos logs e evite armazenar payloads completos com dados pessoais. # Conceitos (/conceitos) O Smart TEF transforma uma Smart POS em um terminal de pagamento integrado ao ERP, PDV ou sistema de retaguarda, sem cabos ou equipamentos adicionais. O sistema externo envia ordens pela API. O POS exibe cada ordem como um card operacional, processa a ação e devolve o resultado por consulta ativa ou webhook. ## Escopos de integração [#escopos-de-integração] | Escopo | Quando usar | | ---------- | -------------------------------------------------------------------------------------------------------------------------- | | ERP Loja | Operações do dia a dia da loja: pagamentos, impressões, formulários, usuários, terminais, webhook e configurações da loja. | | Integrador | Administração de lojas vinculadas: ativação, bloqueio, desbloqueio, geração de token e revogação de token. | Use sempre o token compatível com o escopo da operação. Token de loja não substitui token de integrador, e token de integrador não substitui o token operacional da loja. ## Tipos de card [#tipos-de-card] | Card | Objetivo | | ----------------- | --------------------------------------------------------------------------------------- | | Card de pagamento | Solicitar pagamento no POS, acompanhar status, cancelar pendência ou solicitar estorno. | | Card de impressão | Enviar conteúdo para impressão no POS e acompanhar o processamento. | | Formulário | Coletar dados estruturados no POS e consultar o preenchimento. | ## Casos de uso [#casos-de-uso] | Segmento | Aplicação comum | | ----------------------- | ------------------------------------------------------------- | | Varejo e PDV | Enviar pagamento vinculado a venda e emissão fiscal. | | Delivery e restaurantes | Direcionar pagamento para operador ou terminal específico. | | Força de vendas | Registrar cobranças externas com acompanhamento centralizado. | | Logística | Coletar dados ou confirmar operações no POS. | | Posto de combustível | Integrar pagamento ao fluxo operacional da bomba ou caixa. | ## Ciclo de uma ordem [#ciclo-de-uma-ordem] 1. O sistema externo cria a ordem pela API. 2. O Smart TEF registra o card e controla o status. 3. O POS exibe a ordem para o operador. 4. O operador executa pagamento, impressão ou preenchimento. 5. O sistema externo recebe o resultado por polling ou webhook. # Smart TEF (/) O Smart TEF permite que ERPs, PDVs, sistemas de retaguarda e plataformas externas criem ordens de pagamento, impressão e coleta de dados por API. A aplicação cliente acompanha o processamento por consulta ativa ou por webhook. Conectado via API ou pela criação manual de cards, o Smart TEF transforma a Smart POS em um terminal integrado ao seu sistema, sem cabos ou equipamentos adicionais. ## Escopos de integração [#escopos-de-integração] A documentação está organizada por público de consumo: | Escopo | Quando usar | | ---------- | --------------------------------------------------------------------------------------------------------------------------------- | | ERP Loja | Integrações da própria loja: pagamentos, impressões, formulários, consultas, usuários, terminais, webhook e configuração da loja. | | Integrador | Integrações que administram lojas vinculadas: ativação, bloqueio, geração ou revogação de token. | Use o token compatível com o escopo da operação. Um token de loja não substitui um token de integrador, e um token de integrador não deve ser usado para operações operacionais da loja fora das rotas previstas. ## Objetivo [#objetivo] Servir como guia de referência para integração via API do Smart TEF com sistemas ERP, retaguarda e operações externas. ## Público-alvo [#público-alvo] Parceiros e clientes que precisam integrar sistemas externos ao Smart TEF. ## Pré-requisitos [#pré-requisitos] * Loja criada e habilitada no Smart TEF. * Bearer Token para acesso à API. * Gateway Token para chamadas protegidas. * Credenciais do portal com usuário administrador e operador. * URL pública para webhook, quando desejar receber atualizações automáticas. * Terminal ativado no ambiente, quando a operação exigir envio para POS. Parceiros White Label devem solicitar esses pré-requisitos ao atendimento comercial antes do início da integração. ## O que você encontra nesta aba [#o-que-você-encontra-nesta-aba] * [Autenticação](./autenticacao) com tokens, headers e boas práticas. * [Referência](./referencia) com status, tipos e convenções. * [Card de pagamento](./card-pagamento) com criação, consulta, cancelamento e estorno. * [Card de impressão](./card-impressao) com criação, consulta e cancelamento. * [Formulários](./formularios) para coleta de dados estruturados. * [Webhook](./webhook) para callbacks de status e reprocessamento. * [Lupa online](./lupa-online) para pesquisa e criação de cards sob demanda. * [Anonimização](./anonimizacao) para remoção de dados pessoais. ## Fluxo recomendado [#fluxo-recomendado] 1. Configure loja, usuários, terminais e webhook quando necessário. 2. Crie uma ordem de pagamento, impressão ou formulário. 3. Guarde o identificador retornado pela API. 4. Consulte o status por polling ou receba atualizações via webhook. 5. Cancele ordens pendentes, solicite estorno de pagamentos concluídos ou anonimize dados pessoais quando aplicável. ## Respostas e erros [#respostas-e-erros] As respostas de sucesso e erro seguem um envelope JSON com `status` e `data`. Em erros de validação ou regra de negócio, `data.message` pode retornar uma lista de mensagens ou objetos com o campo inválido. | HTTP | Significado | | ------------- | --------------------------------------------------------------------------------- | | `200` / `201` | Requisição aceita e processada. | | `400` | Erro de validação ou regra de negócio. | | `401` | Token ausente, inválido, bloqueado ou incompatível com a operação. | | `404` | Recurso não encontrado. | | `409` | Conflito, como duplicidade funcional ou operação incompatível com o estado atual. | | `500` | Erro inesperado no processamento. | ## Tabela de status de retorno [#tabela-de-status-de-retorno] | Status | Descrição | | ---------- | --------------------- | | `PDT` | Pendente | | `PROC_PAG` | Processando pagamento | | `CNC` | Concluído | | `CAN_ERP` | Cancelado pelo ERP | | `REJ_PAG` | Pagamento rejeitado | | `SOL_EST` | Solicitou estorno | | `PROC_EST` | Processando estorno | | `EST` | Estornado | | `REJ_EST` | Estorno rejeitado | | `IMP` | Impresso | | `REJ` | Rejeitado | | `PROC` | Processando | ## Tipos de pagamento [#tipos-de-pagamento] | Tipo | Descrição | | --------- | ----------------------------------------------------------------- | | `CREDIT` | Crédito | | `DEBIT` | Débito | | `PIX` | Pix | | `VOUCHER` | Voucher | | `OTHERS` | Campo livre para o operador escolher a forma de pagamento no POS. | ## Operações exibidas no POS [#operações-exibidas-no-pos] | Operação | Cor | | ------------ | -------- | | Pagamento | Cinza | | Cancelamento | Vermelho | | Impressão | Amarelo | ## Arquitetura [#arquitetura] O ERP cria uma ordem no Smart TEF por API e passa a acompanhar o ciclo de vida dessa ordem por consulta ativa ou webhook. A API mantém o estado do card, entrega a solicitação ao Smart POS e recebe o resultado do processamento feito no terminal.
Sistema externo ERP / PDV Cria pagamento, impressão ou formulário via API.
Orquestração API Smart TEF Valida tokens, registra o card e controla status.
Operação Smart POS Exibe o card para o operador e inicia a execução.
Processamento Adquirente Processa pagamento ou confirma a ação solicitada.
Retorno do resultado Smart POS → API Smart TEF → ERP Status disponível por polling ou enviado por webhook configurado.
## Principais endpoints [#principais-endpoints] | Operação | Endpoint | | ----------------------------- | ----------------------------------------------------------------- | | Criar pagamento | `POST https://api.smarttef.mobi/commands/order/create` | | Consultar pagamento | `POST https://api.smarttef.mobi/pooling/order/get` | | Listar pagamentos por período | `POST https://api.smarttef.mobi/pooling/order` | | Cancelar pagamento pendente | `POST https://api.smarttef.mobi/commands/order/status/cancelar` | | Solicitar estorno | `POST https://api.smarttef.mobi/commands/order/status/estornar` | | Criar impressão | `POST https://api.smarttef.mobi/commands/print/create` | | Consultar impressão | `POST https://api.smarttef.mobi/pooling/print/get` | | Cancelar impressão pendente | `POST https://api.smarttef.mobi/commands/print/status/cancelar` | | Criar formulário | `POST https://api.smarttef.mobi/commands/form/create` | | Configurar webhook da loja | `POST https://api.smarttef.mobi/manager/store/update` | | Anonimizar pagamentos | `POST https://api.smarttef.mobi/manager/store/payments/anonymize` | # Quickstart (/quickstart) Este guia mostra o caminho mínimo para criar um pagamento e acompanhar o resultado. ## 1. Configure os headers [#1-configure-os-headers] ```http Authorization: Bearer ocp-apim-subscription-key: Content-Type: application/json ``` Use token de loja para operações de pagamento. Token de integrador é reservado para gestão de lojas vinculadas. ## 2. Crie um pagamento [#2-crie-um-pagamento] ```http POST https://api.smarttef.mobi/commands/order/create ``` Envie os dados da cobrança e, quando necessário, direcione a ordem para um usuário ou terminal específico. Consulte os campos em [Card de pagamento](./card-pagamento). ## 3. Guarde o identificador [#3-guarde-o-identificador] Armazene o identificador retornado pela API, como `payment_identifier`, para consultas futuras, conciliação e suporte. ## 4. Consulte o status [#4-consulte-o-status] ```http POST https://api.smarttef.mobi/pooling/order/get ``` Consulte a ordem até que ela chegue a um status final, como `CNC`, `CAN_ERP`, `REJ_PAG`, `EST` ou `REJ_EST`. ## 5. Configure webhook quando necessário [#5-configure-webhook-quando-necessário] Para reduzir polling, configure o webhook da loja e receba callbacks automáticos de mudança de status. Veja [Webhook](./webhook) para payloads, reprocessamento e boas práticas. ## Próximos passos [#próximos-passos] * Revise [Autenticação](./autenticacao) para entender tokens e escopos. * Consulte [Referência](./referencia) para status, tipos de pagamento e convenções. * Use [API Reference](/api) para ver endpoints e contratos detalhados. # Card de impressão (/card-impressao) Use ordens de impressão para enviar uma imagem ou conteúdo renderizado ao Smart TEF. ## Regras do arquivo [#regras-do-arquivo] * Tamanho máximo de `56000` bytes, medido no arquivo da imagem antes da conversão para Base64. Acima disso a impressão é recusada. * Largura máxima de `450px`. Imagens mais estreitas são centralizadas e completadas com barras brancas nas laterais até `450px`. * Altura máxima de `2000px`. * Formato `JPEG` ou `PNG`. * Envie o conteúdo em Base64 no campo `file.data`, sem o prefixo `data:image/png;base64,`. Conteúdo fora do padrão Base64, incluindo esse prefixo, é recusado com `400`. ## Headers [#headers] | Nome | Descrição | Valor | | --------------------------- | ------------------------------------------ | -------------------- | | `Authorization` | Token JWT da loja. | `Bearer {token}` | | `ocp-apim-subscription-key` | Gateway Token recebido na criação da loja. | `{subscription-key}` | | `Content-Type` | Formato do corpo da requisição. | `application/json` | Mais detalhes sobre os tokens em [Autenticação](/autenticacao). ## Criar impressão [#criar-impressão] ```http POST https://api.smarttef.mobi/commands/print/create ``` Os cards de impressão servem para enviar uma imagem ao terminal. ```json { "order_type": "CRD_UNICO", "serial_pos": "6502T1", "has_details": true, "print_id": "12345", "extras": { "Nome": "Teste da Silva", "CPF": "000.000.000-00" }, "file": { "data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVR4AWP4DwQACfsD/c8LaHIAAAAASUVORK5CYII=" } } ``` O exemplo direciona o card a um POS por `serial_pos`. Para direcionar a um operador, troque `serial_pos` por `user_id`. | Campo | Tipo | Obrigatório | Descrição | | -------------- | --------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `order_type` | `string` | Não | `CRD_UNICO` exibe imediatamente. `NRM` deixa o card em lista. Padrão `NRM`. | | `user_id` | `number` | Condicional | Operador que receberá o card. Em `CRD_UNICO`, envie este campo ou `serial_pos`. Em `NRM`, é opcional e deixa o card só na lista desse operador. Não pode ser enviado junto com `serial_pos`. | | `serial_pos` | `string` | Condicional | Serial do POS que receberá o card. Em `CRD_UNICO`, envie este campo ou `user_id`. Em `NRM`, é opcional e deixa o card só na lista desse POS. Não pode ser enviado junto com `user_id`. | | `print_id` | `string` | Não | Identificador do card criado pelo ERP. Envie como texto: número sem aspas é recusado. | | `has_details` | `boolean` | Não | Se `true`, exibe tela de detalhes ao clicar. Em card `CRD_UNICO` sem interação, use `false`. Padrão `false`. | | `file` | `object` | Sim | Objeto com `data`, a imagem em Base64. `name` é opcional e só compõe o nome do arquivo armazenado: ele não aparece no POS. | | `extras` | `object` | Não | Campos livres do ERP, como `Nome` e `CPF`, exibidos na tela de detalhes quando `has_details` for `true`. | | `is_from_text` | `boolean` | Não | Indica que a imagem foi renderizada a partir de texto pelo ERP. | ### Regras de impressão [#regras-de-impressão] | Tema | Regra | | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Direcionamento | Em `CRD_UNICO`, envie exatamente um entre `user_id` e `serial_pos`. Em `NRM`, sem nenhum dos dois o card aparece na lista de todos os POS da loja. Nunca envie os dois juntos. | | Destino | `serial_pos` precisa ser de um terminal ativo e não bloqueado da loja: terminal não encontrado retorna `404`, e terminal bloqueado ou desativado retorna `401`. `user_id` precisa ser de um operador ativo: operador não encontrado ou bloqueado retorna `404`. | | Arquivo | A criação exige a imagem em Base64 em `file.data`. A API identifica o formato pelo conteúdo e define a extensão do arquivo armazenado. | | Dados extras | `extras` é gravado como enviado: a API não remove a pontuação de CPF ou CNPJ nem limita o tamanho de `Nome`, ao contrário do card de pagamento. | | Duplicidade | `print_id` não deve ser reutilizado enquanto existir impressão pendente ou processando para a mesma loja. | | Cancelamento | Só é permitido cancelar impressões ainda pendentes. | ## Retorno da criação [#retorno-da-criação] ```json { "print_identifier": "019c9618-0d2f-7405-8e07-2a3e75b20172", "print_status": "PDT", "order_type": "CRD_UNICO", "file": "https://storage.blob.com/smart-tef/68ab8366-29db-438e-9a39-8ca72691c0b7-SR4YK.png", "print_id": "189" } ``` | Campo | Descrição | | ------------------ | ----------------------------------------------- | | `print_identifier` | Identificador único gerado para cada impressão. | | `print_status` | Status atual do card. | | `order_type` | Tipo do card, único ou normal. | | `file` | URL da imagem armazenada para download. | | `print_id` | Identificador informado pelo ERP. | Veja o contrato completo em [Criar impressão](/api-reference/impressoes/criar-impressao). ## Consultar impressão [#consultar-impressão] ```http POST https://api.smarttef.mobi/pooling/print/get ``` ```json { "print_identifier": "019c9618-0d2f-7405-8e07-2a3e75b20172" } ``` | Campo | Tipo | Obrigatório | Descrição | | ------------------ | -------- | ----------- | ----------------------------------------- | | `print_identifier` | `string` | Sim | Identificador único da impressão em UUID. | A resposta é um objeto único, não uma lista. Se a impressão não existir na loja, a API responde `404`. ## Exemplo de retorno de consulta [#exemplo-de-retorno-de-consulta] ```json { "print_identifier": "019c9618-0d2f-7405-8e07-2a3e75b20172", "cnpj": "22140418000160", "create_at": "2026-02-25T15:38:04.603Z", "update_at": "2026-02-25T15:38:04.603Z", "file": "https://storage.blob.com/smart-tef/68ab8366-29db-438e-9a39-8ca72691c0b7-SR4YK.png", "order_type": "CRD_UNICO", "print_status": "PDT", "serial_pos": "", "user_id": 24, "type": "PRINT", "has_details": true, "print_id": "189", "location": { "lat": "", "long": "" }, "reason": null, "extras": { "Nome": "Teste da Silva", "CPF": "000.000.000-00" } } ``` ## Campos de retorno [#campos-de-retorno] | Campo | Descrição | | ------------------ | ----------------------------------------------- | | `print_identifier` | Identificador único gerado para cada impressão. | | `cnpj` | CNPJ da loja. | | `create_at` | Data e hora da criação do card. | | `update_at` | Data e hora da última atualização. | | `file` | URL da imagem para download. | | `order_type` | `CRD_UNICO` ou `NRM`. | | `print_status` | Status atual do card. | | `serial_pos` | Serial do POS. | | `user_id` | ID do usuário que enviou a imagem. | | `type` | Tipo do card. Para impressão, será `PRINT`. | | `has_details` | Indica se há detalhes adicionais no card. | | `print_id` | Identificador do card criado pelo ERP. | | `location.lat` | Latitude do terminal. | | `location.long` | Longitude do terminal. | | `reason` | Motivo da rejeição, quando houver. | | `extras` | Campos extras enviados pelo ERP. | Veja o contrato completo em [Consultar impressão](/api-reference/impressoes/consultar-impressao). ## Cancelar impressão pendente [#cancelar-impressão-pendente] ```http POST https://api.smarttef.mobi/commands/print/status/cancelar ``` ```json { "print_identifier": "019c9618-0d2f-7405-8e07-2a3e75b20172" } ``` O cancelamento só se aplica a impressões ainda pendentes. Se a impressão já estiver processando no POS, acompanhe o resultado pela consulta ou pelo webhook. ### Retorno do cancelamento [#retorno-do-cancelamento] ```json { "print_identifier": "019c9618-0d2f-7405-8e07-2a3e75b20172", "print_status": "CAN_ERP", "order_type": "CRD_UNICO" } ``` | Campo | Descrição | | ------------------ | ----------------------------------------------- | | `print_identifier` | Identificador único gerado para cada impressão. | | `print_status` | Status atual do card. | | `order_type` | Tipo do card, único ou normal. | Veja o contrato completo em [Cancelar impressão pendente](/api-reference/impressoes/cancelar-impressao-pendente). # Card de pagamento (/card-pagamento) Use ordens de pagamento para enviar uma cobrança ao Smart TEF e acompanhar seu ciclo até a conclusão, rejeição, cancelamento ou estorno. ## Headers [#headers] | Nome | Descrição | Valor | | --------------------------- | ------------------------------------------ | -------------------- | | `Authorization` | Token JWT da loja. | `Bearer {token}` | | `ocp-apim-subscription-key` | Gateway Token recebido na criação da loja. | `{subscription-key}` | | `Content-Type` | Formato do corpo da requisição. | `application/json` | Mais detalhes sobre os tokens em [Autenticação](/autenticacao). ## Criar pagamento [#criar-pagamento] ```http POST https://api.smarttef.mobi/commands/order/create ``` Esses cards podem ser enviados para um ou mais POS com a finalidade de realizar um pagamento. Exemplo de body para um card do tipo normal: ```json { "value": 1.0, "payment_type": "DEBIT", "installments": 1, "charge_id": "Identificador único", "order_type": "NRM", "extras": { "CPF": "000.000.000-00", "Nome": "Teste da Silva" }, "has_details": true } ``` | Campo | Tipo | Obrigatório | Descrição | | ------------------ | --------- | ----------- | ---------------------------------------------------------------------------------------------------------------- | | `value` | `number` | Sim | Valor do pagamento, com separador decimal. | | `payment_type` | `string` | Não | Tipo do pagamento. Veja [tipos de pagamento](./referencia#tipos-de-pagamento). | | `fee_type` | `string` | Não | Em crédito, define quem paga os juros: `F_STORE` ou `F_CLIENT`. | | `installments` | `number` | Não | Quantidade de parcelas. Padrão `1`. Acima de 1, só com `payment_type` igual a `CREDIT`. | | `min_installments` | `number` | Não | Menor quantidade de parcelas permitida. | | `charge_id` | `string` | Não | Identificador do card criado pelo ERP. | | `order_type` | `string` | Não | `CRD_UNICO` para exibir imediatamente ou `NRM` para lista. | | `user_id` | `number` | Condicional | Usuário que receberá o card quando `order_type` for `CRD_UNICO`. Não pode ser enviado junto com `serial_pos`. | | `serial_pos` | `string` | Condicional | Serial do POS que receberá o card quando `order_type` for `CRD_UNICO`. Não pode ser enviado junto com `user_id`. | | `extras` | `object` | Não | Campos extras como `CPF`, `CNPJ` e `Nome`. | | `has_details` | `boolean` | Não | Define se os detalhes extras podem ser exibidos em tela auxiliar. | | `form` | `object` | Não | Formulário associado ao pagamento, quando aplicável. | ### Regras de pagamento [#regras-de-pagamento] | Tema | Regra | | ------------------- | -------------------------------------------------------------------------------------------------------------------------- | | Valor | `value` deve ser maior ou igual a `1` e aceitar no máximo duas casas decimais. | | Parcelas | `installments` deve ser maior que zero. Parcelamento maior que uma parcela só deve ser usado com `payment_type: "CREDIT"`. | | Parcela mínima | `min_installments` só se aplica a crédito e não pode ser maior que `installments`. | | Juros | `fee_type` se aplica a crédito parcelado. Em crédito com mais de uma parcela e sem `fee_type`, a API assume `F_STORE`. | | Dados extras | `extras.CPF` e `extras.CNPJ` podem ser enviados com ou sem pontuação. Use `Nome` com até 80 caracteres. | | Duplicidade | `charge_id` deve ser único para ordens pendentes, processando ou em fluxo de estorno na mesma loja. | | Formulário agregado | Quando `form` for enviado na criação do pagamento, o retorno inclui os dados do formulário vinculado ao pagamento. | ## Retorno da criação [#retorno-da-criação] ```json { "payment_identifier": "019c964f-5ecf-7889-97c2-1121e6f65f5c", "payment_status": "PDT", "order_type": "NRM", "charge_id": "966", "form": { "form_identifier": "019c964f-5eca-7a15-a1b4-433e8ae004f8", "form_status": "PDT", "order_type": "NRM", "form_url": "https://storage.example.com/smart-tef/form-818", "form_name": "form-818", "fill_out_type": "REQUEST_MANDATORY_FORM" } } ``` | Campo | Descrição | | -------------------- | ------------------------------------------- | | `payment_identifier` | Identificador único gerado para cada card. | | `payment_status` | Status atual do card. | | `order_type` | Tipo do card, único ou normal. | | `charge_id` | Identificador informado pelo ERP. | | `form` | Dados do formulário anexado, quando houver. | Veja o contrato completo em [Criar pagamento](/api-reference/pagamentos/criar-pagamento). ## Consultar pagamento [#consultar-pagamento] ```http POST https://api.smarttef.mobi/pooling/order/get ``` Envie ao menos um dos parâmetros abaixo. Enviando os dois, a API aplica os dois filtros ao mesmo tempo. ```json { "payment_identifier": "68ab8366-29db-438e-9a39-8ca72691c0b7" } ``` Ou: ```json { "charge_id": "1" } ``` | Campo | Tipo | Obrigatório | Descrição | | -------------------- | -------- | ----------- | --------------------------------------------------------------------- | | `charge_id` | `string` | Condicional | Identificador do ERP. Pode retornar vários cards relacionados. | | `payment_identifier` | `string` | Condicional | Identificador do pagamento, em UUID. Retorna apenas o card informado. | A resposta é sempre uma lista. Se nenhum card for encontrado, a API responde `400` com a mensagem `payment order not found`. ## Exemplo de retorno de consulta [#exemplo-de-retorno-de-consulta] ```json [ { "payment_identifier": "68ab8366-29db-438e-9a39-8ca72691c0b7", "cnpj": "99999999999999", "create_at": "2026-02-12T14:43:53.336Z", "update_at": "2026-02-12T14:44:53.336Z", "value": "10", "payment_value": null, "payment_date": null, "autorization_code": null, "order_type": "NRM", "payment_type": "OTHERS", "payment_status": "PDT", "card_brand": null, "installments": 1, "nsu_host": null, "nsu_sitef": null, "acquirer": null, "serial_pos": "", "user_id": 0, "payment_extras": null, "extras": { "CPF": "", "Nome": "" }, "has_details": true, "type": "PAYMENT", "charge_id": "313", "controle_versao": null, "conn_type": null, "batt_level": null, "charging": null, "location": { "lat": "", "long": "" }, "reason": null, "refund_autorization_code": null, "refund_serial_pos": null, "refund_user_id": null, "coupon": null, "refound_coupon": null, "fee_type": null, "refund_date": null, "acquirer_cnpj": null } ] ``` > Campos preenchidos pela adquirente podem retornar null até a conclusão da transação. ## Campos de retorno [#campos-de-retorno] | Campo | Descrição | | -------------------------- | ----------------------------------------------------- | | `payment_identifier` | Identificador único gerado para cada card. | | `cnpj` | CNPJ da loja que receberá o pagamento. | | `create_at` | Data da criação do card. | | `update_at` | Data da última atualização. | | `value` | Valor solicitado no pagamento. | | `payment_value` | Valor efetivamente pago no Smart POS. | | `payment_date` | Data do pagamento. | | `autorization_code` | Código de autorização do pagamento. | | `order_type` | `CRD_UNICO` ou `NRM`. | | `payment_type` | Tipo do pagamento. | | `payment_status` | Status atual do card. | | `card_brand` | Nome da bandeira. | | `installments` | Número de parcelas. | | `nsu_host` | NSU atribuído pelo host da adquirente. | | `nsu_sitef` | NSU atribuído pelo SiTef. | | `acquirer` | Nome da adquirente. | | `serial_pos` | Serial do POS que realizou a transação. | | `user_id` | ID do usuário que realizou a transação. | | `payment_extras` | Dados extras recebidos no processamento do pagamento. | | `extras` | Campos extras enviados pelo ERP. | | `has_details` | Indica se `extras` pode ser exibido no app. | | `type` | Tipo do card. Para pagamento, será `PAYMENT`. | | `charge_id` | Identificador do card criado pelo usuário. | | `controle_versao` | Versão do app Smart TEF. | | `conn_type` | Tipo de conexão do terminal. | | `batt_level` | Percentual de bateria. | | `charging` | Indica se o terminal está no carregador. | | `location.lat` | Latitude do terminal. | | `location.long` | Longitude do terminal. | | `reason` | Motivo da rejeição, quando houver. | | `refund_autorization_code` | Código de autorização do reembolso. | | `refund_serial_pos` | Serial do POS que realizou o reembolso. | | `refund_user_id` | ID do usuário que realizou o reembolso. | | `coupon` | Links para comprovantes do pagamento. | | `refound_coupon` | Links para comprovantes do estorno. | | `fee_type` | Tipo de juros em crédito: `F_STORE` ou `F_CLIENT`. | | `refund_date` | Data do reembolso. | | `acquirer_cnpj` | CNPJ da adquirente. | Veja o contrato completo em [Consultar pagamento](/api-reference/pagamentos/consultar-pagamento). ## Listar pagamentos [#listar-pagamentos] ```http POST https://api.smarttef.mobi/pooling/order ``` Lista os cards da loja atualizados dentro de uma janela de 24 horas. ```json { "datetimeInitial": "2026-02-09 00:00:00", "datetimeFinal": "2026-02-10 00:00:00" } ``` | Campo | Tipo | Obrigatório | Descrição | | ----------------- | -------- | ----------- | ------------------------------------------------------------------------------------------------------------- | | `datetimeInitial` | `string` | Sim | Início da janela, no formato `YYYY-MM-DD HH:MM:SS`. | | `datetimeFinal` | `string` | Sim | Fim da janela, no formato `YYYY-MM-DD HH:MM:SS`. Precisa ser exatamente 24 horas depois de `datetimeInitial`. | * A janela precisa ter exatamente 24 horas, com tolerância de 1 segundo. Qualquer outro intervalo é recusado. * O filtro é aplicado sobre `update_at`, não sobre a data de criação. * A lista `pooling` traz pagamentos, impressões e formulários independentes. Use o campo `type` de cada item para distinguir `PAYMENT`, `PRINT` e `FORM`. * `pooling_time` indica o intervalo recomendado, em segundos, entre uma listagem e a próxima. Veja o contrato completo em [Listar pagamentos](/api-reference/pagamentos/listar-pagamentos). ## Cancelar pagamento pendente [#cancelar-pagamento-pendente] ```http POST https://api.smarttef.mobi/commands/order/status/cancelar ``` O cancelamento só será possível enquanto o pagamento estiver pendente e o processamento no POS ainda não tiver sido iniciado. ```json { "payment_identifier": "68ab8366-29db-438e-9a39-8ca72691c0b7" } ``` ### Retorno do cancelamento [#retorno-do-cancelamento] ```json { "payment_identifier": "68ab8366-29db-438e-9a39-8ca72691c0b7", "payment_status": "CAN_ERP", "order_type": "NRM" } ``` | Campo | Descrição | | -------------------- | ------------------------------------------ | | `payment_identifier` | Identificador único gerado para cada card. | | `payment_status` | Status atual do card. | | `order_type` | Tipo do card, único ou normal. | Veja o contrato completo em [Cancelar pagamento pendente](/api-reference/pagamentos/cancelar-pagamento-pendente). ## Solicitar estorno [#solicitar-estorno] ```http POST https://api.smarttef.mobi/commands/order/status/estornar ``` Use este endpoint para solicitar a reversão de uma transação já concluída. Depois da solicitação, acompanhe o status por consulta ou webhook até `EST` ou `REJ_EST`. ```json { "payment_identifier": "68ab8366-29db-438e-9a39-8ca72691c0b7" } ``` > Pagamentos PIX processados pela PagSeguro, Getnet, Stone, Vero, SafraPay ou Sipag não podem ser estornados. Nesse caso, a API recusa a solicitação e o card não é enviado ao terminal. Os outros meios de pagamento dessas adquirentes continuam liberados. ### Retorno do estorno [#retorno-do-estorno] ```json { "payment_identifier": "68ab8366-29db-438e-9a39-8ca72691c0b7", "payment_status": "SOL_EST", "order_type": "NRM" } ``` | Campo | Descrição | | -------------------- | ------------------------------------------ | | `payment_identifier` | Identificador único gerado para cada card. | | `payment_status` | Status atual do card. | | `order_type` | Tipo do card, único ou normal. | ### Estorno recusado [#estorno-recusado] ```json { "status": 400, "data": { "message": "Estorno indisponível para pagamentos PIX processados pela PagSeguro.", "error_code": "PIX_REFUND_NOT_SUPPORTED", "acquirer": "PAGSEGURO", "payment_identifier": "68ab8366-29db-438e-9a39-8ca72691c0b7", "timestamp": "2026-02-09T12:00:00.000Z", "path": "/commands/order/status/estornar" } } ``` Trate a recusa pelo `error_code` `PIX_REFUND_NOT_SUPPORTED`, não pelo texto de `message`, que muda conforme a adquirente. `acquirer` traz o valor gravado no pagamento: `PAGSEGURO`, `GETNET`, `STONE`, `VERO`, `SAFRA` ou `SIPAG`. Veja o contrato completo em [Solicitar estorno](/api-reference/pagamentos/solicitar-estorno). # Formulários (/formularios) Formulários permitem solicitar dados estruturados durante uma operação ou como uma ordem independente. Para coletar dados junto de uma cobrança, envie o formulário no campo `form` de [Criar pagamento](./card-pagamento#criar-pagamento) em vez de usar esta rota. ## Headers [#headers] | Nome | Descrição | Valor | | --------------------------- | ------------------------------------------ | -------------------- | | `Authorization` | Token JWT da loja. | `Bearer {token}` | | `ocp-apim-subscription-key` | Gateway Token recebido na criação da loja. | `{subscription-key}` | | `Content-Type` | Formato do corpo da requisição. | `application/json` | Mais detalhes sobre os tokens em [Autenticação](/autenticacao). ## Criar formulário [#criar-formulário] ```http POST https://api.smarttef.mobi/commands/form/create ``` ```json { "order_type": "NRM", "form_name": "cadastro-cliente", "extras": { "CNPJ": "12612554000131" }, "form": [ { "field": "Email", "type": "EMAIL", "needed": true }, { "field": "Observação", "type": "TEXTO" } ] } ``` | Campo | Obrigatório | Descrição | | --------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------- | | `cnpj` | Não | CNPJ da loja, somente dígitos. Quando omitido, a API usa o CNPJ do token. Quando enviado, precisa ser igual ao CNPJ do token. | | `order_type` | Não | `NRM` deixa o card na lista geral e `CRD_UNICO` abre direto no destino. | | `serial_pos` | Condicional | Serial do POS que receberá o formulário quando `order_type` for `CRD_UNICO`. Não pode ser enviado junto com `user_id`. | | `user_id` | Condicional | Operador que receberá o formulário quando `order_type` for `CRD_UNICO`. Não pode ser enviado junto com `serial_pos`. | | `form_name` | Não | Nome de referência do formulário. | | `fill_out_type` | Não | `REQUEST_COMUM_FORM` ou `REQUEST_MANDATORY_FORM`. | | `extras` | Não | Dados complementares enviados pelo ERP. | | `has_details` | Não | Permite abrir a tela de detalhes do card. | | `form[].field` | Sim | Nome do campo exibido ao operador. | | `form[].value` | Não | Valor inicial do campo. O POS devolve o valor preenchido. | | `form[].type` | Não | `TEXTO`, `NUMBER`, `DATA`, `CPF`, `CNPJ`, `CEP` ou `EMAIL`. Padrão `TEXTO`. | | `form[].needed` | Não | Torna o preenchimento do campo obrigatório. Padrão `false`. | ## Regras de formulário [#regras-de-formulário] | Tema | Regra | | --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Direcionamento | Para `CRD_UNICO`, envie exatamente um entre `user_id` e `serial_pos`. Os dois nunca podem ser enviados juntos. | | Obrigatoriedade | Basta um campo com `needed: true` para a API definir `fill_out_type` como `REQUEST_MANDATORY_FORM`. Enviar `REQUEST_MANDATORY_FORM` sem nenhum campo obrigatório é recusado. | | Duplicidade | `form_name` precisa ser único entre os formulários da loja que estejam em `PDT` ou `PROC`. | | Conclusão | Campos obrigatórios devem retornar preenchidos como string não vazia. | ## Retorno da criação [#retorno-da-criação] ```json { "form_identifier": "01970d18-aac3-7ff4-ba76-78e785409d09", "form_status": "PDT", "order_type": "NRM", "form_url": "https://storage.blob.com/smart-tef/cadastro-cliente", "form_name": "cadastro-cliente", "fill_out_type": "REQUEST_MANDATORY_FORM" } ``` | Campo | Descrição | | ----------------- | --------------------------------------------------- | | `form_identifier` | Identificador único do formulário, gerado pela API. | | `form_status` | Status atual do card. | | `order_type` | Tipo do card, único ou normal. | | `form_url` | URL do JSON do formulário armazenado. | | `form_name` | Nome de referência informado na criação. | | `fill_out_type` | `REQUEST_COMUM_FORM` ou `REQUEST_MANDATORY_FORM`. | Veja o contrato completo em [Criar formulário](/api-reference/formularios/criar-formulario). ## Consultar formulário [#consultar-formulário] ```http POST https://api.smarttef.mobi/pooling/form/get ``` ```json { "form_identifier": "01970d18-aac3-7ff4-ba76-78e785409d09" } ``` | Campo | Tipo | Obrigatório | Descrição | | ----------------- | -------- | ----------- | ------------------------------------------------- | | `form_identifier` | `string` | Sim | Identificador do formulário devolvido na criação. | * A resposta é um objeto único, não uma lista. Se o formulário não existir na loja, a API responde `404`. * As respostas preenchidas pelo operador ficam no JSON apontado por `form_url`. O corpo devolve o estado do card. * A consulta funciona tanto para formulários independentes quanto para formulários vinculados a um pagamento. ## Exemplo de retorno de consulta [#exemplo-de-retorno-de-consulta] ```json { "form_identifier": "01970d18-aac3-7ff4-ba76-78e785409d09", "cnpj": "22140418000160", "create_at": "2026-02-25T15:38:04.603Z", "update_at": "2026-02-25T15:41:12.117Z", "order_type": "NRM", "form_status": "CNC", "serial_pos": "", "user_id": 24, "type": "FORM", "controle_versao": "2.14.0", "conn_type": "WIFI", "batt_level": "87", "charging": false, "location": { "lat": "", "long": "" }, "reason": null, "form_name": "cadastro-cliente", "order_target": "USR", "package_name": "br.com.poscontrole.smarttef", "store_id": 1, "form_url": "https://storage.blob.com/smart-tef/cadastro-cliente", "fill_out_type": "REQUEST_MANDATORY_FORM", "agregate": "NONE", "order_target_initial": "USR", "serial_pos_initial": "", "user_id_initial": 24, "extras": { "CNPJ": "12612554000131" }, "has_details": false } ``` ## Campos de retorno [#campos-de-retorno] | Campo | Descrição | | ---------------------- | ------------------------------------------------------------------- | | `form_identifier` | Identificador único do formulário. | | `cnpj` | CNPJ da loja. | | `create_at` | Data de criação, no fuso de São Paulo. | | `update_at` | Data da última atualização, no fuso de São Paulo. | | `order_type` | `CRD_UNICO` ou `NRM`. | | `form_status` | Status atual do card. | | `serial_pos` | Serial do POS de destino. | | `user_id` | Operador de destino. | | `type` | Tipo do card. Para formulário, será `FORM`. | | `controle_versao` | Versão do app Smart TEF instalada no terminal que atendeu o card. | | `conn_type` | Tipo de conexão do terminal no momento da atualização. | | `batt_level` | Percentual de bateria do terminal. | | `charging` | Indica se o terminal estava no carregador. | | `location.lat` | Latitude do terminal. | | `location.long` | Longitude do terminal. | | `reason` | Motivo da rejeição informado pelo POS, quando houver. | | `form_name` | Nome de referência do formulário. | | `order_target` | Destino atual do card: `USR`, `POS` ou `NONE`. | | `package_name` | Pacote do app que processou o formulário. | | `store_id` | Identificador interno da loja. | | `form_url` | URL do JSON com os campos e as respostas do formulário. | | `fill_out_type` | `REQUEST_COMUM_FORM` ou `REQUEST_MANDATORY_FORM`. | | `agregate` | Vínculo do formulário: `NONE` (independente), `PAYMENT` ou `PRINT`. | | `order_target_initial` | Destino original do card: `USR`, `POS` ou `NONE`. | | `serial_pos_initial` | Destino original em POS. | | `user_id_initial` | Destino original em operador. | | `extras` | Campos extras enviados pelo ERP. | | `has_details` | Indica se a tela de detalhes pode ser aberta. | Veja o contrato completo em [Consultar formulário](/api-reference/formularios/consultar-formulario). ## Cancelar formulário pendente [#cancelar-formulário-pendente] ```http POST https://api.smarttef.mobi/commands/form/status/cancelar ``` ```json { "form_identifier": "01970d18-aac3-7ff4-ba76-78e785409d09" } ``` O cancelamento só se aplica a formulários ainda pendentes. Depois que o preenchimento estiver em processamento, acompanhe o resultado pela consulta. ### Retorno do cancelamento [#retorno-do-cancelamento] ```json { "form_identifier": "01970d18-aac3-7ff4-ba76-78e785409d09", "form_status": "CAN_ERP", "order_type": "NRM" } ``` | Campo | Descrição | | ----------------- | ---------------------------------- | | `form_identifier` | Identificador único do formulário. | | `form_status` | Status atual do card. | | `order_type` | Tipo do card, único ou normal. | Veja o contrato completo em [Cancelar formulário pendente](/api-reference/formularios/cancelar-formulario-pendente). # Lupa online (/lupa-online) O Smart TEF disponibiliza uma funcionalidade de pesquisa de cards acessível pela lupa no canto superior direito da interface do Smart POS. A lupa online permite que o operador pesquise um card no Smart POS sem que ele tenha sido criado previamente na API do Smart TEF. Nessa modalidade, o Smart TEF consulta o ERP em tempo real, recebe os cards compatíveis com a busca e cria o card de pagamento para o terminal.
Operador Busca no POS Informa o termo de pesquisa na lupa do Smart TEF.
Smart TEF Busca no ERP Envia o termo pesquisado para o endpoint de busca da loja.
ERP Devolve os cards Retorna um array com os cards encontrados.
POS Card criado e exibido O card é gravado como pendente e o operador o processa no POS.
## Configurar busca online da loja [#configurar-busca-online-da-loja] ```http POST https://api.smarttef.mobi/manager/store/update ``` Use o token da loja. Para configurar a busca online, basta enviar `payment_external_hook`; os demais dados cadastrais da loja não são necessários. ```json { "payment_external_hook": { "url": "https://erp.example.com/smart-tef/busca", "authorization_token": "Bearer token-do-erp" } } ``` | Campo | Obrigatório | Descrição | | ------------------------------------------- | ----------- | -------------------------------------------------------------------------- | | `payment_external_hook.url` | Sim | Endpoint do ERP que recebe a pesquisa e devolve os cards. | | `payment_external_hook.authorization_token` | Não | Valor enviado, sem alteração, no header `Authorization` da chamada ao ERP. | O mesmo campo pode ser enviado na criação da loja pelo integrador, em [Ativar loja](/api-reference/integrador/ativar-loja). ## Como a busca funciona [#como-a-busca-funciona] * A lupa aparece no POS sempre que a loja tem `payment_external_hook` configurado. * O Smart TEF chama o ERP no momento da pesquisa, e o operador aguarda a resposta no POS. Responda o mais rápido possível. * Os cards devolvidos pelo ERP são **gravados** no Smart TEF como pendentes (`PDT`) e ficam disponíveis no POS que fez a pesquisa. * A criação desses cards não dispara webhook. O [webhook](./webhook) de status é enviado normalmente quando o POS processa o card. * Se o ERP responder com erro HTTP ou fora do contrato abaixo, a pesquisa falha e nenhum card é criado. ## Requisição enviada ao ERP [#requisição-enviada-ao-erp] ```bash curl --request POST '' \ --header 'Content-Type: application/json' \ --header 'Authorization: ' \ --data '{ "search": "pedido 1234" }' ``` | Campo | Descrição | | -------- | -------------------------------------------- | | `search` | Texto digitado pelo operador na lupa do POS. | ## Resposta esperada do ERP [#resposta-esperada-do-erp] Responda com um **array** de cards, mesmo quando houver apenas um. Um array vazio indica que nada foi encontrado, e nenhum card é criado. ```json [ { "value": 10, "payment_type": "PIX", "installments": 1, "charge_id": "019c967c-ff8e-7c83-94d1-df7eee6b5cbb", "order_type": "NRM", "extras": { "Nome": "Cliente Exemplo" }, "has_details": false } ] ``` Cada item segue a estrutura de criação de [Card de pagamento](./card-pagamento#criar-pagamento), incluindo as [regras de pagamento](./card-pagamento#regras-de-pagamento). Apenas `value` é obrigatório. Alguns campos são preenchidos pelo próprio Smart TEF e, se enviados, são substituídos: | Campo | Valor usado | | --------------- | ---------------------------------------------- | | `cnpj` | CNPJ da loja que fez a pesquisa. | | `store_id` | Loja que fez a pesquisa. | | `serial_pos` | Serial do POS que fez a pesquisa. | | `payment_value` | `0`. | | `has_details` | `true`, salvo configuração específica da loja. | # Webhook (/webhook) Configure um webhook para receber atualizações de status sem depender apenas de consultas por polling. O webhook é indicado para acompanhar eventos de pagamento e impressão. Para formulários, use a consulta do próprio formulário quando precisar confirmar preenchimento ou cancelamento. ## Configurar webhook da loja [#configurar-webhook-da-loja] ```http POST https://api.smarttef.mobi/manager/store/update ``` Use o token da loja. Para configurar apenas o webhook, basta enviar `webhookUrl`; os demais dados cadastrais da loja não são necessários. ```json { "webhookUrl": { "url": "https://erp.example.com/webhooks/smart-tef", "authorization_token": "Bearer token-do-erp" } } ``` | Campo | Obrigatório | Descrição | | -------------------------------- | ----------- | --------------------------------------------------------------------------------- | | `webhookUrl.url` | Sim | URL que receberá os eventos de status. Com a URL vazia, nenhum webhook é enviado. | | `webhookUrl.authorization_token` | Não | Valor enviado, sem alteração, no header `Authorization` do callback. | ## Quando o webhook é enviado [#quando-o-webhook-é-enviado] O webhook é disparado quando o **POS** altera o status de um card. O payload traz o card completo com o status resultante. **Pagamento** | Ação no POS | `payment_status` enviado | | ------------------------------------ | ------------------------------------------------- | | Inicia o processamento do pagamento | `PROC_PAG` | | Conclui o pagamento | `CNC` ou `PARTIAL_PAG`, conforme o status gravado | | Rejeita o pagamento | `REJ_PAG` | | Libera o card, que volta para a fila | `PDT` | | Solicita estorno pelo POS | `SOL_EST` | | Inicia o processamento do estorno | `PROC_EST` | | Conclui o estorno | `EST` | | Rejeita o estorno | `REJ_EST` | **Impressão** | Ação no POS | `print_status` enviado | | ------------------- | ---------------------- | | Inicia a impressão | `PROC` | | Conclui a impressão | `IMP` | | Rejeita a impressão | `REJ` | Operações feitas pelo ERP (criação, cancelamento e solicitação de estorno) **não** disparam webhook, porque o próprio ERP já recebe o resultado na resposta da chamada. Cards criados pela [Lupa online](./lupa-online) também não geram webhook na criação, apenas quando o POS os processa. O endpoint do parceiro deve responder com sucesso HTTP. Guarde o identificador do card recebido no payload para conciliar eventos duplicados ou reenviados. ## Exemplo de payload enviado para pagamento [#exemplo-de-payload-enviado-para-pagamento] Quando um POS altera o estado de um card, o Smart TEF envia o JSON correspondente para o webhook configurado. ```json { "acquirer": null, "acquirer_cnpj": null, "autorization_code": null, "batt_level": 58, "card_brand": null, "charge_id": "570", "charging": false, "cnpj": "22140418000160", "conn_type": 1, "controle_versao": "Versão 1.3.4", "coupon": null, "create_at": "2026-02-25T16:05:56.853Z", "extras": {}, "fee_type": null, "form_order": [], "grouped_payments": [], "has_details": false, "installments": 1, "location": { "lat": "1231311", "long": "1231313" }, "min_installments": null, "nsu_host": null, "nsu_sitef": null, "order_type": "NRM", "package_name": null, "payment_date": null, "payment_extras": null, "payment_identifier": "019c9631-91d1-72ca-9fdf-aed3a471b92b", "payment_status": "PROC_PAG", "payment_type": "OTHERS", "payment_value": null, "reason": null, "refound_coupon": null, "refund_autorization_code": null, "refund_date": null, "refund_serial_pos": null, "refund_user_id": null, "serial_pos": "6502T1", "type": "PAYMENT", "update_at": "2026-02-25T16:05:58.690Z", "user_id": 24, "value": "10" } ``` > No card de pagamento, a propriedade type será sempre PAYMENT. Os campos seguem a mesma estrutura descrita em [Card de pagamento](./card-pagamento#campos-de-retorno). Campos enviados pela adquirente podem permanecer `null` até a conclusão. O payload do webhook também inclui: | Campo | Descrição | | ------------------ | ----------------------------------------------------------------------------------------------------------- | | `min_installments` | Menor quantidade de parcelas permitida, quando definida na criação. | | `package_name` | Pacote do aplicativo Android que processou o card no POS. | | `grouped_payments` | Cards originais que foram agrupados no POS para gerar este card. Lista vazia quando não houver agrupamento. | | `form_order` | Formulário vinculado ao card. Lista vazia quando não houver. | Lojas com [Múltiplos Pagamentos](https://doc.clickup.com/90171278926/d/h/2kza11je-2497/867432ab53765c8) habilitado também recebem `partial_payments` (lista dos pagamentos parciais) e `remaining_payment_amount` (valor que ainda falta pagar). ## Exemplo de payload enviado para impressão [#exemplo-de-payload-enviado-para-impressão] ```json { "cnpj": "22140418000160", "create_at": "2026-02-25T16:13:46.286Z", "file": "https://storage.example.com/smart-tef/019c9638-print.png", "has_details": true, "location": { "lat": "12", "long": "12" }, "order_type": "CRD_UNICO", "print_id": "460", "print_identifier": "019c9638-bb85-7e8f-8a5a-6899ee9f6f9a", "print_status": "PROC", "reason": null, "serial_pos": "6502T1", "type": "PRINT", "update_at": "2026-02-25T16:13:50.773Z", "user_id": 24 } ``` > No card de impressão, a propriedade type será sempre PRINT. Os campos seguem a mesma estrutura descrita em [Card de impressão](./card-impressao#campos-de-retorno). ## Reprocessar webhook [#reprocessar-webhook] Para reenviar o webhook de um card, use o token da loja: ```http POST https://api.smarttef.mobi/commands/webhook/send ``` ```json { "identifier": "019c9631-91d1-72ca-9fdf-aed3a471b92b", "type": "PAYMENT" } ``` | Campo | Obrigatório | Descrição | | ------------ | ----------- | --------------------------------------------------- | | `identifier` | Sim | `payment_identifier` ou `print_identifier` do card. | | `type` | Sim | `PAYMENT` ou `PRINT`. | * O payload reenviado traz o **status atual** do card, não estados anteriores. * A resposta de sucesso indica que o reenvio foi enfileirado, não que o seu endpoint recebeu o evento. * Se a loja não tiver `webhookUrl.url` configurada, nada é enviado, mesmo com resposta de sucesso. Use o reprocessamento quando o endpoint parceiro estiver indisponível, responder com erro ou precisar receber novamente o evento após correção operacional. Veja o contrato completo em [Reprocessar webhook da loja](/api-reference/webhooks/reprocessar-webhook-da-loja). # API (/api-reference) Esta área lista apenas endpoints voltados à integração externa. Use os grupos do menu lateral para encontrar a operação pelo objetivo de negócio: pagamentos, impressões, formulários, consultas, loja, usuários, terminais, webhooks e integrador. ## Documentos públicos [#documentos-públicos] | Documento | Público | Uso | | ---------- | ------------------------------------ | ------------------------------------------------------------------------------------------ | | ERP Loja | Loja, ERP ou sistema de retaguarda | Operações da loja: criar e consultar cards, gerenciar loja, usuários, terminais e webhook. | | Integrador | Integradores e parceiros autorizados | Gestão de lojas vinculadas, emissão e revogação de token da loja. | As rotas privadas de administração interna não fazem parte desta documentação. ## Convenções [#convenções] * Envie `Authorization: Bearer ` nas rotas protegidas. * Use o Gateway Token quando ele for exigido no ambiente de integração. * Use os identificadores retornados pela API, como `payment_identifier`, `print_identifier` e `form_identifier`, para consultas e cancelamentos. * Em erros de validação ou regra de negócio, confira `data.message` no corpo da resposta. # Terminais (/api/terminais) * [Listar terminais](/docs/api/terminais/listar-terminais) * [Ativar terminal](/docs/api/terminais/ativar-terminal) * [Desativar terminal](/docs/api/terminais/desativar-terminal) * [Atualizar apelido do terminal](/docs/api/terminais/atualizar-apelido-do-terminal) * [Bloquear terminal](/docs/api/terminais/bloquear-terminal) * [Desbloquear terminal](/docs/api/terminais/desbloquear-terminal) # Cancelar formulário pendente (/api-reference/formularios/cancelar-formulario-pendente) # Consultar formulário (/api-reference/formularios/consultar-formulario) # Criar formulário (/api-reference/formularios/criar-formulario) # Formulários (/api-reference/formularios) * [Criar formulário](/api-reference/formularios/criar-formulario) * [Consultar formulário](/api-reference/formularios/consultar-formulario) * [Cancelar formulário pendente](/api-reference/formularios/cancelar-formulario-pendente) # Alterar configuração do integrador (/api-reference/integrador/alterar-configuracao-do-integrador) # Ativar loja (/api-reference/integrador/ativar-loja) # Bloquear loja (/api-reference/integrador/bloquear-loja) # Desativar loja (/api-reference/integrador/desativar-loja) # Desbloquear loja (/api-reference/integrador/desbloquear-loja) # Consultar token da loja (/api-reference/integrador/gerar-token-da-loja) # Integrador (/api-reference/integrador) Use estes endpoints quando a integração atua como parceira responsável por lojas vinculadas. As operações abaixo exigem token de integrador e não devem ser chamadas com token operacional de loja. ## Operações disponíveis [#operações-disponíveis] * [Ativar loja](/docs/api/integrador/ativar-loja) * [Desativar loja](/docs/api/integrador/desativar-loja) * [Reativar loja](/docs/api/integrador/reativar-loja) * [Bloquear loja](/docs/api/integrador/bloquear-loja) * [Desbloquear loja](/docs/api/integrador/desbloquear-loja) * [Consultar token da loja](/docs/api/integrador/gerar-token-da-loja) * [Revogar token da loja](/docs/api/integrador/revogar-token-da-loja) * [Alterar configuração do integrador](/docs/api/integrador/alterar-configuracao-do-integrador) * [Listar configurações do integrador](/docs/api/integrador/listar-configuracoes-do-integrador) ## Regras de uso [#regras-de-uso] * O integrador precisa estar ativo para operar sobre lojas vinculadas. * A consulta do token da loja deve ser tratada como operação sensível. * Revogue o token da loja quando houver troca de credenciais, suspeita de vazamento ou encerramento da integração. * Bloqueio, desbloqueio, desativação e reativação alteram a capacidade operacional da loja integrada. # Listar configurações do integrador (/api-reference/integrador/listar-configuracoes-do-integrador) # Reativar loja (/api-reference/integrador/reativar-loja) # Revogar token da loja (/api-reference/integrador/revogar-token-da-loja) # Alterar configuração da loja (/api-reference/loja/alterar-configuracao-da-loja) # Atualizar loja (/api-reference/loja/atualizar-loja) # Consultar loja (/api-reference/loja/consultar-loja) # Loja (/api-reference/loja) * [Consultar loja](/api-reference/loja/consultar-loja) * [Atualizar loja](/api-reference/loja/atualizar-loja) * [Alterar configuração da loja](/api-reference/loja/alterar-configuracao-da-loja) * [Listar configurações da loja](/api-reference/loja/listar-configuracoes-da-loja) # Listar configurações da loja (/api-reference/loja/listar-configuracoes-da-loja) # Anonimizar pagamentos (/api-reference/pagamentos/anonimizar-pagamentos) # Cancelar pagamento pendente (/api-reference/pagamentos/cancelar-pagamento-pendente) # Consultar pagamento (/api-reference/pagamentos/consultar-pagamento) # Criar pagamento (/api-reference/pagamentos/criar-pagamento) # Pagamentos (/api-reference/pagamentos) * [Criar pagamento](/api-reference/pagamentos/criar-pagamento) * [Consultar pagamento](/api-reference/pagamentos/consultar-pagamento) * [Listar pagamentos](/api-reference/pagamentos/listar-pagamentos) * [Cancelar pagamento pendente](/api-reference/pagamentos/cancelar-pagamento-pendente) * [Solicitar estorno](/api-reference/pagamentos/solicitar-estorno) * [Anonimizar pagamentos](/api-reference/pagamentos/anonimizar-pagamentos) # Listar pagamentos (/api-reference/pagamentos/listar-pagamentos) # Solicitar estorno (/api-reference/pagamentos/solicitar-estorno) # Ativar terminal (/api-reference/terminais/ativar-terminal) # Atualizar apelido do terminal (/api-reference/terminais/atualizar-apelido-do-terminal) # Bloquear terminal (/api-reference/terminais/bloquear-terminal) # Desativar terminal (/api-reference/terminais/desativar-terminal) # Desbloquear terminal (/api-reference/terminais/desbloquear-terminal) # Terminais (/api-reference/terminais) * [Listar terminais](/api-reference/terminais/listar-terminais) * [Atualizar apelido do terminal](/api-reference/terminais/atualizar-apelido-do-terminal) * [Bloquear terminal](/api-reference/terminais/bloquear-terminal) * [Desbloquear terminal](/api-reference/terminais/desbloquear-terminal) # Listar terminais (/api-reference/terminais/listar-terminais) # Alterar senha de usuário (/api-reference/usuarios/alterar-senha-de-usuario) # Alterar senha POS de usuário (/api-reference/usuarios/alterar-senha-pos-de-usuario) # Atualizar usuário (/api-reference/usuarios/atualizar-usuario) # Bloquear usuário (/api-reference/usuarios/bloquear-usuario) # Configurar MFA (/api-reference/usuarios/configurar-mfa) # Criar usuário (/api-reference/usuarios/criar-usuario) # Usuários (/api-reference/usuarios) * [Listar usuários](/api-reference/usuarios/listar-usuarios) * [Criar usuário](/api-reference/usuarios/criar-usuario) * [Atualizar usuário](/api-reference/usuarios/atualizar-usuario) * [Bloquear usuário](/api-reference/usuarios/bloquear-usuario) * [Alterar senha de usuário](/api-reference/usuarios/alterar-senha-de-usuario) * [Alterar senha POS de usuário](/api-reference/usuarios/alterar-senha-pos-de-usuario) * [Configurar MFA](/api-reference/usuarios/configurar-mfa) * [Validar MFA](/api-reference/usuarios/validar-mfa) # Listar usuários (/api-reference/usuarios/listar-usuarios) # Validar MFA (/api-reference/usuarios/validar-mfa) # Webhooks (/api-reference/webhooks) * [Reprocessar webhook da loja](/api-reference/webhooks/reprocessar-webhook-da-loja) # Reprocessar webhook da loja (/api-reference/webhooks/reprocessar-webhook-da-loja) # Cancelar impressão pendente (/api-reference/impressoes/cancelar-impressao-pendente) # Consultar impressão (/api-reference/impressoes/consultar-impressao) # Criar impressão (/api-reference/impressoes/criar-impressao) # Impressões (/api-reference/impressoes) * [Criar impressão](/api-reference/impressoes/criar-impressao) * [Consultar impressão](/api-reference/impressoes/consultar-impressao) * [Cancelar impressão pendente](/api-reference/impressoes/cancelar-impressao-pendente)