Pular para o conteúdo principal

Depositar saldo e distribuir benefícios

Este guia percorre o fluxo financeiro completo: preparar colaboradores, gerar e acompanhar um depósito, conferir saldo, criar uma distribuição, revisar valores e finalizar.

Resultado esperado

Ao concluir, você terá:

DadoOrigemUso
employee_idCadastro ou listagem de colaboradoresIncluir uma ou mais pessoas no modo selected
benefit_idCriação ou listagem de benefíciosSelecionar convenções no modo group
transaction_idCriação de depósitoConsultar pagamento e conciliar transações
distribution_idCriação do rascunhoRevisar, alterar e finalizar a distribuição
product_idListagem de produtosDefinir valores em centavos

Antes de começar

Configure a base URL, o API token entregue pela ValePix e os identificadores obtidos nas etapas anteriores.

export VALEPIX_BASE_URL="https://routes.valepix.com.br"
export VALEPIX_API_TOKEN="<api_token>"
export EMPLOYEE_ID="<employee_id>"
export BENEFIT_ID="<benefit_id>"
export PRODUCT_ID="<product_id>"

Todas as chamadas JSON usam estes headers:

Authorization: Bearer <VALEPIX_API_TOKEN>
Accept: application/json
Content-Type: application/json

Use um API token ativo e autorizado. Todos os valores monetários enviados e recebidos neste fluxo estão em centavos.

Fluxo recomendado

OrdemObjetivoChamadaGuardeDocumentação completa
1Preparar colaboradoresGET /api/v1/valepix/employeesemployee_idColaboradores
2Criar depósitoPOST /api/v1/valepix/depositstransaction_idCriar depósito
3Acompanhar depósitoGET /api/v1/valepix/deposits/{transaction_id}Estado do pagamentoConsultar depósito
4Conferir saldoGET /api/v1/valepix/balancesSaldo disponívelConsultar saldos
5Criar rascunhoPOST /api/v1/valepix/distributionsdistribution_idCriar rascunho
6Incluir colaboradoresPOST /api/v1/valepix/distributions/{distribution_id}/itemsTotais atualizadosAdicionar itens
7Definir valoresPUT /api/v1/valepix/distributions/{distribution_id}/items/valueTotais atualizadosAtualizar valor em lote
8Revisar itensGET /api/v1/valepix/distributions/{distribution_id}/itemsColaboradores e valoresListar itens
9FinalizarPOST /api/v1/valepix/distributions/{distribution_id}/finalizeEstado da distribuiçãoFinalizar distribuição
10AcompanharGET /api/v1/valepix/distributions/{distribution_id}Estado finalConsultar distribuição

1. Prepare os colaboradores

Cadastre um colaborador com POST /api/v1/valepix/employees ou use o fluxo de lote. Consulte Cadastrar colaboradores e guarde os employee_id.

Para conferir os IDs:

curl --request GET \
--url "$VALEPIX_BASE_URL/api/v1/valepix/employees?page=1&limit=100&situation=active" \
--header "Authorization: Bearer $VALEPIX_API_TOKEN" \
--header "Accept: application/json"

2. Crie um depósito

O exemplo gera uma cobrança de R$ 1.000,00:

curl --request POST \
--url "$VALEPIX_BASE_URL/api/v1/valepix/deposits" \
--header "Authorization: Bearer $VALEPIX_API_TOKEN" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data '{
"amount": 100000,
"method": "PIX",
"name": "Empresa Exemplo",
"document": "12345678000190",
"transaction_id": "00000000-0000-4000-8000-000000000501"
}'

Se você enviar transaction_id, use um UUID. Guarde o identificador retornado:

export TRANSACTION_ID="<transaction_id_retornado>"

Referência: Criar depósito.

3. Acompanhe o depósito

curl --request GET \
--url "$VALEPIX_BASE_URL/api/v1/valepix/deposits/$TRANSACTION_ID" \
--header "Authorization: Bearer $VALEPIX_API_TOKEN" \
--header "Accept: application/json"

Use intervalo e backoff entre consultas. Prossiga somente quando o estado for COMPLETED; FAILED, CANCELLED e EXPIRED são estados finais sem conclusão do crédito.

Referência: Consultar depósito.

4. Confira o saldo

curl --request GET \
--url "$VALEPIX_BASE_URL/api/v1/valepix/balances" \
--header "Authorization: Bearer $VALEPIX_API_TOKEN" \
--header "Accept: application/json"

Confirme se o valor necessário está disponível. Para conciliação, consulte também:

