{"openapi":"3.0.3","info":{"title":"Confrapag Sandbox API","version":"1.4.0","description":"Referência OpenAPI dos produtos do sandbox: Confrapix, ConfraOnline e SDKs de crédito/débito.\n\nNenhuma operação movimenta valor real.\n\nDocumentação humana: /docs/sandbox · Swagger UI: /docs/sandbox/swagger · JSON: /api/sandbox/openapi · Versões: /docs/sandbox/versoes"},"servers":[{"url":"https://sandbox.confrapix.com.br/api","description":"Sandbox Confrapix"},{"url":"https://sandbox.confraonline.com.br/api","description":"Sandbox ConfraOnline"},{"url":"/","description":"Portal Software House (rotas locais)"}],"tags":[{"name":"Confrapix","description":"Cobranças Pix no sandbox Confrapix: criação, consulta de status e callbacks.\n\nParticularidades de sandbox:\n- Nenhuma cobrança movimenta valor real (`environment: sandbox`, `allowsRealMovement: false`).\n- No portal, o resultado do Pix (aprovado, recusado, expirado, estorno) é simulado localmente e não altera o host Confrapix.\n- Callbacks (`callback_url`) são disparados pelo portal apenas quando informados na criação."},{"name":"ConfraOnline","description":"Link de pagamento, checkout com cartão e autenticação 3DS no sandbox ConfraOnline.\n\nParticularidades de sandbox:\n- O fluxo tem duas etapas: `/store` cria o link; `/payment` envia cartão e cliente.\n- 3DS (`in analysis`) e conclusão do pagamento podem ser simulados localmente no portal.\n- Não envie dados de cartão no `/store`."},{"name":"SDK de crédito","description":"Simulação de venda crédito na maquineta virtual do portal (parcelas, senha e comprovante).\n\nParticularidades de sandbox:\n- Não existe endpoint público ConfraOnline/Confrapix para a maquineta.\n- A venda fica isolada por tenant e não movimenta valor real.\n- Comprovante (NSU/autorização) só aparece em vendas aprovadas."},{"name":"SDK de débito","description":"Simulação de venda débito na maquineta virtual (senha obrigatória e comprovante).\n\nParticularidades de sandbox:\n- Mesmo isolamento da maquineta de crédito: só portal, só tenant autenticado.\n- Senha é obrigatória no débito.\n- Cartões de teste podem ser recusados conforme regras do simulador."}],"paths":{"/confrapix/transaction-ec/store":{"post":{"tags":["Confrapix"],"summary":"Criar cobrança Pix","description":"Abre uma cobrança Pix e devolve txid, QR/código e status inicial processing.\nHost: https://sandbox.confrapix.com.br/api/transaction-ec/store\nSandbox Confrapix. Bearer token do seller EC. O playground local simula o mesmo contrato.\n\nParticularidades só no sandbox:\n- A simulação de pagamento no playground é local; use o painel de cenário para mudar o status.\n- O host Confrapix real atualiza status via pagamento/webhook, não via UI do portal.","operationId":"confrapix_pix-store","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["amount"],"properties":{"amount":{"description":"Valor em reais, maior que zero, até duas casas.","type":"number"},"customer_name":{"description":"Nome do pagador. Obrigatório se informar documento.","type":"string"},"customer_document":{"description":"CPF (11) ou CNPJ (14). Obrigatório se informar nome.","type":"string"},"description":{"description":"Texto livre até 255 caracteres.","type":"string"},"expiration_date":{"description":"Expiração no formato AAAA-MM-DD HH:MM:SS.","type":"string"},"callback_url":{"description":"Webhook http(s) notificado em mudanças de status.","type":"string"}}},"example":{"amount":12,"customer_name":"Ana Souza","customer_document":"12312312300","description":"Pix de teste","expiration_date":"2026-12-31 23:59:59","callback_url":"https://example.com/callback"}}}},"responses":{"200":{"description":"Resposta de sucesso (consulta ou simulação).","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"description":"Cobrança criada no sandbox.","type":"integer","example":201},"environment":{"description":"Sempre sandbox.","type":"string","enum":["sandbox"]},"allowsRealMovement":{"description":"Nunca movimenta valor real.","type":"boolean"},"transaction.status":{"description":"Aguardando pagamento.","type":"string"},"transaction.pix":{"description":"url, txid e code do Pix de teste.","type":"object"}}},"example":{"status":201,"success":true,"environment":"sandbox","allowsRealMovement":false,"transaction":{"uuid":"…","status":"processing","payment_type":"pix","pix":{"txid":"…","code":"sandbox-…","url":"sandbox://pix/…"}}}}}},"201":{"description":"Recurso criado no sandbox.","content":{"application/json":{"schema":{"type":"object"},"example":{"status":201,"success":true,"environment":"sandbox","allowsRealMovement":false,"transaction":{"uuid":"…","status":"processing","payment_type":"pix","pix":{"txid":"…","code":"sandbox-…","url":"sandbox://pix/…"}}}}}}},"security":[{"bearerAuth":[]}],"x-sandbox-only":["A simulação de pagamento no playground é local; use o painel de cenário para mudar o status.","O host Confrapix real atualiza status via pagamento/webhook, não via UI do portal."]}},"/confrapix/transaction-ec/show/%7Buuid%7D":{"get":{"tags":["Confrapix"],"summary":"Acompanhar Pix no sandbox","description":"Referência de polling no host Confrapix enquanto o portal simula o resultado localmente.\nHost: https://sandbox.confrapix.com.br/api/transaction-ec/show/%7Buuid%7D\nNo sandbox Confrapix o status muda via pagamento de teste ou webhook. No portal, a simulação de Pix é local e não chama este host.\n\nParticularidades só no sandbox:\n- Particularidade do portal: o botão de simular Pix não chama este host.","operationId":"confrapix_pix-simulate-note","parameters":[{"name":"uuid","in":"path","required":true,"description":"Uuid da cobrança Pix.","schema":{"type":"string"}}],"responses":{"200":{"description":"Resposta de sucesso (consulta ou simulação).","content":{"application/json":{"schema":{"type":"object","properties":{"transaction.status":{"description":"Status atual no host sandbox.","type":"string"}}}}}}},"security":[{"bearerAuth":[]}],"x-sandbox-only":["Particularidade do portal: o botão de simular Pix não chama este host."]}},"/confraonline/transaction-ec/store":{"post":{"tags":["ConfraOnline"],"summary":"Criar link de pagamento","description":"Cria a cobrança link sem dados sensíveis de cartão.\nHost: https://sandbox.confraonline.com.br/api/transaction-ec/store\nSandbox ConfraOnline. Bearer token do seller EC. O playground local simula o mesmo contrato.\n\nParticularidades só no sandbox:\n- O playground gera o mesmo contrato e guarda a cobrança só no tenant autenticado.","operationId":"confraonline_link-store","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["amount","fee_exempt"],"properties":{"amount":{"description":"Valor em reais.","type":"number"},"payment_type":{"description":"Restringe o tipo no checkout.","type":"string","enum":["debit","credit"]},"brand":{"description":"Bandeira sugerida (visa, mastercard, elo…).","type":"string"},"fee_exempt":{"description":"Parcelas sem juros; use none quando não houver.","type":"string"},"description":{"description":"Descrição até 255 caracteres.","type":"string"},"date_expiration":{"description":"Expiração AAAA-MM-DD HH:MM:SS.","type":"string"},"callback_url":{"description":"Webhook http(s).","type":"string"}}},"example":{"amount":20,"fee_exempt":"none","description":"Pagamento de teste","callback_url":"https://example.com/callback","date_expiration":"2026-12-31 23:59:59"}}}},"responses":{"200":{"description":"Resposta de sucesso (consulta ou simulação).","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"description":"Link criado.","type":"integer","example":201},"transaction.status":{"description":"Aguardando pagamento no checkout.","type":"string"},"environment":{"description":"Ambiente de teste.","type":"string","enum":["sandbox"]}}}}}},"201":{"description":"Recurso criado no sandbox.","content":{"application/json":{"schema":{"type":"object"}}}}},"security":[{"bearerAuth":[]}],"x-sandbox-only":["O playground gera o mesmo contrato e guarda a cobrança só no tenant autenticado."]}},"/confraonline/transaction-ec/payment":{"post":{"tags":["ConfraOnline"],"summary":"Submeter pagamento do link","description":"Segunda etapa: cartão, cliente e parcelamento.\nHost: https://sandbox.confraonline.com.br/api/transaction-ec/payment\nSegunda etapa do ConfraOnline: envia cartão e cliente. Não incluir dados de cartão no /store.\n\nParticularidades só no sandbox:\n- No portal, o checkout e o 3DS são simulados; cartões de teste não geram autorização bancária.","operationId":"confraonline_link-payment","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["uuid","payment_type","number_installments","ip_address","customer"],"properties":{"uuid":{"description":"Uuid do link criado no store.","type":"string"},"payment_type":{"description":"Tipo de pagamento.","type":"string","enum":["debit","credit"]},"number_installments":{"description":"Parcelas (≥ 1).","type":"number"},"ip_address":{"description":"IP do pagador.","type":"string"},"customer":{"description":"Dados do cliente e cartão (holder, number, security_code, expiration_date, brand).","type":"object"},"redirect_url":{"description":"Retorno após 3DS/checkout.","type":"string"}}}}}},"responses":{"200":{"description":"Resposta de sucesso (consulta ou simulação).","content":{"application/json":{"schema":{"type":"object","properties":{"transaction.status":{"description":"succeeded | declined | in analysis.","type":"string"},"payment.urlAuthentication":{"description":"URL 3DS quando status = in analysis.","type":"string"},"allowsRealMovement":{"description":"Sem captura real.","type":"boolean"}}}}}},"201":{"description":"Recurso criado no sandbox.","content":{"application/json":{"schema":{"type":"object"}}}}},"security":[{"bearerAuth":[]}],"x-sandbox-only":["No portal, o checkout e o 3DS são simulados; cartões de teste não geram autorização bancária."]}},"/confraonline/transaction-ec/show/%7Buuid%7D":{"get":{"tags":["ConfraOnline"],"summary":"Status após autenticação 3DS","description":"Enquanto `in analysis`, consulte o show até a conclusão.\nHost: https://sandbox.confraonline.com.br/api/transaction-ec/show/%7Buuid%7D\nEnquanto status for in analysis, consulte o show. A conclusão 3DS no portal é simulada localmente.\n\nParticularidades só no sandbox:\n- A conclusão 3DS no portal é local e não chama o host ConfraOnline.","operationId":"confraonline_link-3ds","parameters":[{"name":"uuid","in":"path","required":true,"description":"Uuid da cobrança em análise.","schema":{"type":"string"}}],"responses":{"200":{"description":"Resposta de sucesso (consulta ou simulação).","content":{"application/json":{"schema":{"type":"object","properties":{"transaction.status":{"description":"Passa de in analysis para succeeded/declined.","type":"string"}}}}}}},"security":[{"bearerAuth":[]}],"x-sandbox-only":["A conclusão 3DS no portal é local e não chama o host ConfraOnline."]}},"/credito/software-house/maquineta":{"post":{"tags":["SDK de crédito"],"summary":"Simular venda no crédito","description":"Fluxo local da maquineta: modalidade, valor, cartão, senha e resultado.\nRota local do portal: /software-house/maquineta\nNão há endpoint público ConfraOnline/Confrapix para a maquineta. A venda é simulada só na Software House.\n\nParticularidades só no sandbox:\n- Particularidade só no sandbox do portal: UI guiada por etapas e comprovante visual.\n- PAN e senha nunca voltam em claro nas listagens.","operationId":"credito_terminal-credit","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["modality","amount","installments","brand","pan","password"],"properties":{"modality":{"description":"Modalidade crédito.","type":"string","enum":["credito"]},"amount":{"description":"Valor da venda.","type":"number"},"installments":{"description":"Parcelas (≥ 1).","type":"number"},"brand":{"description":"Bandeira do cartão.","type":"string"},"pan":{"description":"Número do cartão de teste (só últimos 4 são persistidos).","type":"string"},"password":{"description":"Senha do cartão (armazenada mascarada).","type":"string"}}}}}},"responses":{"200":{"description":"Resposta de sucesso (consulta ou simulação).","content":{"application/json":{"schema":{"type":"object","properties":{"result.status":{"description":"Resultado da simulação.","type":"string","enum":["approved","declined"]},"result.receipt":{"description":"NSU, authCode, valor, bandeira e last4 quando aprovada.","type":"object"},"result.steps":{"description":"Etapas percorridas na maquineta virtual.","type":"array","items":{"type":"object"}}}},"example":{"id":"…","result":{"status":"approved","receipt":{"nsu":"…","authCode":"…","modality":"credito","statusLabel":"Aprovada"}}}}}},"201":{"description":"Recurso criado no sandbox.","content":{"application/json":{"schema":{"type":"object"},"example":{"id":"…","result":{"status":"approved","receipt":{"nsu":"…","authCode":"…","modality":"credito","statusLabel":"Aprovada"}}}}}}},"security":[{"portalSession":[]}],"x-sandbox-only":["Particularidade só no sandbox do portal: UI guiada por etapas e comprovante visual.","PAN e senha nunca voltam em claro nas listagens."]}},"/debito/software-house/maquineta":{"post":{"tags":["SDK de débito"],"summary":"Simular venda no débito","description":"Fluxo local da maquineta em débito à vista.\nRota local do portal: /software-house/maquineta\nSimulação exclusiva do portal. Modalidade débito com senha obrigatória.\n\nParticularidades só no sandbox:\n- Cancelamento/estorno real de débito ainda não faz parte desta documentação de referência do portal.","operationId":"debito_terminal-debit","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["modality","amount","installments","brand","pan","password"],"properties":{"modality":{"description":"Modalidade débito.","type":"string","enum":["debito"]},"amount":{"description":"Valor da venda.","type":"number"},"installments":{"description":"Sempre 1 no débito.","type":"number"},"brand":{"description":"Bandeira do cartão.","type":"string"},"pan":{"description":"Número do cartão de teste.","type":"string"},"password":{"description":"Senha obrigatória.","type":"string"}}}}}},"responses":{"200":{"description":"Resposta de sucesso (consulta ou simulação).","content":{"application/json":{"schema":{"type":"object","properties":{"result.status":{"description":"Resultado da simulação.","type":"string","enum":["approved","declined"]},"result.receipt":{"description":"Comprovante apenas se aprovada.","type":"object"}}}}}},"201":{"description":"Recurso criado no sandbox.","content":{"application/json":{"schema":{"type":"object"}}}}},"security":[{"portalSession":[]}],"x-sandbox-only":["Cancelamento/estorno real de débito ainda não faz parte desta documentação de referência do portal."]}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"sandbox token","description":"Token sbx_ gerado em Credenciais da Software House."},"portalSession":{"type":"apiKey","in":"cookie","name":"confrapag_software_house","description":"Sessão autenticada da Software House."}},"schemas":{"SandboxEnvironment":{"type":"object","properties":{"environment":{"type":"string","enum":["sandbox"]},"allowsRealMovement":{"type":"boolean","enum":[false]}}}}}}