Selectwin API
Introdução
A Selectwin API foi desenvolvida seguindo os melhores padrões REST, proporcionando uma integração simples e eficiente para qualquer aplicação. As operações são realizadas por meio de requisições aos endpoints, utilizando os verbos HTTP apropriados e corpos de mensagem no formato JSON. As respostas são facilmente interpretadas por meio dos códigos de status HTTP, garantindo uma experiência de integração clara e intuitiva, independentemente da linguagem de programação escolhida.
Além disso, disponibilizamos uma chave de testes, permitindo que as integrações sejam realizadas com total segurança, sem o risco de realizar cobranças reais nos cartões de crédito. Dessa forma, você pode testar à vontade e garantir o perfeito funcionamento antes de ir para produção.
Recursos
1. Gestão de Clientes
- Customers: Gerenciamento completo de clientes, incluindo criação, consulta, atualização e exclusão
- Addresses: Gerenciamento de endereços para clientes e empresas
2. Financeiro e Transações
- Transactions: Processamento e gerenciamento de transações financeiras com múltiplos métodos de pagamento.
- Subscriptions: Gestão de assinaturas recorrentes, incluindo cobrança automática, renovação, e controle dos ciclos de pagamento.
- Wallets: Gerenciamento de carteiras digitais para armazenamento seguro de métodos de pagamento.
- Finance: Operações financeiras, balanços, saques e relatórios de recebíveis.
- Cards: Gerenciamento seguro de cartões de crédito e débito
3. Utilitários
- Utils: Funções utilitárias como validação de BIN de cartão, consulta de CEP e listagem de bancos
- Webhooks: Sistema robusto de notificações em tempo real para eventos da plataforma, dividido em Endpoints (configuração) e Events (histórico e reenvio)
Autenticação
Para se autenticar na API, você precisa obter sua credential selectKey.
Acesse sua conta na dashboard da Selectwin para coletar suas credenciais.
As chamadas de testes e de produção devem ser feitas para o respectivo endpoint. O que definirá se a transação usará o simulador ou seguirá o fluxo de produção será a chave utilizada.
Todas as requisições à API devem incluir suas credenciais no cabeçalho da requisição:
curl -X GET "https://api.selectwin.io/v1/*" \
-H "SelectKey: sl_abc123..." \
-H "Content-Type: application/json" \
-H "Accept: application/json"
Códigos de Erros
Nossa API valida todos os campos enviados na requisição antes de prosseguir com a criação, consulta ou gerenciamento de pedidos, transações e recursos disponíveis.
A API segue os códigos de resposta padrão do HTTP para indicar o sucesso ou falha de uma requisição. Códigos 2xx indicam respostas bem-sucedidas, enquanto códigos 4xx referem-se a erros nos dados fornecidos, como omissão de um campo obrigatório ou envio de um cartão sem validade. Códigos 5xx indicam problemas nos nossos servidores, que estamos empenhados em resolver.
Principais Códigos de Status HTTP
| Código | Status | Descrição |
|---|---|---|
| 200 | OK | A solicitação foi bem-sucedida e a resposta contém o resultado esperado. |
| 201 | Created | A solicitação foi bem-sucedida e o recurso foi criado. |
| 400 | Bad Request | A solicitação foi malformada ou contém erros que impedem seu processamento. |
| 401 | Unauthorized | A autenticação falhou. A chave da API fornecida é inválida ou não tem permissão para operar. |
| 403 | Forbidden | O acesso foi negado. Pode ser devido a bloqueios de IP, domínio ou permissões insuficientes. |
| 404 | Not Found | O recurso solicitado não foi encontrado no servidor. |
| 412 | Precondition Failed | As pré-condições da solicitação não foram atendidas, mesmo que os parâmetros estejam corretos. |
| 422 | Unprocessable Entity | A solicitação foi compreendida, mas contém dados inválidos que não puderam ser processados. |
| 429 | Too Many Requests | O número de solicitações excedeu o limite permitido para o IP ou usuário. |
| 500 | Internal Server Error | Ocorreu um erro inesperado no servidor, impedindo o processamento da solicitação. |
| 503 | Service Unavailable | O serviço bancário está fora do ar, não sendo possível processar a requisição no momento. Tente novamente. |
Estrutura do Objeto de Erro
Quando ocorre um erro, a API retorna um objeto JSON com informações detalhadas sobre o problema. Abaixo estão os atributos do objeto de erro:
| Atributo | Tipo | Descrição |
|---|---|---|
status |
string | Descrição textual do status HTTP |
statusCode |
number | Código numérico do status HTTP |
category |
string | Categoria do erro (validation, authentication, authorization, server, etc.) |
message |
string | Mensagem principal descrevendo o erro |
details |
string | Detalhes adicionais sobre o erro (opcional) |
params |
array | Lista de parâmetros específicos que causaram o erro (opcional) |
suggestedActions |
array | Sugestões de ações para resolver o problema |
docUrl |
string | URL para documentação relacionada ao erro |
supportUrls |
array | URLs para obter suporte adicional |
Exemplo de resposta de erro:
{
"error": {
"status": "Bad Request",
"statusCode": 400,
"category": "validation",
"message": "Validation errors occurred.",
"params": [
{
"payment[card][numbering]": "The credit card number is invalid."
}
],
"suggestedActions": [
"Check if the credit card number is correct",
"Check if the credit card is not expired"
],
"docUrl": "https://docs.selectwin.io/errors/validation",
"supportUrls": [
"https://suporte.selectwin.io/ajuda"
]
}
}
Paginação
A Selectwin API oferece suporte a buscas em massa por meio dos métodos de listagem, permitindo a recuperação eficiente de grandes volumes de dados, como usuários, assinaturas, pedidos e outros recursos. Todos esses métodos seguem uma estrutura comum que inclui paginação e filtros.
Por padrão, nossa API suporta os seguintes parâmetros de paginação:
-
sort: Especifica a direção da ordenação (ascending para ascendente, descending para descendente). -
offset: Define a partir de qual ponto nos resultados a consulta deve começar a retornar dados. limit: Define o número máximo de registros retornados pela consulta.
Esses parâmetros permitem um controle refinado sobre os resultados retornados, facilitando a navegação por grandes conjuntos de dados.
Estrutura de Resposta Paginada
Todas as respostas de listagem seguem um formato padrão, onde apenas o
conteúdo do array data varia de acordo com o recurso consultado:
{
"offset": 0,
"limit": 10,
"total": 6,
"page": {
"offset": {
"first": 0,
"prev": 0,
"next": 0,
"last": 0
},
"current": 1,
"total": 1
},
"hasMore": false,
"data": [
{
// Dados específicos do recurso consultado
"id": "wbe_abc1234567890xyz",
"name": "Nome do Recurso",
// Outros atributos específicos...
"updatedAt": "2025-01-26T10:15:00.000Z",
"createdAt": "2024-07-15T08:45:00.000Z"
},
// Mais itens...
]
}
| Atributo | Tipo | Descrição |
|---|---|---|
offset |
number | Posição inicial dos resultados retornados |
limit |
number | Quantidade máxima de registros retornados |
total |
number | Total de registros disponíveis para a consulta |
page.offset.first |
number | Offset da primeira página de resultados |
page.offset.prev |
number | Offset da página anterior |
page.offset.next |
number | Offset da próxima página |
page.offset.last |
number | Offset da última página |
page.current |
number | Número da página atual |
page.total |
number | Total de páginas disponíveis |
hasMore |
boolean | Indica se existem mais resultados além dos retornados |
data |
array | Array contendo os registros retornados |
Segurança - PCI Compliance
Para garantir a segurança na troca de informações, é necessário que nossos
servidores sejam liberados no seu ambiente. Recomendamos fortemente que você
libere o domínio: api.selectwin.io.
Como uma empresa certificada com PCI Compliance, seguimos padrões rigorosos de segurança na troca de informações com nossa API. Seguem as configurações aceitas:
Protocolos Aceitos
- TLS 1.2
- TLS 1.3 (Recomendamos fortemente a utilização deste protocolo)
Hash Codes
- SHA256
- SHA384
- SHA512
Cipher Suites
- Com criptografia igual ou superior a 128 bits
Certificados Digitais SSL
A Selectwin utiliza uma tecnologia que provisiona automaticamente os certificados digitais para as aplicações dos seus domínios. Esses certificados têm validade de 90 dias. Por isso, recomendamos que os clientes enviem transações para o nome completo (FQDN) dos endpoints da nossa API.
Importante: Não recomendamos o pinning de certificados com a chave pública.
Proibição de Polling
Para garantir a eficiência e a performance da nossa API, o uso de polling — a prática de fazer requisições repetidas em intervalos curtos para verificar o status de transações ou recursos — não é permitido.
Em vez disso, recomendamos o uso de webhooks para notificações em tempo real. Com os webhooks, sua aplicação será automaticamente informada quando houver uma mudança no status de uma transação, eliminando a necessidade de consultas frequentes e garantindo uma integração mais eficiente e escalável.
Caso o polling excessivo seja detectado, nos reservamos o direito de limitar ou suspender o acesso à API para evitar sobrecarga no sistema.
Para configurar webhooks, utilize os endpoints de Webhooks Endpoints
(/v1/webhooks/endpoints) e Webhooks Events (/v1/webhooks/events) conforme
documentado nas seções correspondentes.