Skip to content
English
  • There are no suggestions because the search field is empty.

PSOhub API: Invoices

Learn how to retrieve invoices and update their status or external ID via the PSOhub API

Published: 1 June 2026

Audience

  • Admin

Objective

This reference article covers the PSOhub API endpoints for retrieving invoices and updating their status or external ID. Creating invoices via the API is not supported due to the complexity of invoice generation — invoices must be created within PSOhub directly.

Prerequisites

Eligible access
        You must have Admin user access in PSOhub.

API enabled
        You must have API access enabled for your PSOhub account.

Invoice status
        To mark an invoice as paid, it must have a status of Approved or Sent.

Get All Invoices

Use this endpoint to retrieve invoices from your PSOhub organization:

Endpoint

 
 
GET https://www.psohubapp.com/rest/psohubapi/v1/invoices

Filter by status

 
 
GET https://www.psohubapp.com/rest/psohubapi/v1/invoices?invoicestatus=draft

Accepted invoicestatus values: draft, approved, sent, paid.

Filter by invoice number

 
 
GET https://www.psohubapp.com/rest/psohubapi/v1/invoices?invoicenumber=inv-2024-48

Filter invoices without an external ID

 
 
GET https://www.psohubapp.com/rest/psohubapi/v1/invoices?noexternalid=true

Example response

 
 
json
[   {     "InvoiceName": "Google - IAM Implementation services",     "InvoiceDate": "2024-10-28T00:00:00.000Z",     "InvoiceDueDate": "2024-11-28T00:00:00.000Z",     "InvoiceNote": "If you have any questions about this invoice, feel free to contact us.",     "InvoiceStatus": "Draft",     "InvoiceNumber": "INV-2024-33",     "InvoiceID": 41939771881672249,     "CustomerID": 14073748838924968,     "CustomerName": "Google",     "InvoiceContactID": 21110623256832211,     "InvoiceContactName": "Chris Rea",     "InvoiceContactEmail": "chris.rea@google.com",     "InvoiceCurrencyCode": "USD",     "TotalAmountExVAT": 27700,     "TotalAmountIncVAT": 33517,     "TotalAmountExVATBaseCurrency": 27700,     "TotalAmountIncVATBase": 33517,     "InvoicePDF": "Base64String",     "InvoiceLines": [       {         "LineNumber": "10.002",         "LineName": "Business Review",         "LineDescription": " ",         "GLAccount": "260",         "TaxPercentage": 21,         "TaxName": "BTW 21%",         "TaxCode": "2",         "TotalAmountExVAT": 2700,         "TotalAmountIncVAT": 3267,         "TotalAmountIncVATBaseCurrency": 3267,         "TotalAmountExVATBaseCurrency": 2700,         "InvoiceDetailLines": [           {             "AccountID": 39406496739494241,             "AccountName": "Martijn vd Hoeden",             "BusinessUnit": "Creative",             "Date": "2024-10-24T08:00:00.000Z",             "Description": "-",             "AmountOfHours": 2,             "Rate": 225,             "RateBase": 0,             "TotalAmount": 450,             "TotalAmountBase": 450           }         ]       }     ]   } ]

Invoice Response Fields

Invoice object

Name Type Description
InvoiceName String The name of the invoice.
InvoiceDate DateTime The invoice date.
InvoiceDueDate DateTime The payment due date.
InvoiceNote String Note text displayed on the invoice.
InvoiceStatus String Current status: Draft, Approved, Sent, Paid, or Void.
InvoiceNumber String The unique invoice number in PSOhub.
InvoiceID Integer/Long The unique ID of the invoice.
CustomerID Integer/Long The unique ID of the customer or company.
CustomerName String The name of the customer or company.
InvoiceContactID Integer/Long The unique ID of the invoice contact.
InvoiceContactName String The name of the invoice contact.
InvoiceContactEmail String The email address of the invoice contact.
InvoiceCurrencyCode String ISO currency code for the invoice.
TotalAmountExVAT Decimal Total invoice amount excluding VAT.
TotalAmountIncVAT Decimal Total invoice amount including VAT.
TotalAmountExVATBaseCurrency Decimal Total invoice amount excluding VAT in the base currency.
TotalAmountIncVATBase Decimal Total invoice amount including VAT in the base currency.
InvoicePDF String A Base64-encoded string of the invoice PDF. Only available for invoices that are not in Draft status.

InvoiceLines object

Each invoice contains one or more invoice lines.

Name Type Description
LineNumber String The group and line number combined, based on the contract line.
LineName String The name of the invoice line.
Description String Description of the invoice line.
TaxPercentage Decimal The tax rate applied to this line, if applicable.
TaxName String The name of the tax category as configured in PSOhub.
TaxCode String The external identifier for this tax code from your application.
GLAccount String The linked GL account name, if applicable.
TotalAmountExVAT Decimal Invoice line total excluding VAT.
TotalAmountIncVAT Decimal Invoice line total including VAT.
TotalAmountIncVATBaseCurrency Decimal Invoice line total including VAT in the base currency.
TotalAmountExVATBaseCurrency Decimal Invoice line total excluding VAT in the base currency.

InvoiceDetailLines object

For T&M and Expense invoices generated at the detailed level, each invoice line contains a third layer of detail lines showing individual time entries or expenses.

Name Type Description
AccountID Integer/Long The unique ID of the user who booked the hours or expenses.
AccountName String The name of the user who booked the hours or expenses.
BusinessUnit String The business unit of the user.
Date DateTime The date of the booking.
Description String Description of the booking.
AmountOfHours Decimal Total hours booked. Applies to T&M lines only.
Rate Decimal The billing rate based on the project team rate for this user.
RateBase Decimal The billing rate in the base currency.
TotalAmount Decimal Total amount (hours × rate, or expense total).
TotalAmountBase Decimal Total amount in the base currency.

How to Update Invoice Status to Paid

Use this endpoint to mark an invoice as paid:

Endpoint

 
 
PATCH https://www.psohubapp.com/rest/psohubapi/v1/invoices/paid?invoiceid=41939771862548888

⚠️ Important: Only invoices with a status of Approved or Sent can be updated to Paid                via the API.

Update Invoice with an External ID

Use this endpoint to store an external system's invoice ID within the PSOhub invoice record. This is useful when posting invoices to an external financial integration:

Endpoint

 
 
PATCH https://www.psohubapp.com/rest/psohubapi/v1/invoices/external?invoiceid=41939771862548888&externalid=13

Related Articles