For the complete documentation index, see llms.txt. This page is also available as Markdown.

Create payout with permit

Creates a bank payout with an EIP-2612 permit signature and submits it on-chain. Recipient fields must use Latin characters; the network fee is deducted from the transfer amount. Payouts count against the user's rolling 30-day limit.

post
/api/v1/payout-with-permit
Authorizations
X-Api-SignaturestringRequired

Partner Auth: EIP-191 signature by the partner's registered backend key, with X-Api-Deadline and optional X-Api-PublicKey headers. See the Signature and verify guide.

Header parameters
tokenIdstringRequired

The user's URID (NFT token id).

networkstringRequired

Network identifier: 5000 for mainnet, 5003 for testnet.

signstringRequired

Signature generated by the user's wallet key (EIP-191).

hashstringRequired

SHA3/Keccak256 hash of the original request payload.

deadlinestringRequired

Signature expiry: server timestamp plus a validity window (max 20 minutes).

Body
amountstringRequired

Payout amount in smallest units.

permitAmountstringRequired

Permit amount signed in the EIP-2612 permit.

permitDeadlineintegerRequired

Unix seconds until which the permit is valid.

permitVintegerRequired

EIP-2612 signature component v.

permitRstringRequired

EIP-2612 signature component r.

permitSstringRequired

EIP-2612 signature component s.

contactIdstringRequired

Contact ID from the profile contacts or verify-contact.

tokenAddressstringRequired

Fiat token contract address to pay out from.

purposeIdstringOptional

Payment purpose ID from verify-reference or verify-contact.

refstringOptional

Reference ID from verify-reference or verify-contact.

Responses
200

Response envelope. For the user API, retCode 0 means success; for the partner API, code 0 means success. Business rejections return HTTP 200 with a non-zero code.

application/json

Standard response envelope for the user API (api.ur.app).

retCodeinteger · int64Required

0 on success; non-zero indicates failure.

retMsgstringRequired

Human-readable message; error details when retCode is non-zero.

resultanyOptional

Business payload. Shape depends on the endpoint; some endpoints return it as a JSON-encoded string.

timeNowinteger · int64Optional

Server timestamp in milliseconds.

post/api/v1/payout-with-permit
POST /api/v1/payout-with-permit HTTP/1.1
Host: api.ur.app
X-Api-Signature: YOUR_API_KEY
tokenId: text
network: text
sign: text
hash: text
deadline: text
Content-Type: application/json
Accept: */*
Content-Length: 279

{
  "amount": "text",
  "permitAmount": "text",
  "permitDeadline": 1,
  "permitV": 1,
  "permitR": "text",
  "permitS": "text",
  "contactId": "text",
  "tokenAddress": "text",
  "purposeId": "text",
  "ref": "text",
  "metadata": {
    "bankAccountHolder": "text",
    "bankName": "text",
    "bankAccount": "text",
    "bankReference": "text"
  }
}
200

Response envelope. For the user API, retCode 0 means success; for the partner API, code 0 means success. Business rejections return HTTP 200 with a non-zero code.

{
  "retCode": 0,
  "retMsg": "success",
  "result": {
    "txHash": "0xabc123def456..."
  },
  "timeNow": 1703123456789
}

Last updated