API error codes
Stable error codes returned in the code field of API failure responses (308 total).
Codes follow the convention <Subject>.<Reason> (e.g., Order.BatchClosed, Cohort.NotFound).
The matching HTTP status is set by the endpoint that consumes the Result<T>; most failures map to 400 Bad Request.
(uncategorised)
Section titled “(uncategorised)”| Code | Default message |
|---|---|
cap_reached | — |
name_required | Name is required. |
name_taken | You already have an alert subscription with this name. |
not_authenticated | User context is not resolved. |
not_found | The subscription does not exist or does not belong to you. |
ApiKey
Section titled “ApiKey”| Code | Default message |
|---|---|
ApiKey.NotFound | API key not found. |
Attachment
Section titled “Attachment”| Code | Default message |
|---|---|
Attachment.Invalid | File name is required. |
AuditLog
Section titled “AuditLog”| Code | Default message |
|---|---|
AuditLog.NotFound | Audit log entry not found. |
| Code | Default message |
|---|---|
Auth.Forbidden | Missing users:reset-mfa permission. |
Auth.NotAuthenticated | You must be signed in to impersonate another user. |
Auth.Required | Sign-in required. |
Auth.Unauthorized | Not authenticated. |
| Code | Default message |
|---|---|
Batch.AlreadyClosed | Batch is already closed. |
Batch.AlreadyOpen | Batch is already open. |
Batch.Closed | Cannot modify a closed batch. |
Batch.HasActuals | Cannot delete a batch with actual transactions recorded. Remove the transactions first or set actual values to zero. |
Batch.HasUnreviewedMismatches | — |
Batch.InvalidBatchSource | Batch source not found or inactive. |
Batch.InvalidBatchType | Batch type not found or inactive. |
Batch.NoProcessor | No payment processor is configured for this tenant. |
Batch.NotBalanced | — |
Batch.NotFound | Batch not found. |
Batch.TargetClosed | — |
Batch.TransferTargetSameAsSource | The payment is already in that batch. |
BatchSource
Section titled “BatchSource”| Code | Default message |
|---|---|
BatchSource.CannotDeleteSystem | Cannot delete a system default batch source. |
BatchSource.NameExists | A batch source with this name already exists. |
BatchSource.NotFound | Deleted batch source not found. |
BatchType
Section titled “BatchType”| Code | Default message |
|---|---|
BatchType.CannotDeleteSystem | Cannot delete a system default batch type. |
BatchType.NameExists | A batch type with this name already exists. |
BatchType.NotFound | Deleted batch type not found. |
Behavior
Section titled “Behavior”| Code | Default message |
|---|---|
Behavior.NotFound | Behavior not found. |
BundleItem
Section titled “BundleItem”| Code | Default message |
|---|---|
BundleItem.ItemNotFound | Referenced inventory item not found. |
BundleItem.SelfReference | A bundle cannot contain itself. |
BundleItem.VariantNotFound | Referenced item variant not found. |
Cohort
Section titled “Cohort”| Code | Default message |
|---|---|
Cohort.NameAlreadyExists | You already have a cohort with this name. |
Cohort.NotFound | Cohort not found. |
Cohort.NotOwner | Only the cohort owner can delete it. |
Cohort.NotVisible | You can’t access this cohort. |
Contact
Section titled “Contact”| Code | Default message |
|---|---|
Contact.ConfirmationMismatch | The confirmation name does not match the contact’s name. |
Contact.InvalidSource | The selected contact source does not exist or is inactive. |
Contact.InvalidSuffix | The selected suffix does not exist or is inactive. |
Contact.InvalidTitle | The selected title does not exist or is inactive. |
Contact.MergeNotFound | Merge record not found. |
Contact.NotFound | Contact not found. |
Contact.SameContact | Loser and survivor must be different contacts. |
ContactAttachment
Section titled “ContactAttachment”| Code | Default message |
|---|---|
ContactAttachment.NotFound | Attachment not found. |
ContactEmail
Section titled “ContactEmail”| Code | Default message |
|---|---|
ContactEmail.NotFound | Email address not found on this contact. |
ContactNote
Section titled “ContactNote”| Code | Default message |
|---|---|
ContactNote.NotFound | Note not found. |
ContactOrganization
Section titled “ContactOrganization”| Code | Default message |
|---|---|
ContactOrganization.AlreadyExists | This contact is already a member of this organization. |
ContactOrganization.InvalidTypes | Organization membership requires one individual and one organization contact. |
ContactOrganization.NotFound | Organization membership not found. |
ContactRelationship
Section titled “ContactRelationship”| Code | Default message |
|---|---|
ContactRelationship.AlreadyExists | This relationship already exists between these contacts. |
ContactRelationship.NotFound | Contact relationship not found. |
ContactSource
Section titled “ContactSource”| Code | Default message |
|---|---|
ContactSource.CannotDeleteSystem | Cannot delete a system default contact source. |
ContactSource.NameExists | A contact source with this name already exists. |
ContactSource.NotFound | Deleted contact source not found. |
ContactTag
Section titled “ContactTag”| Code | Default message |
|---|---|
ContactTag.AlreadyAssigned | This tag is already assigned to the contact. |
ContactTag.Duplicate | This tag is already assigned to the contact. |
ContactTag.NotFound | Contact tag not found. |
Dashboard
Section titled “Dashboard”| Code | Default message |
|---|---|
Dashboard.UnknownKey | Dashboard key is not recognized. |
DataSource
Section titled “DataSource”| Code | Default message |
|---|---|
DataSource.NotFound | Data source not found. |
Department
Section titled “Department”| Code | Default message |
|---|---|
Department.AlreadyAssigned | User is already assigned to this department. |
Department.CannotDeleteSystem | Cannot delete a system default department. |
Department.CannotRenameSystem | Cannot rename a system default department. |
Department.NameExists | A department with this name already exists. |
Department.NotAssigned | User is not assigned to this department. |
Department.NotFound | Department not found. |
DepartmentDashboard
Section titled “DepartmentDashboard”| Code | Default message |
|---|---|
DepartmentDashboard.NotAssigned | No dashboard assigned to this department. |
DepartmentLandingRoute
Section titled “DepartmentLandingRoute”| Code | Default message |
|---|---|
DepartmentLandingRoute.NotAssigned | No landing route assigned to this department. |
DonorTask
Section titled “DonorTask”| Code | Default message |
|---|---|
DonorTask.AlreadyComplete | Task is already complete. |
DonorTask.DeleteCompletedDenied | You don’t have permission to delete completed tasks. |
DonorTask.NotFound | Donor task not found. |
DonorTask.UserNotFound | Assigned user not found. |
Feature
Section titled “Feature”| Code | Default message |
|---|---|
Feature.NotFound | Feature not found. |
Feature.TierGated | This feature is managed by your pricing tier. Contact your administrator to change it. |
| Code | Default message |
|---|---|
Fund.CannotDeleteSystem | Cannot delete a system default fund. |
Fund.NameExists | A fund with this name already exists. |
Fund.NotFound | Deleted fund not found. |
Impersonation
Section titled “Impersonation”| Code | Default message |
|---|---|
Impersonation.NotActive | There is no active impersonation session to exit. |
Import
Section titled “Import”| Code | Default message |
|---|---|
Import.InvalidStatus | Only pending or validated imports can be validated. |
Import.NoContactsSheet | The uploaded file must contain a ‘Contacts’ sheet. |
Import.NoSheets | The uploaded file does not contain any recognized sheets. |
Import.NotFound | Import job not found. |
Import.TemplateNotFound | — |
Import.UndoExpired | The undo window for this import has expired. |
Inventory
Section titled “Inventory”| Code | Default message |
|---|---|
Inventory.NotFound | Inventory item not found. |
Inventory.VariantNotFound | Variant not found on item. |
InventoryItem
Section titled “InventoryItem”| Code | Default message |
|---|---|
InventoryItem.CategoryNotFound | Product category not found. |
InventoryItem.NotABundle | This item is not a bundle. |
InventoryItem.NotFound | Inventory item not found. |
InventoryItem.SkuExists | An item with this SKU already exists. |
InventoryItem.UpcExists | An item with this UPC already exists. |
InventoryStock
Section titled “InventoryStock”| Code | Default message |
|---|---|
InventoryStock.ExceedsBackOrder | — |
InventoryStock.InsufficientAvailable | — |
InventoryStock.InvalidField | — |
InventoryStock.NegativeQuantity | — |
InventoryStock.NoBackOrders | This item has no back-ordered units. |
InventoryStock.NotFound | Inventory stock record not found. |
ItemVariant
Section titled “ItemVariant”| Code | Default message |
|---|---|
ItemVariant.NotFound | Item variant not found. |
ItemVariant.SkuExists | — |
| Code | Default message |
|---|---|
Kpi.Unknown | — |
LandingRoute
Section titled “LandingRoute”| Code | Default message |
|---|---|
LandingRoute.UnknownKey | Landing route key is not recognized. |
LetterSkuAssignment
Section titled “LetterSkuAssignment”| Code | Default message |
|---|---|
LetterSkuAssignment.Duplicate | This letter is already assigned to this item. |
LetterSkuAssignment.NotFound | Letter SKU assignment not found. |
LetterTemplate
Section titled “LetterTemplate”| Code | Default message |
|---|---|
LetterTemplate.NameExists | A letter template with this name already exists. |
LetterTemplate.NotFound | Letter template not found. |
| Code | Default message |
|---|---|
Log.AlreadySucceeded | This delivery already succeeded. |
Log.NotFound | Delivery log not found. |
| Code | Default message |
|---|---|
Logo.NotFound | No logo uploaded for this tenant. |
Mailchimp
Section titled “Mailchimp”| Code | Default message |
|---|---|
Mailchimp.NotConfigured | Mailchimp is not configured for this tenant. |
MailchimpList
Section titled “MailchimpList”| Code | Default message |
|---|---|
MailchimpList.NotFound | Mailchimp list not found. |
| Code | Default message |
|---|---|
Mfa.ChallengeExpired | Your session has expired. Please sign in again. |
Mfa.InvalidTenant | Tenant no longer available. |
NoteCategory
Section titled “NoteCategory”| Code | Default message |
|---|---|
NoteCategory.CannotDeleteSystem | Cannot delete a system default note category. |
NoteCategory.NameExists | A note category with this name already exists. |
NoteCategory.NotFound | Note category not found or inactive. |
NoteSubCategory
Section titled “NoteSubCategory”| Code | Default message |
|---|---|
NoteSubCategory.NotFound | Note sub-category not found, inactive, or does not belong to the selected category. |
Notification
Section titled “Notification”| Code | Default message |
|---|---|
Notification.NotFound | Notification not found. |
| Code | Default message |
|---|---|
Order.AlreadyVoidedOrRefunded | — |
Order.BatchClosed | Specified batch is not open. |
Order.BatchNotFound | Specified batch not found. |
Order.BatchNotReady | — |
Order.BatchTypeNotFound | — |
Order.BundleComponentNoStock | — |
Order.ContactInactive | Contact is not active. |
Order.ContactNotFound | Contact not found. |
Order.DepartmentNotFound | Department not found. |
Order.FundInactive | — |
Order.FundNotFound | — |
Order.HandlingOverrideForbidden | — |
Order.InsufficientBundleStock | — |
Order.InsufficientStock | — |
Order.InvalidBatchSource | Batch source not found or inactive. |
Order.InvalidRefundAmount | Total refund amount must be greater than zero. |
Order.InvalidRefundQuantity | — |
Order.InvalidStatus | — |
Order.InvalidStatusForRefund | — |
Order.InvalidStatusForShipment | — |
Order.InvalidStatusForVoid | — |
Order.ItemDeleted | — |
Order.ItemInactive | — |
Order.ItemNotFound | — |
Order.MaxQuantityExceeded | — |
Order.NoBatchSource | No active batch source available. |
Order.NoDepartment | No department assigned to the current user. |
Order.NoItemsToShip | This order has no physical items to ship. |
Order.NoPaymentSource | Setup-only payment requires either a saved payment method or a tokenized card with SavePaymentMethod=true. |
Order.NotFound | Order not found. |
Order.PartialVoidPaymentFailed | — |
Order.PartialVoidShippedItem | — |
Order.PaymentFailed | — |
Order.PaymentMismatch | — |
Order.PaymentProcessorNotConfigured | Payment processor not configured for this tenant. |
Order.ProcessorCustomerFailed | — |
Order.ProcessorNotConfigured | Payment processor is not configured for this tenant. |
Order.RefundAmountExceedsOriginal | — |
Order.RefundDonationAmountExceedsOriginal | — |
Order.RefundDonationNotFound | — |
Order.RefundExceedsPayments | — |
Order.RefundItemNotFound | — |
Order.RefundProcessingFailed | — |
Order.SavedPaymentMethodNotFound | Saved payment method not found or inactive. |
Order.TokenizationFailed | — |
Order.TransferTargetSameAsSource | The order is already attributed to that contact. |
Order.VariantInactive | — |
Order.VariantNotFound | — |
Order.VoidPaymentFailed | — |
OrderPayment
Section titled “OrderPayment”| Code | Default message |
|---|---|
OrderPayment.NotFound | Order payment not found. |
Override
Section titled “Override”| Code | Default message |
|---|---|
Override.NotFound | Permission override not found for this user. |
PackingSlips
Section titled “PackingSlips”| Code | Default message |
|---|---|
PackingSlips.LetterRenderFailed | — |
PackingSlips.NoItems | No items to include in packing slips. |
PackingSlips.NoSelection | No shipments or orders specified. |
PackingSlips.NoTemplate | No active packing slip template found. Please create and activate a template first. |
PackingSlips.RenderFailed | — |
PackingSlipTemplate
Section titled “PackingSlipTemplate”| Code | Default message |
|---|---|
PackingSlipTemplate.CannotDeleteActive | Cannot delete the active packing slip template. Activate another template first. |
PackingSlipTemplate.NameExists | A packing slip template with this name already exists. |
PackingSlipTemplate.NotFound | Packing slip template not found. |
PaymentMethod
Section titled “PaymentMethod”| Code | Default message |
|---|---|
PaymentMethod.ContactNotFound | Contact not found. |
PaymentMethod.CreateCustomerFailed | — |
PaymentMethod.Deleted | Cannot update a deleted payment method. |
PaymentMethod.HasActiveSchedules | — |
PaymentMethod.NoProcessor | No payment processor is configured for this tenant. |
PaymentMethod.NotFound | Payment method not found. |
PaymentMethod.ProcessorDeleteFailed | — |
PaymentMethod.TokenizeFailed | — |
PaymentProcessor
Section titled “PaymentProcessor”| Code | Default message |
|---|---|
PaymentProcessor.InvalidConfig | Payment processor configuration is invalid. |
PaymentProcessor.NotConfigured | No payment processor is configured for this tenant. |
Preset
Section titled “Preset”| Code | Default message |
|---|---|
Preset.Forbidden | Only the owner can edit this preset. |
Preset.NotFound | Preset not found. |
ProductCategory
Section titled “ProductCategory”| Code | Default message |
|---|---|
ProductCategory.CannotDeleteSystem | Cannot delete a system default product category. |
ProductCategory.NameExists | A product category with this name already exists. |
ProductCategory.NotFound | Product category not found. |
ReconciliationItem
Section titled “ReconciliationItem”| Code | Default message |
|---|---|
ReconciliationItem.NotFound | Reconciliation item not found. |
RecurringDonation
Section titled “RecurringDonation”| Code | Default message |
|---|---|
RecurringDonation.AlreadyCancelled | This recurring donation schedule is already cancelled. |
RecurringDonation.CancelFailed | — |
RecurringDonation.ContactNotFound | Contact not found. |
RecurringDonation.CustomIntervalRequired | CustomIntervalDays is required when Frequency is Custom. |
RecurringDonation.InvalidFund | — |
RecurringDonation.InvalidPaymentMethod | Payment method not found, does not belong to this contact, or is inactive. |
RecurringDonation.InvalidStatus | Only active or paused schedules can be updated. |
RecurringDonation.LineItemNotFound | — |
RecurringDonation.NoLineItems | At least one line item is required. |
RecurringDonation.NoPaymentMethod | A saved payment method is required for recurring donations. |
RecurringDonation.NotFound | Recurring donation schedule not found. |
RecurringDonation.PauseFailed | — |
RecurringDonation.PaymentMethodInactive | The specified payment method is not active. |
RecurringDonation.PaymentMethodNotFound | The specified payment method was not found. |
RecurringDonation.ProcessorNotConfigured | Payment processor is not configured. Cannot create recurring subscription. |
RecurringDonation.ResumeFailed | — |
RecurringDonation.SubscriptionFailed | — |
RelatedContact
Section titled “RelatedContact”| Code | Default message |
|---|---|
RelatedContact.NotFound | Related contact not found. |
RelationshipType
Section titled “RelationshipType”| Code | Default message |
|---|---|
RelationshipType.CannotDeleteSystem | Cannot delete a system default relationship type. |
RelationshipType.InverseNameExists | A relationship type with the inverse name already exists. |
RelationshipType.InverseNotFound | The specified inverse relationship type was not found. |
RelationshipType.NameExists | A relationship type with this name already exists. |
RelationshipType.NotFound | Deleted relationship type not found. |
Report
Section titled “Report”| Code | Default message |
|---|---|
Report.CannotDeleteTemplate | Templates cannot be deleted. |
Report.CannotEditTemplate | Templates cannot be edited. |
Report.InvalidDataSource | Data source not found. |
Report.NotFound | Report not found. |
ReportType
Section titled “ReportType”| Code | Default message |
|---|---|
ReportType.MissingParameter | — |
ReportType.NotFound | Report type not found. |
| Code | Default message |
|---|---|
Retry.Failed | — |
Schedule
Section titled “Schedule”| Code | Default message |
|---|---|
Schedule.Invalid | Schedule has no report definition or report type. |
Schedule.NotFound | Schedule not found. |
Shipment
Section titled “Shipment”| Code | Default message |
|---|---|
Shipment.AlreadyCancelled | This shipment is already cancelled. |
Shipment.AlreadyShipped | Cannot cancel a shipment that has already been shipped or delivered. |
Shipment.InvalidStatus | — |
Shipment.NotFound | Shipment not found. |
Shipment.PickupOrder | This is a pickup order — submit it via Mark Picked Up rather than the shipping carrier. |
ShipmentItem
Section titled “ShipmentItem”| Code | Default message |
|---|---|
ShipmentItem.BackOrdered | — |
ShipmentItem.ExceedsShippable | — |
ShipmentItem.NotFound | — |
Shipping
Section titled “Shipping”| Code | Default message |
|---|---|
Shipping.InvalidConfig | Shipping provider configuration is invalid. |
Shipping.NoFromAddress | Ship-from address is not configured. |
Shipping.NotConfigured | Shipping provider is not configured. |
Shipping.NotEnabled | Shipping integration is not enabled for this tenant. |
Shipping.RateError | — |
ShippingOption
Section titled “ShippingOption”| Code | Default message |
|---|---|
ShippingOption.CodeExists | A shipping option with this code already exists. |
ShippingOption.NotFound | Shipping option not found. |
ShipStation
Section titled “ShipStation”| Code | Default message |
|---|---|
ShipStation.CreateFailed | — |
ShipStation.SubmitFailed | — |
Subscription
Section titled “Subscription”| Code | Default message |
|---|---|
Subscription.NotFound | Subscription not found. |
Suffix
Section titled “Suffix”| Code | Default message |
|---|---|
Suffix.CannotDeleteSystem | Cannot delete a system default suffix. |
Suffix.NameExists | A suffix with this name already exists. |
Suffix.NotFound | Deleted suffix not found. |
| Code | Default message |
|---|---|
Tag.NotFound | Tag not found or inactive. |
TagCategory
Section titled “TagCategory”| Code | Default message |
|---|---|
TagCategory.CannotDeleteSystem | Cannot delete a system default tag category. |
TagCategory.Inactive | Tag category is inactive. |
TagCategory.NameExists | A tag category with this name already exists. |
TagCategory.NotFound | Tag category not found. |
TaskCategory
Section titled “TaskCategory”| Code | Default message |
|---|---|
TaskCategory.CannotDeleteSystem | Cannot delete a system default task category. |
TaskCategory.NameExists | A task category with this name already exists. |
TaskCategory.NotFound | Task category not found. |
TaskType
Section titled “TaskType”| Code | Default message |
|---|---|
TaskType.CannotDeleteSystem | Cannot delete a system default task type. |
TaskType.NameExists | A task type with this name already exists. |
TaskType.NotFound | Task type not found. |
| Code | Default message |
|---|---|
Tax.CalculationError | — |
Tax.NotEnabled | Tax calculation is not enabled for this tenant. |
TaxStatement
Section titled “TaxStatement”| Code | Default message |
|---|---|
TaxStatement.EmailRetryFailed | — |
TaxStatement.NoEligibleDonations | — |
TaxStatement.NoEmail | Contact has no email address on file. |
TaxStatement.NoPdf | No stored PDF for this statement. Use Reissue to re-render it before retrying email delivery. |
TaxStatement.NotFound | Tax statement PDF not available. |
TaxStatement.NotRetryable | This statement isn’t in a retry-eligible state. Only EmailSendFailed and EmailBounced rows can be retried. |
TaxStatement.OrgProfileIncomplete | Organization legal name and EIN are required before generating tax statements. |
TaxStatement.PrintBucketEmpty | Print bucket has no statements to export. |
TaxStatement.PrintBucketMergeFailed | Merged PDF was empty. Inspect the operations log for per-PDF parse errors. |
TaxStatementBatch
Section titled “TaxStatementBatch”| Code | Default message |
|---|---|
TaxStatementBatch.Cancelled | Cannot reissue statements in a cancelled batch. |
TaxStatementBatch.NotCancellable | — |
TaxStatementBatch.NotFound | Tax statement batch not found. |
TaxStatementCsvProfile
Section titled “TaxStatementCsvProfile”| Code | Default message |
|---|---|
TaxStatementCsvProfile.NameExists | A CSV profile with this name already exists. |
TaxStatementCsvProfile.NotFound | CSV profile not found. |
TaxStatementTemplate
Section titled “TaxStatementTemplate”| Code | Default message |
|---|---|
TaxStatementTemplate.Active | Cannot delete the active template. Activate a different template first. |
TaxStatementTemplate.Inactive | Selected template is not active. |
TaxStatementTemplate.NameExists | A tax statement template with this name already exists. |
TaxStatementTemplate.NoActive | No active tax statement template. Activate a template first. |
TaxStatementTemplate.NotFound | Tax statement template not found. |
Tenant
Section titled “Tenant”| Code | Default message |
|---|---|
Tenant.ConnectionFailed | — |
Tenant.DomainExists | — |
Tenant.Forbidden | Cross-tenant logo access denied. |
Tenant.MigrationFailed | — |
Tenant.NotFound | Tenant not found. |
Tenant.NotResolved | Tenant context is not resolved. |
Tenant.NotSelfHosted | Connection string can only be updated for self-hosted tenants. |
Tenant.PairNotFound | Paired tenant not found. |
Tenant.Required | Tenant context required. |
Tenant.SchemaInvalid | — |
Tenant.SlugExists | A tenant with this slug already exists. |
| Code | Default message |
|---|---|
Tile.NotFound | Tile not found. |
| Code | Default message |
|---|---|
Title.CannotDeleteSystem | Cannot delete a system default title. |
Title.NameExists | A title with this name already exists. |
Title.NotFound | Title not found. |
turnstile
Section titled “turnstile”| Code | Default message |
|---|---|
turnstile.failed | Your submission could not be verified. Please try again. |
| Code | Default message |
|---|---|
User.NotAuthenticated | Current user could not be resolved. |
UserDashboard
Section titled “UserDashboard”| Code | Default message |
|---|---|
UserDashboard.NotFound | Dashboard not found. |
UserDashboard.NotOwner | You can only view your own dashboards. |
VariantType
Section titled “VariantType”| Code | Default message |
|---|---|
VariantType.CannotDeleteSystem | Cannot delete a system default variant type. |
VariantType.NameExists | A variant type with this name already exists. |
VariantType.NotFound | Deleted variant type not found. |
Webhook
Section titled “Webhook”| Code | Default message |
|---|---|
Webhook.InvalidPayload | Invalid JSON payload. |
Webhook.InvalidStructure | Missing ‘payload’ in Authorize.Net event. |
Webhook.MissingEventType | Missing ‘eventType’ field in Authorize.Net event. |
Webhook.MissingSubscriptionId | Missing subscription ID in Authorize.Net event. |
Webhook.MissingTenantId | Cannot resolve tenant for this webhook. |
Webhook.NotFound | Webhook endpoint not found. |
Webhook.ScheduleNotFound | — |
Webhook.TenantNotFound | Tenant not found or inactive. |