Full endpoint reference for the Denaro Pay REST API. All endpoints require HTTPS. JWT Bearer token required on authenticated routes.
← Documentation overview| Method | Path | Description | Auth |
|---|---|---|---|
| POST | /auth/register | Register a new user account. Requires email, password, phone. Initiates KYC flow. Returns user object and triggers Persona KYC session. | — |
| POST | /auth/login | Authenticate and receive JWT access token and refresh token. Body: email, password, optional biometric_token. Returns access_token, refresh_token, expires_in. | — |
| POST | /auth/verify-phone | Verify phone number via SMS OTP. Body: phone, otp_code. Required before wallet creation is enabled. | — |
| POST | /auth/refresh | Exchange a valid refresh token for a new access token. Body: refresh_token. Returns new access_token and refresh_token pair. | — |
| POST | /auth/logout | Invalidate the current access and refresh tokens. Requires active access token. | JWT |
| Method | Path | Description | Auth |
|---|---|---|---|
| GET | /wallet/balance | Get current USDC balance including yield accrued today. Returns balance_usdc, yield_today, yield_apy, wallet_address. | JWT |
| GET | /wallet/address | Get the Base L2 wallet address for the authenticated user. Returns address, network, chain_id. | JWT |
| GET | /wallet/transactions | Get paginated transaction history. Query params: page, per_page (max 100), type (inbound|outbound|yield|card). Returns transaction array with Base explorer links. | JWT |
| Method | Path | Description | Auth |
|---|---|---|---|
| POST | /transfer/send | Send USDC to a wallet address. Body: to_address, amount_usdc, biometric_token. Biometric session token required. Triggers 2FA for amounts over $500. Returns transaction_id and tx_hash. | JWT |
| POST | /transfer/request | Request USDC from another Denaro Pay user. Body: from_email or from_phone, amount_usdc, note. Returns payment_request_id. | JWT |
| GET | /transfer/estimate | Estimate transfer fee and settlement time. Query params: to_address, amount_usdc. Returns fee_usdc, estimated_seconds, network. | JWT |
| Method | Path | Description | Auth |
|---|---|---|---|
| POST | /kyc/start | Initiate KYC verification session via Persona. Returns persona_inquiry_id and redirect_url for the KYC flow. Status: pending. | JWT |
| GET | /kyc/status | Get current KYC status. Returns status: pending | approved | rejected. If rejected, returns rejection_reason. | JWT |
| Method | Path | Description | Auth |
|---|---|---|---|
| POST | /card/create | Create virtual Visa card via Marqeta. Body: card_type (virtual|physical), design (noir|lime|ivory|prism). Physical card charges $24 USDC. Returns card_id, last_four, expiry, cvv (once only). | JWT |
| GET | /card/status | Get card status and details. Returns card_id, last_four, status (active|frozen|cancelled), design, card_type. | JWT |
| POST | /card/freeze | Freeze or unfreeze card. Body: card_id, action (freeze|unfreeze). Returns updated status. | JWT |
| GET | /card/transactions | Get card transaction history. Query params: page, per_page. Returns array of card transactions with merchant name, amount, FX rate applied. | JWT |
| Method | Path | Description | Auth |
|---|---|---|---|
| POST | /yield/enable | Enable yield for the account (enabled by default on all new accounts). Body: enabled (boolean). Returns new yield_enabled status. | JWT |
| GET | /yield/balance | Get current yield accrual. Returns current_apy, accrued_today_usdc, accrued_total_usdc, last_block_accrual. | JWT |
| GET | /bot/status | Get CREST AI bot status. Returns active (boolean), current_session_pnl, connected_firm, connector (tradovate|rithmic), last_trade. | JWT |
| POST | /bot/start | Manually trigger a CREST AI session (within NY session window only). Body: account_id. Returns session_id. | JWT |
| POST | /bot/stop | Stop active CREST AI session. Body: session_id. Returns final_pnl and settlement status. | JWT |
| Method | Path | Description | Auth |
|---|---|---|---|
| POST | /subscription/create | Subscribe to CREST AI at $99/month. Body: plan (crest_monthly). Charges USDC from wallet. Returns subscription_id, next_billing_date, status. | JWT |
| GET | /subscription/status | Get current subscription status. Returns plan, status (active|cancelled|past_due), next_billing_date, amount_usdc. | JWT |
| POST | /subscription/cancel | Cancel CREST AI subscription. Subscription remains active until end of billing period. Returns cancellation_effective_date. | JWT |