Visão geral
O recurso de Transações é um componente central da Selectwin API, permitindo o processamento e gerenciamento completo de pagamentos em sua plataforma. Este recurso oferece funcionalidades robustas par
Introdução
O recurso de Transações é um componente central da Selectwin API, permitindo o processamento e gerenciamento completo de pagamentos em sua plataforma. Este recurso oferece funcionalidades robustas para criar, consultar, capturar, reembolsar e disputar transações, com suporte a diversos métodos de pagamento como cartão de crédito, boleto, PIX e outros, atendendo às necessidades de diferentes modelos de negócio.
A API de Transações foi projetada com foco na versatilidade, segurança e rastreabilidade, proporcionando uma solução completa para o processamento de pagamentos em ambientes de e-commerce, marketplaces e serviços por assinatura.
Estrutura do Objeto Transação
O objeto Transação contém informações detalhadas sobre o pagamento, cliente, itens, status e histórico. A estrutura básica inclui:
{
"id": "tra_01hqzvabc",
"customId": "E5D4C3B2A1",
"amount": 1500,
"originalAmount": 1500,
"status": "approved",
"method": "credit",
"currency": "BRL",
"payment": {
"provider": "selectwin",
"version": "1.1",
"reusable": false,
"cardFirstDigits": "553121",
"cardLastDigits": "4567",
"cardBrand": "Mastercard",
"cardRegistered": true,
"installments": 3,
"acquirerTransactionNumber": "9876543210987654321098765432",
"paidAt": "2026-03-10T14:23:45.000Z",
"invoiceLink": "https://selectwin.io/invoices/tra_01hqzvabc"
},
"discount": null,
"discounts": null,
"customer": {
"id": "cus_987654321",
"firstName": "Maria",
"lastName": "Silva",
"email": "[email protected]",
"document": { "type": "cpf", "number": "98765432100" }
},
"billing": { "address": { "street": "Avenida Paulista", "number": "2000", "city": "São Paulo", "state": "SP", "postcode": "01310200", "country": "BR" } },
"shipping": null,
"externalReference": "CUS_REF_123",
"shippable": true,
"spplited": false,
"items": [
{ "id": "item_123", "name": "Produto Exemplo", "quantity": 1, "unitPrice": 1500, "currency": "BRL" }
],
"receivables": [],
"splits": null,
"refunds": null,
"disputes": null,
"timeline": [
{
"id": "tl_123",
"message": "Transaction approved",
"type": "status_change",
"createdAt": "2026-03-10T14:23:45.000Z"
}
],
"metadata": { "segment": "regular" },
"updatedAt": "2026-03-10T14:00:30.000Z",
"createdAt": "2026-03-10T09:15:25.000Z"
}Nota: Esta é uma versão resumida. A resposta completa (nível raiz) inclui merchant e _links (self, refund, capture). O customer traz os dados do comprador, mas não embute addresses/cards (use GET /v1/customers/:id); billing.address é aninhado. Para o exemplo completo e fiel, consulte Create / Read. A listagem usa projeção leve (ver List).
Status de Transação
Uma transação pode passar por diversos status durante seu ciclo de vida:
| Status | Descrição |
|---|---|
pending | Transação pendente (aguardando pagamento do boleto ou PIX) |
pre-authorized | Transação pré-autorizada (cartão de crédito com captura manual) |
approved | Transação aprovada |
failed | Falha no processamento |
refused | Transação recusada |
canceled | Transação cancelada |
refunded | Transação reembolsada (total ou parcialmente) |
chargeback | Transação com chargeback |
dispute | Transação em disputa |
fraud-review | Transação em revisão por suspeita de fraude |
analyzing | Transação em análise |
awaiting | Transação aguardando ação/processamento |
O alias
unauthorizednão é um status produzido pela API — ele é aceito apenas como filtro em Listar.
Fluxo de Status da Transação
Fluxo de Status dos Recebíveis
Métodos de Pagamento Suportados
A API suporta os seguintes métodos de pagamento:
| Método | Identificador | Descrição |
|---|---|---|
| Cartão de Crédito | credit | Pagamentos via cartão de crédito, com suporte a parcelamento (1–21x) e financiamento automático de juros |
| Boleto Bancário | billet | Pagamentos via boleto bancário, com prazo de vencimento configurável |
| PIX | pix | Pagamentos instantâneos via PIX |
A criação de transações suporta apenas
credit,pixebillet. Os identificadoresdebitenupaynão são aceitos na criação (nupayaparece apenas como filtro em Listar, por compatibilidade com dados legados).
Recursos Disponíveis
Criar Transação
- Endpoint:
POST /v1/transactions - Descrição: Cria uma nova transação (
credit,pixoubillet). Retorna 201 (ou 202 em análise de fraude) - Documentação detalhada
Consultar Transação
- Endpoint:
GET /v1/transactions/{transactionId} - Descrição: Obtém os detalhes completos de uma transação
- Documentação detalhada
Listar Transações
- Endpoint:
GET /v1/transactions - Descrição: Lista paginada com filtros (projeção leve)
- Documentação detalhada
Capturar Transação
- Endpoint:
POST /v1/transactions/{transactionId}/capture - Descrição: Captura uma transação pré-autorizada (assíncrono, HTTP 202)
- Documentação detalhada
Reembolsar Transação
- Endpoint:
POST /v1/transactions/{transactionId}/refund - Descrição: Reembolsa uma transação aprovada, total ou parcialmente (assíncrono, HTTP 202)
- Documentação detalhada
Disputar Transação (defesa)
- Endpoint:
POST /v1/transactions/{transactionId}/dispute - Descrição: Submete evidências para defender uma transação em disputa
- Documentação detalhada
Funcionalidades Avançadas
Captura Manual vs Automática
A API permite dois modos de captura para transações com cartão de crédito:
- Captura Automática (
capture: true): O valor é capturado imediatamente após a autorização - Captura Manual (
capture: false): O valor é apenas pré-autorizado e deve ser capturado posteriormente via endpoint específico
A captura manual é ideal para:
- Reservas hoteleiras
- Aluguel de veículos
- Serviços com valor final indefinido
- Verificação de fundos sem cobrança imediata
Financiamento automático de parcelas
Em cobranças com cartão de crédito parceladas (installments > 1), o campo payment.financeInstallments (default true) faz a API financiar automaticamente o parcelamento: o valor base é inflado para o total que o comprador pagaria com os juros configurados pelo vendedor (mesmo motor do simulador). Envie false apenas quando você já tiver calculado e enviado o total financiado.
Cobrança em nome de sub-conta (marketplace)
Plataformas de marketplace podem cobrar diretamente em nome de uma sub-conta que possuem usando onBehalfOf (o publicId da sub-conta). A sub-conta passa a ser o merchant de registro (recebível, saldo e antifraude próprios) e a plataforma recolhe sua taxa de aplicação como um split adicional.
Webhooks Acionados
| Evento | Descrição |
|---|---|
transaction.created | Transação criada. |
transaction.pending | Aguardando pagamento (boleto/PIX) ou processamento. |
transaction.approved | Transação aprovada com sucesso. |
transaction.failed | A tentativa de cobrança falhou (inclui recusa de cartão). |
transaction.canceled | Transação cancelada antes da conclusão. |
transaction.pre-authorized | Pré-autorização aprovada (aguardando captura). |
transaction.unauthorized | Pré-autorização não autorizada. |
transaction.awaiting | Em processamento / aguardando análise. |
transaction.fraud-review | Em análise de fraude. |
transaction.dispute | Transação em disputa. |
transaction.chargeback | Chargeback aberto contra a transação. |
transaction.refunded | Valor reembolsado ao cliente. |
receivable.created | Recebível gerado. |
receivable.scheduled | Recebível agendado para liberação. |
receivable.pending | Recebível aguardando liquidação. |
receivable.paid | Recebível liberado/pago. |
receivable.canceled | Recebível cancelado. |
receivable.refunded | Recebível reembolsado. |
receivable.dispute | Disputa afeta o recebível. |
receivable.chargeback | Chargeback afeta o recebível. |
receivable.fraud-hold | Recebível retido por análise de fraude. |
Não existe
transaction.refused(usetransaction.failed) nem eventostransaction.method.*/receivable.deleted. A lista completa de eventos está no Catálogo de Eventos.
Casos de Uso Comuns
- E-commerce: Processamento de pagamentos para lojas virtuais
- Assinaturas: Cobranças recorrentes para serviços de assinatura
- Marketplace: Processamento de pagamentos para múltiplos vendedores
- Aplicativos Móveis: Integração de pagamentos em aplicativos
- Pontos de Venda: Integração com sistemas de PDV físicos
Melhores Práticas
- Sempre utilize webhooks para receber notificações de mudanças de status
- Armazene o ID da transação para consultas e operações futuras
- Utilize a referência externa para facilitar a reconciliação com seu sistema
- Implemente tratamento de erros adequado para lidar com falhas nas requisições
- Para transações de alto valor, considere utilizar captura manual
- Mantenha registros detalhados para facilitar a resolução de disputas
Integração com Outros Recursos
O recurso de Transações integra-se com:
- Customers: Transações são associadas a clientes através do
customer.idou dados completos do cliente - Cards: Cartões salvos podem ser utilizados em transações através do
payment.card.id - Simulators: Ferramentas de simulação para testar diferentes cenários de pagamento
- Webhooks: Notificações em tempo real sobre mudanças de status nas transações
How is this guide?