Skip to content

Get a posting line

Finance module

GET/posting-lines/{posting_line_id}postingLines.get

A Universal Posting Line (Bible tab 36): the one export shape, projected to every accounting platform. Returns one posting line with its `ETag`. A posting line the caller may not see returns 404.

  • Requires the capability finance.journal.read.
  • OAuth scopes: finance.
  • Error statuses: 400, 401, 404, 429. Errors are RFC 9457 problem details.

Path and query parameters

postingLines.get: Path and query parameters
FieldTypeRequiredDescription
posting_line_idstring (uuid)YesIdentifier of the posting line.
fieldsFieldsNoSparse fieldset: a comma-separated list of top-level fields to return. `id` is always returned.Constraints: pattern ^[a-z_][a-z0-9_]*(,[a-z_][a-z0-9_]*)*$

Response 200: PostingLine

postingLines.get: PostingLine
FieldTypeRequiredDescription
org_idstring (uuid)YesIdentifier of the owning organization, derived from the parent row and never accepted from the caller.
datestring (date)YesDate the cost or revenue is recognized.
account_codeGlAccountCodeYesGL account code from the fixed chart in `xpms.dim_gl_account` (Section 3.11).Constraints: pattern ^[0-9]{4}$
cost_center_idCostCenterCode | nullYes
uridUridAtAnyGrain | nullYes
vendor_idstring (uuid) | nullYesIdentifier of the vendor organization; null for revenue.
item_idItemIdYesCatalog item identifier `{URID}-{ORG}-{SEQ}` (Section 3.6).Constraints: pattern ^[0-9]000\.[0-9]{2}\.[0-9]{2}-[A-Z0-9]+-[0-9]+$
descriptionstringYesSentence-case line description.Constraints: length 1 to 300
quantitynumber | nullYesQuantity.
unit_basisUnitCodeYesUnit basis from the controlled unit list in `xpms.dim_unit_alias`.Constraints: pattern ^[a-z][a-z0-9_-]*$
amount_minorinteger (int64) | nullYesSigned amount; negative for credits. Integer minor units of the resource currency; null means unpriced, never zero.
tax_typeTaxTypeYesTax type from the Universal Posting Line specification (Bible tab 36).Constraints: pattern ^[A-Z0-9][A-Za-z0-9&'/.()-]*( [A-Za-z0-9&'/.()-]+)*$
currencystringYesISO 4217 currency code of every money field.Constraints: pattern ^[A-Z]{3}$
external_refstring | nullYesInvoice, card transaction or record identifier.Constraints: length 1 to 300
line_stateSharedStateYesA value from the shared finance and commercial state vocabulary (Bible tab 37): the five core states plus declared domain extensions.Constraints: pattern ^[A-Z0-9][A-Za-z0-9&'/.()-]*( [A-Za-z0-9&'/.()-]+)*$
posting_line_idstring (uuid)YesIdentifier of the posting line.
project_idstring (uuid) | nullYesIdentifier of the project.
{
  "org_id": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
  "date": "2026-10-08",
  "account_code": "5400",
  "cost_center_id": "CC-VENUE",
  "urid": "4000.01",
  "vendor_id": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
  "item_id": "4000.01.01-XPMS-001",
  "description": "Stage deck rental for opening weekend.",
  "quantity": 24,
  "unit_basis": "each",
  "amount_minor": 108000,
  "tax_type": "Tax on Purchases",
  "currency": "USD",
  "external_ref": "INV-2026-0042",
  "line_state": "Committed",
  "posting_line_id": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
  "project_id": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f"
}

Code samples

curl -X GET "$XOS_BASE_URL/posting-lines/0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f" \
  -H "Authorization: Bearer $XOS_API_KEY"
const { data, etag } = await xos.postingLines.get("0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f");
response = xos.posting_lines.get("0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f")
xos posting-lines get 0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f