Skip to content

Transaction Tags V1 — Developer Guide

Reference: Transaction Tags (V1) Endpoint Documentation


Transaction tags are short text labels that can be attached to payment and adjustment transactions for categorization and reporting purposes. Tags are referenced by their ID when linking them to a transaction via the transactionTags field on Patient Payments and Adjustment Transactions.

Two types of tags exist:

tagTypeUsed On
PAYMENT_TAGPatient payment transactions
ADJUSTMENT_TAGAdjustment transactions (charge and credit)

GET — Bulk List Transaction Tags

Returns a paginated list of transaction tags filtered by the provided criteria.

⚠️ Rate Limited: This endpoint is rate limited. See the rate limiting guide for details.

Parameters

ParameterInRequiredTypeDescription
Organization-IDheaderYesstringThe organization ID
filterqueryNostringFilter criteria (see filter keys below). If omitted, a default date-limiting filter is applied automatically.
responseFieldsqueryNostringComma-delimited list of fields to include, or ALL
pagequeryNostringPage number for pagination
pageSizequeryNostringNumber of records per page
lastIdqueryNostringLargest tag ID from the previous page, used for efficient pagination

Filter Keys

Filter KeyOperatorsExample
id->?filter=id->[1000000020702,1000000020703]
tagText==, !=, ~=, <>=?filter=tagText==Insurance
tagType==, !=?filter=tagType==PAYMENT_TAG

tagText Operator Details

OperatorBehavior
==Exact match
!=Not equal
~=Starts with (prefix search)
<>=Contains (substring search)

Example Requests

Fetch all payment tags:

GET /api/v1/transactiontags?filter=tagType==PAYMENT_TAG

Search for tags starting with "Insurance":

GET /api/v1/transactiontags?filter=tagText~=Insurance

Fetch specific tags by ID:

GET /api/v1/transactiontags?filter=id->[1000000020702,1000000020703]

GET — Transaction Tag by ID

Returns a single transaction tag by its ID.

Parameters

ParameterInRequiredTypeDescription
transactionTagIdpathYesintegerThe ID of the transaction tag
Organization-IDheaderYesstringThe organization ID
responseFieldsqueryNostringComma-delimited list of fields to include, or ALL

Example Request

GET /api/v1/transactiontags/1000000020702

POST — Create Transaction Tag

Creates a new transaction tag. All three fields are required.

Scenario 1 — POST: Create a Payment Tag

Use this scenario to create a tag that can be attached to patient payment transactions.

Required Fields

FieldTypeDescription
tagTextstringThe tag label. Min 1, max 30 characters.
isPredefinedbooleanWhether this tag is a predefined system tag (true) or a custom tag (false).
tagTypestringMust be "PAYMENT_TAG"

Example Request Body

{
  "tagText": "Online Payment",
  "isPredefined": false,
  "tagType": "PAYMENT_TAG"
}

Scenario 2 — POST: Create an Adjustment Tag

Use this scenario to create a tag that can be attached to charge or credit adjustment transactions.

Required Fields

FieldTypeDescription
tagTextstringThe tag label. Min 1, max 30 characters.
isPredefinedbooleanWhether this is a predefined tag.
tagTypestringMust be "ADJUSTMENT_TAG"

Example Request Body

{
  "tagText": "Write-Off",
  "isPredefined": true,
  "tagType": "ADJUSTMENT_TAG"
}

DELETE — Delete Transaction Tag

Deletes a specific transaction tag by ID.

Note: Deleting a tag that is currently referenced by transaction records may affect reporting and filtering by that tag.

Parameters

ParameterInRequiredTypeDescription
transactionTagIdpathYesintegerThe ID of the transaction tag to delete
Organization-IDheaderYesstringThe organization ID

Example Request

DELETE /api/v1/transactiontags/1000000020702

Streaming

Transaction tags are streamable via the Streaming API. Unlike transaction records (which use TransactionV1), transaction tags have their own dedicated domain type: TransactionTagV1.

Routing Key Format

organizationId.locationId.TransactionTagV1.operationType

Example Routing Keys

Listen for all transaction tag events across all locations:

66d22762060811049b50d085.*.TransactionTagV1.*

Listen for creates only:

66d22762060811049b50d085.*.TransactionTagV1.CREATE

Listen for deletes only at a specific location:

66d22762060811049b50d085.1000000000123.TransactionTagV1.DELETE

Operations Emitted

OperationWhen
CREATEWhen a new transaction tag is created (POST)
UPDATEWhen a transaction tag is modified
DELETEWhen a transaction tag is deleted (DELETE)

Response Structure

A successful 200/201 response returns:

FieldTypeDescription
dataobjectThe created, retrieved, or deleted tag
warningsarrayNon-fatal warnings
errorsarrayField-level errors

For bulk GET, data is an array and includes meta.pagination.

data Object — Transaction Tag Fields

FieldTypeRead-OnlyDescription
idintegerYesUnique tag ID
tagTextstringNoTag label (1–30 characters)
isPredefinedbooleanNoPredefined system tag flag
tagTypestringNoPAYMENT_TAG or ADJUSTMENT_TAG

Errors & Warnings Reference

HTTP Status Code Errors — click to expand

400 — Bad Request

The request body or parameters are invalid. See field-level errors below.


401 — Unauthorized

MessageAuthentication is required and has failed or has not been provided.
FixProvide a valid Bearer token in the Authorization header.

403 — Forbidden

MessageThe request is understood, but it has been refused or access is not allowed.
WhyToken lacks model:read (GET) or model:write (POST/DELETE) scope.
FixRequest the appropriate scope for the operation.

404 — Not Found

MessageThe requested resource is either missing or does not exist.
WhyNo transaction tag exists for the given transactionTagId within your organization.
FixConfirm the transactionTagId is correct and belongs to your organization.

408 — Request Timeout

MessageThe server timed out while processing the request.
FixRetry the request.

429 — Too Many Requests

MessageRate limit exceeded.
FixImplement exponential backoff. See the rate limiting guide.

500 — Internal Server Error

MessageAn unexpected error occurred.
FixRetry. If the issue persists, contact support.

Field-Level Validation Errors — click to collapse

tagText

Error: Missing or invalid tagText.

WhytagText was not provided, is empty, or exceeds 30 characters.
FixProvide a string between 1 and 30 characters.

tagType

Error: Invalid tagType.

WhyThe tagType value is not one of the recognized enum values.
FixUse "PAYMENT_TAG" or "ADJUSTMENT_TAG".

isPredefined

Error: Missing isPredefined.

WhyThe isPredefined field was not included in the request body.
FixInclude isPredefined as true or false.