Sub-contas - Excluir (pedir o encerramento)
Visão Geral
Excluir uma sub-conta é pedir o encerramento dela à Selectwin. O pedido abre um registro de encerramento; a Selectwin confere o que ainda prende a conta (saldo a liquidar, vendas em andamento, a janela de contestação das últimas vendas) e executa: chaves de API revogadas, cadastro no provedor de pagamento encerrado, assinaturas canceladas, webhooks desligados, domínios suspensos e a conta desativada. Até a execução, a sub-conta continua como está, e você pode desistir.
É um pedido, e não um botão, pelo mesmo motivo que vale para a sua própria conta: a API vê o que está aberto agora, mas um chargeback pode chegar semanas depois de uma venda, e uma conta já encerrada que o recebe fica com saldo negativo sem ninguém para acertar. Por isso uma pessoa fica entre a intenção e o irreversível.
Precauções
- Só a plataforma dona da sub-conta pede o encerramento dela. Um segundo pedido com um já aberto devolve o mesmo pedido, sem erro.
- O
reasonfica no registro e na trilha de auditoria. O vendedor é avisado da desativação quando ela acontecer, não do motivo. - Enquanto o pedido está
requested, a sub-conta opera normalmente. Se quiser que ela pare de cobrar já, suspenda e peça o encerramento. - Resolva os
blockersantes, ou o pedido fica parado: a Selectwin não encerra uma conta com saldo a pagar ao vendedor ou vendas em andamento. - Recurso de conta: chave
sk_live_(comsk_test_,409 accountLevelReadOnlyInSandbox). O pedido é idempotente (X-Idempotency-Key).
Pedir o encerramento
POST /v1/marketplace/sub-accounts/{companyId}/closure-requestCorpo da Requisição
{ "reason": "Vendedor encerrou o contrato com a plataforma em 15/10." }| Atributo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
reason | string | Sim | Por que a sub-conta está sendo encerrada (1–500 caracteres) |
Resposta (200 OK)
{
"id": "clo_01hqzvclo1",
"status": "requested",
"reason": "Vendedor encerrou o contrato com a plataforma em 15/10.",
"blockers": [
{ "reason": "settleableBalance", "detail": "125000 cents still owed to the seller" }
],
"decisionNote": null,
"decidedAt": null,
"createdAt": "2026-10-17T18:00:00.000Z"
}| Campo | Descrição |
|---|---|
id | O pedido (clo_…) |
status | requested (aguardando a Selectwin), running (executando), completed (encerrada), blocked (parado pelos bloqueadores), failed (uma etapa falhou; a Selectwin retoma), rejected (recusado) ou canceled (você desistiu) |
blockers[] | O que impede a execução agora, recalculado a cada leitura: settleableBalance (saldo a pagar ao vendedor, em centavos no detail) e openTransactions (vendas em andamento). Vazio = nada prende |
decisionNote · decidedAt | Por que e quando a Selectwin recusou, quando recusou |
Consultar o pedido
GET /v1/marketplace/sub-accounts/{companyId}/closure-requestDevolve o pedido mais recente da sub-conta, com os bloqueadores de agora. Sem pedido nenhum, 404 closureRequestNotFound.
Desistir
DELETE /v1/marketplace/sub-accounts/{companyId}/closure-requestSó enquanto o pedido está requested. Depois que a execução começa não há o que desistir (chaves já revogadas, assinaturas já canceladas): 409 closureRequestNotCancelable.
Erros
| HTTP | error.code | Quando |
|---|---|---|
| 404 | subAccountNotFound | O companyId não é uma sub-conta da sua plataforma |
| 404 | closureRequestNotFound | Consulta ou desistência sem pedido aberto |
| 409 | closureRequestNotCancelable | A execução já começou |
| 409 | accountLevelReadOnlyInSandbox | Escrita com chave de sandbox |
Exemplo
curl -X POST "https://api.selectwin.io/v1/marketplace/sub-accounts/bus_01hqzvsub1/closure-request" \
-H "SelectKey: sk_live_aBcDeFgHiJkLmNoPqRsTuVwXyZ" \
-H "Content-Type: application/json" \
-H "X-Idempotency-Key: 8e1c…" \
-d '{ "reason": "Vendedor encerrou o contrato com a plataforma em 15/10." }'Atualizado em 21 de outubro de 2026