Skip to main content

Get wallet

Quick Reference

WhatRetrieve wallet details by UUID, email, or customer ID
WhyBalance verification, reconciliation, and multi-currency reporting
Reading Time3 min
DifficultyBeginner
PrerequisitesAuthentication → Wallet UUID or email or customer_id
GET/api/v1/bank/wallet/Bearer TokenRetrieve a wallet

When to use this endpoint​

Without wallet lookupWith wallet lookup
Guess whether funds arrivedVerify exact balance before creating charges
No visibility into wallet stateCheck wallet status, currency, and creation date
Manual reconciliation in spreadsheetsAutomated reconciliation — compare expected vs. actual
Hard-coded wallet UUIDs everywhereDynamic lookup by email or customer_id
Cannot build multi-currency dashboardsQuery each currency wallet and aggregate for reporting

Reconciliation flow​


Authentication​

Requires Bearer token. See Authentication.

Query parameters​

FieldTypeRequiredDescription
wallet_uuidstring (UUID)At least oneDirect wallet lookup by UUID
emailstringAt least oneFind wallet by associated email
customer_idstringAt least oneFind wallet by your internal customer ID
Flexible lookup

Provide at least one parameter. You can combine them to narrow results — for example, ?customer_id=cust_12345&currency=BRL finds the BRL wallet for that customer.


Code examples​

Lookup by wallet UUID​

curl -s -G https://sandbox.api.a55.tech/api/v1/bank/wallet/ \
-H "Authorization: Bearer $TOKEN" \
--data-urlencode "wallet_uuid=f47ac10b-58cc-4372-a567-0e02b2c3d479"

Lookup by email​

curl -s -G https://sandbox.api.a55.tech/api/v1/bank/wallet/ \
-H "Authorization: Bearer $TOKEN" \
--data-urlencode "email=financeiro@loja-sp.com.br"

Lookup by customer ID​

curl -s -G https://sandbox.api.a55.tech/api/v1/bank/wallet/ \
-H "Authorization: Bearer $TOKEN" \
--data-urlencode "customer_id=cust_12345"

Response​

Success (200 OK)​

{
"wallet_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"email": "financeiro@loja-sp.com.br",
"customer_id": "cust_12345",
"currency": "BRL",
"date": "2026-03-15T10:30:00-03:00"
}

Response fields​

FieldTypeDescription
wallet_uuidstring (UUID)Unique wallet identifier
emailstringEmail associated with the wallet
customer_idstringYour internal customer ID
currencystringISO 4217 currency code (BRL, MXN, CLP, ARS)
datestring (ISO 8601)Wallet creation timestamp

Error response​

{
"error": "not_found",
"message": "Wallet not found",
"code": "errors.wallet.not_found"
}
StatusCodeDescriptionResolution
400validation_errorNo query parameter providedSupply at least one of wallet_uuid, email, or customer_id
401unauthorizedInvalid or expired Bearer tokenRefresh your access token
404errors.wallet.not_foundNo wallet matches the queryVerify the identifier or create a wallet first

Complete example — daily reconciliation script​

A practical script that checks wallet state and compares it against your expected records:

#!/bin/bash
# Daily wallet reconciliation — run via cron
TOKEN="$A55_API_TOKEN"
BASE="https://sandbox.api.a55.tech/api/v1/bank/wallet/"

WALLETS=("cust_12345" "cust_67890" "cust_24680")

for CUST_ID in "${WALLETS[@]}"; do
RESPONSE=$(curl -s -G "$BASE" \
-H "Authorization: Bearer $TOKEN" \
--data-urlencode "customer_id=$CUST_ID")

WALLET_UUID=$(echo "$RESPONSE" | jq -r '.wallet_uuid')
CURRENCY=$(echo "$RESPONSE" | jq -r '.currency')

if [ "$WALLET_UUID" = "null" ]; then
echo "MISSING: No wallet for customer $CUST_ID"
else
echo "OK: $CUST_ID → $WALLET_UUID ($CURRENCY)"
fi
done

Tips​

Cache wallet UUIDs

After the first lookup, cache the wallet_uuid in your database. Direct UUID lookups are faster than email or customer_id queries. Only fall back to email/customer_id lookup when the cached UUID returns a 404 (wallet was deleted and recreated).

Rate limits

Wallet lookups share the global rate limit of 100 requests/minute per token. For high-volume reconciliation, batch your lookups with a small delay between requests rather than firing all at once.

Don't poll for balance changes

Use webhooks to react to charge status changes in real-time. Reserve wallet lookups for scheduled reconciliation jobs, not as a substitute for event-driven architecture.