Wallets
El balance en USDR de tu compañía y su historial de recargas. Una compañía tiene exactamente una wallet — la moneda en el path es forma del contrato, no un selector.
get_my_wallet
Trae el balance actual.
Firma
def get_my_wallet(self, currency: str) -> MyWallet:
Parámetros
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
currency | str | Sí | De 3 a 5 letras en mayúsculas, p. ej. "USDR". Forma del contrato, no un selector — una compañía tiene una wallet, que se devuelve para cualquier código de moneda bien formado. |
Retorno
MyWallet:
| Campo | Tipo | Descripción |
|---|---|---|
status | Optional[str] | Estado de la wallet, p. ej. "ACTIVE". |
currency | Optional[str] | Repite la moneda pedida. |
amount | Optional[str] | Balance, como string decimal — nunca hagas aritmética de floats con esto. |
Ejemplo
wallet = client.get_my_wallet("USDR")
print(wallet.status, wallet.currency, wallet.amount)
Errores
B2B_WALLET_NOT_CONFIGURED— tu compañía todavía no tiene una wallet provisionada.B2B_WALLET_NOT_FOUND— la wallet configurada no existe en el proveedor.B2B_UNAUTHORIZED— token o firma de request inválidos.ValueError— se lanza localmente cuandocurrencyno coincide con la forma de 3 a 5 letras en mayúsculas.
Notas
- Imprime solo los campos que necesitas en vez de todo el objeto — esta página deliberadamente no documenta cada campo que la wallet puede traer en el wire.
Referencia de API
get_my_wallet_transactions
Lista el historial de recargas de la wallet, paginado por cursor.
Firma
def get_my_wallet_transactions(
self,
currency: str,
transaction_type: WalletTransactionType,
params: Optional[ListWalletTransactionsParams] = None,
) -> WalletTransactionsResponse:
Parámetros
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
currency | str | Sí | Misma forma que get_my_wallet. |
transaction_type | WalletTransactionType | Sí | Por ahora solo WalletTransactionType.TOP_UP, que devuelve todo lo que acredita la wallet: depósitos on-chain y créditos registrados por tesorería. Enum de wire cerrado — un valor desconocido a futuro lanza un error en vez de ignorarlo en silencio. |
params | Optional[ListWalletTransactionsParams] | No | Paginación por cursor. |
ListWalletTransactionsParams (helper: ListWalletTransactionsParams.first_page(limit=...)):
| Campo | Tipo | Descripción |
|---|---|---|
cursor | Optional[str] | Cursor opaco de una página anterior. Omítelo para la primera página. |
limit | Optional[int] | De 1 a 100. |
Retorno
WalletTransactionsResponse:
| Campo | Tipo | Descripción |
|---|---|---|
pagination | Optional[CursorPagination] | next_cursor, has_more, limit, total. Consulta Paginación. |
data | Optional[List[WalletTransaction]] | La página de transacciones — id, external_id, type ("top_up" para un depósito on-chain, "b2b_manual_credit" para un crédito registrado por tesorería), amount (string decimal con dos decimales), currency, created_at, status. Imprime solo los campos que necesites. |
Ejemplo
from retorna_sdk import ListWalletTransactionsParams, WalletTransactionType
params = ListWalletTransactionsParams.first_page(limit=50)
while True:
page = client.get_my_wallet_transactions("USDR", WalletTransactionType.TOP_UP, params)
for tx in page.data or []:
print(tx.id, tx.external_id, tx.type, tx.amount, tx.currency)
if not page.pagination or not page.pagination.has_more:
break
params = ListWalletTransactionsParams(cursor=page.pagination.next_cursor, limit=50)
Errores
B2B_WALLET_NOT_CONFIGURED— tu compañía todavía no tiene una wallet provisionada.B2B_INVALID_PAGINATION_CURSOR— el cursor estaba mal formado o no fue emitido por este listado.B2B_UNAUTHORIZED— token o firma de request inválidos.ValueError— se lanza localmente cuandotransaction_typeesNone,currencyno coincide con la forma de moneda de wallet,limitestá fuera de 1..100, ocursorestá presente pero vacío.
Notas
- El historial de recargas se pagina por cursor de la misma forma que las órdenes — no hay parámetro
page, y mandar uno es un400. - El modelo de transacción trae campos más allá de los que imprime esta página; omítelos si no los necesitas en vez de volcar el objeto completo.