---
title: "Retrieves an agreement given its ID."
method: GET
path: "/v2/billing/agreements/{id}"
tags: ["Billing"]
---

# Retrieves an agreement given its ID.

`GET /v2/billing/agreements/{id}`

Retrieves an agreement with a specific ID.

## Path parameters

- `id` integer, required

## Response `200`

Found agreement.

- object — Representation of a ninja billing Agreement.
  - `id` integer
  - `name` string
  - `description` string, nullable
  - `invoiceGenerationType` 'AUTOMATIC' | 'MANUAL'
  - `lastBillDate` number, double, nullable
  - `nextBillDate` string, nullable
  - `nextBillingPeriodStartDate` string, nullable
  - `lastPeriodStartDate` string, nullable
  - `lastPeriodEndDate` string, nullable
  - `content` object
    - `interval` string, nullable
    - `billDate` string, nullable
    - `startDate` string
    - `endDate` string, nullable
    - `businessHours` object — Days and time the work registered in tickets will be registered as off hours.
      - `twentyFourSeven` boolean
      - `days` object[]
        - `day` 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY' | 'SUNDAY'
        - `startHour` integer
        - `endHour` integer
        - `allDayClosed` boolean
  - `contact` object, nullable
    - `uid` string, uuid
    - `id` integer
    - `clientId` integer, nullable
    - `clientName` string, nullable
    - `firstName` string, nullable
    - `lastName` string, nullable
    - `email` string
    - `deleted` boolean
    - `userType` 'TECHNICIAN' | 'END_USER' | 'CONTACT'
    - `enabled` boolean
    - `ninjaAdmin` boolean
    - `sysadmin` boolean
  - `taxRate` object, nullable
    - `id` integer
    - `name` string
    - `description` string, nullable
    - `taxRate` number
  - `client` object — Client information associated with this invoice
    - `id` integer — Unique identifier for the client
    - `name` string — Name of the client
    - `deleted` boolean, required — Indicates if the client has been deleted
  - `externalTax` object — External tax information.
    - `id` string
    - `name` string
  - `createTime` number, double
  - `updateTime` number, double
  - `timeDefault` boolean
  - `businessHoursSource` 'CUSTOM' | 'TICKETING'
  - `dueDaysSource` 'CUSTOM' | 'INHERIT_FROM_CONFIGURATION'
  - `dueDays` integer
  - `allowOnlineCreditCardPayments` boolean
  - `allowOnlineAchPayments` boolean
  - `invoiceNote` string
  - `billEmails` string[]
  - `billCcEmails` string[]
  - `billBccEmails` string[]
  - `ticketBillingSettings` object, nullable
    - `billTicketInAnyStatus` boolean
    - `condition` object, nullable
      - `operator` string
      - `value` string
      - `metadata` object[], nullable
        - `id` integer
        - `name` string
  - `multiMatchEndUsers` boolean
  - `multiMatchDevices` boolean
  - `products` object[], nullable
    - `id` integer
    - `productId` integer
    - `name` string
    - `description` string
    - `quantityType` 'MANUAL' | 'DEVICE_COUNTS' | 'TIME_ENTRIES' | 'END_USER_COUNTS' | 'BACKUP_STORAGE_COUNTS' | 'SOFTWARE_LICENSE'
    - `content` object
    - `order` integer
    - `productUserRole` object — Representation of a ninja billing product user role response.
      - `allowAllTechnicians` boolean — Whether all technicians are allowed to access this product.
      - `userRoles` object[] — Set of user roles that can access this product. Empty when allowAllTechnicians is true.
        - `id` integer — Unique identifier of the user role.
        - `name` string — Name of the user role.
    - `integrationSettings` object
    - `accountId` integer
    - `group` boolean
    - `taxId` integer
    - `inheritTaxFromAgreement` boolean
  - `deviceCountsProducts` object[], nullable
    - `id` integer
    - `productId` integer
    - `name` string
    - `description` string
    - `quantityType` 'MANUAL' | 'DEVICE_COUNTS' | 'TIME_ENTRIES' | 'END_USER_COUNTS' | 'BACKUP_STORAGE_COUNTS' | 'SOFTWARE_LICENSE'
    - `content` object
    - `order` integer
    - `productUserRole` object — Representation of a ninja billing product user role response.
      - `allowAllTechnicians` boolean — Whether all technicians are allowed to access this product.
      - `userRoles` object[] — Set of user roles that can access this product. Empty when allowAllTechnicians is true.
        - `id` integer — Unique identifier of the user role.
        - `name` string — Name of the user role.
    - `integrationSettings` object
    - `accountId` integer
    - `group` boolean
    - `taxId` integer
    - `inheritTaxFromAgreement` boolean
  - `timeEntriesProducts` object[], nullable
    - `id` integer
    - `productId` integer
    - `name` string
    - `description` string
    - `quantityType` 'MANUAL' | 'DEVICE_COUNTS' | 'TIME_ENTRIES' | 'END_USER_COUNTS' | 'BACKUP_STORAGE_COUNTS' | 'SOFTWARE_LICENSE'
    - `content` object
    - `order` integer
    - `productUserRole` object — Representation of a ninja billing product user role response.
      - `allowAllTechnicians` boolean — Whether all technicians are allowed to access this product.
      - `userRoles` object[] — Set of user roles that can access this product. Empty when allowAllTechnicians is true.
        - `id` integer — Unique identifier of the user role.
        - `name` string — Name of the user role.
    - `integrationSettings` object
    - `accountId` integer
    - `group` boolean
    - `taxId` integer
    - `inheritTaxFromAgreement` boolean
  - `endUserCountsProducts` object[], nullable
    - `id` integer
    - `productId` integer
    - `name` string
    - `description` string
    - `quantityType` 'MANUAL' | 'DEVICE_COUNTS' | 'TIME_ENTRIES' | 'END_USER_COUNTS' | 'BACKUP_STORAGE_COUNTS' | 'SOFTWARE_LICENSE'
    - `content` object
    - `order` integer
    - `productUserRole` object — Representation of a ninja billing product user role response.
      - `allowAllTechnicians` boolean — Whether all technicians are allowed to access this product.
      - `userRoles` object[] — Set of user roles that can access this product. Empty when allowAllTechnicians is true.
        - `id` integer — Unique identifier of the user role.
        - `name` string — Name of the user role.
    - `integrationSettings` object
    - `accountId` integer
    - `group` boolean
    - `taxId` integer
    - `inheritTaxFromAgreement` boolean
  - `backupStorageCountsProducts` object[], nullable
    - `id` integer
    - `productId` integer
    - `name` string
    - `description` string
    - `quantityType` 'MANUAL' | 'DEVICE_COUNTS' | 'TIME_ENTRIES' | 'END_USER_COUNTS' | 'BACKUP_STORAGE_COUNTS' | 'SOFTWARE_LICENSE'
    - `content` object
    - `order` integer
    - `productUserRole` object — Representation of a ninja billing product user role response.
      - `allowAllTechnicians` boolean — Whether all technicians are allowed to access this product.
      - `userRoles` object[] — Set of user roles that can access this product. Empty when allowAllTechnicians is true.
        - `id` integer — Unique identifier of the user role.
        - `name` string — Name of the user role.
    - `integrationSettings` object
    - `accountId` integer
    - `group` boolean
    - `taxId` integer
    - `inheritTaxFromAgreement` boolean
  - `softwareLicenseProducts` object[], nullable
    - `id` integer
    - `productId` integer
    - `name` string
    - `description` string
    - `quantityType` 'MANUAL' | 'DEVICE_COUNTS' | 'TIME_ENTRIES' | 'END_USER_COUNTS' | 'BACKUP_STORAGE_COUNTS' | 'SOFTWARE_LICENSE'
    - `content` object
    - `order` integer
    - `productUserRole` object — Representation of a ninja billing product user role response.
      - `allowAllTechnicians` boolean — Whether all technicians are allowed to access this product.
      - `userRoles` object[] — Set of user roles that can access this product. Empty when allowAllTechnicians is true.
        - `id` integer — Unique identifier of the user role.
        - `name` string — Name of the user role.
    - `integrationSettings` object
    - `accountId` integer
    - `group` boolean
    - `taxId` integer
    - `inheritTaxFromAgreement` boolean
  - `multiMatchDeviceBackups` boolean
  - `displayIncludedTimeOnInvoices` boolean
  - `taxId` integer
  - `autoApproveInvoice` boolean
  - `autoCompleteInvoice` boolean
  - `quickBooks` object
    - `externalTax` object — External tax information.
      - `id` string
      - `name` string
    - `allowOnlineCreditCardPayments` boolean
    - `allowOnlineAchPayments` boolean
  - `xero` object
    - `externalTax` object — External tax information.
      - `id` string
      - `name` string
    - `brandingTheme` object, nullable
      - `id` string
      - `name` string
    - `taxlessItemsExternalTax` object, nullable
      - `id` string
      - `name` string
    - `newInvoiceStatus` 'DRAFT' | 'SUBMITTED' | 'AUTHORISED'
  - `active` boolean
  - `archived` boolean

## Other responses

- `403` — Forbidden - Insufficient permissions
- `404` — Agreement not found
- `500` — Permission not granted

---

[API](https://skmtc.net/ninjarmm/apis/ninjaone-public-api-2-0.md) · [All operations](https://skmtc.net/ninjarmm/apis/ninjaone-public-api-2-0/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ninjarmm/ninjaone-public-api-2-0/revisions/753f26d46650/schema)
