Desenvolvedores · Documentação técnica
Arena Upya
API Withdrawals
Listagem e aprovação/rejeição de resgates. Criar resgate: POST /shop/redeems. PIX continua manual.
Leitura
withdrawals.readEscrita
withdrawals.writeEndpoints
| Método | Rota | Escopo | Descrição |
|---|---|---|---|
GET |
/api/v1/withdrawals |
withdrawals.read |
Listar (?status=pending|approved|rejected) |
GET |
/api/v1/withdrawals/{id} |
withdrawals.read |
Obter resgate |
POST |
/api/v1/withdrawals/{id}/approve |
withdrawals.write |
Aprovar |
POST |
/api/v1/withdrawals/{id}/reject |
withdrawals.write |
Rejeitar (reason obrigatório) |
Por endpoint — assinaturas e exemplos
Parâmetros
| Campo | Em | Tipo | Obrig. | Descrição |
|---|---|---|---|---|
status |
query |
string |
não | pending|approved|rejected |
Withdrawal
Pedido de saque / resgate financeiro. Listagem pode incluir campos de join do user.
| Campo | Tipo | Obrig. | Descrição |
|---|---|---|---|
id |
integer |
não |
ID do withdrawal. ex.: 77
|
user_id |
integer |
não |
Usuário solicitante. ex.: 42
|
tier_id |
integer | null |
não | Tier da loja origem, se houver. |
status |
string |
não |
Ex.: `pending`, `approved`, `rejected`, `paid`. ex.: "pending"
|
cost_points |
integer |
não |
Pontos debitados. ex.: 500
|
reward_type |
string |
não | Tipo da recompensa (`cash`/`benefit`). |
user_name |
string |
não |
Nome do user (join na listagem). ex.: "Ana Silva"
|
user_email |
string |
não |
E-mail do user (join na listagem). ex.: "ana@empresa.com"
|
external_code |
string | null |
não |
Código CRM do user (join na listagem). ex.: "CRM-8841"
|
Exemplo
Response 2xx
{
"status": "success",
"data": {
"items": [
{
"id": 77,
"user_id": 42,
"status": "pending",
"cost_points": 500,
"reward_type": "cash",
"user_name": "Ana Silva",
"user_email": "ana@empresa.com",
"external_code": "CRM-8841"
}
]
},
"meta": {
"request_id": "a1b2c3d4e5f6789012345678"
}
}
Parâmetros
| Campo | Em | Tipo | Obrig. | Descrição |
|---|---|---|---|---|
id |
path |
integer |
sim | ID do recurso na empresa |
Withdrawal
Pedido de saque / resgate financeiro. Listagem pode incluir campos de join do user.
| Campo | Tipo | Obrig. | Descrição |
|---|---|---|---|
id |
integer |
não |
ID do withdrawal. ex.: 77
|
user_id |
integer |
não |
Usuário solicitante. ex.: 42
|
tier_id |
integer | null |
não | Tier da loja origem, se houver. |
status |
string |
não |
Ex.: `pending`, `approved`, `rejected`, `paid`. ex.: "pending"
|
cost_points |
integer |
não |
Pontos debitados. ex.: 500
|
reward_type |
string |
não | Tipo da recompensa (`cash`/`benefit`). |
user_name |
string |
não |
Nome do user (join na listagem). ex.: "Ana Silva"
|
user_email |
string |
não |
E-mail do user (join na listagem). ex.: "ana@empresa.com"
|
external_code |
string | null |
não |
Código CRM do user (join na listagem). ex.: "CRM-8841"
|
Exemplo
Response 2xx
{
"status": "success",
"data": {
"withdrawal": {
"id": 77,
"user_id": 42,
"status": "pending",
"cost_points": 500,
"reward_type": "cash",
"user_name": "Ana Silva",
"user_email": "ana@empresa.com",
"external_code": "CRM-8841"
}
},
"meta": {
"request_id": "a1b2c3d4e5f6789012345678"
}
}
Parâmetros
| Campo | Em | Tipo | Obrig. | Descrição |
|---|---|---|---|---|
id |
path |
integer |
sim | ID do recurso na empresa |
Sem body. data.withdrawal
Exemplo
Response 2xx
{
"status": "success",
"data": {
"withdrawal": {
"id": 77,
"user_id": 42,
"status": "approved",
"cost_points": 500,
"reward_type": "cash",
"user_name": "Ana Silva",
"user_email": "ana@empresa.com",
"external_code": "CRM-8841"
}
},
"meta": {
"request_id": "a1b2c3d4e5f6789012345678"
}
}
Parâmetros
| Campo | Em | Tipo | Obrig. | Descrição |
|---|---|---|---|---|
id |
path |
integer |
sim | ID do recurso na empresa |
RejectBody — body
Body para rejeitar um withdrawal.
| Campo | Tipo | Obrig. | Descrição |
|---|---|---|---|
reason |
string |
sim |
Motivo da rejeição (obrigatório). ex.: "PIX inválido"
|
Withdrawal
Pedido de saque / resgate financeiro. Listagem pode incluir campos de join do user.
| Campo | Tipo | Obrig. | Descrição |
|---|---|---|---|
id |
integer |
não |
ID do withdrawal. ex.: 77
|
user_id |
integer |
não |
Usuário solicitante. ex.: 42
|
tier_id |
integer | null |
não | Tier da loja origem, se houver. |
status |
string |
não |
Ex.: `pending`, `approved`, `rejected`, `paid`. ex.: "pending"
|
cost_points |
integer |
não |
Pontos debitados. ex.: 500
|
reward_type |
string |
não | Tipo da recompensa (`cash`/`benefit`). |
user_name |
string |
não |
Nome do user (join na listagem). ex.: "Ana Silva"
|
user_email |
string |
não |
E-mail do user (join na listagem). ex.: "ana@empresa.com"
|
external_code |
string | null |
não |
Código CRM do user (join na listagem). ex.: "CRM-8841"
|
Exemplo
Request POST (body)
{
"reason": "Dados PIX inválidos"
}
Response 2xx
{
"status": "success",
"data": {
"withdrawal": {
"id": 77,
"user_id": 42,
"status": "rejected",
"cost_points": 500,
"reward_type": "cash",
"user_name": "Ana Silva",
"user_email": "ana@empresa.com",
"external_code": "CRM-8841"
}
},
"meta": {
"request_id": "a1b2c3d4e5f6789012345678"
}
}
curl — rejeitar
curl -X POST "https://arenaupya.com.br/api/v1/withdrawals/42/reject" \
-H "Authorization: Bearer arena_live_SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{"reason":"Dados PIX inválidos"}'