curl --request GET \
--url "$VALEPIX_BASE_URL/api/v1/valepix/transactions?page=1&limit=20&type=DEPOSIT" \
--header "Authorization: Bearer $VALEPIX_API_TOKEN" \
--header "Accept: application/json"

5. Escolha o modo e crie o rascunho

Use um dos modos:

ModoQuando usar
selectedSelecionar um ou mais colaboradores por employee_id
batchIncluir todos os colaboradores ativos e elegíveis
groupIncluir colaboradores ativos e elegíveis de convenções específicas

Exemplo selected:

curl --request POST \
--url "$VALEPIX_BASE_URL/api/v1/valepix/distributions" \
--header "Authorization: Bearer $VALEPIX_API_TOKEN" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data '{"type":"selected"}'

Exemplo batch:

{
"type": "batch"
}

Exemplo group:

{
"type": "group",
"benefit_convention_ids": [
"<benefit_id_retornado>"
]
}

Use como benefit_convention_ids os benefit_id retornados pelas rotas de benefícios.

Guarde o identificador:

export DISTRIBUTION_ID="<distribution_id_retornado>"

6. Inclua colaboradores no modo selected

Para uma pessoa, envie um ID. Para várias, envie todos no mesmo array:

curl --request POST \
--url "$VALEPIX_BASE_URL/api/v1/valepix/distributions/$DISTRIBUTION_ID/items" \
--header "Authorization: Bearer $VALEPIX_API_TOKEN" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"employee_ids\": [
\"$EMPLOYEE_ID\"
]
}"

Adição, remoção e alteração de valores só podem ocorrer enquanto o estado for draft.

7. Defina os valores

Defina R$ 500,00 para um produto em todos os itens:

curl --request PUT \
--url "$VALEPIX_BASE_URL/api/v1/valepix/distributions/$DISTRIBUTION_ID/items/value" \
--header "Authorization: Bearer $VALEPIX_API_TOKEN" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"product_id\": \"$PRODUCT_ID\",
\"value\": 50000
}"

Para ajustar somente uma pessoa, use:

PUT /api/v1/valepix/distributions/{distribution_id}/items/{employee_id}/value

8. Revise imediatamente antes de finalizar

curl --request GET \
--url "$VALEPIX_BASE_URL/api/v1/valepix/distributions/$DISTRIBUTION_ID/items?page=1&limit=100" \
--header "Authorization: Bearer $VALEPIX_API_TOKEN" \
--header "Accept: application/json"

Confira:

  • estado draft;
  • todos os colaboradores esperados;
  • pelo menos um item com valor positivo em centavos;
  • total_employees e total_amount;
  • saldo suficiente para a opção de pagamento escolhida.

9. Finalize

Métodos aceitos: PIX, BOLETO, BALANCE, BALANCE_WITH_PIX e BALANCE_WITH_BOLETO.

curl --request POST \
--url "$VALEPIX_BASE_URL/api/v1/valepix/distributions/$DISTRIBUTION_ID/finalize" \
--header "Authorization: Bearer $VALEPIX_API_TOKEN" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data '{
"description": "Benefícios de julho",
"scheduled_for": null,
"payment_method": "BALANCE",
"payer_name": "Empresa Exemplo",
"payer_document": "12345678000190",
"invoice_descriptions": {
"alimentacao": "Benefício alimentação - julho"
}
}'

Qualquer método diferente retorna HTTP 422.

Não repita automaticamente a chamada após timeout. Consulte GET /api/v1/valepix/distributions/{distribution_id} para determinar o estado atual.

A resposta começa com o lote em PENDING; a distribuição passa para processing. Com BALANCE, transaction_id é omitido.

10. Acompanhe ou trate exceções

Erros mais comuns neste fluxo

SituaçãoPossível causaComo resolver
400 Bad RequestBody, identificador, data ou valor inválidoCorrigir os dados enviados conforme a página da rota
401 UnauthorizedToken ausente, inválido, expirado ou revogadoConferir o header Authorization e solicitar novo token se necessário
403 ForbiddenToken sem acesso ao recurso solicitadoConfirmar a liberação com a ValePix
404 Not FoundIdentificador não encontradoUsar IDs retornados pela API e conferir o ambiente
409 ConflictConflito específico, como cancelamento de cobrança já pagaConsultar a distribuição e a transação antes da próxima ação
422 Unprocessable EntityEstado incompatível, método ou regra de negócio não suportadaConsultar o recurso e corrigir os dados indicados pela rota
429 Too Many RequestsLimite de chamadas excedidoReduzir a frequência e aplicar backoff
500, 502, 503, 504Falha temporáriaConsultar o estado do recurso antes de repetir uma mutação

Próximas referências