Invoice — new field locationDetails (InvoiceLocation)
Summary
The GraphQL type Invoice now exposes a read-only field locationDetails of type InvoiceLocation, containing:
id— the location'sObjectId, suitable for matching against other records.name,header,address— the same display details previously only available as a single string vialocation.metadata— the location's stored[MetadataEntry](key/value pairs), for example a secondary identifier from an integration partner.
Previously, Invoice.location returned only the location's name as a String. Two locations with the same name could not be distinguished, and any additional location data (including metadata) required a separate practice query. locationDetails resolves both problems in a single call.
location is deprecated in favour of locationDetails but continues to return the location name as a String — existing queries are unaffected.
Query example
query GetInvoice($id: ID!) {
invoice(id: $id) {
id
location
locationDetails {
id
name
header
address {
address
city
postcode
country
}
metadata {
key
value
}
}
}
}
Integration guidance
- Optional field: Add
locationDetails { ... }only when your integration needs the location id, address, or metadata; omit it otherwise. - Prefer
idovernamefor matching: UselocationDetails.idto reliably identify a location, since location names are not guaranteed to be unique. - Reading partner identifiers: If a location has metadata such as an external system reference, request
metadata { key value }instead of making a follow-uppracticequery. locationDetailsmay benull: Invoices that are not associated with a specific location (for example, automatically generated invoices) returnnullforlocationDetails.
Migration
This release is additive. Existing invoice and invoices clients do not need to change unless they want to read structured location data or metadata via locationDetails.