PMS
PMS is the hotel module. These queries read its invoices, business days and receipts. They are available when your account has the hotel module (pms.enabled is true).
Query
query GetPmsProperties {
pms {
enabled
pmsProperties {
cursor
pageSize
totalRecords
items
}
}
}cURL
curl --location 'https://sandbox.expressoft.eu/connect/api/interopgql' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <token>' \
--data '{"query": "query GetPmsProperties { pms { enabled pmsProperties { cursor pageSize totalRecords items } } }"}'Response
{
"data": {
"pms": {
"enabled": true,
"pmsProperties": {
"cursor": 0,
"pageSize": 10,
"totalRecords": 1,
"items": [
"HOTEL1"
]
}
}
}
}Every other query needs a property code, one of the pmsProperties.
Paging
The PMS lists don't use cursors. They take a numeric cursor and a pageSize, and return cursor, pageSize, totalRecords and items. Start with cursor: 0, and use the cursor of the response for the next page, until you have read totalRecords items.
Sale invoices
Query
query GetPmsSaleInvoices($property: String!, $cursor: Int!, $pageSize: Int!, $dateBegin: DateTime) {
pms {
saleInvoiceHeaders(propertyCode: $property, cursor: $cursor, pageSize: $pageSize, dateBegin: $dateBegin) {
cursor
pageSize
totalRecords
items {
key
number
date
dueDate
documentType
hasFiscalReceipt
property
comments
delegate
company { name fiscalCode registrationCode }
customer { name personalIdentificationNumber }
}
}
}
}Variables
{
"property": "HOTEL1",
"cursor": 0,
"pageSize": 50,
"dateBegin": "2026-10-01T00:00:00"
}cURL
curl --location 'https://sandbox.expressoft.eu/connect/api/interopgql' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <token>' \
--data '{"query": "query GetPmsSaleInvoices($property: String!, $cursor: Int!, $pageSize: Int!, $dateBegin: DateTime) { pms { saleInvoiceHeaders(propertyCode: $property, cursor: $cursor, pageSize: $pageSize, dateBegin: $dateBegin) { cursor pageSize totalRecords items { key number date dueDate documentType hasFiscalReceipt property comments delegate company { name fiscalCode registrationCode } customer { name personalIdentificationNumber } } } } }", "variables": {"property": "HOTEL1", "cursor": 0, "pageSize": 50, "dateBegin": "2026-10-01T00:00:00"}}'Response
{
"data": {
"pms": {
"saleInvoiceHeaders": {
"cursor": 0,
"pageSize": 50,
"totalRecords": 1,
"items": [
{
"key": 501,
"number": "H-501",
"date": "2026-10-05T00:00:00",
"dueDate": null,
"documentType": "FacturaFiscala",
"hasFiscalReceipt": false,
"property": "HOTEL1",
"comments": "",
"delegate": "",
"company": {
"name": "Example Supplier SRL",
"fiscalCode": "87654321",
"registrationCode": "J40/4321/2018"
},
"customer": null
}
]
}
}
}
}nOK: true returns only the invoices marked as NOK. To read one invoice with its lines, use saleInvoice:
Query
query GetPmsSaleInvoice($property: String!, $id: Int!) {
pms {
saleInvoice(propertyCode: $property, id: $id) {
key
number
date
products {
code
name
quantity
salePrice
vatAmount
vatRate
amount
saleAccount
revenueCenter
}
payments {
code
name
amount
saleAccount
}
}
}
}Variables
{
"property": "HOTEL1",
"id": 501
}cURL
curl --location 'https://sandbox.expressoft.eu/connect/api/interopgql' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <token>' \
--data '{"query": "query GetPmsSaleInvoice($property: String!, $id: Int!) { pms { saleInvoice(propertyCode: $property, id: $id) { key number date products { code name quantity salePrice vatAmount vatRate amount saleAccount revenueCenter } payments { code name amount saleAccount } } } }", "variables": {"property": "HOTEL1", "id": 501}}'Response
{
"data": {
"pms": {
"saleInvoice": {
"key": 501,
"number": "H-501",
"date": "2026-10-05T00:00:00",
"products": [
{
"code": "ROOM",
"name": "Room night",
"quantity": 2.0,
"salePrice": 100.0,
"vatAmount": 42.0,
"vatRate": 21.0,
"amount": 200.0,
"saleAccount": "704",
"revenueCenter": "Rooms"
}
],
"payments": [
{
"code": "CARD",
"name": "Card",
"amount": 242.0,
"saleAccount": "5121"
}
]
}
}
}
}Business days
Query
query GetPmsBusinessDays($property: String!, $date: DateTime!, $pageSize: Int!) {
pms {
businessDays(propertyCode: $property, dateBegin: $date, pageSize: $pageSize) {
cursor
pageSize
totalRecords
items { date }
}
}
}Variables
{
"property": "HOTEL1",
"date": "2026-10-01T00:00:00",
"pageSize": 31
}cURL
curl --location 'https://sandbox.expressoft.eu/connect/api/interopgql' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <token>' \
--data '{"query": "query GetPmsBusinessDays($property: String!, $date: DateTime!, $pageSize: Int!) { pms { businessDays(propertyCode: $property, dateBegin: $date, pageSize: $pageSize) { cursor pageSize totalRecords items { date } } } }", "variables": {"property": "HOTEL1", "date": "2026-10-01T00:00:00", "pageSize": 31}}'Response
{
"data": {
"pms": {
"businessDays": {
"cursor": 0,
"pageSize": 31,
"totalRecords": 1,
"items": [
{
"date": "2026-10-05T00:00:00"
}
]
}
}
}
}Receipts
List the receipt headers of a business day, then read one receipt with receipt(propertyCode, account, number).
Query
query GetPmsReceipts($property: String!, $day: DateTime!, $pageSize: Int!) {
pms {
receiptHeaders(propertyCode: $property, businessDayDate: $day, pageSize: $pageSize) {
cursor
pageSize
totalRecords
items {
account
number
date
businessDayDate
property
}
}
}
}Variables
{
"property": "HOTEL1",
"day": "2026-10-05T00:00:00",
"pageSize": 50
}cURL
curl --location 'https://sandbox.expressoft.eu/connect/api/interopgql' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <token>' \
--data '{"query": "query GetPmsReceipts($property: String!, $day: DateTime!, $pageSize: Int!) { pms { receiptHeaders(propertyCode: $property, businessDayDate: $day, pageSize: $pageSize) { cursor pageSize totalRecords items { account number date businessDayDate property } } } }", "variables": {"property": "HOTEL1", "day": "2026-10-05T00:00:00", "pageSize": 50}}'Response
{
"data": {
"pms": {
"receiptHeaders": {
"cursor": 0,
"pageSize": 50,
"totalRecords": 1,
"items": [
{
"account": "ACC-1",
"number": 7001,
"date": "2026-10-05T14:00:00",
"businessDayDate": "2026-10-05T00:00:00",
"property": "HOTEL1"
}
]
}
}
}
}