Planejar e implantar
Arquitetura, ambientes, configuração e planejamento de versões em conjunto com sua equipe.
Como funciona
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
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.
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.
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.
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.
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
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);Cada chamada de movimentacao financeira recebe uma chave de idempotencia. Novas tentativas sao seguras; o livro-razao repete o resultado armazenado byte a byte.
Tarifas, reservas, limites e estornos sao aplicados dentro do mesmo lancamento, entao os livros nunca ficam errados nem por um instante.
O dinheiro se move mediante confirmacao verificada do gateway e liquida no livro-razao, nao em uma resposta otimista do cliente.
Um verificador agendado recalcula conservacao, saldos e pisos, e falha ruidosamente no instante em que algo desvia.
Um parceiro para todo o ciclo de vida, com escopo acordado e responsabilidades claras.
Arquitetura, ambientes, configuração e planejamento de versões em conjunto com sua equipe.
Adapte a marca, os fluxos e as regras de negócio ao produto que deseja construir.
Suporte, manutenção e atualizações com escalonamento e níveis de serviço definidos em contrato.
Acesso antecipado
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.