CAPEX API (1.0)

Download OpenAPI specification:

Introduction

The CAPEX API enables you to integrate your application with the CAPEX system. The CAPEX API is REST-based and follows JSON:API principles for structuring responses.

Starting from version 1.0, the API is stable. We are continuously improving our API, and new endpoints will be added. Any updates or changes within this major version will be backward-compatible and can be found in this documentation.

For getting access to the CAPEX API, please reach out to us at: kontakt@alasco.de.

The base URL for all endpoints is: https://api.alasco.de/capex/v1

The CAPEX API supports compressed payloads. If you would like to make use of this, you have to specify the Accept-Encoding header. Supported encodings are gzip and br.

Domain model

Objects relate as follows (each is a navigable sub-resource):

  • Assets and Measures are the CapEx-specific top-level objects; a MeasureContracts, and invoices are submitted against an Asset.
  • Contractor and Contracting EntityContracts.
  • ContractChange Orders, Invoices, contract terms, Documents and Custom Fields.
  • InvoiceDocuments and Tags (Change Orders also carry Documents).

CAPEX API Overview

The CAPEX API provides endpoints to:

  • Retrieve and manage invoices, invoice tags, and invoice documents
  • Retrieve assets, contracts, contractors, and measures

The CAPEX API uses pagination. The page size is 100, and additional pages can be accessed using a next link.

Asset

An Asset is a property you manage capital expenditure for, mirrored from your Alasco asset register. Assets are read-only through this API: capital work on an asset is organised into Measures, and invoices are submitted against an asset (see Invoice).

Get Asset Details

Authorizations:
API KeyAPI Token
path Parameters
id
required
string <uuid> (Id)

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Get Assets

Authorizations:
API KeyAPI Token
query Parameters
Cursor[Position] (string) or Cursor[Position] (null) (Cursor[Position])

List endpoint responses are paginated in the Alasco API. By calling the endpoint without the pagination parameter you will receive the first page. If not all elements fit on one page there will be a next link provided in the response's links object. By calling this link you will receive the next page.

Filter[Attribute.Operation] (string) or Filter[Attribute.Operation] (null) (Filter[Attribute.Operation])

You can filter on certain attributes by specifying them as a GET parameter along with an operation, e.g. filter[name.exact]=abc.

Currently supported operations are:

  • exact: Expects one value
  • contains: Expects one value
  • less_than_equal: Expects one value
  • greater_than_equal: Expects one value
  • range: Expects two values
  • in: Expects one or multiple values
  • not_in: Expects one or multiple values

The following attributes support filtering:

Attribute exact contains less_than_equal greater_than_equal range in not_in
id x x
name x x
identifier x x
date_created x x x

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Change Order

A Change Order is a formal amendment to a Contract - a cost or scope change - carrying claimed, audited and approved amounts and an approval state. Change orders are read-only through this API and can hold Documents.

Get Change Order Details

Authorizations:
API KeyAPI Token
path Parameters
id
required
string <uuid> (Id)

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Get Change Orders

Authorizations:
API KeyAPI Token
query Parameters
Cursor[Position] (string) or Cursor[Position] (null) (Cursor[Position])

List endpoint responses are paginated in the Alasco API. By calling the endpoint without the pagination parameter you will receive the first page. If not all elements fit on one page there will be a next link provided in the response's links object. By calling this link you will receive the next page.

Filter[Attribute.Operation] (string) or Filter[Attribute.Operation] (null) (Filter[Attribute.Operation])

You can filter on certain attributes by specifying them as a GET parameter along with an operation, e.g. filter[name.exact]=abc.

Currently supported operations are:

  • exact: Expects one value
  • contains: Expects one value
  • less_than_equal: Expects one value
  • greater_than_equal: Expects one value
  • range: Expects two values
  • in: Expects one or multiple values
  • not_in: Expects one or multiple values
  • is: Expects one value

The following attributes support filtering:

