Skip to main content
Settlement accounts are where you receive payouts from Orafi.

Available Endpoints

POST   /settlement/crypto             # Adding Crypto Accounts
GET    /settlement/crypto             # Retrieving Crypto Accounts
DELETE /settlement/crypto/{id}        # Deleting Crypto Accounts

Crypto Account Object

The CryptoAccount model represents a saved on-chain wallet address associated with a business profile. It is primarily used to enable payouts without requiring the merchant to re-submit or re-sign wallet details each time. Crypto accounts act as trusted payout destinations once linked to a profile.

Fields

id

  • Type: String
  • Primary Key
  • Default: uuid()
  • Database Field: _id
  • Description: Unique identifier for the crypto account record.

walletAddress

  • Type: String
  • Description: Blockchain wallet address associated with the business profile. This address is used as a destination for crypto payouts.

profileId

  • Type: String
  • Description: Identifier of the business profile that owns this crypto account.

Relationships (High-Level)

These relationships exist for ownership, traceability, and payout routing.
  • Business Profile (Optional) A crypto account may be linked to a business profile. Once linked, it becomes an approved payout destination for that profile.
  • Payouts Tracks all payout transactions sent to this wallet address.

Notes

  • Crypto accounts allow merchants to reuse saved wallet addresses for payouts.
  • Wallet ownership verification may be required before linking a crypto account.
  • Deleting a crypto account does not affect historical payout records.

Adding Accounts

Adding a crypto account

Request Body

walletAddress

  • Type: string
  • Optional
  • Description:
    Destination wallet address for the payout.

bytes

  • Type: string
  • Optional
  • Description:
    Serialized message bytes that were signed by the wallet owner.
    Used to verify payout authorization.

signature

  • Type: string
  • Optional
  • Description:
    Cryptographic signature generated by signing the bytes message with the wallet’s private key.

curl -X POST https://api.orafi.app/v1/settlement/crypto \
  -H "Content-Type: application/json" \
  -H "x-api-key: your_api_key" \
  -d '{
    "walletAddress": "0x871cf48ff1847e7a796ed69a04250323df16a66d43b25fee5e1619d82f55c2d3",
    "bytes": "QWRkIGNyeXB0byBhY2NvdW50IGFzIGEgc2V0dGxlbWVudCBhY2NvdW50",
    "signature": "AEQCjzWKVlM5Ht4Qbwk/ZpPeWbL4YRFFY+k7Dij5pMirJx6Qtz0CnC5zHpHp/6hJe7VJPWo/1jhrD+kA6HN4OQS2OR9nIxAU4YRRNdmVxg7U9p+LcqdIDICj+9T2efmXEg=="
}'
Response
{     
  "success":true,
  "message": "Settlement account added successfully",
  "data":null
}

Retrieving Accounts

Retrieve saved crypto accounts
curl -X GET https://api.orafi.app/v1/settlement/crypto \
  -H "x-api-key: your_api_key" \
Response
{
    "success": true,
    "message": "Settlement accounts retrieved successfully",
    "data": [
        {
            "id": "854da716-03bf-4bcf-9eba-3302208f8f36",
            "walletAddress": "0x711e00869390d0b59c59c68a42a2a95bfbaeb8e60423a0aa3c76492701352de4",
            "profileId": "84a9f045-8a21-4ce4-a7a0-828265c0021b"
        },
        {
            "id": "4fcf81a9-3243-4634-8b91-b9ecc6b4afe9",
            "walletAddress": "0x871cf48ff1847e7a796ed69a04250323df16a66d43b25fee5e1619d82f55c2d3",
            "profileId": "84a9f045-8a21-4ce4-a7a0-828265c0021b"
        }
    ]
}

Deleting Accounts

Deleting a saved crypto account

Request Body

accountId
  • Type: string
  • Optional
  • Description:
    Unique identifier for account.
curl -X DELETE https://api.orafi.app/v1/settlement/crypto \
  -H "Content-Type: application/json" \
  -H "x-api-key: your_api_key" \
Response
{
    "success": true,
    "message": "Account deleted successfully",
    "data": null
}