Skip to content

Saque Automático

Configura saques automáticos para sub-contas.

POST /api/customer/{id}/account

Endpoint

POST https://api.divipay.com.br/api/customer/{id}/account

Headers

HeaderValorObrigatório
AuthorizationBearerSim
Content-Typeapplication/jsonSim

Path Parameters

ParâmetroTipoDescrição
idstringID da sub-conta

Tipos de Saque

1. Saque via Chave Pix

json
{
  "type": "DICT",
  "keyPix": "joao@email.com",
  "periodType": "DAILY",
  "days": [1, 15]
}

2. Saque via Dados Bancários

json
{
  "type": "MANU",
  "accountHolderDocument": "12345678901",
  "accountHolderName": "João Silva",
  "account": "12345",
  "accountType": "CC",
  "agency": "0001",
  "ispb": "00000000",
  "periodType": "WEEKLY",
  "days": [1, 5]
}

Períodos de Saque

TipoDescriçãoDias
HOURLYA cada hora-
DAILYDias do mês1-31
WEEKLYDias da semana0-6 (0=Domingo)
MONTHLYUma vez por mêsDia do mês

Exemplo - Chave Pix

bash
curl -X POST https://api.divipay.com.br/api/customer/sub_abc123/account \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "DICT",
    "keyPix": "joao@email.com",
    "periodType": "DAILY",
    "days": [1, 15]
  }'
javascript
const response = await fetch(
  'https://api.divipay.com.br/api/customer/sub_abc123/account',
  {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer SEU_TOKEN',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      type: 'DICT',
      keyPix: 'joao@email.com',
      periodType: 'DAILY',
      days: [1, 15]
    })
  }
);

const result = await response.json();

Resposta

json
{
  "id": "auto_withdraw_xyz789"
}

Exemplos de Configuração

Saque Diário

javascript
{
  "type": "DICT",
  "keyPix": "11999999999",
  "periodType": "DAILY",
  "days": [1, 10, 20]  // Dias 1, 10 e 20 de cada mês
}

Saque Semanal

javascript
{
  "type": "DICT",
  "keyPix": "12345678901",
  "periodType": "WEEKLY",
  "days": [1, 5]  // Segunda e sexta-feira
}

Saque Mensal

javascript
{
  "type": "DICT",
  "keyPix": "joao@email.com",
  "periodType": "MONTHLY",
  "days": [5]  // Dia 5 de cada mês
}

Saque Horário

javascript
{
  "type": "DICT",
  "keyPix": "joao@email.com",
  "periodType": "HOURLY",
  "days": []
}

Exemplo Completo

javascript
async function setupAutoWithdraw(customerId, config) {
  try {
    const response = await fetch(
      `https://api.divipay.com.br/api/customer/${customerId}/account`,
      {
        method: 'POST',
        headers: {
          'Authorization': `Bearer ${token}`,
          'Content-Type': 'application/json'
        },
        body: JSON.stringify(config)
      }
    );

    if (!response.ok) {
      const error = await response.json();
      throw new Error(error.message);
    }

    const result = await response.json();
    console.log('✅ Saque automático configurado:', result.id);
    return result;

  } catch (error) {
    console.error('❌ Erro ao configurar saque:', error);
    throw error;
  }
}

// Uso
await setupAutoWithdraw('sub_abc123', {
  type: 'DICT',
  keyPix: 'joao@email.com',
  periodType: 'WEEKLY',
  days: [1, 5]  // Segunda e sexta
});

Validação de Chave Pix

javascript
function validatePixKey(key) {
  // CPF/CNPJ
  if (/^\d{11}$/.test(key) || /^\d{14}$/.test(key)) {
    return { valid: true, type: 'CPF/CNPJ' };
  }

  // Email
  if (/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(key)) {
    return { valid: true, type: 'Email' };
  }

  // Telefone
  if (/^\d{10,11}$/.test(key)) {
    return { valid: true, type: 'Telefone' };
  }

  // Chave aleatória
  if (/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/i.test(key)) {
    return { valid: true, type: 'Aleatória' };
  }

  return { valid: false, type: null };
}

Próximos Passos

Documentação da API DiviPay