{
  "openapi": "3.1.0",
  "info": {
    "title": "Invoice",
    "version": "2025-01-01"
  },
  "servers": [
    {
      "url": "https://client.beeline.com/api"
    },
    {
      "url": "https://client-eu.beeline.com/api"
    }
  ],
  "tags": [
    {
      "name": "Invoice",
      "description": "Manage invoice data with multiple systems through API integration.\nClick [here](webhook-management_2023-07-01#tag/invoice-event-types) to\nsee the list of available time and expense events that are available to subscribe to.\n\nThe Invoice API is comprised of endpoints you can use to manage invoice data. You can retrieve data points,\nsuch as the Invoice ID, status, and much more, for a specific invoice.\n"
    },
    {
      "name": "SAP S/4HANA",
      "description": "Retrieves invoice data to create service entry sheet in SAP S/4HANA."
    }
  ],
  "paths": {
    "/sites/{clientSiteId}/invoices": {
      "parameters": [
        {
          "in": "path",
          "name": "clientSiteId",
          "description": "Uniquely identifies a Beeline VMS instance.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          },
          "example": "abc78252-1d8d-4ecf-9651-6b5ba39bba5b"
        },
        {
          "name": "api-version",
          "in": "query",
          "description": "The API version of the endpoint",
          "required": true,
          "schema": {
            "type": "string",
            "enum": [
              "2025-01-01"
            ]
          }
        }
      ],
      "get": {
        "operationId": "get-invoice-list",
        "summary": "Invoice List",
        "description": "Retrieves list of invoices from Enterprise. Optionally, you can query results using invoice category and/or invoice status.\n",
        "tags": [
          "Invoice"
        ],
        "security": [
          {
            "client_auth": [
              "read:invoice"
            ]
          }
        ],
        "parameters": [
          {
            "name": "skip",
            "in": "query",
            "description": "skip a number of records",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0
            }
          },
          {
            "name": "top",
            "in": "query",
            "description": "select up to 1000 records",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 1000
            }
          },
          {
            "name": "categoryName",
            "in": "query",
            "description": "The invoice category name.",
            "example": "US Staff Aug Prelim Time",
            "schema": {
              "type": "string",
              "maxLength": 255
            }
          },
          {
            "name": "invoiceStatus",
            "in": "query",
            "description": "The invoice schedule status.",
            "example": "successful",
            "schema": {
              "type": "string",
              "enum": [
                "notStarted",
                "inProgress",
                "successful",
                "failed",
                "void",
                "awaitingFinancialApproval",
                "rejected",
                "pending",
                "feedReprocessing",
                "approvalPending",
                "approvalFailed",
                "approvalProcessing",
                "rollbackPending",
                "rolledback",
                "rollbackProcessing",
                "rollbackFailed"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "description": "List of invoices",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The list of invoices.",
                  "required": [
                    "maxItems",
                    "value"
                  ],
                  "properties": {
                    "maxItems": {
                      "type": "integer",
                      "description": "The total number of invoices."
                    },
                    "value": {
                      "type": "array",
                      "description": "A list of invoices.",
                      "items": {
                        "type": "object",
                        "required": [
                          "invoiceId"
                        ],
                        "properties": {
                          "invoiceId": {
                            "type": "integer",
                            "description": "A unique identifier of the invoice.",
                            "example": 1000
                          },
                          "invoiceStatus": {
                            "description": "The invoice schedule status.",
                            "type": "string",
                            "enum": [
                              "notStarted",
                              "inProgress",
                              "successful",
                              "failed",
                              "void",
                              "awaitingFinancialApproval",
                              "rejected",
                              "pending",
                              "feedReprocessing",
                              "approvalPending",
                              "approvalFailed",
                              "approvalProcessing",
                              "rollbackPending",
                              "rolledback",
                              "rollbackProcessing",
                              "rollbackFailed"
                            ]
                          },
                          "categoryName": {
                            "type": "string",
                            "description": "The invoice category name.",
                            "example": "US Staff Aug Prelim Time"
                          },
                          "headerStartDate": {
                            "type": "string",
                            "format": "date",
                            "description": "- The invoice billing start date.\n- Supported date format is ISO 8601.\n- Date must be between 1900-01-01 and 2079-06-06.\n",
                            "example": "2024-01-18"
                          },
                          "headerEndDate": {
                            "type": "string",
                            "format": "date",
                            "description": "- The invoice billing end date.\n- Supported date format is ISO 8601.\n- Date must be between 1900-01-01 and 2079-06-06.\n",
                            "example": "2024-01-18"
                          },
                          "scheduledRunDate": {
                            "type": "string",
                            "format": "date-time",
                            "description": "- The scheduled run date of the invoice.\n- Supported date/time format is ISO 8601.\n",
                            "example": "2024-01-18T14:30:00Z"
                          },
                          "statementDate": {
                            "type": "string",
                            "format": "date-time",
                            "description": "- The statement date of the invoice.\n- Supported date/time format is ISO 8601.\n",
                            "example": "2024-01-18T14:30:00Z"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "description": "A list of errors.",
                      "properties": {
                        "errors": {
                          "type": "array",
                          "items": {
                            "required": [
                              "code",
                              "message"
                            ],
                            "type": "object",
                            "properties": {
                              "code": {
                                "enum": [
                                  "UNEXPECTED_ERROR",
                                  "VALIDATION_ERROR",
                                  "NOT_FOUND",
                                  "REQUEST_LIMIT_EXCEEDED",
                                  "UNSUPPORTED_API_VERSION",
                                  "CONFLICT"
                                ],
                                "type": "string",
                                "description": "One of a server-defined set of error codes."
                              },
                              "message": {
                                "type": "string",
                                "description": "The human-readable representation of the error."
                              },
                              "target": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "headers": {
              "Retry-After": {
                "description": "The number of seconds remaining when the endpoint can be called again.",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "rate-limit": {
                    "value": {
                      "errors": [
                        {
                          "code": "REQUEST_LIMIT_EXCEEDED",
                          "message": "API calls quota exceeded! Maximum admitted 1000 per 1m."
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server error",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sites/{clientSiteId}/invoices/{invoiceId}/saps4hana": {
      "parameters": [
        {
          "in": "path",
          "name": "clientSiteId",
          "description": "Uniquely identifies a Beeline VMS instance.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          },
          "example": "abc78252-1d8d-4ecf-9651-6b5ba39bba5b"
        },
        {
          "name": "invoiceId",
          "in": "path",
          "description": "A unique identifier of the invoice.",
          "required": true,
          "schema": {
            "type": "integer",
            "example": 1000
          }
        },
        {
          "name": "api-version",
          "in": "query",
          "description": "The API version of the endpoint",
          "required": true,
          "schema": {
            "type": "string",
            "enum": [
              "2025-01-01"
            ]
          }
        }
      ],
      "get": {
        "operationId": "get-saps4hana-invoice-data-list",
        "summary": "SAP S/4HANA Invoice Data list",
        "description": "Retrieves invoice data from a given unique Invoice Id. Optionally, you can filter results using a given payment type.\n",
        "tags": [
          "SAP S/4HANA"
        ],
        "security": [
          {
            "client_auth": [
              "read:invoice"
            ]
          }
        ],
        "parameters": [
          {
            "name": "skip",
            "in": "query",
            "description": "skip a number of records",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0
            }
          },
          {
            "name": "top",
            "in": "query",
            "description": "select up to 1000 records",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 1000
            }
          },
          {
            "name": "paymentType",
            "in": "query",
            "description": "The payment type.",
            "example": "staffAugTimesheet",
            "schema": {
              "type": "string",
              "enum": [
                "staffAugTimesheet",
                "staffAugExpense",
                "staffAugMiscFee",
                "projectServiceTimesheet",
                "projectServiceMiscFee",
                "projectServiceMilestone",
                "projectServiceExpense"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "description": "List of invoice data for SAP S/4HANA",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The list of SAP S/4HANA invoice data.",
                  "required": [
                    "maxItems",
                    "value"
                  ],
                  "properties": {
                    "maxItems": {
                      "type": "integer",
                      "description": "The total number of SAP S/4HANA invoice data."
                    },
                    "value": {
                      "type": "array",
                      "description": "A list of SAP S/4HANA invoice data.",
                      "items": {
                        "type": "object",
                        "required": [
                          "invoiceId",
                          "paymentId"
                        ],
                        "properties": {
                          "invoiceId": {
                            "type": "integer",
                            "description": "A unique identifier of the invoice.",
                            "example": 1000
                          },
                          "paymentId": {
                            "type": "string",
                            "description": "A unique identifier of the payment. Timesheet header id for Timesheet, Voucher id for Expense, Miscellaneous fee id for Miscellaneous fee, and Milestone payment id for Milestone payment.",
                            "example": "190203"
                          },
                          "paymentType": {
                            "description": "The payment type.",
                            "type": "string",
                            "enum": [
                              "staffAugTimesheet",
                              "staffAugExpense",
                              "staffAugMiscFee",
                              "projectServiceTimesheet",
                              "projectServiceMiscFee",
                              "projectServiceMilestone",
                              "projectServiceExpense"
                            ]
                          },
                          "clientInvoiceNumber": {
                            "type": "string",
                            "description": "The client invoice number.",
                            "example": "12122A2473258"
                          },
                          "assignmentNumber": {
                            "type": "integer",
                            "description": "The assignment number.",
                            "example": 28032
                          },
                          "lastName": {
                            "type": "string",
                            "description": "The last name of the worker.",
                            "example": "Anthropy"
                          },
                          "firstName": {
                            "type": "string",
                            "description": "The first name of the worker.",
                            "example": "Phillip"
                          },
                          "organizationUnits": {
                            "type": "array",
                            "description": "A list of organization units.",
                            "items": {
                              "type": "object",
                              "description": "The organization unit.",
                              "properties": {
                                "code": {
                                  "type": "string",
                                  "description": "The organization unit code.",
                                  "example": "1775"
                                },
                                "levelAbove": {
                                  "type": "integer",
                                  "description": "The roll up hierarchy of the organization unit code. i.e. if value for level above is 0, this means that the OU code is at the top level (no higher OU code is above it).",
                                  "example": 1
                                }
                              }
                            }
                          },
                          "supplier": {
                            "type": "object",
                            "description": "The supplier details.",
                            "properties": {
                              "code": {
                                "type": "string",
                                "description": "The supplier code.",
                                "example": "SupplierCode"
                              },
                              "apCode": {
                                "type": "string",
                                "description": "The AP code of the supplier.",
                                "example": "SupplierAPCode"
                              },
                              "externalCode": {
                                "type": "string",
                                "description": "The external code of the supplier.",
                                "example": "SupplierExternalCode"
                              }
                            }
                          },
                          "workLocation": {
                            "type": "object",
                            "description": "The work location.",
                            "properties": {
                              "line1": {
                                "type": "string",
                                "description": "The first line of the address, typically containing the street number and street name.",
                                "example": "123 Technological Pkwy."
                              },
                              "line2": {
                                "type": "string",
                                "description": "The second line of the address, typically containing additional information such as apartment or suite number, building name, or floor number.",
                                "example": "Suite 1000"
                              },
                              "stateCode": {
                                "type": "string",
                                "description": "The code or abbreviation for the state or region of the address.",
                                "example": "IA"
                              },
                              "county": {
                                "type": "string",
                                "description": "The county name.",
                                "example": "Black Hawk County"
                              },
                              "countryCode": {
                                "type": "string",
                                "description": "The alpha-2 code for the country of the address, typically a two-letter code such as \"US\" for the United States or \"CA\" for Canada.",
                                "example": "US"
                              },
                              "postalCode": {
                                "type": "string",
                                "description": "The postal or zip code of the address.",
                                "example": "50320"
                              }
                            }
                          },
                          "paymentDetails": {
                            "type": "array",
                            "description": "A list of invoice payment details.",
                            "items": {
                              "type": "object",
                              "description": "The invoice payment details.",
                              "properties": {
                                "costCenter": {
                                  "type": "object",
                                  "description": "The cost center.",
                                  "properties": {
                                    "number": {
                                      "type": "string",
                                      "description": "The cost center number.",
                                      "example": "CC123"
                                    }
                                  }
                                },
                                "earningCode": {
                                  "type": "string",
                                  "description": "The pay code of the timesheet.",
                                  "example": "RT"
                                },
                                "expenseType": {
                                  "type": "string",
                                  "description": "The GL account of the expense.",
                                  "example": "GLAccount"
                                },
                                "miscFeeCode": {
                                  "type": "string",
                                  "description": "The Miscellaneous fee code.",
                                  "example": "MFCode"
                                },
                                "milestonePaymentType": {
                                  "type": "string",
                                  "description": "The Milestone payment type.",
                                  "example": "MPType"
                                },
                                "weekStartDate": {
                                  "type": "string",
                                  "format": "date",
                                  "description": "- The start date of the timesheet.\n- Supported date format is ISO 8601.\n- Date must be between 1900-01-01 and 2079-06-06.\n",
                                  "example": "2017-03-01"
                                },
                                "weekEndDate": {
                                  "type": "string",
                                  "format": "date",
                                  "description": "- The end date of the timesheet.\n- Supported date format is ISO 8601.\n- Date must be between 1900-01-01 and 2079-06-06.\n",
                                  "example": "2017-03-31"
                                },
                                "expenseDate": {
                                  "type": "string",
                                  "format": "date",
                                  "description": "- The expense date.\n- Supported date format is ISO 8601.\n- Date must be between 1900-01-01 and 2079-06-06.\n",
                                  "example": "2017-03-02"
                                },
                                "effectiveDate": {
                                  "type": "string",
                                  "format": "date",
                                  "description": "- The effective date of miscellaneous fee.\n- Supported date format is ISO 8601.\n- Date must be between 1900-01-01 and 2079-06-06.\n",
                                  "example": "2017-03-03"
                                },
                                "scheduledDate": {
                                  "type": "string",
                                  "format": "date",
                                  "description": "- The intended payment date of the Milestone payment.\n- Supported date format is ISO 8601.\n- Date must be between 1900-01-01 and 2079-06-06.\n",
                                  "example": "2017-03-04"
                                },
                                "invoicedUnits": {
                                  "type": "number",
                                  "description": "The total number of invoiced units.",
                                  "example": 64.15
                                },
                                "invoicedNetSupplierPayable": {
                                  "type": "number",
                                  "description": "The total net supplier payable amount.",
                                  "example": 2617.35
                                },
                                "invoicedGross": {
                                  "type": "number",
                                  "description": "The total invoiced gross amount.",
                                  "example": 2496.25
                                },
                                "currencyCode": {
                                  "type": "string",
                                  "description": "A code uniquely identifying the currency.",
                                  "example": "USD"
                                },
                                "taxJobCategory": {
                                  "type": "object",
                                  "description": "The tax job category details.",
                                  "properties": {
                                    "name": {
                                      "type": "string",
                                      "description": "The tax job category name.",
                                      "example": "TaxJobCategoryName"
                                    },
                                    "code": {
                                      "type": "string",
                                      "description": "The tax job category code.",
                                      "example": "TJCN"
                                    }
                                  }
                                },
                                "clientInvoiceNumbers": {
                                  "type": "object",
                                  "description": "The client invoice numbers.",
                                  "properties": {
                                    "invoiceNumber2": {
                                      "type": "string",
                                      "description": "The client invoice number 2.",
                                      "example": "12122A2473259"
                                    },
                                    "invoiceNumber3": {
                                      "type": "string",
                                      "description": "The client invoice number 3.",
                                      "example": "12122A2473260"
                                    },
                                    "invoiceNumber4": {
                                      "type": "string",
                                      "description": "The client invoice number 4.",
                                      "example": "12122A2473261"
                                    },
                                    "invoiceNumber5": {
                                      "type": "string",
                                      "description": "The client invoice number 5.",
                                      "example": "12122A2473262"
                                    }
                                  }
                                },
                                "clientDefinedValues": {
                                  "type": "array",
                                  "description": "A list of client-defined values.",
                                  "items": {
                                    "type": "object",
                                    "description": "The client-defined value details.",
                                    "properties": {
                                      "code": {
                                        "type": "string",
                                        "description": "The client-defined value code.",
                                        "example": "COSTCENTERSUBCODE"
                                      },
                                      "typeName": {
                                        "type": "string",
                                        "description": "The client-defined value type.",
                                        "example": "COSTCENTER"
                                      },
                                      "value": {
                                        "type": "string",
                                        "description": "The client-defined value.",
                                        "example": "7501"
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "description": "A list of errors.",
                      "properties": {
                        "errors": {
                          "type": "array",
                          "items": {
                            "required": [
                              "code",
                              "message"
                            ],
                            "type": "object",
                            "properties": {
                              "code": {
                                "enum": [
                                  "UNEXPECTED_ERROR",
                                  "VALIDATION_ERROR",
                                  "NOT_FOUND",
                                  "REQUEST_LIMIT_EXCEEDED",
                                  "UNSUPPORTED_API_VERSION",
                                  "CONFLICT"
                                ],
                                "type": "string",
                                "description": "One of a server-defined set of error codes."
                              },
                              "message": {
                                "type": "string",
                                "description": "The human-readable representation of the error."
                              },
                              "target": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "headers": {
              "Retry-After": {
                "description": "The number of seconds remaining when the endpoint can be called again.",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "rate-limit": {
                    "value": {
                      "errors": [
                        {
                          "code": "REQUEST_LIMIT_EXCEEDED",
                          "message": "API calls quota exceeded! Maximum admitted 1000 per 1m."
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server error",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "parameters": {
      "client-site-id": {
        "in": "path",
        "name": "clientSiteId",
        "description": "Uniquely identifies a Beeline VMS instance.",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        },
        "example": "abc78252-1d8d-4ecf-9651-6b5ba39bba5b"
      },
      "api-version": {
        "name": "api-version",
        "in": "query",
        "description": "The API version of the endpoint",
        "required": true,
        "schema": {
          "type": "string",
          "enum": [
            "2025-01-01"
          ]
        }
      },
      "skip": {
        "name": "skip",
        "in": "query",
        "description": "skip a number of records",
        "required": false,
        "schema": {
          "type": "integer",
          "minimum": 0
        }
      },
      "top": {
        "name": "top",
        "in": "query",
        "description": "select up to 1000 records",
        "required": false,
        "schema": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000
        }
      },
      "invoice-id": {
        "name": "invoiceId",
        "in": "path",
        "description": "A unique identifier of the invoice.",
        "required": true,
        "schema": {
          "type": "integer",
          "example": 1000
        }
      },
      "category-name": {
        "name": "categoryName",
        "in": "query",
        "description": "The invoice category name.",
        "example": "US Staff Aug Prelim Time",
        "schema": {
          "type": "string",
          "maxLength": 255
        }
      },
      "invoice-status": {
        "name": "invoiceStatus",
        "in": "query",
        "description": "The invoice schedule status.",
        "example": "successful",
        "schema": {
          "type": "string",
          "enum": [
            "notStarted",
            "inProgress",
            "successful",
            "failed",
            "void",
            "awaitingFinancialApproval",
            "rejected",
            "pending",
            "feedReprocessing",
            "approvalPending",
            "approvalFailed",
            "approvalProcessing",
            "rollbackPending",
            "rolledback",
            "rollbackProcessing",
            "rollbackFailed"
          ]
        }
      },
      "payment-type": {
        "name": "paymentType",
        "in": "query",
        "description": "The payment type.",
        "example": "staffAugTimesheet",
        "schema": {
          "type": "string",
          "enum": [
            "staffAugTimesheet",
            "staffAugExpense",
            "staffAugMiscFee",
            "projectServiceTimesheet",
            "projectServiceMiscFee",
            "projectServiceMilestone",
            "projectServiceExpense"
          ]
        }
      }
    },
    "headers": {
      "rate-limit-limit": {
        "description": "The rate limit period (eg. 1m, 12h, 1d)",
        "schema": {
          "type": "string"
        },
        "example": "8h"
      },
      "rate-limit-remaining": {
        "description": "The number of calls remaining in the time window",
        "schema": {
          "type": "integer"
        },
        "example": 10
      },
      "rate-limit-reset": {
        "description": "UTC date time (ISO 8601) when the limit resets",
        "schema": {
          "type": "string",
          "format": "date-time"
        }
      },
      "retry-after": {
        "description": "The number of seconds remaining when the endpoint can be called again.",
        "schema": {
          "type": "integer"
        },
        "example": 10
      }
    },
    "responses": {
      "400": {
        "description": "Bad Request",
        "headers": {
          "X-Rate-Limit-Limit": {
            "description": "The rate limit period (eg. 1m, 12h, 1d)",
            "schema": {
              "type": "string"
            },
            "example": "8h"
          },
          "X-Rate-Limit-Remaining": {
            "description": "The number of calls remaining in the time window",
            "schema": {
              "type": "integer"
            },
            "example": 10
          },
          "X-Rate-Limit-Reset": {
            "description": "UTC date time (ISO 8601) when the limit resets",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "description": "A list of errors.",
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "required": [
                      "code",
                      "message"
                    ],
                    "type": "object",
                    "properties": {
                      "code": {
                        "enum": [
                          "UNEXPECTED_ERROR",
                          "VALIDATION_ERROR",
                          "NOT_FOUND",
                          "REQUEST_LIMIT_EXCEEDED",
                          "UNSUPPORTED_API_VERSION",
                          "CONFLICT"
                        ],
                        "type": "string",
                        "description": "One of a server-defined set of error codes."
                      },
                      "message": {
                        "type": "string",
                        "description": "The human-readable representation of the error."
                      },
                      "target": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "401": {
        "description": "Unauthorized",
        "headers": {
          "X-Rate-Limit-Limit": {
            "description": "The rate limit period (eg. 1m, 12h, 1d)",
            "schema": {
              "type": "string"
            },
            "example": "8h"
          },
          "X-Rate-Limit-Remaining": {
            "description": "The number of calls remaining in the time window",
            "schema": {
              "type": "integer"
            },
            "example": 10
          },
          "X-Rate-Limit-Reset": {
            "description": "UTC date time (ISO 8601) when the limit resets",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        }
      },
      "403": {
        "description": "Forbidden",
        "headers": {
          "X-Rate-Limit-Limit": {
            "description": "The rate limit period (eg. 1m, 12h, 1d)",
            "schema": {
              "type": "string"
            },
            "example": "8h"
          },
          "X-Rate-Limit-Remaining": {
            "description": "The number of calls remaining in the time window",
            "schema": {
              "type": "integer"
            },
            "example": 10
          },
          "X-Rate-Limit-Reset": {
            "description": "UTC date time (ISO 8601) when the limit resets",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        }
      },
      "404": {
        "description": "Not Found",
        "headers": {
          "X-Rate-Limit-Limit": {
            "description": "The rate limit period (eg. 1m, 12h, 1d)",
            "schema": {
              "type": "string"
            },
            "example": "8h"
          },
          "X-Rate-Limit-Remaining": {
            "description": "The number of calls remaining in the time window",
            "schema": {
              "type": "integer"
            },
            "example": 10
          },
          "X-Rate-Limit-Reset": {
            "description": "UTC date time (ISO 8601) when the limit resets",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "oneOf": [
                {
                  "type": "object",
                  "description": "A list of errors.",
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                {
                  "type": "null"
                }
              ]
            }
          }
        }
      },
      "429": {
        "description": "Too Many Requests",
        "headers": {
          "Retry-After": {
            "description": "The number of seconds remaining when the endpoint can be called again.",
            "schema": {
              "type": "integer"
            },
            "example": 10
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "description": "A list of errors.",
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "required": [
                      "code",
                      "message"
                    ],
                    "type": "object",
                    "properties": {
                      "code": {
                        "enum": [
                          "UNEXPECTED_ERROR",
                          "VALIDATION_ERROR",
                          "NOT_FOUND",
                          "REQUEST_LIMIT_EXCEEDED",
                          "UNSUPPORTED_API_VERSION",
                          "CONFLICT"
                        ],
                        "type": "string",
                        "description": "One of a server-defined set of error codes."
                      },
                      "message": {
                        "type": "string",
                        "description": "The human-readable representation of the error."
                      },
                      "target": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    }
                  }
                }
              }
            },
            "examples": {
              "rate-limit": {
                "value": {
                  "errors": [
                    {
                      "code": "REQUEST_LIMIT_EXCEEDED",
                      "message": "API calls quota exceeded! Maximum admitted 1000 per 1m."
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "500": {
        "description": "Internal Server error",
        "headers": {
          "X-Rate-Limit-Limit": {
            "description": "The rate limit period (eg. 1m, 12h, 1d)",
            "schema": {
              "type": "string"
            },
            "example": "8h"
          },
          "X-Rate-Limit-Remaining": {
            "description": "The number of calls remaining in the time window",
            "schema": {
              "type": "integer"
            },
            "example": 10
          },
          "X-Rate-Limit-Reset": {
            "description": "UTC date time (ISO 8601) when the limit resets",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "description": "A list of errors.",
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "required": [
                      "code",
                      "message"
                    ],
                    "type": "object",
                    "properties": {
                      "code": {
                        "enum": [
                          "UNEXPECTED_ERROR",
                          "VALIDATION_ERROR",
                          "NOT_FOUND",
                          "REQUEST_LIMIT_EXCEEDED",
                          "UNSUPPORTED_API_VERSION",
                          "CONFLICT"
                        ],
                        "type": "string",
                        "description": "One of a server-defined set of error codes."
                      },
                      "message": {
                        "type": "string",
                        "description": "The human-readable representation of the error."
                      },
                      "target": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "schemas": {
      "invoice-list": {
        "type": "array",
        "description": "A list of invoices.",
        "items": {
          "type": "object",
          "required": [
            "invoiceId"
          ],
          "properties": {
            "invoiceId": {
              "type": "integer",
              "description": "A unique identifier of the invoice.",
              "example": 1000
            },
            "invoiceStatus": {
              "description": "The invoice schedule status.",
              "type": "string",
              "enum": [
                "notStarted",
                "inProgress",
                "successful",
                "failed",
                "void",
                "awaitingFinancialApproval",
                "rejected",
                "pending",
                "feedReprocessing",
                "approvalPending",
                "approvalFailed",
                "approvalProcessing",
                "rollbackPending",
                "rolledback",
                "rollbackProcessing",
                "rollbackFailed"
              ]
            },
            "categoryName": {
              "type": "string",
              "description": "The invoice category name.",
              "example": "US Staff Aug Prelim Time"
            },
            "headerStartDate": {
              "type": "string",
              "format": "date",
              "description": "- The invoice billing start date.\n- Supported date format is ISO 8601.\n- Date must be between 1900-01-01 and 2079-06-06.\n",
              "example": "2024-01-18"
            },
            "headerEndDate": {
              "type": "string",
              "format": "date",
              "description": "- The invoice billing end date.\n- Supported date format is ISO 8601.\n- Date must be between 1900-01-01 and 2079-06-06.\n",
              "example": "2024-01-18"
            },
            "scheduledRunDate": {
              "type": "string",
              "format": "date-time",
              "description": "- The scheduled run date of the invoice.\n- Supported date/time format is ISO 8601.\n",
              "example": "2024-01-18T14:30:00Z"
            },
            "statementDate": {
              "type": "string",
              "format": "date-time",
              "description": "- The statement date of the invoice.\n- Supported date/time format is ISO 8601.\n",
              "example": "2024-01-18T14:30:00Z"
            }
          }
        }
      },
      "saps4hana-invoice-data-list": {
        "type": "array",
        "description": "A list of SAP S/4HANA invoice data.",
        "items": {
          "type": "object",
          "required": [
            "invoiceId",
            "paymentId"
          ],
          "properties": {
            "invoiceId": {
              "type": "integer",
              "description": "A unique identifier of the invoice.",
              "example": 1000
            },
            "paymentId": {
              "type": "string",
              "description": "A unique identifier of the payment. Timesheet header id for Timesheet, Voucher id for Expense, Miscellaneous fee id for Miscellaneous fee, and Milestone payment id for Milestone payment.",
              "example": "190203"
            },
            "paymentType": {
              "description": "The payment type.",
              "type": "string",
              "enum": [
                "staffAugTimesheet",
                "staffAugExpense",
                "staffAugMiscFee",
                "projectServiceTimesheet",
                "projectServiceMiscFee",
                "projectServiceMilestone",
                "projectServiceExpense"
              ]
            },
            "clientInvoiceNumber": {
              "type": "string",
              "description": "The client invoice number.",
              "example": "12122A2473258"
            },
            "assignmentNumber": {
              "type": "integer",
              "description": "The assignment number.",
              "example": 28032
            },
            "lastName": {
              "type": "string",
              "description": "The last name of the worker.",
              "example": "Anthropy"
            },
            "firstName": {
              "type": "string",
              "description": "The first name of the worker.",
              "example": "Phillip"
            },
            "organizationUnits": {
              "type": "array",
              "description": "A list of organization units.",
              "items": {
                "type": "object",
                "description": "The organization unit.",
                "properties": {
                  "code": {
                    "type": "string",
                    "description": "The organization unit code.",
                    "example": "1775"
                  },
                  "levelAbove": {
                    "type": "integer",
                    "description": "The roll up hierarchy of the organization unit code. i.e. if value for level above is 0, this means that the OU code is at the top level (no higher OU code is above it).",
                    "example": 1
                  }
                }
              }
            },
            "supplier": {
              "type": "object",
              "description": "The supplier details.",
              "properties": {
                "code": {
                  "type": "string",
                  "description": "The supplier code.",
                  "example": "SupplierCode"
                },
                "apCode": {
                  "type": "string",
                  "description": "The AP code of the supplier.",
                  "example": "SupplierAPCode"
                },
                "externalCode": {
                  "type": "string",
                  "description": "The external code of the supplier.",
                  "example": "SupplierExternalCode"
                }
              }
            },
            "workLocation": {
              "type": "object",
              "description": "The work location.",
              "properties": {
                "line1": {
                  "type": "string",
                  "description": "The first line of the address, typically containing the street number and street name.",
                  "example": "123 Technological Pkwy."
                },
                "line2": {
                  "type": "string",
                  "description": "The second line of the address, typically containing additional information such as apartment or suite number, building name, or floor number.",
                  "example": "Suite 1000"
                },
                "stateCode": {
                  "type": "string",
                  "description": "The code or abbreviation for the state or region of the address.",
                  "example": "IA"
                },
                "county": {
                  "type": "string",
                  "description": "The county name.",
                  "example": "Black Hawk County"
                },
                "countryCode": {
                  "type": "string",
                  "description": "The alpha-2 code for the country of the address, typically a two-letter code such as \"US\" for the United States or \"CA\" for Canada.",
                  "example": "US"
                },
                "postalCode": {
                  "type": "string",
                  "description": "The postal or zip code of the address.",
                  "example": "50320"
                }
              }
            },
            "paymentDetails": {
              "type": "array",
              "description": "A list of invoice payment details.",
              "items": {
                "type": "object",
                "description": "The invoice payment details.",
                "properties": {
                  "costCenter": {
                    "type": "object",
                    "description": "The cost center.",
                    "properties": {
                      "number": {
                        "type": "string",
                        "description": "The cost center number.",
                        "example": "CC123"
                      }
                    }
                  },
                  "earningCode": {
                    "type": "string",
                    "description": "The pay code of the timesheet.",
                    "example": "RT"
                  },
                  "expenseType": {
                    "type": "string",
                    "description": "The GL account of the expense.",
                    "example": "GLAccount"
                  },
                  "miscFeeCode": {
                    "type": "string",
                    "description": "The Miscellaneous fee code.",
                    "example": "MFCode"
                  },
                  "milestonePaymentType": {
                    "type": "string",
                    "description": "The Milestone payment type.",
                    "example": "MPType"
                  },
                  "weekStartDate": {
                    "type": "string",
                    "format": "date",
                    "description": "- The start date of the timesheet.\n- Supported date format is ISO 8601.\n- Date must be between 1900-01-01 and 2079-06-06.\n",
                    "example": "2017-03-01"
                  },
                  "weekEndDate": {
                    "type": "string",
                    "format": "date",
                    "description": "- The end date of the timesheet.\n- Supported date format is ISO 8601.\n- Date must be between 1900-01-01 and 2079-06-06.\n",
                    "example": "2017-03-31"
                  },
                  "expenseDate": {
                    "type": "string",
                    "format": "date",
                    "description": "- The expense date.\n- Supported date format is ISO 8601.\n- Date must be between 1900-01-01 and 2079-06-06.\n",
                    "example": "2017-03-02"
                  },
                  "effectiveDate": {
                    "type": "string",
                    "format": "date",
                    "description": "- The effective date of miscellaneous fee.\n- Supported date format is ISO 8601.\n- Date must be between 1900-01-01 and 2079-06-06.\n",
                    "example": "2017-03-03"
                  },
                  "scheduledDate": {
                    "type": "string",
                    "format": "date",
                    "description": "- The intended payment date of the Milestone payment.\n- Supported date format is ISO 8601.\n- Date must be between 1900-01-01 and 2079-06-06.\n",
                    "example": "2017-03-04"
                  },
                  "invoicedUnits": {
                    "type": "number",
                    "description": "The total number of invoiced units.",
                    "example": 64.15
                  },
                  "invoicedNetSupplierPayable": {
                    "type": "number",
                    "description": "The total net supplier payable amount.",
                    "example": 2617.35
                  },
                  "invoicedGross": {
                    "type": "number",
                    "description": "The total invoiced gross amount.",
                    "example": 2496.25
                  },
                  "currencyCode": {
                    "type": "string",
                    "description": "A code uniquely identifying the currency.",
                    "example": "USD"
                  },
                  "taxJobCategory": {
                    "type": "object",
                    "description": "The tax job category details.",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The tax job category name.",
                        "example": "TaxJobCategoryName"
                      },
                      "code": {
                        "type": "string",
                        "description": "The tax job category code.",
                        "example": "TJCN"
                      }
                    }
                  },
                  "clientInvoiceNumbers": {
                    "type": "object",
                    "description": "The client invoice numbers.",
                    "properties": {
                      "invoiceNumber2": {
                        "type": "string",
                        "description": "The client invoice number 2.",
                        "example": "12122A2473259"
                      },
                      "invoiceNumber3": {
                        "type": "string",
                        "description": "The client invoice number 3.",
                        "example": "12122A2473260"
                      },
                      "invoiceNumber4": {
                        "type": "string",
                        "description": "The client invoice number 4.",
                        "example": "12122A2473261"
                      },
                      "invoiceNumber5": {
                        "type": "string",
                        "description": "The client invoice number 5.",
                        "example": "12122A2473262"
                      }
                    }
                  },
                  "clientDefinedValues": {
                    "type": "array",
                    "description": "A list of client-defined values.",
                    "items": {
                      "type": "object",
                      "description": "The client-defined value details.",
                      "properties": {
                        "code": {
                          "type": "string",
                          "description": "The client-defined value code.",
                          "example": "COSTCENTERSUBCODE"
                        },
                        "typeName": {
                          "type": "string",
                          "description": "The client-defined value type.",
                          "example": "COSTCENTER"
                        },
                        "value": {
                          "type": "string",
                          "description": "The client-defined value.",
                          "example": "7501"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "invoice-status": {
        "type": "string",
        "enum": [
          "notStarted",
          "inProgress",
          "successful",
          "failed",
          "void",
          "awaitingFinancialApproval",
          "rejected",
          "pending",
          "feedReprocessing",
          "approvalPending",
          "approvalFailed",
          "approvalProcessing",
          "rollbackPending",
          "rolledback",
          "rollbackProcessing",
          "rollbackFailed"
        ]
      },
      "invoice-model": {
        "type": "object",
        "required": [
          "invoiceId"
        ],
        "properties": {
          "invoiceId": {
            "type": "integer",
            "description": "A unique identifier of the invoice.",
            "example": 1000
          },
          "invoiceStatus": {
            "description": "The invoice schedule status.",
            "type": "string",
            "enum": [
              "notStarted",
              "inProgress",
              "successful",
              "failed",
              "void",
              "awaitingFinancialApproval",
              "rejected",
              "pending",
              "feedReprocessing",
              "approvalPending",
              "approvalFailed",
              "approvalProcessing",
              "rollbackPending",
              "rolledback",
              "rollbackProcessing",
              "rollbackFailed"
            ]
          },
          "categoryName": {
            "type": "string",
            "description": "The invoice category name.",
            "example": "US Staff Aug Prelim Time"
          },
          "headerStartDate": {
            "type": "string",
            "format": "date",
            "description": "- The invoice billing start date.\n- Supported date format is ISO 8601.\n- Date must be between 1900-01-01 and 2079-06-06.\n",
            "example": "2024-01-18"
          },
          "headerEndDate": {
            "type": "string",
            "format": "date",
            "description": "- The invoice billing end date.\n- Supported date format is ISO 8601.\n- Date must be between 1900-01-01 and 2079-06-06.\n",
            "example": "2024-01-18"
          },
          "scheduledRunDate": {
            "type": "string",
            "format": "date-time",
            "description": "- The scheduled run date of the invoice.\n- Supported date/time format is ISO 8601.\n",
            "example": "2024-01-18T14:30:00Z"
          },
          "statementDate": {
            "type": "string",
            "format": "date-time",
            "description": "- The statement date of the invoice.\n- Supported date/time format is ISO 8601.\n",
            "example": "2024-01-18T14:30:00Z"
          }
        }
      },
      "error": {
        "required": [
          "code",
          "message"
        ],
        "type": "object",
        "properties": {
          "code": {
            "enum": [
              "UNEXPECTED_ERROR",
              "VALIDATION_ERROR",
              "NOT_FOUND",
              "REQUEST_LIMIT_EXCEEDED",
              "UNSUPPORTED_API_VERSION",
              "CONFLICT"
            ],
            "type": "string",
            "description": "One of a server-defined set of error codes."
          },
          "message": {
            "type": "string",
            "description": "The human-readable representation of the error."
          },
          "target": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "error-response": {
        "type": "object",
        "description": "A list of errors.",
        "properties": {
          "errors": {
            "type": "array",
            "items": {
              "required": [
                "code",
                "message"
              ],
              "type": "object",
              "properties": {
                "code": {
                  "enum": [
                    "UNEXPECTED_ERROR",
                    "VALIDATION_ERROR",
                    "NOT_FOUND",
                    "REQUEST_LIMIT_EXCEEDED",
                    "UNSUPPORTED_API_VERSION",
                    "CONFLICT"
                  ],
                  "type": "string",
                  "description": "One of a server-defined set of error codes."
                },
                "message": {
                  "type": "string",
                  "description": "The human-readable representation of the error."
                },
                "target": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              }
            }
          }
        }
      },
      "empty-response": {
        "type": "null"
      },
      "payment-type": {
        "type": "string",
        "enum": [
          "staffAugTimesheet",
          "staffAugExpense",
          "staffAugMiscFee",
          "projectServiceTimesheet",
          "projectServiceMiscFee",
          "projectServiceMilestone",
          "projectServiceExpense"
        ]
      },
      "saps4hana-invoice-data-model": {
        "type": "object",
        "required": [
          "invoiceId",
          "paymentId"
        ],
        "properties": {
          "invoiceId": {
            "type": "integer",
            "description": "A unique identifier of the invoice.",
            "example": 1000
          },
          "paymentId": {
            "type": "string",
            "description": "A unique identifier of the payment. Timesheet header id for Timesheet, Voucher id for Expense, Miscellaneous fee id for Miscellaneous fee, and Milestone payment id for Milestone payment.",
            "example": "190203"
          },
          "paymentType": {
            "description": "The payment type.",
            "type": "string",
            "enum": [
              "staffAugTimesheet",
              "staffAugExpense",
              "staffAugMiscFee",
              "projectServiceTimesheet",
              "projectServiceMiscFee",
              "projectServiceMilestone",
              "projectServiceExpense"
            ]
          },
          "clientInvoiceNumber": {
            "type": "string",
            "description": "The client invoice number.",
            "example": "12122A2473258"
          },
          "assignmentNumber": {
            "type": "integer",
            "description": "The assignment number.",
            "example": 28032
          },
          "lastName": {
            "type": "string",
            "description": "The last name of the worker.",
            "example": "Anthropy"
          },
          "firstName": {
            "type": "string",
            "description": "The first name of the worker.",
            "example": "Phillip"
          },
          "organizationUnits": {
            "type": "array",
            "description": "A list of organization units.",
            "items": {
              "type": "object",
              "description": "The organization unit.",
              "properties": {
                "code": {
                  "type": "string",
                  "description": "The organization unit code.",
                  "example": "1775"
                },
                "levelAbove": {
                  "type": "integer",
                  "description": "The roll up hierarchy of the organization unit code. i.e. if value for level above is 0, this means that the OU code is at the top level (no higher OU code is above it).",
                  "example": 1
                }
              }
            }
          },
          "supplier": {
            "type": "object",
            "description": "The supplier details.",
            "properties": {
              "code": {
                "type": "string",
                "description": "The supplier code.",
                "example": "SupplierCode"
              },
              "apCode": {
                "type": "string",
                "description": "The AP code of the supplier.",
                "example": "SupplierAPCode"
              },
              "externalCode": {
                "type": "string",
                "description": "The external code of the supplier.",
                "example": "SupplierExternalCode"
              }
            }
          },
          "workLocation": {
            "type": "object",
            "description": "The work location.",
            "properties": {
              "line1": {
                "type": "string",
                "description": "The first line of the address, typically containing the street number and street name.",
                "example": "123 Technological Pkwy."
              },
              "line2": {
                "type": "string",
                "description": "The second line of the address, typically containing additional information such as apartment or suite number, building name, or floor number.",
                "example": "Suite 1000"
              },
              "stateCode": {
                "type": "string",
                "description": "The code or abbreviation for the state or region of the address.",
                "example": "IA"
              },
              "county": {
                "type": "string",
                "description": "The county name.",
                "example": "Black Hawk County"
              },
              "countryCode": {
                "type": "string",
                "description": "The alpha-2 code for the country of the address, typically a two-letter code such as \"US\" for the United States or \"CA\" for Canada.",
                "example": "US"
              },
              "postalCode": {
                "type": "string",
                "description": "The postal or zip code of the address.",
                "example": "50320"
              }
            }
          },
          "paymentDetails": {
            "type": "array",
            "description": "A list of invoice payment details.",
            "items": {
              "type": "object",
              "description": "The invoice payment details.",
              "properties": {
                "costCenter": {
                  "type": "object",
                  "description": "The cost center.",
                  "properties": {
                    "number": {
                      "type": "string",
                      "description": "The cost center number.",
                      "example": "CC123"
                    }
                  }
                },
                "earningCode": {
                  "type": "string",
                  "description": "The pay code of the timesheet.",
                  "example": "RT"
                },
                "expenseType": {
                  "type": "string",
                  "description": "The GL account of the expense.",
                  "example": "GLAccount"
                },
                "miscFeeCode": {
                  "type": "string",
                  "description": "The Miscellaneous fee code.",
                  "example": "MFCode"
                },
                "milestonePaymentType": {
                  "type": "string",
                  "description": "The Milestone payment type.",
                  "example": "MPType"
                },
                "weekStartDate": {
                  "type": "string",
                  "format": "date",
                  "description": "- The start date of the timesheet.\n- Supported date format is ISO 8601.\n- Date must be between 1900-01-01 and 2079-06-06.\n",
                  "example": "2017-03-01"
                },
                "weekEndDate": {
                  "type": "string",
                  "format": "date",
                  "description": "- The end date of the timesheet.\n- Supported date format is ISO 8601.\n- Date must be between 1900-01-01 and 2079-06-06.\n",
                  "example": "2017-03-31"
                },
                "expenseDate": {
                  "type": "string",
                  "format": "date",
                  "description": "- The expense date.\n- Supported date format is ISO 8601.\n- Date must be between 1900-01-01 and 2079-06-06.\n",
                  "example": "2017-03-02"
                },
                "effectiveDate": {
                  "type": "string",
                  "format": "date",
                  "description": "- The effective date of miscellaneous fee.\n- Supported date format is ISO 8601.\n- Date must be between 1900-01-01 and 2079-06-06.\n",
                  "example": "2017-03-03"
                },
                "scheduledDate": {
                  "type": "string",
                  "format": "date",
                  "description": "- The intended payment date of the Milestone payment.\n- Supported date format is ISO 8601.\n- Date must be between 1900-01-01 and 2079-06-06.\n",
                  "example": "2017-03-04"
                },
                "invoicedUnits": {
                  "type": "number",
                  "description": "The total number of invoiced units.",
                  "example": 64.15
                },
                "invoicedNetSupplierPayable": {
                  "type": "number",
                  "description": "The total net supplier payable amount.",
                  "example": 2617.35
                },
                "invoicedGross": {
                  "type": "number",
                  "description": "The total invoiced gross amount.",
                  "example": 2496.25
                },
                "currencyCode": {
                  "type": "string",
                  "description": "A code uniquely identifying the currency.",
                  "example": "USD"
                },
                "taxJobCategory": {
                  "type": "object",
                  "description": "The tax job category details.",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "The tax job category name.",
                      "example": "TaxJobCategoryName"
                    },
                    "code": {
                      "type": "string",
                      "description": "The tax job category code.",
                      "example": "TJCN"
                    }
                  }
                },
                "clientInvoiceNumbers": {
                  "type": "object",
                  "description": "The client invoice numbers.",
                  "properties": {
                    "invoiceNumber2": {
                      "type": "string",
                      "description": "The client invoice number 2.",
                      "example": "12122A2473259"
                    },
                    "invoiceNumber3": {
                      "type": "string",
                      "description": "The client invoice number 3.",
                      "example": "12122A2473260"
                    },
                    "invoiceNumber4": {
                      "type": "string",
                      "description": "The client invoice number 4.",
                      "example": "12122A2473261"
                    },
                    "invoiceNumber5": {
                      "type": "string",
                      "description": "The client invoice number 5.",
                      "example": "12122A2473262"
                    }
                  }
                },
                "clientDefinedValues": {
                  "type": "array",
                  "description": "A list of client-defined values.",
                  "items": {
                    "type": "object",
                    "description": "The client-defined value details.",
                    "properties": {
                      "code": {
                        "type": "string",
                        "description": "The client-defined value code.",
                        "example": "COSTCENTERSUBCODE"
                      },
                      "typeName": {
                        "type": "string",
                        "description": "The client-defined value type.",
                        "example": "COSTCENTER"
                      },
                      "value": {
                        "type": "string",
                        "description": "The client-defined value.",
                        "example": "7501"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "securitySchemes": {
      "client_auth": {
        "type": "oauth2",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "https://integrations.auth.beeline.com/oauth/token",
            "scopes": {
              "read:invoice": "Read access to the Invoice Management Services"
            }
          }
        }
      }
    },
    "examples": {
      "rate-limit-error-response": {
        "value": {
          "errors": [
            {
              "code": "REQUEST_LIMIT_EXCEEDED",
              "message": "API calls quota exceeded! Maximum admitted 1000 per 1m."
            }
          ]
        }
      }
    }
  }
}