Payer routes
Attest the wallet
POST/v1/payer/deposit-requests/{id}/wallet/attest
Submits the signature. Binds the wallet and derives the deposit address.
Unauthenticated · Payday-Payer-Session unlocks gated content.
Request
curl -fsS -X POST "$API/v1/payer/deposit-requests/dr_0198f80c-…/wallet/attest" \
-H "Payday-Payer-Session: $PAYER_SESSION" \
-H "Content-Type: application/json" \
-d '{ "wallet": "0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed", "signature": "0x…" }'Response
{
"id": "dr_0198f80c-8d2f-7dc1-a369-90556a64f700",
"issuer_name": "Acme LLC",
"heading": "March retainer",
"payer_policy": { "mode": "verified_email", "expected_email_hint": "a****@c***.example" },
"requirements": { "email": "approved", "wallet": "approved", "merchant_session": "not_required", "complete": true },
"status": "awaiting_deposit",
"payable": true,
"expires_at": "2026-09-06T13:00:00Z",
"server_timestamp": "1757160400",
"settlement_tx_hash": null,
"settlement_explorer_url": null,
"payer_message": null,
"content_unlocked": true,
"chain": { "id": "143", "name": "Monad" },
"token": { "symbol": "USDC", "address": "0x754704Bc059F8C67012fEd69BC8A327a5aafb603", "decimals": 6 },
"amount": "10.500000",
"amount_base_units": "10500000",
"received": "0.000000",
"received_base_units": "0",
"remaining": "10.500000",
"remaining_base_units": "10500000",
"payer_wallet": "0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed",
"address": "0x2222222222222222222222222222222222222222",
"address_explorer_url": "https://monadvision.com/address/0x2222222222222222222222222222222222222222",
"deposit_uri": "ethereum:0x754704Bc059F8C67012fEd69BC8A327a5aafb603@143/transfer?address=0x2222222222222222222222222222222222222222&uint256=10500000",
"details": {
"amount": "10.500000",
"amount_base_units": "10500000",
"payer": { "name": "Customer Inc" },
"notes": "Net 30. Thank you.",
"reference": "INV-1042",
"attachment": null
}
}Signature must recover to wallet (EOA only). Salt, recovery term, and address are written atomically, once. Raises deposit_request.ready.
Headers
Payday-Payer-Sessionstring- Payer session token.
Path parameters
iddr_ idrequired
Body
walletstringrequiredsignaturestringrequired- 65 bytes, 0x hex.
Response
Payer view, unlocked, with address and payer_wallet.
Status codes
- 401
wallet_signature_invalid - 401
verification_required / payer_session_invalid - 409
wallet_challenge_requiredNo unexpired challenge on the session. - 409
wallet_already_bound - 410
deposit_request_not_payable