Como funciona
Da chave de API a livros reconciliados em cinco passos.
O WalletD e uma API REST diante de um livro-razao oficial. Este e o caminho que um unico pagamento percorre, do onboarding de um usuario a um movimento que seus auditores podem recalcular.
Como funciona
A forma de uma integracao
1. Espelhe seu usuario
Crie um usuario de carteira com seu proprio id externo. O WalletD abre contas por finalidade (dinheiro, pontos) na primeira vez em que cada uma e usada, entao nao ha nada para provisionar antecipadamente.
2. Financie a carteira
Inicie uma recarga pelo Stripe. O saldo e creditado apenas quando o gateway confirma com um webhook assinado ou uma consulta de reconciliacao, nunca por um callback do cliente.
3. Movimente o dinheiro
Envie entre pessoas, receba um pagamento com uma reserva ou divida uma venda de marketplace. Cada chamada carrega uma chave de idempotencia e lanca lancamentos balanceados no livro-razao em uma unica transacao.
4. Recompensas e liquidacao vem em seguida
Cashback e pontos sao concedidos no momento da captura; tarifas e comissao sao divididas; repasses geram um extrato de liquidacao. Tudo isso lanca nos mesmos livros.
5. Leia e verifique
Leia saldos e historico pela API, receba webhooks assinados para cada evento e deixe o verificador interno reavaliar as invariantes do livro-razao de forma agendada.
Financie uma carteira e depois envie dinheiro
Financie uma carteira e depois envie dinheiro
A mesma requisicao em seis linguagens. Os valores sao em unidades minimas inteiras; o livro-razao faz o resto.
# Fund a wallet, then send money. Balances only move on the ledger.
curl -sS -X POST "$WALLETD_API/v1/users" \
-H "Authorization: Bearer $WALLETD_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: usr-42-create" \
-d '{"external_id":"user-42","kind":"consumer","display_name":"Ada Lovelace","handle":"ada"}'
curl -sS -X POST "$WALLETD_API/v1/transfers" \
-H "Authorization: Bearer $WALLETD_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: xfer-ada-grace-001" \
-d '{"from":"user-42","to":"@grace","amount":2500,"currency":"USD"}'client := walletd.New(os.Getenv("WALLETD_API"), os.Getenv("WALLETD_API_KEY"))
var transfer walletd.Transfer
err := client.Do(ctx, http.MethodPost, "/v1/transfers", map[string]any{
"from": "user-42",
"to": "@grace",
"amount": 2500, // minor units, $25.00, never a float
"currency": "USD",
}, &transfer, "xfer-ada-grace-001") // idempotency key
if err != nil {
return fmt.Errorf("transfer: %w", err)
}client = WalletD() # reads WALLETD_API / WALLETD_API_KEY
transfer = client.request(
"POST",
"/v1/transfers",
{
"from": "user-42",
"to": "@grace",
"amount": 2500, # minor units, $25.00
"currency": "USD",
},
idempotency_key="xfer-ada-grace-001",
)
print(transfer["status"]) # "settled"const res = await fetch(`${API}/v1/transfers`, {
method: "POST",
headers: {
Authorization: `Bearer ${API_KEY}`,
"Content-Type": "application/json",
"Idempotency-Key": "xfer-ada-grace-001",
},
body: JSON.stringify({
from: "user-42",
to: "@grace",
amount: 2500, // minor units, $25.00
currency: "USD",
}),
});
const transfer = await res.json();$transfer = $walletd->request('POST', '/v1/transfers', [
'from' => 'user-42',
'to' => '@grace',
'amount' => 2500, // minor units, $25.00
'currency' => 'USD',
], idempotencyKey: 'xfer-ada-grace-001');
echo $transfer['status']; // "settled"var body = Map.of(
"from", "user-42",
"to", "@grace",
"amount", 2500, // minor units, $25.00
"currency", "USD");
Transfer transfer = client.post(
"/v1/transfers", body, "xfer-ada-grace-001", Transfer.class);Principios que valem em cada passo
Idempotente por padrao
Cada chamada de movimentacao financeira recebe uma chave de idempotencia. Novas tentativas sao seguras; o livro-razao repete o resultado armazenado byte a byte.
Balanceado em uma transacao
Tarifas, reservas, limites e estornos sao aplicados dentro do mesmo lancamento, entao os livros nunca ficam errados nem por um instante.
Confirmado, nao presumido
O dinheiro se move mediante confirmacao verificada do gateway e liquida no livro-razao, nao em uma resposta otimista do cliente.
Verificado continuamente
Um verificador agendado recalcula conservacao, saldos e pisos, e falha ruidosamente no instante em que algo desvia.
Acesso antecipado
Torne-se um parceiro de design.
Estamos trabalhando com um pequeno numero de equipes que constroem produtos de carteira e financeiros sobre o WalletD. Se essa e a sua equipe, vamos conversar. Voce tera acesso direto as pessoas que o construiram.