# Get campaign ledger activity feed Retrieve campaign ledger transaction events as an activity feed, showing all financial transactions related to a campaign in chronological order (newest first). Returns 200 OK on success, 404 if campaign not found. Supports optional limit query parameter (default 50). Requires a valid JWT access token. Endpoint: GET /campaigns/{campaignId}/ledger Version: 0.1.0 Security: bearerAuth ## Path parameters: - `campaignId` (string, required) Unique identifier for the campaign Example: "campaign_abc123" ## Query parameters: - `limit` (integer) Maximum number of events to return (default 50) Example: 50 ## Response 200 fields (application/json): - `transactionId` (string, required) Unique identifier for the ledger transaction Example: "ledger_tx_abc123" - `occurredAtTimestamp` (string, required) When the transaction occurred Example: "2024-01-15T10:30:00Z" - `transactionType` (string, required) Type of ledger transaction Enum: "LEDGER_ENTRY_TRANSACTION_TYPE_ESCROW_FUNDING", "LEDGER_ENTRY_TRANSACTION_TYPE_PLATFORM_PAYOUT_FEE", "LEDGER_ENTRY_TRANSACTION_TYPE_INFLUENCER_PAYOUT_NET", "LEDGER_ENTRY_TRANSACTION_TYPE_INFLUENCER_PAYOUT_GROSS", "LEDGER_ENTRY_TRANSACTION_TYPE_ADMIN_WALLET_FUNDING", "LEDGER_ENTRY_TRANSACTION_TYPE_ESCROW_REFUND", "LEDGER_ENTRY_TRANSACTION_TYPE_DEV_WALLET_FUND" - `description` (string, required) Human-friendly description of the transaction Example: "Influencer payout" - `totalAmountCents` (integer, required) Sum of positive line amounts in cents Example: 10000 - `currencyCode` (string, required) Currency code for the transaction Enum: "NGN", "USD" - `fromAccounts` (array, required) Ledger lines with negative amounts (sources) - `fromAccounts.ledgerAccountType` (string, required) Type of ledger account Enum: "LEDGER_ACCOUNT_TYPE_USER_WALLET", "LEDGER_ACCOUNT_TYPE_CAMPAIGN_ESCROW", "LEDGER_ACCOUNT_TYPE_PLATFORM_WALLET" - `fromAccounts.ledgerAccountReferenceId` (string, required) Reference identifier for the account (user ID, campaign ID, or PLATFORM_WALLET) Example: "user_456" - `fromAccounts.amountCents` (integer, required) Amount in cents (absolute value for fromAccounts) Example: 10000 - `toAccounts` (array, required) Ledger lines with positive amounts (destinations) ## Response 400 fields (application/json): - `error` (string, required) Error code Example: "VALIDATION_ERROR" - `message` (string, required) Human-readable error message Example: "Invalid email address or password format" - `details` (object) Additional error details (optional) - `requestId` (string) Unique request identifier for tracing (included in X-Request-ID header) Example: "550e8400-e29b-41d4-a716-446655440000" - `timestamp` (string, required) ISO 8601 timestamp when the error occurred Example: "2024-01-01T00:00:00Z" ## Response 401 fields (application/json): - `error` (string, required) Error code Example: "VALIDATION_ERROR" - `message` (string, required) Human-readable error message Example: "Invalid email address or password format" - `details` (object) Additional error details (optional) - `requestId` (string) Unique request identifier for tracing (included in X-Request-ID header) Example: "550e8400-e29b-41d4-a716-446655440000" - `timestamp` (string, required) ISO 8601 timestamp when the error occurred Example: "2024-01-01T00:00:00Z" ## Response 404 fields (application/json): - `error` (string, required) Error code Example: "VALIDATION_ERROR" - `message` (string, required) Human-readable error message Example: "Invalid email address or password format" - `details` (object) Additional error details (optional) - `requestId` (string) Unique request identifier for tracing (included in X-Request-ID header) Example: "550e8400-e29b-41d4-a716-446655440000" - `timestamp` (string, required) ISO 8601 timestamp when the error occurred Example: "2024-01-01T00:00:00Z"