Documentation
Wallet and deposits
The API only reads the wallet and deposits: money arrives and the system detects it. In practice mode, POST /v1/test/fund simulates a deposit and the amounts 50.01 to 50.05 trigger each branch.
The wallet
- The practice environment has one wallet per owner, with practice money.
GET /v1/walletslists it andGET /v1/wallets/{wallet_id}reads it. balance.availableis what can be used right now.balance.pendingis deposits that arrived and are not credited yet.controlssays who can sign. Exporting the key does not exist in the API.- These are owner routes and they only read: an agent key sees no wallets or deposits, and no route moves money in or out.
How to deposit
GET /v1/deposit-instructions gives the address, the network and the minimum. There is no POST /v1/deposits: money arrives and the system detects it. Today there is only USDC on the Base network, and in practice mode the address receives no real money.
curl https://api.nouronpass.com/v1/deposit-instructions \
-H "Authorization: Bearer $NOURON_OWNER_KEY"{ "object": "deposit_instruction", "method": "usdc_onchain", "chain": "base", "address": "0x1f2e3d4c5b6a79880a1b2c3d4e5f60718293a4b5", "wallet_id": "wal_3c4d5e6f708192a3b4c5d6e7f8091a2b", "minimum_amount": "1.00", "confirmations_required": 12, "notice": "Dinero de práctica: esta dirección es del entorno de prueba y no recibe dinero real.", "request_id": "req_2c6d9wLx"}States of a deposit
The list of states is open: your code must tolerate a new state. Every state change emits a funding.* event.
| State | What it means |
|---|---|
| `awaiting_deposit` | It is expected to arrive. |
| `received` | It arrived and is not credited yet. |
| `under_review` | It went into review before being credited. |
| `converted` | Credited: it already counts in balance.available. Final. |
| `returned` | It was sent back to the sender and not credited. Final. |
| `failed` | It could not be completed and was not credited. failure.code says why. Final. |
How it moves
These are all the possible steps. A final state has no exit.
creation→awaiting_depositawaiting_deposit→receivedawaiting_deposit→failedreceived→convertedreceived→under_reviewreceived→returnedreceived→failedunder_review→convertedunder_review→returnedunder_review→failed
Simulate a deposit (practice only)
POST /v1/test/fund creates a practice deposit and adds the money to the wallet. With a live key it answers 404. If you send Idempotency-Key, repeating the request gives back the same deposit.
curl -X POST https://api.nouronpass.com/v1/test/fund \
-H "Authorization: Bearer $NOURON_OWNER_KEY" \
-H "Content-Type: application/json" \
-d '{"amount":"25.00"}'{ "object": "test_funding", "amount": "25.00", "balance_after": "1025.00", "deposit": { "id": "dep_9a1b2c3d4e5f60718293a4b5c6d7e8f9", "object": "deposit", "livemode": false, "status": "converted", "method": "test", "amount": "25.50", "amount_credited": "25.50", "fee": "0.00", "currency": "usdc", "wallet_id": "wal_3c4d5e6f708192a3b4c5d6e7f8091a2b", "source": { "chain": "base", "tx_hash": "0x5f1d3b8a2c4e6f8091a2b3c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708", "from_address": "0x7a9c1e3b5d7f9021a3b5c7d9e1f30415a6b7c8d9" }, "failure": null, "created_at": "2026-10-13T14:03:21.114Z", "received_at": "2026-10-13T14:03:21.114Z", "credited_at": "2026-10-13T14:03:21.114Z", "request_id": "req_4k8m2pQ7" }}Amounts with a branch
These test amounts take the deposit down a special path. Waiting runs on the practice clock: move it forward with POST /v1/test/clock/advance.
| Amount | What it means |
|---|---|
| `50.01` | Goes into review for 10 minutes and is then credited. |
| `50.02` | It is sent back and not credited. |
| `50.03` | It fails on a limit and is not credited. |
| `50.04` | It arrives now and is credited 30 minutes later. |
| `50.05` | It is below the minimum: it fails and is not credited. |
Practice limits
- Minimum 1.00 USDC: a smaller amount is not credited.
- Up to 10000.00 per deposit.
- Up to 20000.00 and 30 deposits per day.
- Past a limit, the response is 422
quota_exceeded.
Events
Each step emits an event for the owner server, in this order. Delivery details are in Events and webhooks.
funding.awaiting_depositfunding.deposit_receivedfunding.failedfunding.convertedfunding.under_reviewfunding.returned