Activity History
Query and filter transaction history.
Before You Start
Read the following guides before proceeding:
| Guide | Why |
|---|---|
| Getting Started | Platform overview and setup |
| Api Basics | Required headers and request configuration |
| Authentication | How to obtain access tokens |
| Onboarding | User and wallet registration |
Overview
The activity feed provides paginated access to all user transactions. Activities can be filtered by type (e.g., only card transactions) or by subject (e.g., all transactions for a specific card).
Get Activity Feed
Retrieve user activities with optional filtering.
Endpoint
GET /api/v1/activity/feed
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
page_number | integer | No | Page number (default: 1) |
page_size | integer | No | Results per page (default: 25) |
types | string[] | No | Filter by activity types (comma-separated) |
subject | string | No | Filter by subject (card ID, wallet address, or account reference) |
The types and subject parameters are mutually exclusive.
Response
{
"activities": [
{
"id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
"user_address": "0xA7E41d5680dE394EaA2ed417169DFf56840Fb3EE",
"type": "CardTransaction",
"direction": "Outbound",
"status": "Completed",
"source": {
"type": "Cards",
"card": {
"id": "00000000-0000-0000-0000-000000000001",
"pan_last": "4242",
"payment_system": "Visa"
}
},
"destination": {
"type": "Merchant",
"merchant": {
"id": "00000000-0000-0000-0000-000000000002",
"name": "Coffee Shop",
"category": "Food & Drink"
}
},
"source_amount": {
"amount": 5.50,
"token_symbol": "WEUR",
"token_address": "0x..."
},
"destination_amount": {
"amount": 5.50,
"currency": "EUR"
},
"rate": {
"ticker": "EUR/WEUR",
"rate": 1.0
},
"created_at": "2024-01-15T10:30:00Z",
"activity_steps": [
{
"type": "Initiated",
"status": "Completed",
"created_at": "2024-01-15T10:30:00Z",
"completed_at": "2024-01-15T10:30:01Z"
},
{
"type": "CryptoOut",
"status": "Completed",
"created_at": "2024-01-15T10:30:01Z",
"completed_at": "2024-01-15T10:30:02Z"
},
{
"type": "CardOut",
"status": "Completed",
"created_at": "2024-01-15T10:30:02Z",
"completed_at": "2024-01-15T10:30:05Z"
},
{
"type": "Completed",
"status": "Completed",
"created_at": "2024-01-15T10:30:05Z",
"completed_at": "2024-01-15T10:30:05Z"
}
]
}
],
"pagination": {
"page_number": 1,
"page_size": 25,
"total_count": 150
}
}Activity Types
| Type | Direction | Description |
|---|---|---|
Crypto | Both | On-chain crypto transfer |
Exchange | Internal | Token exchange within wallet |
CardTransaction | Both | Card transaction (purchase or refund) |
CardTransfer | Outbound | Push to card transfer |
CardFeesPayment | Outbound | Card-related fee payment |
Sepa | Both | SEPA bank transfer |
AchPush | Both | ACH push transfer |
AchPull | Both | ACH pull transfer |
FasterPayment | Both | UK Faster Payments transfer |
Swift | Both | SWIFT international transfer |
YieldClaim | Inbound | Yield/reward claim |
Activity Directions
| Direction | Description |
|---|---|
Inbound | Funds received into user's wallet |
Outbound | Funds sent from user's wallet |
Internal | Movement within user's accounts (e.g., exchange) |
Activity Statuses
| Status | Description |
|---|---|
Pending | Transaction in progress |
Completed | Transaction successfully finished |
Failed | Transaction failed (see status_reason) |
Activity Steps
Multi-step transactions include an activity_steps array showing progression through each processing stage.
| Step Type | Description |
|---|---|
Initiated | Transaction started |
CryptoIn | Tokens credited to user wallet |
CryptoOut | Tokens debited from user wallet |
BankIn | Fiat received from bank |
BankOut | Fiat sent to bank |
CardIn | Fiat received from card network |
CardOut | Fiat sent to card network |
Review | Manual or compliance review |
Reversal | Transaction reversed |
SyntheticWrap | Tokens wrapped to synthetic tokens |
SyntheticUnwrap | Tokens unwrapped from synthetic tokens |
Completed | Transaction finalized |
Each step has its own status and timestamps for tracking progression.
Subject Types
Activities reference source and destination subjects that identify the parties involved.
| Subject Type | Description | Fields |
|---|---|---|
Wallet | User wallet | address |
ExternalWallet | External crypto address | address |
Cards | User's card | id, pan_last, payment_system |
ExternalCard | External card (push to card) | id, pan_last, payment_system |
Merchant | Card merchant | id, name, category, full_address |
SepaBankAccount | SEPA bank account | iban, bic, owner_name |
AchBankAccount | ACH bank account | account_number, routing_number, owner_name |
FasterPaymentBankAccount | UK bank account | account_number, sort_code, owner_name |
SwiftBankAccount | SWIFT bank account | iban, bic, owner_name |
Filter Examples
Filter by Type
Get only card transactions:
GET /api/v1/activity/feed?types=CardTransaction
Get card and SEPA transactions:
GET /api/v1/activity/feed?types=CardTransaction,Sepa
Filter by Subject
Get all activities for a specific card:
GET /api/v1/activity/feed?subject=00000000-0000-0000-0000-000000000001
Get all activities for a specific wallet address:
GET /api/v1/activity/feed?subject=0xA7E41d5680dE394EaA2ed417169DFf56840Fb3EE
Activity Webhook
Activities are also delivered via webhook as they occur.
Endpoint: POST {base_url}/v2/webhooks/activities
{
"id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
"user_address": "0xA7E41d5680dE394EaA2ed417169DFf56840Fb3EE",
"type": "Sepa",
"direction": "Inbound",
"status": "Completed",
"source": {
"type": "SepaBankAccount",
"bank_account": {
"iban": "DE89370400440532013000",
"bic": "COBADEFFXXX",
"owner_name": "Alex Grey",
"is_business": false
}
},
"destination": {
"type": "Wallet",
"wallet": {
"address": "0xA7E41d5680dE394EaA2ed417169DFf56840Fb3EE"
}
},
"source_amount": {
"amount": 1000.00,
"currency": "EUR"
},
"destination_amount": {
"amount": 1000.00,
"token_symbol": "WEUR",
"token_address": "0x..."
},
"created_at": "2024-01-15T10:30:00Z",
"activity_steps": [...]
}Error Handling
| Error Reason | Issue | Description |
|---|---|---|
ErrorInvalidField | invalid_format | Subject is not a valid UUID or address |
ErrorInvalidField | invalid_value | Activity type value is not recognized |
ErrorInvalidField | mutually_exclusive | Both types and subject provided |
Error Response Format
Invalid subject format:
{
"error_reason": "ErrorInvalidField",
"error_description": "Invalid format for subject",
"error_category": {
"category": "CategoryValidationFailure",
"http_status_code": 400
},
"error_details": [
{
"key": "field",
"details": "subject"
},
{
"key": "issue",
"details": "invalid_format"
}
]
}Mutually exclusive parameters:
{
"error_reason": "ErrorInvalidField",
"error_description": "Fields are mutually exclusive",
"error_category": {
"category": "CategoryValidationFailure",
"http_status_code": 400
},
"error_details": [
{
"key": "fields",
"details": "types,subject"
},
{
"key": "issue",
"details": "mutually_exclusive"
}
]
}Updated 8 days ago
