OffBlocks
  • πŸ‘‹Welcome to OffBlocks
  • Overview
    • πŸ’‘What we do
    • ✨Core Concepts
    • πŸ“œWhitepaper
    • ⛓️Supported Blockchains and Assets
    • ❔FAQ
  • Developer Guides
    • πŸ—οΈSystem Architecture
    • βš™οΈAPI Integration
      • πŸš€Getting Started
      • πŸ“―Postman
      • πŸ”‘Authentication
      • πŸ”Request Signatures
      • πŸ†”Idempotency
      • ⛓️Blockchain Identifiers
      • πŸ“’Blockchain Updates
      • πŸ“²Sign in With X
      • πŸ’°Fees
      • πŸ•ΉοΈSimulator
      • πŸ”’API Reference
        • πŸ¦Έβ€β™‚οΈCustomers
        • 🏦Accounts
        • πŸ’³Cards
        • πŸ”ƒTransactions
        • πŸͺWebhooks
        • πŸ•ΉοΈSimulator
        • πŸš‚Engine
      • ⏭️States and Transitions
        • πŸ¦Έβ€β™‚οΈCustomer States
        • 🏦Account States
        • πŸ’³Card States
        • πŸ”‘Authorisation States
        • πŸ”ƒTransaction States
    • 🧬Smart Contracts
      • OffBlocksEscrow.sol
      • OffBlocksSmartWalletFactory.sol
      • OffBlocksSmartWallet.sol
      • PendingWithdrawal.sol
      • Interfaces
    • πŸ”’Step-by-step Guide
      • 1️⃣API Credentials
      • 2️⃣Authentication
      • 3️⃣Request Preparation
      • 4️⃣Customer Creation
      • 5️⃣Customer Verification
      • 6️⃣Account Creation
      • 7️⃣Card Issuance
      • 8️⃣Card Authorisations
      • 9️⃣Webhooks
  • Use Cases
    • πŸ’°Wallet Providers
    • πŸ§‘β€πŸŒΎDeFi Apps
    • 🏦Neo-banks and FinTechs
Powered by GitBook
On this page
  1. Developer Guides
  2. API Integration
  3. API Reference

Transactions

PreviousCardsNextWebhooks

Last updated 1 year ago

Authorisation

Before a debit (payment) transaction is created, we usually receive an authorisation request from a payment network. We then either approve or reject the request based on various parameters, including customer and account statuses, on-chain balances etc. If authorisation is approved and authorised funds are claimed by the merchant, we proceed with creating a transaction entity.

Retrieving a Specific Authorisation

For the time being we only support retrieving an individual authorisation entity, however we will be expanding our API soon to support more endpoints.

To retrieve an individual authorisation, make a GET request to /authorisations/{authorisationId}.

Authorisation Entity Updates

Any internal updates to the authorisation entity will be reported through webhook update events. For details on how to set up and manage webhook subscriptions, please refer to Webhooks.

Transaction

Retrieving Transactions for a Specific Account or Card

To obtain a comprehensive list of transactions for a specific account or card, initiate a GET request to the corresponding endpoint:

  • /accounts/{accountId}/transactions for account transactions

  • /cards/{cardId}/transactions for card transactions

Transaction Entity Updates

Any internal updates to the transaction entity will be reported through webhook update events. For details on how to set up and manage webhook subscriptions, please refer to Webhooks.

Retrieving a Specific Transaction

To retrieve detailed information about a specific transaction, make a GET request to /transactions/{transactionId}.

βš™οΈ
πŸ”’
πŸ”ƒ

Retrieve authorisation details

get

Retrieves authorisation's details

Authorizations
Path parameters
authorisationIdstring Β· uuidRequired

Unique authorisation ID

Header parameters
SignaturestringRequired

HTTP message signature

Signature-InputstringRequired

HTTP message signature input

Responses
200
Successful operation
application/json
400
Invalid request
401
Not authorised
404
Authorisation not found
500
Internal error
get
GET /v1/authorisations/{authorisationId} HTTP/1.1
Host: api.offblocks.xyz
Authorization: Bearer JWT
Signature: text
Signature-Input: text
Accept: */*
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "accountId": "123e4567-e89b-12d3-a456-426614174000",
  "cardId": "123e4567-e89b-12d3-a456-426614174000",
  "status": "pending",
  "amount": "10.0",
  "currency": "EUR",
  "merchantAmount": "10.0",
  "merchantCurrency": "EUR",
  "exchangeRate": "10.0",
  "merchant": {
    "id": "text",
    "name": "text",
    "mcc": 1,
    "country": "text",
    "city": "text"
  },
  "createdAt": "2025-05-09T07:18:17.774Z",
  "updatedAt": "2025-05-09T07:18:17.774Z"
}

Retrieve account transactions

get

Retrieves account's transactions

Authorizations
Path parameters
accountIdstring Β· uuidRequired

Unique account ID

Header parameters
SignaturestringRequired

HTTP message signature

Signature-InputstringRequired

HTTP message signature input

Responses
200
Successful operation
application/json
400
Invalid request
401
Not authorised
404
Account not found
500
Internal error
get
GET /v1/accounts/{accountId}/transactions HTTP/1.1
Host: api.offblocks.xyz
Authorization: Bearer JWT
Signature: text
Signature-Input: text
Accept: */*
[
  {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "accountId": "123e4567-e89b-12d3-a456-426614174000",
    "cardId": "123e4567-e89b-12d3-a456-426614174000",
    "authorisationId": "123e4567-e89b-12d3-a456-426614174000",
    "status": "processing",
    "direction": "debit",
    "amount": "10.0",
    "currency": "EUR",
    "merchantAmount": "10.0",
    "merchantCurrency": "EUR",
    "exchangeRate": "10.0",
    "merchant": {
      "id": "text",
      "name": "text",
      "mcc": 1,
      "country": "text",
      "city": "text"
    },
    "tokenAmount": "10.0",
    "token": "eip155:1/erc20:0x6b175474e89094c44da98b954eedeac495271d0f",
    "fees": [
      {
        "type": "partner",
        "tokenAmount": "10.0"
      }
    ],
    "chainTransactions": [
      {
        "chainId": "eip155:1:0xa3847d82245abb63692bded9da859af0b73b1bfd2409502291c39795eb14954f",
        "createdAt": "2025-05-09T07:18:17.774Z"
      }
    ],
    "createdAt": "2025-05-09T07:18:17.774Z",
    "updatedAt": "2025-05-09T07:18:17.774Z"
  }
]