Attribute exact contains less_than_equal greater_than_equal range in not_in is
id x x
name x x
identifier x x
contract x x
project x x
acknowledged_at x x x
declined_at x x x
approved_amount.net x x x x
approved_amount.tax x x x x
audited_amount.net x x x x
audited_amount.tax x x x x
change_order_date x x x x
claimed_amount.net x x x x
claimed_amount.tax x x x x
state x x
basis_of_claim x x
other_basis_of_claim x x
trigger x x
other_trigger x x

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Get Change Orders By Contract

Authorizations:
API KeyAPI Token
path Parameters
contract_id
required
string <uuid> (Contract Id)
query Parameters
Cursor[Position] (string) or Cursor[Position] (null) (Cursor[Position])

List endpoint responses are paginated in the Alasco API. By calling the endpoint without the pagination parameter you will receive the first page. If not all elements fit on one page there will be a next link provided in the response's links object. By calling this link you will receive the next page.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Change Order Document

A Change Order Document is a file attached to a Change Order (for example the amendment offer or supporting evidence). You can upload and download them; a document left unlinked is removed automatically after a grace period.

Create Change Order Document

Authorizations:
API KeyAPI Token
path Parameters
change_order_id
required
string <uuid> (Change Order Id)
Request Body schema: multipart/form-data
required
document_type
required
string (ChangeOrderDocumentType)
Enum: "ATTACHMENT" "AUDITED_CHANGE_ORDER" "CHANGE_ORDER" "CHANGE_ORDER_OFFER" "COVERSHEET_EXTERNAL" "EXTERNAL_CORRESPONDENCE" "INTERNAL_CORRESPONDENCE" "OTHER" "PLANS" "PROTOCOL" "VALUATIONS"

Available values / Verfügbare Werte:

Value English Deutsch
CHANGE_ORDER_OFFER Change order offer Nachtragsangebot
ATTACHMENT Attachment Anhang
COVERSHEET_EXTERNAL External coversheet Externes Deckblatt
AUDITED_CHANGE_ORDER Audited change order Nachtragsprüfung
INTERNAL_CORRESPONDENCE Internal correspondence Interne Korrespondenz
EXTERNAL_CORRESPONDENCE External correspondence Externe Korrespondenz
VALUATIONS Valuations Aufmaß
PLANS Plans Planunterlagen
CHANGE_ORDER Change order Nachtragsbeauftragung
PROTOCOL Protocol Protokoll
OTHER Other Sonstiges
upload
required
string <application/octet-stream> (Upload)

The file to submit. The file must be a valid PDF.

Responses

Response samples

Content type
application/json
{}

Download Annotated Change Order Document

