Skip to main content
A virtual card’s activity history shows who created the card, every change to its settings and status, who it was shared with, and which approvals authorized those changes. Read it with objectChangeHistory and objectType: VIRTUAL_CARDS.
Prerequisites: a user access token with the VIEW_OBJECT_CHANGE_HISTORY scope, and the virtualCardId of a card on the account. See Activity history overview for the full query, response fields, and access rules.

Creation

The card records OBJECT_CREATED when it’s issued. When a card is created through an approval, it also gets the request’s APPROVAL_REQUESTED and APPROVAL_APPROVED events, dated when they happened. See Approvals. New cards also record OWNER_ASSIGNED for their first owner, and an ACCESS_GRANTED event with "reason": "owner-floor" for the owner’s SPENDER access. See Ownership and access.

Settings changes

A settings change records one FIELD_CHANGED event per field that changed, with change: { "field", "old", "new" }. A limit change records both spend_limit and spend_limit_duration when both change, and only the one that changed otherwise. A funding switch can record both funding_source and spend_account: one gets the new ID and the other changes to null. Switching to a bank card records the previous funding field changing to null. The bank card’s own ID isn’t recorded.

Status changes

Locking, unlocking, and closing a card record FIELD_CHANGED with field: "status". The history records lock state as a status. UNLOCKED and LOCKED both describe an open card, which the card queries report as status: ACTIVE with the lock in authorizationSetting.lockedByUser and lockedBySystem. See Card status and limits. An unlock can also change the lock date, recorded as a separate lock_date event. Unlocking a single-use card sets a lock date one day out. Unlocking a multi-use card whose lock date has passed clears it to null. A cancelled card’s reason is one of:

Lock reasons

When a card is locked without a person asking for it, the lock event carries change.reason: A single-load card that drops back under its limit is unlocked again, attributed to system: "virtual-card-service".

Security changes

Fluz records that these changes happened, and who made them, but never the sensitive value.

Expense details

Memos, receipts, and categories belong to a transaction, not to the card. When one changes, Fluz records a FIELD_CHANGED event on the card the transaction was made with. Each event also identifies the transaction: These events are recorded for:
  • updateTransactionMetadata.
  • The UPDATE_TRANSACTION_METADATA bulk operation, for memo and transactionCategory.
  • bulkUpdateErpTransactionMetadata, for erp_category.
  • Edits in the Fluz web app. In the Fluz mobile app, receipt uploads and removals, and QuickBooks category changes.
They’re attributed to the user who made the change and the connected application, if any. A category counts as changed only when its ID changes. Not recorded:
  • A memo or category set when the transaction is made.
  • A card’s default memo or category copied onto each new transaction.
  • QuickBooks vendor, customer, class, billable, and memo fields, including memo edits in the Fluz mobile app.
  • A QuickBooks category or memo that Fluz copies into the Fluz fields.

Sharing

A card’s ownership, access, and invite events follow the shared rules in Ownership and access. When a recipient claims a card that was shared with them, the card records ACCESS_GRANTED or ACCESS_LEVEL_CHANGED with "reason": "shared-card-claim". The claimer is both the actor and the subject.

Approvals

These requests record approval events on the card. The trail is described in Approvals. A request about an existing card that nobody decides in time records APPROVAL_EXPIRED on the card. A declined or expired request to create a card (600003) leaves no history, because no card was created.

Systems you can see


What isn’t recorded

  • Revealing card details.
  • Transactions, authorizations, refunds, and spend amounts. A transaction only shows up through what it caused, such as a USED, LOCK_NEXT_USE, or SINGLE_LOAD_LIMIT event.
  • The bank card’s ID when the card switches to bank card funding. You see funding_source or spend_account change to null instead.
  • Turning Fluz balance funding on or off.
  • Card balance loads and closures at the card issuer that don’t change the card’s status.
  • Share links. Generating, claiming, or deactivating a share link isn’t part of the card’s history. The claim’s access grant is.

Next steps

Activity history overview

The query, response fields, actors, approvals, and access levels.

Edit a virtual card

Change the settings that appear in the card’s history.