xMatix
Sign in Request demo
xMatix
PRODUCTS
SalesField SalesCRMRewardsClaimsInventoryProcurementWarehouse ManagementField ServiceServiceSupportTelephony & MessagingFinance & AccountingPayrollExpense ManagementCommercePortalsAnalytics & ReportingData StudioMobile AppSee all products →
PLATFORM
Platform overviewApp BuilderAutomationIntegrationsSecurity & GovernanceChange ManagementDevelopers
SENSE AI
Sense AI overviewSense AssistSense ControlSense VisionAI StudioTrust & governanceIn Claude & ChatGPTUse cases
SOLUTIONS
FMCG & DistributionManufacturing & Dealer NetworksAutomotive & DealershipsPharma & HealthcareConsumer DurablesAgri-InputsBuilding MaterialsService NetworksWarehousing & 3PLFinancial AccountingERP SoftwareIndia GST ComplianceUAE VAT & e-InvoicingSaudi ZATCA & VATAll solutions →
RESOURCES
Knowledge CenterDeveloper & CLIBlogGuidesWhat is xMatix?Company facts
COMPANY
AboutCareersPartnersEventsContactAuthorsLegal
Sign in Request demo
Home/Docs/Entity Reference/Claim — entity reference
REFERENCE · Last reviewed

Claim — entity reference

Header of a claim raised against a supplier, principal or manufacturer for money or stock owed back to the dealer — warranty and service-contract recovery, damage/shortage on inward goods, and trade-scheme/incentive payouts. Three code paths create one: manual entry, ClaimService.CreateClaimsFromServiceOrdersAsync (one claim per service order + invoice group + ItemServiceContract whose ContractPostingTreatment is 'Auto Generate Claims'), and the claims.generate job driven by a ClaimGenerationSetup. Its ClaimLine children carry the claimed, approved and rejected quantities; once an approval process returns Approved, ClaimApprovalDecisionListener enqueues claims.settle, which turns the approved figures into a settlement credit note (or inventory adjustment) and stamps CreditNoteId plus Status 'Settled'. Two vocabularies coexist and do not overlap: the ClaimType picklist on this entity (Scheme, Damaged, Sale, Service, Purchase, Shortage, Excess, Transport, Part To Part) and the ClaimTypes constants the generation/settlement engine uses.

Fields

