Chargebacks
Fila de chargebacks do seller, com dossiê de provas, classificação e desfecho.
A Central de Chargebacks mostra ao seller os casos em que um cliente contestou uma compra dele no cartão. Não há módulo nem privilégio extra: basta ser seller. O seller só vê e altera os próprios casos; o caso de outro seller responde como se não existisse.
Listar chargebacks
Um chargeback acontece quando o cliente contesta a cobrança com o banco dele. A plataforma abre um caso com prazo de 7 dias para o seller se defender, e já monta um dossiê de provas. Lista os casos do seller, os de prazo mais curto primeiro. O tamanho da página é fixo em 50. Casos abertos com prazo vencido são marcados expired na leitura.
/api/v1/vendor/chargebacksSellerCasos de chargeback do seller
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um usuário seller (veja Tokens).Parâmetros de consulta
statusstringopen, evidence_ready, submitted, won, lost, resolved_refunded, expired).pageintegerpadrão: 1Exemplo de requisição
Resposta
Campos da resposta
casesobject[]Casos da página.
iduuidorder_iduuidgatewaystringpagarme, stripe).gateway_dispute_idstringamount_centsintegerreasonstringclassificationstringfraud). Omitido se vazio.statusstringopenevidence_readysubmittedwonlostresolved_refundedexpiredvendor_iduuidreturn_iduuiddetected_atstringdue_atstringexpired.submitted_atstringsubmitted_byuuidresolved_atstringcreated_atstringupdated_atstringtotalintegerErros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Token ausente, inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador), ou o usuário não está vinculado a nenhum seller. | {"error":"insufficient permissions"} |
| 403 | O usuário não está vinculado a nenhum seller. | {"error":"no vendor account associated with this user"} |
Indicadores de chargeback
Resumo da fila de casos: quantos estão abertos, quantos vencem em até 2 dias, ganhos, perdidos, a taxa de chargeback e o valor perdido.
/api/v1/vendor/chargebacks/statsSellerIndicadores dos chargebacks do seller
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um usuário seller (veja Tokens).Exemplo de requisição
Resposta
Campos da resposta
openintegeropen ou evidence_ready.due_soonintegerwonintegerlostintegerchargeback_ratenumber0.012 = 1,2%).lost_amount_centsintegerErros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Token ausente, inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador), ou o usuário não está vinculado a nenhum seller. | {"error":"insufficient permissions"} |
| 403 | O usuário não está vinculado a nenhum seller. | {"error":"no vendor account associated with this user"} |
Ver um chargeback
Devolve o caso e as evidências que a plataforma juntou: retrato do pedido, análise antifraude, histórico do cliente, rastreio e nota fiscal. Evidência com available: false ainda não existe (por exemplo o rastreio de um pedido sem envio).
/api/v1/vendor/chargebacks/{id}SellerCaso de chargeback com o dossiê de provas
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um usuário seller (veja Tokens).Parâmetros de caminho
iduuidobrigatórioExemplo de requisição
Resposta
Campos da resposta
caseobjectO caso (mesmos campos da listagem).
iduuidorder_iduuidgatewaystringpagarme, stripe).gateway_dispute_idstringamount_centsintegerreasonstringclassificationstringfraud). Omitido se vazio.statusstringopenevidence_readysubmittedwonlostresolved_refundedexpiredvendor_iduuidreturn_iduuiddetected_atstringdue_atstringexpired.submitted_atstringsubmitted_byuuidresolved_atstringcreated_atstringupdated_atstringevidencesobject[]Dossiê de provas.
iduuidcase_iduuidkindstringorder_snapshotfraud_analysiscustomer_historytrackingnfepayloadobjectkind.file_urlstringavailablebooleancreated_atstringErros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 404 | O caso não existe ou é de outro seller (a plataforma não diferencia). | {"error":"chargeback case not found"} |
| 500 | id não é um UUID válido (hoje volta 500, a mensagem está em detail). | {"error":"failed to load chargeback","detail":"o valor \"xyz\" não é um uuid válido..."} |
| 401 | Token ausente, inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador), ou o usuário não está vinculado a nenhum seller. | {"error":"insufficient permissions"} |
| 403 | O usuário não está vinculado a nenhum seller. | {"error":"no vendor account associated with this user"} |
Atualizar um chargeback
O seller classifica o caso e move sua situação: marca como enviado (submitted, grava data e autor) ou registra o desfecho (won, lost, resolved_refunded, que gravam resolved_at e avisam a loja). O motivo (reason) e o valor (amount_cents) só a loja altera: enviar qualquer um dos dois dá 403.
/api/v1/vendor/chargebacks/{id}SellerClassificar o caso ou registrar sua situação
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um usuário seller (veja Tokens).Content-Typestringobrigatórioapplication/json.Parâmetros de caminho
iduuidobrigatórioCorpo da requisição
classificationstringstatusstringsubmitted, won, lost e resolved_refunded têm efeitos próprios. Outro texto é gravado como veio, sem validação.Exemplo de requisição
Resposta
Campos da resposta
iduuidorder_iduuidgatewaystringpagarme, stripe).gateway_dispute_idstringamount_centsintegerreasonstringclassificationstringfraud). Omitido se vazio.statusstringopenevidence_readysubmittedwonlostresolved_refundedexpiredvendor_iduuidreturn_iduuiddetected_atstringdue_atstringexpired.submitted_atstringsubmitted_byuuidresolved_atstringcreated_atstringupdated_atstringErros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | Corpo inválido ou falha ao gravar. | {"error":"invalid request body","detail":"..."} |
| 403 | Enviou reason ou amount_cents, que são só da loja. | {"error":"chargeback_fact_admin_only","detail":"chargeback: reason e amount_cents só podem ser alterados pelo admin da loja"} |
| 404 | O caso não existe ou é de outro seller (a plataforma não diferencia). | {"error":"chargeback case not found"} |
| 401 | Token ausente, inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador), ou o usuário não está vinculado a nenhum seller. | {"error":"insufficient permissions"} |
| 403 | O usuário não está vinculado a nenhum seller. | {"error":"no vendor account associated with this user"} |