Solicitar Saque
Use esta rota para solicitar um saque do saldo disponível da sua conta ou de um parceiro específico. O saque é processado de forma assíncrona, por isso a resposta síncrona retorna o status processing.
Esta rota depende de habilitação prévia pela Marlim. Entre em contato com o nosso time de suporte para mais informações.
Request Body Params
| Atributo | Tipo | Descrição |
|---|---|---|
| amount | int32 | Valor em centavos a ser sacado. Campo obrigatório, deve ser um número inteiro maior ou igual a 1000 (R$ 10,00). |
| sub_seller_id | string | ID do parceiro que terá o saque solicitado. Quando omitido, o saque é realizado na sua conta (seller). |
{
"amount": 10000
}
{
"amount": 5000,
"sub_seller_id": "sub_k4m6Rw5rlQszEY7fiuRe"
}
Antes de solicitar um saque, consulte o saldo disponível pela rota Consultar Saldo. O valor informado em amount não pode ser maior que balance.available.amount.
Regras do saque
Ao solicitar um saque, a API valida as seguintes condições:
| Regra | Descrição |
|---|---|
| Saque em andamento | Não é permitido iniciar um novo saque enquanto já existir outro saque em andamento. |
| Saldo suficiente | O valor solicitado deve ser menor ou igual ao saldo disponível em centavos. |
| Valor mínimo | O valor mínimo de saque é 1000 centavos (R$ 10,00). |
Saque de parceiro (sub_seller)
Quando sub_seller_id for informado, regras adicionais se aplicam:
| Regra | Descrição |
|---|---|
| Saque automático | Parceiros com automatic_withdrawal igual a true não podem solicitar saque manual por esta rota. |
O processamento do saque junto à adquirente ocorre de forma assíncrona. A resposta HTTP com status 200 e status: "processing" indica que o saque foi aceito para processamento, não que o valor já foi creditado na conta bancária.
Response Object
| Atributo | Tipo | Descrição |
|---|---|---|
| status | string | Status do saque. Valor retornado: processing. |
| amount | int32 | Valor em centavos efetivamente solicitado para saque. |
| withdrawal_id | string | ID do saque. |
{
"status": "processing",
"amount": 10000,
"withdrawal_id": "withdrawal_1234567890"
}
Error Object
| Atributo | Tipo | Descrição |
|---|---|---|
| errors | array | Array com todos os erros encontrados ao processar a requisição. |
| errors[][type] | string | Tipo de erro ocorrido. |
| errors[][message] | string | Mensagem detalhada do erro ocorrido. |
{
"errors": [
{
"type": "withdrawal",
"message": "Insufficient balance to withdraw"
}
]
}
Exemplos
Os valores utilizados nos exemplos abaixo são apenas para ilustração e não devem ser usados para fazer requests nas APIs da Marlim.
- Saque da conta
- Saque do parceiro
- Saldo insuficiente
- Saque em andamento
- Valor abaixo do mínimo
- Parceiro não encontrado
curl -X POST "https://api.marlim.co/v3/financial/withdrawal" \
-H "Content-Type: application/json" \
-H "api_key: api_key_value" \
-d '{
"amount": 10000
}'
{
"status": "processing",
"amount": 10000,
"withdrawal_id": "withdrawal_1234567890"
}
curl -X POST "https://api.marlim.co/v3/financial/withdrawal" \
-H "Content-Type: application/json" \
-H "api_key: api_key_value" \
-d '{
"amount": 5000,
"sub_seller_id": "sub_k4m6Rw5rlQszEY7fiuRe"
}'
{
"status": "processing",
"amount": 5000,
"withdrawal_id": "withdrawal_1234567890"
}
curl -X POST "https://api.marlim.co/v3/financial/withdrawal" \
-H "Content-Type: application/json" \
-H "api_key: api_key_value" \
-d '{
"amount": 999999
}'
{
"errors": [
{
"type": "withdrawal",
"message": "Insufficient balance to withdraw"
}
]
}
curl -X POST "https://api.marlim.co/v3/financial/withdrawal" \
-H "Content-Type: application/json" \
-H "api_key: api_key_value" \
-d '{
"amount": 1000
}'
{
"errors": [
{
"type": "withdrawal",
"message": "Already a withdrawal in progress"
}
]
}
curl -X POST "https://api.marlim.co/v3/financial/withdrawal" \
-H "Content-Type: application/json" \
-H "api_key: api_key_value" \
-d '{
"amount": 500
}'
{
"errors": [
{
"type": "amount",
"message": "The parameter [ amount ] must be at least 1000."
}
]
}
curl -X POST "https://api.marlim.co/v3/financial/withdrawal" \
-H "Content-Type: application/json" \
-H "api_key: api_key_value" \
-d '{
"amount": 1000,
"sub_seller_id": "sub_123456789"
}'
{
"errors": [
{
"type": "not_found",
"message": "Sub Seller with id [sub_123456789] was not found"
}
]
}