Authorizations:
API KeyAPI Token
path Parameters
change_order_id
required
string <uuid> (Change Order Id)
document_id
required
string <uuid> (Document Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Download Change Order Document

Authorizations:
API KeyAPI Token
path Parameters
change_order_id
required
string <uuid> (Change Order Id)
document_id
required
string <uuid> (Document Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Get Change Order Document

Authorizations:
API KeyAPI Token
path Parameters
document_id
required
string <uuid> (Document Id)
change_order_id
required
string <uuid> (Change Order Id)

Responses

Response samples

Content type
application/json
{}

Get Change Order Documents

Authorizations:
API KeyAPI Token
path Parameters
change_order_id
required
string <uuid> (Change Order Id)
query Parameters
Filter[Attribute.Operation] (string) or Filter[Attribute.Operation] (null) (Filter[Attribute.Operation])

You can filter on certain attributes by specifying them as a GET parameter along with an operation, e.g. filter[name.exact]=abc.

Currently supported operations are:

  • less_than_equal: Expects one value
  • greater_than_equal: Expects one value
  • range: Expects two values
  • in: Expects one or multiple values
  • not_in: Expects one or multiple values

The following attributes support filtering:

Attribute less_than_equal greater_than_equal range in not_in
document_type x x
uploaded_at x x x

Responses

Response samples

Content type
application/json
{}

Contract

A Contract is an agreement with a Contractor to deliver work, tracking the committed amount and reserve. In CapEx a contract belongs to a Measure; it accumulates Invoices and Change Orders and can carry Documents and a Custom Field. Contracts can be created and updated through the API.

Create Contract

Authorizations:
API KeyAPI Token
Request Body schema: application/json
required
required
object (CreateContractDataCapex)

Responses

Request samples

Content type
application/json
{
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Get Contract Details

Authorizations:
API KeyAPI Token
path Parameters
id
required
string <uuid> (Id)
query Parameters
Include (string) or Include (null) (Include)

You can get related objects by specifying them separated by comma as a GET include parameters. In case of non-direct relation include parameter should be a relationship path - a dot-separated list of relationship names. Currently available objects are:

  • contractor
  • contracting_entity
  • contract_unit
  • contract_unit.project
  • contract_unit.project.property

e.g. include=contractor,contracting_entity,contract_unit,contract_unit.project,contract_unit.project.property

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Get Contract Terms

Authorizations:
API KeyAPI Token
path Parameters
contract_id
required
string <uuid> (Contract Id)

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Get Contracts

Authorizations:
API KeyAPI Token
query Parameters
Cursor[Position] (string) or Cursor[Position] (null) (Cursor[Position])

List endpoint responses are paginated in the Alasco API. By calling the endpoint without the pagination parameter you will receive the first page. If not all elements fit on one page there will be a next link provided in the response's links object. By calling this link you will receive the next page.

Filter[Attribute.Operation] (string) or Filter[Attribute.Operation] (null) (Filter[Attribute.Operation])

You can filter on certain attributes by specifying them as a GET parameter along with an operation, e.g. filter[name.exact]=abc.

Currently supported operations are:

  • exact: Expects one value
  • contains: Expects one value
  • less_than_equal: Expects one value
  • greater_than_equal: Expects one value
  • range: Expects two values
  • in: Expects one or multiple values
  • not_in: Expects one or multiple values
  • is: Expects one value

The following attributes support filtering:

Attribute exact contains less_than_equal greater_than_equal range in not_in is
id x x
name x x
contract_number x x
cost_center x x
status x x
contracting_entity x x
contractor x x
project x x
date_created x x x
date_contract x x x x
contract_type x x
is_reverse_charge x
measure (CapEx only) x x
contract_unit (FinCon only) x x
custom_fields.<uuid> (Operation depends on custom field type) x x x x x x x x
Include (string) or Include (null) (Include)

You can get related objects by specifying them separated by comma as a GET include parameters. In case of non-direct relation include parameter should be a relationship path - a dot-separated list of relationship names. Currently available objects are:

  • contractor
  • contracting_entity
  • contract_unit
  • contract_unit.project
  • contract_unit.project.property

e.g. include=contractor,contracting_entity,contract_unit,contract_unit.project,contract_unit.project.property

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Get Contracts By Contracting Entity

Authorizations:
API KeyAPI Token
path Parameters
contracting_entity_id
required
string <uuid> (Contracting Entity Id)
query Parameters
Cursor[Position] (string) or Cursor[Position] (null) (Cursor[Position])

List endpoint responses are paginated in the Alasco API. By calling the endpoint without the pagination parameter you will receive the first page. If not all elements fit on one page there will be a next link provided in the response's links object. By calling this link you will receive the next page.

Include (string) or Include (null) (Include)

You can get related objects by specifying them separated by comma as a GET include parameters. In case of non-direct relation include parameter should be a relationship path - a dot-separated list of relationship names. Currently available objects are:

  • contractor
  • contracting_entity
  • contract_unit
  • contract_unit.project
  • contract_unit.project.property

e.g. include=contractor,contracting_entity,contract_unit,contract_unit.project,contract_unit.project.property

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Get Contracts By Contractor

Authorizations:
API KeyAPI Token
path Parameters
contractor_id
required
string <uuid> (Contractor Id)
query Parameters
Cursor[Position] (string) or Cursor[Position] (null) (Cursor[Position])

List endpoint responses are paginated in the Alasco API. By calling the endpoint without the pagination parameter you will receive the first page. If not all elements fit on one page there will be a next link provided in the response's links object. By calling this link you will receive the next page.

Include (string) or Include (null) (Include)

You can get related objects by specifying them separated by comma as a GET include parameters. In case of non-direct relation include parameter should be a relationship path - a dot-separated list of relationship names. Currently available objects are:

  • contractor
  • contracting_entity
  • contract_unit
  • contract_unit.project
  • contract_unit.project.property

e.g. include=contractor,contracting_entity,contract_unit,contract_unit.project,contract_unit.project.property

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Get Contracts By Measure

Authorizations:
API KeyAPI Token
path Parameters
id
required
string <uuid> (Id)
query Parameters
Cursor[Position] (string) or Cursor[Position] (null) (Cursor[Position])

List endpoint responses are paginated in the Alasco API. By calling the endpoint without the pagination parameter you will receive the first page. If not all elements fit on one page there will be a next link provided in the response's links object. By calling this link you will receive the next page.

Include (string) or Include (null) (Include)

Contains links to related objects.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Update Contract

Authorizations:
API KeyAPI Token
path Parameters
id
required
string <uuid> (Id)
Request Body schema: application/json
required
required
object (UpdateContractData)

Responses

Request samples

Content type
application/json
{
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Contract Document

A Contract Document is a file (such as the signed contract or its terms) attached to a Contract. You can upload and download them; a document left unlinked from a contract is removed automatically after a short grace period.

Create Contract Document

Authorizations:
API KeyAPI Token
path Parameters
contract_id
required
string <uuid> (Contract Id)
Request Body schema: multipart/form-data
required
document_type
required
string (ContractDocumentType)
Enum: "ATTACHMENT" "CONTRACT"

Available values / Verfügbare Werte:

Value English Deutsch
CONTRACT Contract Auftrag
ATTACHMENT Attachment Anhang
upload
required
string <application/octet-stream> (Upload)

The file to submit. The file must be a valid PDF.

Responses

Response samples

Content type
application/json
{}

Download Contract Document

Authorizations:
API KeyAPI Token
path Parameters
contract_id
required
string <uuid> (Contract Id)
document_id
required
string <uuid> (Document Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Get Contract Document

Authorizations:
API KeyAPI Token
path Parameters
document_id
required
string <uuid> (Document Id)
contract_id
required
string <uuid> (Contract Id)

Responses

Response samples

Content type
application/json
{}

Get Contract Documents

Authorizations:
API KeyAPI Token
path Parameters
contract_id
required
string <uuid> (Contract Id)
query Parameters
Filter[Attribute.Operation] (string) or Filter[Attribute.Operation] (null) (Filter[Attribute.Operation])

You can filter on certain attributes by specifying them as a GET parameter along with an operation, e.g. filter[name.exact]=abc.

Currently supported operations are:

  • less_than_equal: Expects one value
  • greater_than_equal: Expects one value
  • range: Expects two values
  • in: Expects one or multiple values
  • not_in: Expects one or multiple values

The following attributes support filtering:

Attribute less_than_equal greater_than_equal range in not_in
document_type x x
uploaded_at x x x

Responses

Response samples

Content type
application/json
{}

Contracting Entity

A Contracting Entity is the legal entity on your side that commissions contracts, holding company and commercial-register details. Names are unique per account, and entities can be created and updated through the API.

Create Contracting Entity

Authorizations:
API KeyAPI Token
Request Body schema: application/json
required
required
object (Payload_ContractingEntityCreateAttributes_Literal_CONTRACTING_ENTITY__)

Responses

Request samples

Content type
application/json
{
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Get Contracting Entities

Authorizations:
API KeyAPI Token
query Parameters
Cursor[Position] (string) or Cursor[Position] (null) (Cursor[Position])

List endpoint responses are paginated in the Alasco API. By calling the endpoint without the pagination parameter you will receive the first page. If not all elements fit on one page there will be a next link provided in the response's links object. By calling this link you will receive the next page.

Filter[Attribute.Operation] (string) or Filter[Attribute.Operation] (null) (Filter[Attribute.Operation])

You can filter on certain attributes by specifying them as a GET parameter along with an operation, e.g. filter[name.exact]=abc.

Currently supported operations are:

  • exact: Expects one value
  • contains: Expects one value
  • in: Expects one or multiple values
  • not_in: Expects one or multiple values

The following attributes support filtering:

Attribute exact contains in not_in
id x x
name x x
address x x
city x x
zip_code x x
tax_authority x x
tax_id x x

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Get Contracting Entity Details

Authorizations:
API KeyAPI Token
path Parameters
id
required
string <uuid> (Id)

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Update Contracting Entity

Authorizations:
API KeyAPI Token
path Parameters
id
required
string <uuid> (Id)
Request Body schema: application/json
required
required
object (Payload_ContractingEntityUpdateAttributes_Literal_CONTRACTING_ENTITY__)

Responses

Request samples

Content type
application/json
{
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Contractor

A Contractor is a supplier engaged to carry out contracted work, holding master data such as its identifier, VAT ID and bank details. A contractor can hold many Contracts, its tax-waiver document can be uploaded and downloaded, and contractors can be created and updated through the API.

Create Contractor

Authorizations:
API KeyAPI Token
Request Body schema: application/json
required
required
object (Payload_ContractorCreateAttributes_Literal_CONTRACTOR__)

Responses

Request samples

Content type
application/json
{
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Download Tax Waiver

Authorizations:
API KeyAPI Token
path Parameters
id
required
string <uuid> (Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Get Contractor Details

Authorizations:
API KeyAPI Token
path Parameters
id
required
string <uuid> (Id)

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Get Contractors

Authorizations:
API KeyAPI Token
query Parameters
Cursor[Position] (string) or Cursor[Position] (null) (Cursor[Position])

List endpoint responses are paginated in the Alasco API. By calling the endpoint without the pagination parameter you will receive the first page. If not all elements fit on one page there will be a next link provided in the response's links object. By calling this link you will receive the next page.

Filter[Attribute.Operation] (string) or Filter[Attribute.Operation] (null) (Filter[Attribute.Operation])

You can filter on certain attributes by specifying them as a GET parameter along with an operation, e.g. filter[name.exact]=abc.

Currently supported operations are:

  • exact: Expects one value
  • contains: Expects one value
  • in: Expects one or multiple values
  • not_in: Expects one or multiple values

The following attributes support filtering:

Attribute exact contains in not_in
id x x
name x x
iban x x
bic x x
vat_id x x
contact_person_name x x
contact_person_phone_number x x
contact_person_email x x
address x x
tax_id x x
tax_authority x x
identifier x x
asset (CapEx only) x x
project (FinCon only) x x

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Update Contractor

Authorizations:
API KeyAPI Token
path Parameters
id
required
string <uuid> (Id)
Request Body schema: application/json
required
required
object (Payload_ContractorUpdateAttributes_Literal_CONTRACTOR__)

Responses

Request samples

Content type
application/json
{
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Upload Tax Waiver

Authorizations:
API KeyAPI Token
path Parameters
id
required
string <uuid> (Id)
Request Body schema: multipart/form-data
required
upload
required
string <application/octet-stream> (Upload)

The file to submit. The file must be a valid PDF.

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Custom Field

A Custom Field holds your account's user-defined values on a Contract (the fields themselves are configured in Alasco). It is read-only here and retrieved per contract (GET /contracts/{contract_id}/custom_fields/).

Get Custom Fields By Contract

Authorizations:
API KeyAPI Token
path Parameters
contract_id
required
string <uuid> (Contract Id)
query Parameters
Cursor[Position] (string) or Cursor[Position] (null) (Cursor[Position])

List endpoint responses are paginated in the Alasco API. By calling the endpoint without the pagination parameter you will receive the first page. If not all elements fit on one page there will be a next link provided in the response's links object. By calling this link you will receive the next page.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Invoice

An Invoice is a contractor's request for payment that moves through states from NEW to PAID. Submitting an invoice against an Asset creates it in NEW, linked only to the asset's project; to process it you must link it to a Contract (which, in CapEx, belongs to a Measure). Invoices carry audited and approved amounts, Documents and Tags, and you can register their payment.

Add Paid Invoice

Authorizations:
API KeyAPI Token
Request Body schema: application/json
required
required
object (AddPaidInvoiceData)

Responses

Request samples

Content type
application/json
{
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Delete Paid Invoice

Authorizations:
API KeyAPI Token
path Parameters
id
required
string <uuid> (Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Get Invoice Details

Authorizations:
API KeyAPI Token
path Parameters
id
required
string <uuid> (Id)
query Parameters
Include (string) or Include (null) (Include)

You can get related objects by specifying them separated by comma as a GET include parameter. In case of non-direct relation include parameter should be a relationship path - a dot-separated list of relationship names. Currently available objects are:

  • contract
  • contract.contractor
  • contract.contract_unit
  • contract.contract_unit.project
  • contract.contract_unit.project.property

e.g. include=contract,contract.contractor,contract.contract_unit,contract.contract_unit.project,contract.contract_unit.project.property

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Get Invoices

Authorizations:
API KeyAPI Token
query Parameters
Cursor[Position] (string) or Cursor[Position] (null) (Cursor[Position])

List endpoint responses are paginated in the Alasco API. By calling the endpoint without the pagination parameter you will receive the first page. If not all elements fit on one page there will be a next link provided in the response's links object. By calling this link you will receive the next page.

Filter[Attribute.Operation] (string) or Filter[Attribute.Operation] (null) (Filter[Attribute.Operation])

You can filter on certain attributes by specifying them as a GET parameter along with an operation, e.g. filter[internal_identifier.exact]=invoice_123. Those filters can be combined and multiple values are separated using commas, for example filter[internal_identifier.exact]=invoice123&filter[external_identifier.exact]=internal_invoice.

Currently supported operations are

  • contains: Expects one value
  • exact: Expects one value
  • greater_than_equal: Expects one value
  • in: Expects one or multiple values
  • less_than_equal: Expects one value
  • range: Expects two values
  • not_in: Expects one or multiple values

The following attributes support filtering:

Attribute exact contains less_than_equal greater_than_equal range in not_in
id x x
external_identifier x x
internal_identifier x x
date_posted x x x x
date_due x x x x
date_received x x x x
date_approved x x x
payment_created x x x
date_created x x x
invoice_type x x
invoice_process_state x x
payment_date x x x x
unaudited_amount x x x
discounted_approved_amount x x x
undiscounted_approved_amount x x x
cash_discount x x x
audited_amount x x x
tags x x
contract x x

Money attributes can be filtered on both, net and tax values. An example to filter for the net amount of unaudited_amount would be filter[unaudited_amount.net.greater_than_equal]=1000.00. Datetime attributes should be filtered by proper datetime arguments, e.g. filter[date_created.gte]=2022-08-05T15:04:07

Include (string) or Include (null) (Include)

You can get related objects by specifying them separated by comma as a GET include parameter. In case of non-direct relation include parameter should be a relationship path - a dot-separated list of relationship names. Currently available objects are:

  • contract
  • contract.contractor
  • contract.contract_unit
  • contract.contract_unit.project
  • contract.contract_unit.project.property

e.g. include=contract,contract.contractor,contract.contract_unit,contract.contract_unit.project,contract.contract_unit.project.property

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Get Invoices By Contract

Authorizations:
API KeyAPI Token
path Parameters
contract_id
required
string <uuid> (Contract Id)

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Register Payment

Authorizations:
API KeyAPI Token
path Parameters
id
required
string <uuid> (Id)
Request Body schema: application/json
required
required
object (InvoicePaymentData)

Responses

Request samples

Content type
application/json
{
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Submit Invoice

This endpoint supports submitting new invoices. Before using this endpoint, please reach out the the support team to make sure, everything is properly set up.

Authorizations:
API KeyAPI Token
path Parameters
id
required
string <uuid> (Id)
Request Body schema: multipart/form-data
required
file
required
string <application/octet-stream> (File)

The file to submit. The file must be a valid PDF.

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Update New

This endpoint supports updating a selection of fields of invoices. To avoid inconsistencies, this is only possible for invoices in status New. Furthermore, when using two workflows steps for complete details, the invoice has to be in the first step (Optional Complete Details).

Authorizations:
API KeyAPI Token
path Parameters
id
required
string <uuid> (Id)
Request Body schema: application/json
required
required
object (UpdateNewInvoiceDetailsData)

Responses

Request samples

Content type
application/json
{
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Update Paid Invoice

Authorizations:
API KeyAPI Token
path Parameters
id
required
string <uuid> (Id)
Request Body schema: application/json
required
required
object (UpdatePaidInvoiceData)

Responses

Request samples

Content type
application/json
{
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Invoice Document

An Invoice Document is a file attached to an Invoice, such as the invoice PDF or supporting evidence. At least one document is required before an invoice can be checked; documents can be uploaded, downloaded and, under certain conditions, deleted.

Create Invoice Document

Authorizations:
API KeyAPI Token
path Parameters
invoice_id
required
string <uuid> (Invoice Id)
Request Body schema: multipart/form-data
required
document_type
required
string (InvoiceDocumentCreateType)
Enum: "ATTACHMENT" "AUDITED_INVOICE" "COVERSHEET_EXTERNAL" "EXTERNAL_CORRESPONDENCE" "INTERNAL_CORRESPONDENCE" "INVOICE" "OTHER" "PAYMENT_CERTIFICATE" "PLANS" "PROTOCOL" "REVISED_INVOICE" "VALUATIONS"

Available values / Verfügbare Werte:

Value English Deutsch
INVOICE Invoice Rechnung
ATTACHMENT Attachment Anhang
COVERSHEET_EXTERNAL External coversheet Externes Deckblatt
AUDITED_INVOICE Audited invoice Prüfrechnung
INTERNAL_CORRESPONDENCE Internal correspondence Interne Korrespondenz
EXTERNAL_CORRESPONDENCE External correspondence Externe Korrespondenz
VALUATIONS Valuations Aufmaß
PLANS Plans Planunterlagen
REVISED_INVOICE Revised invoice Korrekturrechnung
PAYMENT_CERTIFICATE Payment certificate Zahlungsnachweis
PROTOCOL Protocol Protokoll
OTHER Other Sonstiges
upload
required
string <application/octet-stream> (Upload)

The file to submit. The file must be a valid PDF.

Responses

Response samples

Content type
application/json
{}

Download Annotated Invoice Document

Authorizations:
API KeyAPI Token
path Parameters
invoice_id
required
string <uuid> (Invoice Id)
document_id
required
string <uuid> (Document Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Download Invoice Document

Authorizations:
API KeyAPI Token
path Parameters
invoice_id
required
string <uuid> (Invoice Id)
document_id
required
string <uuid> (Document Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Get Invoice Document

Authorizations:
API KeyAPI Token
path Parameters
invoice_id
required
string <uuid> (Invoice Id)
document_id
required
string <uuid> (Document Id)

Responses

Response samples

Content type
application/json
{}

Get Invoice Documents

Authorizations:
API KeyAPI Token
path Parameters
invoice_id
required
string <uuid> (Invoice Id)
query Parameters
Filter[Attribute.Operation] (string) or Filter[Attribute.Operation] (null) (Filter[Attribute.Operation])

You can filter on certain attributes by specifying them as a GET parameter along with an operation, e.g. filter[name.exact]=abc.

Currently supported operations are:

  • less_than_equal: Expects one value
  • greater_than_equal: Expects one value
  • range: Expects two values
  • in: Expects one or multiple values
  • not_in: Expects one or multiple values

The following attributes support filtering:

Attribute less_than_equal greater_than_equal range in not_in
document_type x x
uploaded_at x x x

Responses

Response samples

Content type
application/json
{}

Invoice Tag

An Invoice Tag is a coloured label (with a name unique per account) you assign to Invoices for organisation and filtering. Tags can be created, updated and deleted, and assigned to or removed from invoices.

Assign Tag

Authorizations:
API KeyAPI Token
path Parameters
invoice_id
required
string <uuid> (Invoice Id)
Request Body schema: application/json
required
required
object (Payload_TagAssignAttributes_Literal_TAG__)

Responses

Request samples

Content type
application/json
{
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Create Tag

Authorizations:
API KeyAPI Token
Request Body schema: application/json
required
required
object (Payload_TagCreateAttributes_Literal_TAG__)

Responses

Request samples

Content type
application/json
{
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Delete Tag

Authorizations:
API KeyAPI Token
path Parameters
id
required
string <uuid> (Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Get Tags

Authorizations:
API KeyAPI Token

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Get Tags By Invoice

Authorizations:
API KeyAPI Token
path Parameters
invoice_id
required
string <uuid> (Invoice Id)

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Unassign Tag

Authorizations:
API KeyAPI Token
path Parameters
invoice_id
required
string <uuid> (Invoice Id)
Request Body schema: application/json
required
required
object (Payload_TagAssignAttributes_Literal_TAG__)

Responses

Request samples

Content type
application/json
{
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Update Tag

Authorizations:
API KeyAPI Token
path Parameters
id
required
string <uuid> (Id)
Request Body schema: application/json
required
required
object (Payload_TagUpdateAttributes_Literal_TAG__)

Responses

Request samples

Content type
application/json
{
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Measure

A Measure is a planned package of capital work on an Asset (for example a renovation or a fit-out), carrying a status, category and priority. Measures are read-only here and group the Contracts through which the work is executed (GET /measures/{id}/contracts/).

Get Measure

Authorizations:
API KeyAPI Token
path Parameters
id
required
string <uuid> (Id)

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}

Get Measures

Authorizations:
API KeyAPI Token
query Parameters
Cursor[Position] (string) or Cursor[Position] (null) (Cursor[Position])

List endpoint responses are paginated in the Alasco API. By calling the endpoint without the pagination parameter you will receive the first page. If not all elements fit on one page there will be a next link provided in the response's links object. By calling this link you will receive the next page.

Filter[Attribute.Operation] (string) or Filter[Attribute.Operation] (null) (Filter[Attribute.Operation])

You can filter on certain attributes by specifying them as a GET parameter along with an operation, e.g. filter[name.exact]=abc.

Currently supported operations are:

  • exact: Expects one value
  • contains: Expects one value
  • less_than_equal: Expects one value
  • greater_than_equal: Expects one value
  • range: Expects two values
  • in: Expects one or multiple values
  • not_in: Expects one or multiple values

The following attributes support filtering:

Attribute exact contains less_than_equal greater_than_equal range in not_in
id x x
name x x
identifier x x
description x x
date_created x x x
status x x
asset x x

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "errors": [
    ],
  • "included": [
    ],
  • "links": {
    }
}