FieldLabelTypeRequiredWhat it does
ApproveAllApprove AllBooleanBulk shortcut read by ClaimLineService.MarkAllClaimLines: when true, every claim line's approved quantity is set to its claimed quantity and its rejected quantity to zero. It is checked before RejectAll in the same if/else, so if both flags are on, approval wins and the rejection is ignored.
AsOndateAs On DateDateCut-off date used when populating lines without a specific source document: service-order and credit-note lines are only pulled in when their document date is on or before this date. When the claim already names a service order or credit note, that link wins and this date is only a tie-breaker.
BillReturnIdBill ReturnLookup → BillReturn
BranchIdBranchLookup → Branch
ClaimBatchIdClaim BatchLookup → ClaimBatch
ClaimTypeClaim TypePickListSteers which source documents PerformPopulateLines will pull from: Service reads service-order lines, while Purchase, Damaged, Shortage and Excess all read CreditNoteLine rows (Purchase takes any return type, the others must match the credit note's ReturnType). Values: Scheme, Marketing, Damaged, Sale, Service, Purchase, Shortage, Excess, Transport, Part To Part.
CreatedByIdCreated ByLookup → UserAccountYes
CreatedDateTimeCreated DateDateAndTimeYes
DocumentDateDocument DateDate
ExternalIdExternalText, unique
GenerationKeyGeneration KeyTextIdempotency key for engine-generated claims, composed as claim type, group key and period joined by pipes (for example the year-month '2026-07' as the period). Before writing, claims.generate looks up existing claims by this key and skips any candidate whose key already exists, so re-running a setup within the same period cannot duplicate a claim. Manually created claims leave it blank.
GoodsReceiptIdGoods ReceiptLookup → GoodsReceipt
IdIdGuidYes
InvoiceGroupInvoice GroupPickListCopied from the originating ServiceOrderLine's own invoice group and used as part of the claim's identity: service-order claim creation keys one claim per invoice group, item service contract and service order, and line population only attaches service-order lines whose invoice group matches the claim's.
InvoiceIdSale InvoiceLookup → Invoice
IsLinePopulatedLine PopulatedBooleanYesIntended as the 'lines have been built' marker, but no code path on Claim ever sets it — line population leaves it untouched. Do not rely on it to tell whether a claim has been populated; check for ClaimLine rows instead.
IsReconciledReconciledBooleanYesSet to true by ClaimService.MarkClaimToReconciled at the end of the reconcile action, in the same step that clears PerformReconciliation. It records that the adjustment/invoice follow-ups were attempted; it does not assert that credit was actually received from the supplier.
ItemServiceContractIdService ContractLookup → ItemServiceContractThe warranty or service contract this claim recovers against. It is part of the claim's identity for service claims — one claim is created per contract per service order per invoice group — and line population only attaches a service-order line when the line's contract, or one of its second/third weightage contracts, matches this one.
ModifiedByIdModified ByLookup → UserAccountYes
NameNameTextYes
OwnerIdOwnerLookup → UserAccountYes
PartnerAccountIdPartner AccountLookup → Account
PerformPopulateLinesPerform Populate LinesBooleanYesTrigger flag whose matching server action builds the claim's lines from the eligible source documents for its claim type. Unlike the ClaimBatch equivalent, neither this flag nor IsLinePopulated is reset or set by the code that runs, so it stays as the user left it and repeated runs are possible.
PerformReconciliationPerform ReconciliationBooleanYesTrigger flag for the reconcile action, which creates an inventory adjustment from the claim's Part-to-Part lines, raises a sale invoice from its Reimbursment lines with approved quantity, and then marks the claim reconciled. The service that finishes the run clears this flag back to false.
PurchaseReturnIdPurchase ReturnLookup → PurchaseReturnLegacy link to a PurchaseReturn document.
RecordTypeIdRecord TypeGuid, hidden
RejectAllReject AllBooleanYesBulk shortcut that sets every claim line's rejected quantity to its claimed quantity and zeroes the approved quantity. It only takes effect when ApproveAll is false, and neither flag is cleared afterwards.
RemarksRemarksText
SchemeIdSchemeLookup → SchemeLink to the trade scheme a claim originates from.
ServiceInvoiceAsOnDateService Invoice As On DateDate
ServiceOrderAsonDateService Order As on DateDate
ServiceOrderIdService OrderLookup → ServiceOrder
StatusStatusPickListFree-text status column backed by a picklist of Draft, Pending Approval, Claim Approved, Claim Rejected and Reconcile. Code writes two values that are not in that list: the generation engine stamps 'Draft' on every claim it creates, and claims.settle sets 'Settled' after the settlement document is written — so a filter or rule built only from the picklist will miss settled claims. Values: Draft, Pending Approval, Approved, Rejected, Settled.
SupplierAccountIdSupplier AccountLookup → AccountThe party the claim is made against (the manufacturer, principal or supplier who owes the credit), as distinct from PartnerAccountId, which is the company or dealer entity raising it. The generation engine copies it from the setup's own supplier, and settlement carries it onto the credit note.
TotalAmountTotal AmountCalculated
TotalApprovedAmountTotal Approved AmountCalculatedThe figure claims.settle settles on: it is used as the settlement document's amount and, when zero or null with no lines present, the job concludes there is nothing to settle. No first-party code computes or rolls it up from the claim lines — the settlement service falls back to summing unit price times approved quantity across lines when it is null, so a stale non-null value here overrides the lines.
TotalApprovedQuantityTotal Approved QuantityCalculated
TotalQuantityTotal QuantityCalculated
TotalRejectedAmountTotal Rejected AmountCalculatedHeader total for rejected value. No first-party code path writes it, and nothing reads it; it is populated only if a tenant business rule or integration sets it.
TotalRejectedQuantityTotal Rejected QuantityCalculated
UIPropsUI PropsText
UpdatedDateTimeModified DateDateAndTimeYes

Actions

ActionLabelTypeWhat it does
ApproveAllApprove AllUIActionDoes not itself approve the claim or advance any approval process — it loads the claim's lines and, only if the claim's ApproveAll flag is set, copies each line's claimed quantity into its approved quantity and zeroes the rejected quantity. Running it with the flag off has no effect.
BulkDeleteDeleteDeleteDelete the selected records.
CloneCloneServerAction (Clone)Create a copy of this record
DeleteDeleteDeleteDelete
DeleteInListDeleteDeleteDelete
EditEditEditEdit
EditEntityEditEditEditEntity
EditInLineEditEditInlineEdit in page.
EditInListEditEditInlineEdit list header
NewNewNewNew
PerformPopulateLinesPerform Populate LinesUIActionBuilds the claim's lines from eligible source documents chosen by the claim's own type: service-order lines flagged for claim generation with claimable quantity remaining (adding extra lines for second and third weightage contracts), or unclaimed credit-note lines for purchase, damage, shortage and excess claims. Populating from credit notes also marks those source lines as claimed.
PerformReconciliationPerform ReconciliationUIActionRuns three steps in order: creates an inventory adjustment from Part-to-Part lines with approved quantity, raises a sale invoice from Reimbursment lines with approved quantity (pulling fulfilment allocations for the related service-order lines), and then marks the claim reconciled while clearing the trigger flag. Note the adjustment step compares the line type with different casing than the seeded picklist value, so in practice the adjustment is usually not created.
RejectAllReject AllUIActionShares one implementation with the approve-all action: it loads the lines and applies whichever of the claim's ApproveAll or RejectAll flags is set, checking approval first.