Retrieve card transactions

get

Retrieves card's transactions

Authorizations
Path parameters
cardIdstring Β· uuidRequired

Unique card ID

Header parameters
SignaturestringRequired

HTTP message signature

Signature-InputstringRequired

HTTP message signature input

Responses
200
Successful operation
application/json
400
Invalid request
401
Not authorised
404
Card not found
500
Internal error
get
GET /v1/cards/{cardId}/transactions HTTP/1.1
Host: api.offblocks.xyz
Authorization: Bearer JWT
Signature: text
Signature-Input: text
Accept: */*
[
  {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "accountId": "123e4567-e89b-12d3-a456-426614174000",
    "cardId": "123e4567-e89b-12d3-a456-426614174000",
    "authorisationId": "123e4567-e89b-12d3-a456-426614174000",
    "status": "processing",
    "direction": "debit",
    "amount": "10.0",
    "currency": "EUR",
    "merchantAmount": "10.0",
    "merchantCurrency": "EUR",
    "exchangeRate": "10.0",
    "merchant": {
      "id": "text",
      "name": "text",
      "mcc": 1,
      "country": "text",
      "city": "text"
    },
    "tokenAmount": "10.0",
    "token": "eip155:1/erc20:0x6b175474e89094c44da98b954eedeac495271d0f",
    "fees": [
      {
        "type": "partner",
        "tokenAmount": "10.0"
      }
    ],
    "chainTransactions": [
      {
        "chainId": "eip155:1:0xa3847d82245abb63692bded9da859af0b73b1bfd2409502291c39795eb14954f",
        "createdAt": "2025-05-09T07:18:17.774Z"
      }
    ],
    "createdAt": "2025-05-09T07:18:17.774Z",
    "updatedAt": "2025-05-09T07:18:17.774Z"
  }
]

Retrieve transaction details

get

Retrieves transaction's details

Authorizations
Path parameters
transactionIdstring Β· uuidRequired

Unique transaction ID

Header parameters
SignaturestringRequired

HTTP message signature

Signature-InputstringRequired

HTTP message signature input

Responses
200
Successful operation
application/json
400
Invalid request
401
Not authorised
404
Transaction not found
500
Internal error
get
GET /v1/transactions/{transactionId} HTTP/1.1
Host: api.offblocks.xyz
Authorization: Bearer JWT
Signature: text
Signature-Input: text
Accept: */*
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "accountId": "123e4567-e89b-12d3-a456-426614174000",
  "cardId": "123e4567-e89b-12d3-a456-426614174000",
  "authorisationId": "123e4567-e89b-12d3-a456-426614174000",
  "status": "processing",
  "direction": "debit",
  "amount": "10.0",
  "currency": "EUR",
  "merchantAmount": "10.0",
  "merchantCurrency": "EUR",
  "exchangeRate": "10.0",
  "merchant": {
    "id": "text",
    "name": "text",
    "mcc": 1,
    "country": "text",
    "city": "text"
  },
  "tokenAmount": "10.0",
  "token": "eip155:1/erc20:0x6b175474e89094c44da98b954eedeac495271d0f",
  "fees": [
    {
      "type": "partner",
      "tokenAmount": "10.0"
    }
  ],
  "chainTransactions": [
    {
      "chainId": "eip155:1:0xa3847d82245abb63692bded9da859af0b73b1bfd2409502291c39795eb14954f",
      "createdAt": "2025-05-09T07:18:17.774Z"
    }
  ],
  "createdAt": "2025-05-09T07:18:17.774Z",
  "updatedAt": "2025-05-09T07:18:17.774Z"
}
  • Authorisation
  • Retrieving a Specific Authorisation
  • GETRetrieve authorisation details
  • Authorisation Entity Updates
  • Transaction
  • Retrieving Transactions for a Specific Account or Card
  • GETRetrieve account transactions
  • GETRetrieve card transactions
  • Transaction Entity Updates
  • Retrieving a Specific Transaction
  • GETRetrieve transaction details