openapi: 3.2.0 info: title: Monite Products API contact: name: Monite team url: https://monite.com/about/ email: developers@monite.com termsOfService: https://monite.com/terms version: '1.0' description: 'Operations tagged Products across 3 of this provider''s published API definitions: monite-openapi-2023-09-01.json, monite-openapi-2024-05-25.json, monite-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: https://api.dev.monite.com/v1 description: Development environment - url: https://api.sandbox.monite.com/v1 description: Sandbox environment - url: https://api.monite.com/v1 description: Production environment (Europe) - url: https://us.api.monite.com/v1 description: Production environment (North America) - url: https://api.monite.oaknorth.co.uk/v1 description: Oak POC environment tags: - name: Products paths: /products: get: tags: - Products summary: Get products operationId: get_products parameters: - required: true schema: type: string format: date example: '2023-09-01' name: x-monite-version in: header - description: Sort order (ascending by default). Typically used together with the `sort` parameter. required: false schema: allOf: - $ref: '#/components/schemas/OrderEnum' default: asc name: order in: query - description: The number of items (0 .. 100) to return in a single page of the response. The response may contain fewer items if it is the last or only page. required: false schema: type: integer maximum: 100.0 minimum: 1.0 default: 100 name: limit in: query - description: 'A pagination token obtained from a previous call to this endpoint. Use it to get the next or previous page of results for your initial query. If `pagination_token` is specified, all other query parameters are ignored and inferred from the initial query. If not specified, the first page of results will be returned.' required: false schema: type: string name: pagination_token in: query - description: The field to sort the results by. Typically used together with the `order` parameter. required: false schema: allOf: - $ref: '#/components/schemas/ProductCursorFields' name: sort in: query - required: false schema: items: type: string format: uuid type: array name: id__in in: query - required: false schema: type: string maxLength: 100 name: name in: query - required: false schema: type: string maxLength: 100 name: name__contains in: query - required: false schema: type: string maxLength: 100 name: name__icontains in: query - required: false schema: $ref: '#/components/schemas/ProductServiceTypeEnum' name: type in: query - required: false schema: type: integer minimum: 0.0 name: price in: query - required: false schema: type: integer minimum: 0.0 name: price__gt in: query - required: false schema: type: integer minimum: 0.0 name: price__lt in: query - required: false schema: type: integer minimum: 0.0 name: price__gte in: query - required: false schema: type: integer minimum: 0.0 name: price__lte in: query - required: false schema: $ref: '#/components/schemas/CurrencyEnum' name: currency in: query - required: false schema: items: $ref: '#/components/schemas/CurrencyEnum' type: array name: currency__in in: query - required: false schema: type: string format: uuid name: measure_unit_id in: query - required: false schema: type: string format: date-time name: created_at__gt in: query - required: false schema: type: string format: date-time name: created_at__lt in: query - required: false schema: type: string format: date-time name: created_at__gte in: query - required: false schema: type: string format: date-time name: created_at__lte in: query - description: The ID of the entity that owns the requested resource. required: true schema: type: string format: uuid examples: - 9d2b4c8f-2087-4738-ba91-7359683c49a4 name: x-monite-entity-id in: header responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ProductServicePaginationResponse' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/ErrorSchemaResponse' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorSchemaResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorSchemaResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSchemaResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSchemaResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] post: tags: - Products summary: Create a product operationId: post_products parameters: - required: true schema: type: string format: date example: '2023-09-01' name: x-monite-version in: header - description: The ID of the entity that owns the requested resource. required: true schema: type: string format: uuid examples: - 9d2b4c8f-2087-4738-ba91-7359683c49a4 name: x-monite-entity-id in: header requestBody: content: application/json: schema: $ref: '#/components/schemas/ProductServiceRequest' required: true responses: '201': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ProductServiceResponse' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/ErrorSchemaResponse' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorSchemaResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorSchemaResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSchemaResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSchemaResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] servers: - url: https://api.dev.monite.com/v1 description: Development environment - url: https://api.sandbox.monite.com/v1 description: Sandbox environment - url: https://api.monite.com/v1 description: Production environment (Europe) - url: https://us.api.monite.com/v1 description: Production environment (North America) - url: https://api.monite.oaknorth.co.uk/v1 description: Oak POC environment /products/{product_id}: get: tags: - Products summary: Get a product by ID operationId: get_products_id parameters: - required: true schema: type: string format: date example: '2023-09-01' name: x-monite-version in: header - required: true schema: type: string format: uuid name: product_id in: path - description: The ID of the entity that owns the requested resource. required: true schema: type: string format: uuid examples: - 9d2b4c8f-2087-4738-ba91-7359683c49a4 name: x-monite-entity-id in: header responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ProductServiceResponse' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/ErrorSchemaResponse' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorSchemaResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorSchemaResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSchemaResponse' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/ErrorSchemaResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSchemaResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] patch: tags: - Products summary: Update a product operationId: patch_products_id parameters: - required: true schema: type: string format: date example: '2023-09-01' name: x-monite-version in: header - required: true schema: type: string format: uuid name: product_id in: path - description: The ID of the entity that owns the requested resource. required: true schema: type: string format: uuid examples: - 9d2b4c8f-2087-4738-ba91-7359683c49a4 name: x-monite-entity-id in: header requestBody: content: application/json: schema: $ref: '#/components/schemas/ProductServiceUpdate' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ProductServiceResponse' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/ErrorSchemaResponse' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorSchemaResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorSchemaResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSchemaResponse' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/ErrorSchemaResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSchemaResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] delete: tags: - Products summary: Delete a product operationId: delete_products_id parameters: - required: true schema: type: string format: date example: '2023-09-01' name: x-monite-version in: header - required: true schema: type: string format: uuid name: product_id in: path - description: The ID of the entity that owns the requested resource. required: true schema: type: string format: uuid examples: - 9d2b4c8f-2087-4738-ba91-7359683c49a4 name: x-monite-entity-id in: header responses: '204': description: Successful Response '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/ErrorSchemaResponse' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorSchemaResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorSchemaResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSchemaResponse' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/ErrorSchemaResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSchemaResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] servers: - url: https://api.dev.monite.com/v1 description: Development environment - url: https://api.sandbox.monite.com/v1 description: Sandbox environment - url: https://api.monite.com/v1 description: Production environment (Europe) - url: https://us.api.monite.com/v1 description: Production environment (North America) - url: https://api.monite.oaknorth.co.uk/v1 description: Oak POC environment components: schemas: OrderEnum: type: string enum: - asc - desc ProductServicePaginationResponse: properties: data: items: $ref: '#/components/schemas/ProductServiceResponse' type: array next_pagination_token: type: string description: A token that can be sent in the `pagination_token` query parameter to get the next page of results, or `null` if there is no next page (i.e. you've reached the last page). prev_pagination_token: type: string description: A token that can be sent in the `pagination_token` query parameter to get the previous page of results, or `null` if there is no previous page (i.e. you've reached the first page). additionalProperties: false type: object required: - data description: A paginated list of products and services CurrencyEnum: type: string enum: - AED - AFN - ALL - AMD - ANG - AOA - ARS - AUD - AWG - AZN - BAM - BBD - BDT - BGN - BHD - BIF - BMD - BND - BOB - BRL - BSD - BTN - BWP - BYN - BZD - CAD - CDF - CHF - CLP - CNY - COP - CRC - CVE - CZK - DJF - DKK - DOP - DZD - EGP - ETB - EUR - FJD - FKP - GBP - GEL - GHS - GIP - GMD - GNF - GTQ - GYD - HKD - HNL - HTG - HUF - IDR - ILS - INR - IQD - ISK - JMD - JOD - JPY - KES - KGS - KHR - KMF - KRW - KWD - KYD - KZT - LAK - LBP - LKR - LRD - LSL - LYD - MAD - MDL - MGA - MKD - MMK - MNT - MOP - MUR - MVR - MWK - MXN - MYR - MZN - NAD - NGN - NIO - NOK - NPR - NZD - OMR - PAB - PEN - PGK - PHP - PKR - PLN - PYG - QAR - RON - RSD - RUB - RWF - SAR - SBD - SCR - SEK - SGD - SHP - SLE - SOS - SRD - SSP - SVC - SZL - THB - TJS - TMT - TND - TOP - TRY - TTD - TWD - TZS - UAH - UGX - USD - UYU - UZS - VND - VUV - WST - XAF - XCD - XOF - XPF - YER - ZAR - ZMW Price: properties: currency: allOf: - $ref: '#/components/schemas/CurrencyEnum' description: The currency in which the price of the product is set. value: type: integer maximum: 9007199254740991.0 minimum: 0.0 description: The actual price of the product. additionalProperties: false type: object required: - currency - value ProductCursorFields: type: string enum: - name HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array type: object ProductServiceTypeEnum: type: string enum: - product - service ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array msg: type: string type: type: string type: object required: - loc - msg - type ProductServiceResponse: properties: id: type: string format: uuid description: Unique ID of the product. created_at: type: string format: date-time description: Time at which the product was created. Timestamps follow the ISO 8601 standard. updated_at: type: string format: date-time description: Time at which the product was last updated. Timestamps follow the ISO 8601 standard. description: type: string description: Description of the product. entity_id: type: string format: uuid entity_user_id: type: string format: uuid external_reference: type: string maxLength: 255 minLength: 1 description: A user-defined identifier of the product. For example, an internal product code or SKU (stock keeping unit). Client applications can use this field to map the products in Monite to an external product catalog. examples: - HT-1234-S-BL - SERVICE-67890 ledger_account_id: type: string format: uuid measure_unit_id: type: string format: uuid description: The unique ID reference of the unit used to measure the quantity of this product (e.g. items, meters, kilograms). name: type: string description: Name of the product. price: $ref: '#/components/schemas/Price' smallest_amount: type: number maximum: 2147483647.0 minimum: 0.0 description: The smallest amount allowed for this product. type: allOf: - $ref: '#/components/schemas/ProductServiceTypeEnum' description: Specifies whether this offering is a product or service. This may affect the applicable tax rates. default: product type: object required: - id - created_at - updated_at - entity_id - name ProductServiceRequest: properties: description: type: string maxLength: 2000 description: Description of the product. external_reference: type: string maxLength: 255 minLength: 1 description: A user-defined identifier of the product. For example, an internal product code or SKU (stock keeping unit). Client applications can use this field to map the products in Monite to an external product catalog. examples: - HT-1234-S-BL - SERVICE-67890 ledger_account_id: type: string format: uuid measure_unit_id: type: string format: uuid description: The unique ID reference of the unit used to measure the quantity of this product (e.g. items, meters, kilograms). name: type: string maxLength: 100 minLength: 1 description: Name of the product. price: $ref: '#/components/schemas/Price' smallest_amount: type: number maximum: 2147483647.0 minimum: 0.0 description: The smallest amount allowed for this product. type: allOf: - $ref: '#/components/schemas/ProductServiceTypeEnum' description: Specifies whether this offering is a product or service. This may affect the applicable tax rates. default: product additionalProperties: false type: object required: - name ProductServiceUpdate: properties: description: type: string maxLength: 255 description: Description of the product. external_reference: type: string maxLength: 255 minLength: 1 description: A user-defined identifier of the product. For example, an internal product code or SKU (stock keeping unit). Client applications can use this field to map the products in Monite to an external product catalog. examples: - HT-1234-S-BL - SERVICE-67890 ledger_account_id: type: string format: uuid measure_unit_id: type: string format: uuid description: The unique ID reference of the unit used to measure the quantity of this product (e.g. items, meters, kilograms). name: type: string maxLength: 100 minLength: 1 description: Name of the product. price: $ref: '#/components/schemas/Price' smallest_amount: type: number maximum: 2147483647.0 minimum: 0.0 description: The smallest amount allowed for this product. type: allOf: - $ref: '#/components/schemas/ProductServiceTypeEnum' description: Specifies whether this offering is a product or service. This may affect the applicable tax rates. additionalProperties: false type: object ErrorSchemaResponse: properties: error: $ref: '#/components/schemas/ErrorSchema' type: object required: - error ErrorSchema: properties: message: type: string type: object required: - message securitySchemes: HTTPBearer: type: http scheme: bearer x-refined-from: - monite-openapi-2023-09-01.json - monite-openapi-2024-05-25.json - monite-openapi.yml