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/wallets lists it and GET /v1/wallets/{wallet_id} reads it.
  • balance.available is what can be used right now. balance.pending is deposits that arrived and are not credited yet.
  • controls says 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.

Ask for the address
curl https://api.nouronpass.com/v1/deposit-instructions \
  -H "Authorization: Bearer $NOURON_OWNER_KEY"
Response
{  "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
StateWhat 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_deposit
  • awaiting_deposit → received
  • awaiting_deposit → failed
  • received → converted
  • received → under_review
  • received → returned
  • received → failed
  • under_review → converted
  • under_review → returned
  • under_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.

Simulate a deposit of 25.00
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"}'
Response (the deposit is in `deposit`)
{  "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
AmountWhat 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_deposit
  • funding.deposit_received
  • funding.failed
  • funding.converted
  • funding.under_review
  • funding.returned