openapi: 3.0.3 info: title: Procurify API Documentation version: '' description: ' # Disclaimer - Procurify’s API is evolving and is subject to change at any time. Additionally, aspects of the API are undocumented, including certain methods, events, and properties. Given that both documented and undocumented aspects of the Procurify API may change at any time, the client relies on the API at their own risk. - Client (and/or client’s representative) is responsible for building, testing, and maintaining any API connection between Procurify and any other tool. Procurify’s responsibility strictly involves providing support on clarifications in regards to the issued API document. - Procurify’s API is offered on an “as is” and “as available” basis, without warranties of any kind. By accepting this agreement, you agree that you have read the current API documentation, and accept the API functionality in its current state including current limitations. For questions and clarification around the documentation, please contact support@procurify.com. - In accordance with Section 2.(b) of our Subscription Services Agreement, Procurify reserves the right to deny access to our API at any time. If your API requests are too large and time out, contact us immediately to avoid possible suspension of access. - You may not attempt to reverse engineer or otherwise derive source code, trade secrets, or know-how in the Procurify API or portion thereof. You may not use the Procurify API to replicate or compete with core products or services offered by Procurify. ' servers: - url: https://{user_domain}.procurify.com description: Your Procurify domain variables: user_domain: default: your-domain description: Your procurify domain tags: - name: oauth - name: permissions - name: users - name: locations - name: departments - name: account-codes - name: accounts - name: vendors - name: currencies - name: catalog - name: requisitions - name: purchase-orders - name: order-items - name: ap - name: custom-fields paths: /api/public/v1/pay/transactions/: get: operationId: public_v1_pay_transactions_list description: 'Returns a list of all closed (fully captured, not just authorizations) transactions across all issued cards on the platform, regardless of the cards current status.' summary: List Transactions parameters: - in: query name: end_date schema: type: string format: date-time - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: reconciliation_status schema: type: integer enum: - pending - reviewed description: 'The reconciliation status of the transaction designated by accounts payable * `reviewed` - Reviewed * `pending` - Pending' - in: query name: start_date schema: type: string format: date-time tags: - public security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedTransactionList' description: '' /api/public/v1/payments/: get: operationId: public_v1_payments_list summary: List Payments parameters: - in: query name: bill_groups schema: type: array items: type: integer description: Filter payments by a comma-separated list of bill group IDs. explode: false style: form - in: query name: created_at_after schema: type: string format: date-time description: Filter payments created on or after this date. - in: query name: created_at_before schema: type: string format: date-time description: Filter payments created on or before this date. - in: query name: currency schema: type: integer description: Filter payments by currency ID. - in: query name: ids schema: type: array items: type: integer description: Filter payments by a comma-separated list of payment IDs. explode: false style: form - in: query name: invoice_number schema: type: string description: Filter payments by exact bill invoice number. - in: query name: order_by schema: type: string enum: - -created_at - -updated_at - created_at - updated_at description: Order results by field. Prefix with '-' for descending order. - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: payment_amount schema: type: number description: Filter payments with an amount equal to this value. - in: query name: processing_date_after schema: type: string format: date-time description: Filter payments with a processing date on or after this date. - in: query name: processing_date_before schema: type: string format: date-time description: Filter payments with a processing date on or before this date. - in: query name: status schema: type: array items: type: string enum: - approved - denied - draft - failed - paid - pending_approval - processing - scheduled description: 'Filter payments by status. Accepts a comma-separated list of statuses. * `draft` - draft * `pending_approval` - pending_approval * `approved` - approved * `denied` - denied * `paid` - paid * `processing` - processing * `failed` - failed * `scheduled` - scheduled' explode: false style: form - in: query name: updated_at_after schema: type: string format: date-time description: Filter payments updated on or after this date. - in: query name: updated_at_before schema: type: string format: date-time description: Filter payments updated on or before this date. - in: query name: vendor schema: type: integer description: Filter payments by vendor ID. tags: - public security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedPaymentResponseList' description: '' /api/v2/ap/bills/{id}/: get: operationId: ap_bills_retrieve description: ' ' summary: Get Bill by ID parameters: - in: query name: format schema: type: string enum: - csv - json - in: path name: id schema: type: string pattern: ^[0-9a-f-]+$ required: true tags: - ap security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/BillMetadataBillRead' text/csv: schema: $ref: '#/components/schemas/BillMetadataBillRead' description: '' /api/v2/ap/company-payment-methods/: get: operationId: ap_company_payment_methods_list description: '**Payment Method Types:** | Payment Method | Type | |----------------|-----------| | OTHER | 0 | | CHECK/CHEQUE | 1 | | ACH | 2 | | EFT | 3 | | WIRE | 4 | **The context of ''data'' field varies based on different Payment Method type:** | Payment Method | ''data'' field structure | |----------------|------------------------| | OTHER | ```{"description": }``` | | CHECK/CHEQUE | ```{"payable_to": }``` | | ACH | ```{"routing_number": , "account_number": , "company_name": }``` | ' summary: Get list of Company Payment Methods parameters: - in: query name: currency schema: type: integer - in: query name: format schema: type: string enum: - csv - json - name: order_by required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - in: query name: type schema: type: integer title: Payment Method enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 description: '* `0` - OTHER * `1` - CHECK * `2` - ACH * `3` - EFT * `4` - WIRE * `5` - PROCURIFY_CHECK * `6` - PROCURIFY_ACH * `7` - PROCURIFY_WIRE * `8` - AIRWALLEX' tags: - ap security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedCompanyPaymentMethodReadList' examples: CompanyPaymentMethods: value: metadata: pagination: count: 10 next: null previous: null page_size: 10 num_pages: 1 current_page: 1 data: - id: 1 name: Bank Account type: 0 data: description: Bank Account description currency: id: 3 name: USD description: '' rate: '1.000000' base: true active: true gl_code: '9000' summary: Company Payment Methods text/csv: schema: $ref: '#/components/schemas/PaginatedCompanyPaymentMethodReadList' description: '' post: operationId: ap_company_payment_methods_create description: '**Payment Method Types:** | Payment Method | Type | |----------------|-----------| | OTHER | 0 | | CHECK/CHEQUE | 1 | | ACH | 2 | | EFT | 3 | | WIRE | 4 | **The context of ''data'' field varies based on different Payment Method type:** | Payment Method | ''data'' field structure | |----------------|------------------------| | OTHER | ```{"description": }``` | | CHECK/CHEQUE | ```{"payable_to": }``` | | ACH | ```{"routing_number": , "account_number": , "company_name": }``` | ' summary: Create Company Payment Method parameters: - in: query name: format schema: type: string enum: - csv - json tags: - ap requestBody: content: application/json: schema: $ref: '#/components/schemas/CompanyPaymentMethodRequest' examples: CompanyPaymentMethodPayloadExample: value: name: Bank Account type: 0 data: description: Bank Account description gl_code: '9000' currency: 3 summary: Company Payment Method Payload Example application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CompanyPaymentMethodRequest' ? '' : schema: $ref: '#/components/schemas/CompanyPaymentMethodRequest' examples: CompanyPaymentMethodPayloadExample: value: name: Bank Account type: 0 data: description: Bank Account description gl_code: '9000' currency: 3 summary: Company Payment Method Payload Example application/xml: schema: $ref: '#/components/schemas/CompanyPaymentMethodRequest' multipart/form-data: schema: $ref: '#/components/schemas/CompanyPaymentMethodRequest' required: true security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/CompanyPaymentMethod' examples: CompanyPaymentMethodResponseExample: value: id: 1 name: Bank Account type: 0 data: description: Bank Account description currency: id: 3 name: USD description: '' rate: '1.000000' base: true active: true gl_code: '9000' summary: Company Payment Method Response Example text/csv: schema: $ref: '#/components/schemas/CompanyPaymentMethod' description: '' /api/v2/ap/items/: get: operationId: ap_items_list description: ' ' summary: Get Unbilled/Billed Items parameters: - in: query name: bill schema: type: integer - in: query name: bill_uuid schema: type: string format: uuid - in: query name: billed schema: type: boolean - in: query name: budget schema: type: integer - in: query name: created_at_0 schema: type: string format: date - in: query name: created_at_1 schema: type: string format: date - in: query name: department schema: type: number - in: query name: exclude schema: type: string - in: query name: format schema: type: string enum: - csv - json - in: query name: location schema: type: number - name: order_by required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: received_on_0 schema: type: string format: date - in: query name: received_on_1 schema: type: string format: date - in: query name: reimburse schema: type: boolean - in: query name: requester schema: type: number - name: search required: false in: query description: A search term. schema: type: string - in: query name: vendor schema: type: integer tags: - ap security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ItemMetadataItemRead' text/csv: schema: $ref: '#/components/schemas/ItemMetadataItemRead' description: '' /api/v2/ap/payments/: get: operationId: ap_payments_list description: Deprecated method for listing Payment objects. Pending removal after June 5, 2026. See List Payments in the public section. summary: Get Payments parameters: - in: query name: approver schema: type: integer - in: query name: currency schema: type: integer - in: query name: format schema: type: string enum: - csv - json - name: order_by required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: payment_date_0 schema: type: string format: date - in: query name: payment_date_1 schema: type: string format: date - in: query name: payment_method__type schema: type: integer title: Payment Method enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 description: '* `0` - OTHER * `1` - CHECK * `2` - ACH * `3` - EFT * `4` - WIRE * `5` - PROCURIFY_CHECK * `6` - PROCURIFY_ACH * `7` - PROCURIFY_WIRE * `8` - AIRWALLEX' - name: search required: false in: query description: A search term. schema: type: string tags: - ap security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] deprecated: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaymentMetadataPaymentListRead' text/csv: schema: $ref: '#/components/schemas/PaymentMetadataPaymentListRead' description: '' /api/v2/ap/payments/{id}/approver-choices/: get: operationId: ap_payments_approver_choices_retrieve summary: Get Approver Choices parameters: - in: query name: format schema: type: string enum: - csv - json - in: path name: id schema: type: integer description: A unique integer value identifying this payment. required: true tags: - ap security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ApproverChoicesMetadataApproverReadDocs' text/csv: schema: $ref: '#/components/schemas/ApproverChoicesMetadataApproverReadDocs' description: '' /api/v2/ap/vendor-payment-methods/: get: operationId: ap_vendor_payment_methods_list description: '**Payment Method Types:** | Payment Method | Type | |----------------|-----------| | OTHER | 0 | | CHECK/CHEQUE | 1 | | ACH | 2 | | EFT | 3 | | WIRE | 4 | **The context of ''data'' field varies based on different Payment Method type:** | Payment Method | ''data'' field structure | |----------------|------------------------| | OTHER | ```{"description": }``` | | CHECK/CHEQUE | ```{"payable_to": }``` | | ACH | ```{"routing_number": , "account_number": , "company_name": }``` | ' summary: Get list of Vendor Payment Methods parameters: - in: query name: category schema: type: string enum: - external - managed description: '* `managed` - Managed payment methods that actually pay bills * `external` - External payment methods used to manually track bill payments' - in: query name: currency schema: type: integer - in: query name: format schema: type: string enum: - csv - json - name: order_by required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - in: query name: type schema: type: integer title: Payment Method enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 description: '* `0` - OTHER * `1` - CHECK * `2` - ACH * `3` - EFT * `4` - WIRE * `5` - PROCURIFY_CHECK * `6` - PROCURIFY_ACH * `7` - PROCURIFY_WIRE * `8` - AIRWALLEX' - in: query name: vendor schema: type: integer tags: - ap security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedVendorPaymentMethodReadList' examples: ListVendorPaymentMethodsResponseExample: value: metadata: pagination: count: 10 next: null previous: null page_size: 10 num_pages: 1 current_page: 1 data: - id: 1 vendor: 10 name: Technology Inc ACH 98G395E type: 2 data: company_name: ABC Technology Inc account_number: '****0021' routing_number: '****7892' currency: id: 3 name: USD description: '' rate: '1.000000' base: true active: true summary: List Vendor Payment Methods Response Example text/csv: schema: $ref: '#/components/schemas/PaginatedVendorPaymentMethodReadList' description: '' post: operationId: ap_vendor_payment_methods_create description: '**Payment Method Types:** | Payment Method | Type | |----------------|-----------| | OTHER | 0 | | CHECK/CHEQUE | 1 | | ACH | 2 | | EFT | 3 | | WIRE | 4 | **The context of ''data'' field varies based on different Payment Method type:** | Payment Method | ''data'' field structure | |----------------|------------------------| | OTHER | ```{"description": }``` | | CHECK/CHEQUE | ```{"payable_to": }``` | | ACH | ```{"routing_number": , "account_number": , "company_name": }``` | ' summary: Create Vendor Payment Method parameters: - in: query name: format schema: type: string enum: - csv - json tags: - ap requestBody: content: application/json: schema: $ref: '#/components/schemas/VendorPaymentMethodRequest' examples: VendorPaymentMethodPayloadExample: value: vendor: 10 name: Technology Inc ACH 98G395E type: 2 data: company_name: ABC Technology Inc account_number: '****0021' routing_number: '****7892' currency: 3 summary: Vendor Payment Method Payload Example application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/VendorPaymentMethodRequest' ? '' : schema: $ref: '#/components/schemas/VendorPaymentMethodRequest' examples: VendorPaymentMethodPayloadExample: value: vendor: 10 name: Technology Inc ACH 98G395E type: 2 data: company_name: ABC Technology Inc account_number: '****0021' routing_number: '****7892' currency: 3 summary: Vendor Payment Method Payload Example application/xml: schema: $ref: '#/components/schemas/VendorPaymentMethodRequest' multipart/form-data: schema: $ref: '#/components/schemas/VendorPaymentMethodRequest' required: true security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/VendorPaymentMethodRead' examples: VendorPaymentMethodResponseExample: value: id: 1 vendor: 10 name: Technology Inc ACH 98G395E type: 2 data: company_name: ABC Technology Inc account_number: '****0021' routing_number: '****7892' currency: id: 3 name: USD description: '' rate: '1.000000' base: true active: true summary: Vendor Payment Method Response Example text/csv: schema: $ref: '#/components/schemas/VendorPaymentMethodRead' description: '' /api/v2/currencies/: get: operationId: currencies_list summary: Get Active/Inactive Currencies parameters: - in: query name: active schema: type: boolean - in: query name: base schema: type: boolean - in: query name: description schema: type: string - in: query name: format schema: type: string enum: - csv - json - in: query name: name schema: type: string - name: order_by required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: rate schema: type: number - name: search required: false in: query description: A search term. schema: type: string tags: - currencies security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedCurrencyList' text/csv: schema: $ref: '#/components/schemas/PaginatedCurrencyList' description: '' /api/v2/global/order_items/: get: operationId: global_order_items_list description: '**Order Item Status Codes** | Order Item Type | Code | Description | |--------------------------|-----------|-----------------------------------| | PURCHASE_PENDING | 0 | Approved but not purchased. | | PURCHASE_INUSE | 1 | Added to purchaser''s PO list. | | RECEIVE_PENDING | 2 | Purchased but not yet received, i.e. receivedPassQty == 0. | | RECEIVED | 3 | Fully received, i.e. receivedPassQty == quantity. | | REJECTED_FOR_PURCHASE | 4 | Rejected at procurement, i.e. denied. | | RECEIVE_PARTIAL | 5 | Partially received, i.e. receivedPassQty != quantity and receivedPassQty > 0. | | FULFILLED | 6 | Received but unused. | | APPROVAL_DENIED | 7 | Denied in approval routing (by approver). | | REQUEST_DRAFT | 8 | Preparing for draft instead of using sessions. |' summary: Get All Order Items parameters: - in: query name: account schema: type: integer - in: query name: account_code schema: type: integer description: Account Code - in: query name: active schema: type: boolean - in: query name: approved_datetime_0 schema: type: string format: date description: Approved Date - in: query name: approved_datetime_1 schema: type: string format: date description: Approved Date - in: query name: approved_price schema: type: number - in: query name: approved_quantity schema: type: number - in: query name: approver schema: type: number - in: query name: approver_id schema: type: number - in: query name: branch schema: type: integer description: Location - in: query name: catalog schema: type: boolean - in: query name: catalog_item schema: type: string description: A comma-separated list of integers. - in: query name: currency schema: type: integer - in: query name: department schema: type: integer description: Department - in: query name: departments schema: type: string description: A comma-separated list of integers. - in: query name: exclude schema: type: string description: A comma-separated list of integers. - in: query name: exclude_punchout schema: type: boolean - in: query name: format schema: type: string enum: - csv - json - in: query name: fulfilment_status schema: type: string - in: query name: is_purchased schema: type: boolean - in: query name: is_recurring schema: type: boolean - in: query name: last_changed_by schema: type: integer - in: query name: last_modified_0 schema: type: string format: date description: Last Modified Date - in: query name: last_modified_1 schema: type: string format: date description: Last Modified Date - in: query name: lineComment schema: type: string - in: query name: location schema: type: integer description: Location - in: query name: locations schema: type: string description: A comma-separated list of integers. - in: query name: name schema: type: string - in: query name: num schema: type: string - in: query name: orderNum schema: type: integer - in: query name: orderNum__status schema: type: integer enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 description: '* `0` - Pending * `1` - Approved * `2` - Denied * `3` - Purchased * `4` - Cancelled * `5` - Received * `6` - Draft' - name: order_by required: false in: query description: Which field to use when ordering the results. schema: type: string - in: query name: order_created_date_0 schema: type: string format: date description: Order Created Date - in: query name: order_created_date_1 schema: type: string format: date description: Order Created Date - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: po_created_date_0 schema: type: string format: date description: Purchased Date - in: query name: po_created_date_1 schema: type: string format: date description: Purchased Date - in: query name: po_vendor schema: type: integer description: Purchased Vendor - in: query name: pref_vendor schema: type: integer - in: query name: price schema: type: number - in: query name: purchase_agreement schema: type: number - in: query name: purchased_date_0 schema: type: string format: date description: Purchased Date - in: query name: purchased_date_1 schema: type: string format: date description: Purchased Date - in: query name: purchaser schema: type: integer - in: query name: quantity schema: type: number - in: query name: receivedFailQty schema: type: number - in: query name: receivedPassQty schema: type: number - in: query name: requester schema: type: integer description: Requester - name: search required: false in: query description: A search term. schema: type: string - in: query name: sku schema: type: string - in: query name: status schema: type: integer nullable: true enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 description: '* `0` - Purchase Pending * `1` - Purchaser In-Use * `2` - Receive Pending * `3` - Received * `4` - Rejected for Purchase * `5` - Partial Received * `6` - Fulfilled * `7` - Approval Denied * `8` - Request Draft' - in: query name: type schema: type: integer enum: - 0 - 1 - 2 description: '* `0` - One Time * `1` - Recurring * `2` - Blanket' - in: query name: unit schema: type: string tags: - requisitions security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedOrderItemList' text/csv: schema: $ref: '#/components/schemas/PaginatedOrderItemList' description: '' /api/v2/global/orders/: get: operationId: global_orders_list description: '**Order Status Codes** | Order Type | Code | |---------------------|-----------| | PENDING | 0 | | APPROVED | 1 | | REJECTED | 2 | | PURCHASED | 3 | | CANCELLED (legacy) | 4 | | RECEIVED | 5 | | DRAFT | 6 |' summary: Get All Orders parameters: - in: query name: account_code schema: type: integer description: Account Code - in: query name: branch schema: type: integer - in: query name: dateRequired schema: type: string format: date-time - in: query name: date_0 schema: type: string format: date description: Date - in: query name: date_1 schema: type: string format: date description: Date - in: query name: department schema: type: integer - in: query name: format schema: type: string enum: - csv - json - in: query name: has_blanket_order_items schema: type: boolean - in: query name: is_punchout schema: type: boolean - in: query name: lineCount schema: type: integer - in: query name: location schema: type: integer - in: query name: modified_date_0 schema: type: string format: date description: Last Modified Date - in: query name: modified_date_1 schema: type: string format: date description: Last Modified Date - in: query name: order schema: type: number description: Order - name: order_by required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: pref_vendor schema: type: integer description: Preferred Vendor - in: query name: requester schema: type: integer description: Requester - in: query name: required_date_0 schema: type: string format: date description: Date Required - in: query name: required_date_1 schema: type: string format: date description: Date Required - name: search required: false in: query description: A search term. schema: type: string - in: query name: status schema: type: integer enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 description: '* `0` - Pending * `1` - Approved * `2` - Denied * `3` - Purchased * `4` - Cancelled * `5` - Received * `6` - Draft' - in: query name: totalPrice schema: type: number tags: - requisitions security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedOrderReadList' text/csv: schema: $ref: '#/components/schemas/PaginatedOrderReadList' description: '' /api/v2/locations/: get: operationId: locations_list summary: Get Locations parameters: - in: query name: active schema: type: boolean - in: query name: format schema: type: string enum: - csv - json - in: query name: headquarter schema: type: boolean - name: order_by required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string tags: - locations security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedLocationViewList' text/csv: schema: $ref: '#/components/schemas/PaginatedLocationViewList' description: '' post: operationId: locations_create description: 'Create New Location. Note: only users with superuser permission can create locations.' summary: Create New Location parameters: - in: query name: format schema: type: string enum: - csv - json tags: - locations requestBody: content: application/json: schema: $ref: '#/components/schemas/LocationCreateUpsertRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/LocationCreateUpsertRequest' ? '' : schema: $ref: '#/components/schemas/LocationCreateUpsertRequest' application/xml: schema: $ref: '#/components/schemas/LocationCreateUpsertRequest' multipart/form-data: schema: $ref: '#/components/schemas/LocationCreateUpsertRequest' required: true security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/LocationViewSerializerSingleCreate' text/csv: schema: $ref: '#/components/schemas/LocationViewSerializerSingleCreate' description: '' /api/v2/locations/{id}/: get: operationId: locations_retrieve summary: Get Location by ID parameters: - in: query name: format schema: type: string enum: - csv - json - in: path name: id schema: type: string required: true tags: - locations security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/LocationViewSerializerSingleRetrieve' text/csv: schema: $ref: '#/components/schemas/LocationViewSerializerSingleRetrieve' description: '' /api/v2/purchase_order/revise/{procurify_PO}/: put: operationId: purchase_order_revise_update description: Deprecated method for revising a purchase order. Pending removable after November 16, 2023. Use `PUT` on `/api/v3/purchase-orders/{id}` instead. summary: Revise a Purchase Order parameters: - in: query name: confirm_duplicate_external_po_number schema: type: string enum: - 'False' - 'True' default: 'False' description: Mechanism to check for duplicate custom PO number. If there is a duplicate, API will fail unless this query param is set to True. - in: query name: format schema: type: string enum: - csv - json - in: path name: procurify_PO schema: type: integer title: Procurify PO Number description: A unique integer value identifying this po. required: true tags: - purchase-orders requestBody: content: application/json: schema: $ref: '#/components/schemas/PurchaseOrderUpdateRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PurchaseOrderUpdateRequest' ? '' : schema: $ref: '#/components/schemas/PurchaseOrderUpdateRequest' application/xml: schema: $ref: '#/components/schemas/PurchaseOrderUpdateRequest' multipart/form-data: schema: $ref: '#/components/schemas/PurchaseOrderUpdateRequest' required: true security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] deprecated: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/PurchaseOrderDetailSerializerSingle' text/csv: schema: $ref: '#/components/schemas/PurchaseOrderDetailSerializerSingle' description: '' /api/v2/purchase_orders/{id}/: get: operationId: purchase_orders_retrieve description: '**Purchase Order State Codes** | Order Type | Code | |---------------------|-----------| | PURCHASED | 0 | | CANCELLED | 1 | | (legacy code) | 2 | | CLOSED | 3 | | PAID | 4 | | REOPENED | 5 |' summary: Get Purchase Order by ID (with items) parameters: - in: query name: format schema: type: string enum: - csv - json - in: path name: id schema: type: string description: Procurify PO or UUID required: true tags: - purchase-orders security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ApiNestedEditDeletePurchaseOrderDetail' text/csv: schema: $ref: '#/components/schemas/ApiNestedEditDeletePurchaseOrderDetail' description: '' /api/v2/purchase_orders/{role}/{status}/: get: operationId: purchase_orders_list summary: Get Purchase Orders by Role & Status parameters: - in: query name: account_code schema: type: integer description: Account Code - in: query name: contract schema: type: integer description: Contract - in: query name: currency schema: type: integer description: Currency - in: query name: date_0 schema: type: string format: date description: 'YYYY-MM-DD (start date): Filter POs by Created Date range' - in: query name: date_1 schema: type: string format: date description: 'YYYY-MM-DD (end date): Filter POs by Created Date range' - in: query name: expiry_date_0 schema: type: string format: date description: Expiry Date - in: query name: expiry_date_1 schema: type: string format: date description: Expiry Date - in: query name: has_blanket_order_items schema: type: boolean - in: query name: modified_date_0 schema: type: string format: date description: 'YYYY-MM-DD (start date): Filter POs by Last Modified Date range' - in: query name: modified_date_1 schema: type: string format: date description: 'YYYY-MM-DD (end date): Filter POs by Last Modified Date range' - in: query name: order_by schema: type: string description: Sort by field - in: query name: page schema: type: integer - in: query name: page_size schema: type: integer - in: query name: pref_vendor schema: type: integer description: ID of Vendor - in: query name: promise_date_0 schema: type: string format: date description: 'YYYY-MM-DD (start date): Filter POs by Promise Date range' - in: query name: promise_date_1 schema: type: string format: date description: 'YYYY-MM-DD (end date): Filter POs by Promise Date range' - in: query name: purchase_order schema: type: integer description: Purchase Order - in: query name: purchaser schema: type: integer description: Purchaser - in: query name: requester schema: type: integer description: Requester - in: path name: role schema: type: string enum: - purchased - receivable required: true - in: path name: status schema: type: string enum: - all - cancelled - closed - open - paid - partial required: true - in: query name: total_0 schema: type: string format: decimal pattern: ^-?\d{0,17}(?:\.\d{0,2})?$ title: Total Cost description: Total - in: query name: total_1 schema: type: string format: decimal pattern: ^-?\d{0,17}(?:\.\d{0,2})?$ title: Total Cost description: Total tags: - purchase-orders security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/POWithListPurchaseOrderDocs' text/csv: schema: $ref: '#/components/schemas/POWithListPurchaseOrderDocs' description: '' /api/v3/account-codes/: get: operationId: account_codes_list description: '**Account Code Types** | Account Code Type | Type | |-------------------|------| | ASSETS | 0 | | LIABILITY | 1 | | EXPENSE | 2 | | INCOME | 3 | | EQUITY | 4 | | OTHER | 5 |' summary: Get Account Codes parameters: - in: query name: active schema: type: boolean - in: query name: code schema: type: string - in: query name: format schema: type: string enum: - csv - json - in: query name: is_parent schema: type: boolean - name: order_by required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string tags: - account-codes security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedAccountCodeReadList' text/csv: schema: $ref: '#/components/schemas/PaginatedAccountCodeReadList' description: '' post: operationId: account_codes_create description: '**Account Code Types** | Account Code Type | Type | |-------------------|------| | ASSETS | 0 | | LIABILITY | 1 | | EXPENSE | 2 | | INCOME | 3 | | EQUITY | 4 | | OTHER | 5 |' summary: Create Account Codes parameters: - in: query name: format schema: type: string enum: - csv - json tags: - account-codes requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountCodeCreateRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/AccountCodeCreateRequest' ? '' : schema: $ref: '#/components/schemas/AccountCodeCreateRequest' application/xml: schema: $ref: '#/components/schemas/AccountCodeCreateRequest' multipart/form-data: schema: $ref: '#/components/schemas/AccountCodeCreateRequest' required: true security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/AccountCodeReadSerializerSingleCreate' text/csv: schema: $ref: '#/components/schemas/AccountCodeReadSerializerSingleCreate' description: '' /api/v3/account-codes/{id}/: put: operationId: account_codes_update description: '**Account Code Types** | Account Code Type | Type | |-------------------|------| | ASSETS | 0 | | LIABILITY | 1 | | EXPENSE | 2 | | INCOME | 3 | | EQUITY | 4 | | OTHER | 5 |' summary: Update Account Code parameters: - in: query name: format schema: type: string enum: - csv - json - in: path name: id schema: type: integer description: A unique integer value identifying this account code. required: true tags: - account-codes requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountCodeUpdateRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/AccountCodeUpdateRequest' ? '' : schema: $ref: '#/components/schemas/AccountCodeUpdateRequest' application/xml: schema: $ref: '#/components/schemas/AccountCodeUpdateRequest' multipart/form-data: schema: $ref: '#/components/schemas/AccountCodeUpdateRequest' required: true security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/AccountCodeReadSerializerSingleUpdate' text/csv: schema: $ref: '#/components/schemas/AccountCodeReadSerializerSingleUpdate' description: '' /api/v3/accounts/: get: operationId: accounts_list summary: Get Accounts parameters: - in: query name: account_code schema: type: string description: A comma-separated list of integers. - in: query name: active schema: type: boolean - in: query name: department schema: type: integer - in: query name: departments schema: type: string description: A comma-separated list of integers. - in: query name: format schema: type: string enum: - csv - json - in: query name: id schema: type: integer - in: query name: in_effect schema: type: boolean - in: query name: locations schema: type: string description: A comma-separated list of integers. - name: order_by required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - in: query name: with_expired_budgets schema: type: boolean tags: - accounts security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedChartOfAccountsAccountList' text/csv: schema: $ref: '#/components/schemas/PaginatedChartOfAccountsAccountList' description: '' /api/v3/ap/bills/: get: operationId: ap_bills_list description: 'list: This endpoint supports OPTIONS method which returns a list of available fields and their types.' summary: Get Bills parameters: - in: query name: account_code schema: type: integer description: Account Code - in: query name: approver schema: type: integer description: Approver - in: query name: contract schema: type: number description: Contracts related to bill items' purchase orders - in: query name: creator schema: type: integer - in: query name: currency schema: type: integer - in: query name: department schema: type: integer description: Department - in: query name: due_date_0 schema: type: string format: date description: Due Date - in: query name: due_date_1 schema: type: string format: date description: Due Date - in: query name: exclude_bill_group_ids schema: type: string - in: query name: exclude_expense_bills schema: type: string description: Exclude expense bills - in: query name: expense schema: type: string description: Expense Bills Only - in: query name: format schema: type: string enum: - csv - json - in: query name: gl_post_date_0 schema: type: string format: date description: Posting Date - in: query name: gl_post_date_1 schema: type: string format: date description: Posting Date - in: query name: group schema: type: integer - in: query name: has_payment schema: type: boolean description: Without Payment - in: query name: has_posting_date schema: type: boolean description: Has Posting Date - in: query name: include_bill_group_ids schema: type: string - in: query name: invoice_date_0 schema: type: string format: date description: Invoice Date - in: query name: invoice_date_1 schema: type: string format: date description: Invoice Date - in: query name: is_exported schema: type: boolean description: Exported Bills Only - in: query name: is_invoice_created schema: type: boolean description: Drafted by AI only - in: query name: last_export_date_0 schema: type: string format: date description: Last Export Date - in: query name: last_export_date_1 schema: type: string format: date description: Last Export Date - in: query name: last_export_user schema: type: number description: Last Export User - in: query name: last_modified_datetime_0 schema: type: string format: date-time description: Last Modified Datetime - in: query name: last_modified_datetime_1 schema: type: string format: date-time description: Last Modified Datetime - in: query name: location schema: type: integer description: Location - in: query name: modified_date_0 schema: type: string format: date description: Last Modified Date (Deprecated - use 'Last Modified Datetime') - in: query name: modified_date_1 schema: type: string format: date description: Last Modified Date (Deprecated - use 'Last Modified Datetime') - name: order_by required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: payment_date_0 schema: type: string format: date description: Payment Date - in: query name: payment_date_1 schema: type: string format: date description: Payment Date - name: search required: false in: query description: A search term. schema: type: string - in: query name: submitted_date_0 schema: type: string format: date description: Submitted Date - in: query name: submitted_date_1 schema: type: string format: date description: Submitted Date - in: query name: sync_status_v2 schema: type: string description: Sync Status - in: query name: type schema: type: integer enum: - 0 - 1 - 2 description: '* `0` - Order * `1` - Expense * `2` - Creditcard' - in: query name: user schema: type: integer - in: query name: vendor schema: type: string description: Vendors - in: query name: vendor[] schema: type: array items: type: integer description: 'Filter bills by vendor IDs (example: vendor[]=1&vendor[]=2)' tags: - ap security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/BillMetadataListSimpleBill' text/csv: schema: $ref: '#/components/schemas/BillMetadataListSimpleBill' description: '' /api/v3/ap/bills/mark-as-paid/: post: operationId: ap_bills_mark_as_paid_create description: Set approved bills without payments to paid status. summary: Mark Bills as Paid parameters: - in: query name: format schema: type: string enum: - csv - json tags: - ap requestBody: content: application/json: schema: $ref: '#/components/schemas/MarkBillsAsPaidRequest' examples: ExampleInput: value: bill_uuids: - 3cda5ef4ac1a401bb6619e4a5d87c10d - c2f2ad5bbbf345f3bdc66d1a18fbbec5 payment_date: '2025-01-21' summary: Example input description: Mark bills as paid application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/MarkBillsAsPaidRequest' ? '' : schema: $ref: '#/components/schemas/MarkBillsAsPaidRequest' examples: ExampleInput: value: bill_uuids: - 3cda5ef4ac1a401bb6619e4a5d87c10d - c2f2ad5bbbf345f3bdc66d1a18fbbec5 payment_date: '2025-01-21' summary: Example input description: Mark bills as paid application/xml: schema: $ref: '#/components/schemas/MarkBillsAsPaidRequest' multipart/form-data: schema: $ref: '#/components/schemas/MarkBillsAsPaidRequest' required: true security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/MarkBillsAsPaid' examples: ExampleInput: value: bill_uuids: - 3cda5ef4ac1a401bb6619e4a5d87c10d - c2f2ad5bbbf345f3bdc66d1a18fbbec5 payment_date: '2025-01-21' summary: Example input description: Mark bills as paid text/csv: schema: $ref: '#/components/schemas/MarkBillsAsPaid' description: '' /api/v3/catalog-bundles/: get: operationId: catalog_bundles_list summary: Get All Catalog Bundles parameters: - in: query name: format schema: type: string enum: - csv - json - name: order_by required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string tags: - catalog security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedCatalogItemBundleReadList' text/csv: schema: $ref: '#/components/schemas/PaginatedCatalogItemBundleReadList' description: '' /api/v3/catalog-items/: get: operationId: catalog_items_list summary: Get All Catalog Items parameters: - in: query name: bundle schema: type: integer - in: query name: currency schema: type: integer - in: query name: department schema: type: string description: A comma-separated list of integers. - in: query name: format schema: type: string enum: - csv - json - in: query name: internalSKU schema: type: string - in: query name: location schema: type: string description: A comma-separated list of integers. - in: query name: max_price schema: type: number - in: query name: min_price schema: type: number - name: order_by required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: pref_vendor schema: type: integer - name: search required: false in: query description: A search term. schema: type: string tags: - catalog security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedCatalogItemReadList' text/csv: schema: $ref: '#/components/schemas/PaginatedCatalogItemReadList' description: '' post: operationId: catalog_items_create summary: Create Catalog Item parameters: - in: query name: format schema: type: string enum: - csv - json tags: - catalog requestBody: content: application/json: schema: $ref: '#/components/schemas/CatalogItemUpsertRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CatalogItemUpsertRequest' ? '' : schema: $ref: '#/components/schemas/CatalogItemUpsertRequest' application/xml: schema: $ref: '#/components/schemas/CatalogItemUpsertRequest' multipart/form-data: schema: $ref: '#/components/schemas/CatalogItemUpsertRequest' required: true security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/CatalogItemReadSerializerSingleCreate' text/csv: schema: $ref: '#/components/schemas/CatalogItemReadSerializerSingleCreate' description: '' /api/v3/catalog-items/{id}/: put: operationId: catalog_items_update summary: Update Catalog Item parameters: - in: query name: format schema: type: string enum: - csv - json - in: path name: id schema: type: integer description: A unique integer value identifying this catalog items. required: true tags: - catalog requestBody: content: application/json: schema: $ref: '#/components/schemas/CatalogItemUpsertRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CatalogItemUpsertRequest' ? '' : schema: $ref: '#/components/schemas/CatalogItemUpsertRequest' application/xml: schema: $ref: '#/components/schemas/CatalogItemUpsertRequest' multipart/form-data: schema: $ref: '#/components/schemas/CatalogItemUpsertRequest' required: true security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/CatalogItemReadSerializerSingleUpdate' text/csv: schema: $ref: '#/components/schemas/CatalogItemReadSerializerSingleUpdate' description: '' /api/v3/custom-fields/{id}/: put: operationId: custom_fields_update description: ' ' summary: Update Order Item Custom Field Dropdown Choices parameters: - in: query name: format schema: type: string enum: - csv - json - in: path name: id schema: type: integer description: A unique integer value identifying this custom field. required: true tags: - custom-fields requestBody: content: application/json: schema: $ref: '#/components/schemas/CustomFieldUpdateRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CustomFieldUpdateRequest' ? '' : schema: $ref: '#/components/schemas/CustomFieldUpdateRequest' application/xml: schema: $ref: '#/components/schemas/CustomFieldUpdateRequest' multipart/form-data: schema: $ref: '#/components/schemas/CustomFieldUpdateRequest' required: true security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/CustomFieldReadSerializerSingle' text/csv: schema: $ref: '#/components/schemas/CustomFieldReadSerializerSingle' description: '' /api/v3/custom-fields/order-items/: get: operationId: custom_fields_order_items_list description: Get list of custom fields associated with order items summary: Get Active/Inactive Order Item Custom Fields parameters: - in: query name: field_type schema: type: string enum: - a - b - d - f - h - i - m - t description: '* `t` - Text * `a` - Large Text Field * `i` - Integer * `f` - Floating point decimal * `b` - Boolean (Yes/No) * `m` - Dropdown Choices * `d` - Date * `h` - Date Time' - in: query name: format schema: type: string enum: - csv - json - in: query name: meta__is_active schema: type: boolean - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer tags: - custom-fields security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedCustomFieldReadList' text/csv: schema: $ref: '#/components/schemas/PaginatedCustomFieldReadList' description: '' /api/v3/departments/: get: operationId: departments_list description: ' ' summary: List Departments parameters: - in: query name: branch schema: type: integer description: Filter departments by their branch. - in: query name: format schema: type: string enum: - csv - json - in: query name: include_is_active_for_account_code schema: type: integer description: Setting this adds the addition of the booeal field 'has_active_account' to each department object of the response. The query param accepts an integer representing the primary key of the account code to check if there exists an account object associated with the department with that account code. - in: query name: location_perm_override schema: type: boolean description: Setting this overrides the need to enable the PROCUREMENT_ACCESS and/or RECEIVE_BY_DEPARTMENT feature switches. This parameter can only be used in conjunction with permission and user and cannot function without both of those parameters explicitly set. - in: query name: locations schema: type: array items: type: integer description: Filter departments by the locations (branches) passed in. - name: order_by required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: permission schema: type: integer description: Filter by permission. In isolation, this parameter can only be set to 68 (add purchase order); 841 (view report); or 899 (receive_po), which correlate with permission to add purchase orders, view reports, and receive purchase orders respectively. However, the results returned correlate with the “by department” version of these permissions, which means that results are filtered by permission to add purchase orders by department, permission to view reports by department, and receive purchase orders by department. This should only be used in conjunction with the PROCUREMENT_ACCESS and/or RECEIVE_BY_DEPARTMENT feature switches. If used in conjunction with location_perm_override=true and user, the value can be set to any permission, and the result will be departments filtered by the provided user and permission values. If used in conjunction with the RECEIVE_BY_DEPARTMENT feature flag, the permission can only be set to 68, 841, or 899 (see second sentence for what these permissions do). The result will be all departments filtered by the provided user value. - in: query name: requestable schema: type: string description: Fetch all requestable departments by the currently authorized user. Accepts ORDER, EXPENSE, TRAVEL, and PAY_REQUEST. - name: search required: false in: query description: A search term. schema: type: string - in: query name: user schema: type: integer description: Filter by user. If this parameter is set, the user must be a superuser or have the add_po_by_department or receive_po_by_department permissions. In isolation, this parameter should only be used in conjunction with the PROCUREMENT_ACCESS and/or RECEIVE_BY_DEPARTMENT feature switches. If used in conjunction with location_perm_override=true and permission query parameter, the result returned will be departments filtered by the provided user and permission values. If used in conjunction with the RECEIVE_BY_DEPARTMENT feature flag, the result will be departments filtered by the user provided and the permission set to 68 (add purchase order); 841 (view report); or 899 (receive purchase order) (see permission query parameter explanation for more information on what these stand for). tags: - departments security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedDepartmentReadList' text/csv: schema: $ref: '#/components/schemas/PaginatedDepartmentReadList' description: '' post: operationId: departments_create description: ' ' summary: Create New Department parameters: - in: query name: format schema: type: string enum: - csv - json tags: - departments requestBody: content: application/json: schema: $ref: '#/components/schemas/DepartmentUpsertRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/DepartmentUpsertRequest' ? '' : schema: $ref: '#/components/schemas/DepartmentUpsertRequest' application/xml: schema: $ref: '#/components/schemas/DepartmentUpsertRequest' multipart/form-data: schema: $ref: '#/components/schemas/DepartmentUpsertRequest' required: true security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/DepartmentReadSerializerSingleCreate' text/csv: schema: $ref: '#/components/schemas/DepartmentReadSerializerSingleCreate' description: '' /api/v3/departments/{id}/: put: operationId: departments_update description: ' ' summary: Update Department parameters: - in: query name: format schema: type: string enum: - csv - json - in: path name: id schema: type: integer description: A unique integer value identifying this department. required: true tags: - departments requestBody: content: application/json: schema: $ref: '#/components/schemas/DepartmentUpsertRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/DepartmentUpsertRequest' ? '' : schema: $ref: '#/components/schemas/DepartmentUpsertRequest' application/xml: schema: $ref: '#/components/schemas/DepartmentUpsertRequest' multipart/form-data: schema: $ref: '#/components/schemas/DepartmentUpsertRequest' required: true security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/DepartmentReadSerializerSingleUpdate' text/csv: schema: $ref: '#/components/schemas/DepartmentReadSerializerSingleUpdate' description: '' /api/v3/order-items/: get: operationId: order_items_list description: '**Order Item Status Codes** | Order Item Type | Code | Description | |--------------------------|-----------|-----------------------------------| | PURCHASE_PENDING | 0 | Approved but not purchased. | | PURCHASE_INUSE | 1 | Added to purchaser''s PO list. | | RECEIVE_PENDING | 2 | Purchased but not yet received, i.e. receivedPassQty == 0. | | RECEIVED | 3 | Fully received, i.e. receivedPassQty == quantity. | | REJECTED_FOR_PURCHASE | 4 | Rejected at procurement, i.e. denied. | | RECEIVE_PARTIAL | 5 | Partially received, i.e. receivedPassQty != quantity and receivedPassQty > 0. | | FULFILLED | 6 | Received but unused. | | APPROVAL_DENIED | 7 | Denied in approval routing (by approver). | | REQUEST_DRAFT | 8 | Preparing for draft instead of using sessions. |' summary: Get list of all order items parameters: - in: query name: account schema: type: integer - in: query name: account_code schema: type: integer description: Account Code - in: query name: active schema: type: boolean - in: query name: approved_datetime_0 schema: type: string format: date description: Approved Date - in: query name: approved_datetime_1 schema: type: string format: date description: Approved Date - in: query name: approved_price schema: type: number - in: query name: approved_quantity schema: type: number - in: query name: approver schema: type: number - in: query name: approver_id schema: type: number - in: query name: branch schema: type: integer description: Location - in: query name: catalog schema: type: boolean - in: query name: catalog_item schema: type: string description: A comma-separated list of integers. - in: query name: currency schema: type: integer - in: query name: department schema: type: integer description: Department - in: query name: departments schema: type: string description: A comma-separated list of integers. - in: query name: exclude schema: type: string description: A comma-separated list of integers. - in: query name: exclude_punchout schema: type: boolean - in: query name: format schema: type: string enum: - csv - json - in: query name: fulfilment_status schema: type: string - in: query name: is_purchased schema: type: boolean - in: query name: is_recurring schema: type: boolean - in: query name: last_changed_by schema: type: integer - in: query name: last_modified_0 schema: type: string format: date description: Last Modified Date - in: query name: last_modified_1 schema: type: string format: date description: Last Modified Date - in: query name: lineComment schema: type: string - in: query name: location schema: type: integer description: Location - in: query name: locations schema: type: string description: A comma-separated list of integers. - in: query name: name schema: type: string - in: query name: num schema: type: string - in: query name: orderNum schema: type: integer - in: query name: orderNum__status schema: type: integer enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 description: '* `0` - Pending * `1` - Approved * `2` - Denied * `3` - Purchased * `4` - Cancelled * `5` - Received * `6` - Draft' - name: order_by required: false in: query description: Which field to use when ordering the results. schema: type: string - in: query name: order_created_date_0 schema: type: string format: date description: Order Created Date - in: query name: order_created_date_1 schema: type: string format: date description: Order Created Date - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: po_created_date_0 schema: type: string format: date description: Purchased Date - in: query name: po_created_date_1 schema: type: string format: date description: Purchased Date - in: query name: po_vendor schema: type: integer description: Purchased Vendor - in: query name: pref_vendor schema: type: integer - in: query name: price schema: type: number - in: query name: purchase_agreement schema: type: number - in: query name: purchased_date_0 schema: type: string format: date description: Purchased Date - in: query name: purchased_date_1 schema: type: string format: date description: Purchased Date - in: query name: purchaser schema: type: integer - in: query name: quantity schema: type: number - in: query name: receivedFailQty schema: type: number - in: query name: receivedPassQty schema: type: number - in: query name: requester schema: type: integer description: Requester - name: search required: false in: query description: A search term. schema: type: string - in: query name: sku schema: type: string - in: query name: status schema: type: integer nullable: true enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 description: '* `0` - Purchase Pending * `1` - Purchaser In-Use * `2` - Receive Pending * `3` - Received * `4` - Rejected for Purchase * `5` - Partial Received * `6` - Fulfilled * `7` - Approval Denied * `8` - Request Draft' - in: query name: type schema: type: integer enum: - 0 - 1 - 2 description: '* `0` - One Time * `1` - Recurring * `2` - Blanket' - in: query name: unit schema: type: string tags: - order-items security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedOrderItemList' text/csv: schema: $ref: '#/components/schemas/PaginatedOrderItemList' description: '' /api/v3/permissions/: get: operationId: permissions_list summary: Get Available User Permissions parameters: - in: query name: format schema: type: string enum: - csv - json - name: order_by required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string tags: - permissions security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedPermissionReadList' examples: UserPermissions: value: metadata: pagination: count: 10 next: null previous: null page_size: 10 num_pages: 1 current_page: 1 data: - id: 507 codename: add_bill summary: User Permissions text/csv: schema: $ref: '#/components/schemas/PaginatedPermissionReadList' description: '' /api/v3/permissions/groups/: get: operationId: permissions_groups_list summary: Get Available System Roles parameters: - in: query name: format schema: type: string enum: - csv - json - name: order_by required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: permission schema: type: string - name: search required: false in: query description: A search term. schema: type: string - in: query name: type schema: type: integer - in: query name: user schema: type: integer - in: query name: userprofile schema: type: integer tags: - permissions security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedPermissionGroupReadList' examples: SystemRoles: value: metadata: pagination: count: 10 next: null previous: null page_size: 10 num_pages: 1 current_page: 1 data: - id: 5 name: Approver user_count: 0 permissions: - id: 900 codename: view_reports - id: 982 codename: view_reports_budgets - id: 977 codename: view_reports_expenses_by_department - id: 976 codename: view_reports_orders_by_department - id: 975 codename: view_reports_orders_by_user - id: 974 codename: view_reports_orders_by_vendor - id: 101 codename: add_expensereport - id: 887 codename: approve_expensereport - id: 71 codename: add_order - id: 886 codename: approve_order - id: 95 codename: add_travel - id: 888 codename: approve_travel type: 1 summary: System Roles text/csv: schema: $ref: '#/components/schemas/PaginatedPermissionGroupReadList' description: '' /api/v3/purchase-orders/{procurify_PO}/: put: operationId: purchase_orders_update summary: Update a Purchase Order parameters: - in: query name: format schema: type: string enum: - csv - json - in: path name: procurify_PO schema: type: integer title: Procurify PO Number description: A unique integer value identifying this po. required: true tags: - purchase-orders requestBody: content: application/json: schema: $ref: '#/components/schemas/PurchaseOrderUpdateRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PurchaseOrderUpdateRequest' ? '' : schema: $ref: '#/components/schemas/PurchaseOrderUpdateRequest' application/xml: schema: $ref: '#/components/schemas/PurchaseOrderUpdateRequest' multipart/form-data: schema: $ref: '#/components/schemas/PurchaseOrderUpdateRequest' required: true security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PurchaseOrderUpdateSerializerSingle' text/csv: schema: $ref: '#/components/schemas/PurchaseOrderUpdateSerializerSingle' description: '' /api/v3/purchase-orders/{procurify_PO}/close/: post: operationId: purchase_orders_close_create summary: Close a Purchase Order parameters: - in: query name: format schema: type: string enum: - csv - json - in: path name: procurify_PO schema: type: integer title: Procurify PO Number description: A unique integer value identifying this po. required: true tags: - purchase-orders security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PurchaseOrderReadDocsSerializerSingle' text/csv: schema: $ref: '#/components/schemas/PurchaseOrderReadDocsSerializerSingle' description: '' /api/v3/purchase-orders/{procurify_PO}/reopen/: post: operationId: purchase_orders_reopen_create summary: Reopen a Purchase Order parameters: - in: query name: format schema: type: string enum: - csv - json - in: path name: procurify_PO schema: type: integer title: Procurify PO Number description: A unique integer value identifying this po. required: true tags: - purchase-orders security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': description: No response body /api/v3/purchase-orders/billing-history/: get: operationId: purchase_orders_billing_history_retrieve summary: View billing history of a Purchase Order parameters: - in: query name: format schema: type: string enum: - csv - json tags: - purchase-orders security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PurchaseOrderBillingHistorySerializerList' text/csv: schema: $ref: '#/components/schemas/PurchaseOrderBillingHistorySerializerList' description: '' /api/v3/receipt/items/: get: operationId: receipt_items_list description: Return a list of receipt items representing individual receiving actions. summary: Get list of receipt items by order item parameters: - in: query name: format schema: type: string enum: - csv - json - name: order_by required: false in: query description: Which field to use when ordering the results. schema: type: string - in: query name: order_item schema: type: integer description: The ID of an order item to retrieve receipt items (receiving actions) for. - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string tags: - receipt security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedReceiptItemReadList' text/csv: schema: $ref: '#/components/schemas/PaginatedReceiptItemReadList' description: '' post: operationId: receipt_items_create description: Perform a receiving action for order items within a single purchase order. summary: Create a receipt item for an order item parameters: - in: query name: format schema: type: string enum: - csv - json tags: - receipt requestBody: content: application/json: schema: $ref: '#/components/schemas/ItemWriteRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ItemWriteRequest' ? '' : schema: $ref: '#/components/schemas/ItemWriteRequest' application/xml: schema: $ref: '#/components/schemas/ItemWriteRequest' multipart/form-data: schema: $ref: '#/components/schemas/ItemWriteRequest' required: true security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/ReceiptItemRead' text/csv: schema: $ref: '#/components/schemas/ReceiptItemRead' description: '' /api/v3/requisitions/: post: operationId: requisitions_create summary: Creating a requisition parameters: - in: query name: format schema: type: string enum: - csv - json tags: - requisitions requestBody: content: application/json: schema: $ref: '#/components/schemas/RequisitionCreateRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/RequisitionCreateRequest' ? '' : schema: $ref: '#/components/schemas/RequisitionCreateRequest' application/xml: schema: $ref: '#/components/schemas/RequisitionCreateRequest' multipart/form-data: schema: $ref: '#/components/schemas/RequisitionCreateRequest' required: true security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/RequisitionReadSerializerSingle' text/csv: schema: $ref: '#/components/schemas/RequisitionReadSerializerSingle' description: '' /api/v3/users/: get: operationId: users_list summary: List Users parameters: - in: query name: format schema: type: string enum: - csv - json - in: query name: is_active schema: type: boolean - in: query name: location schema: type: string - name: order_by required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - in: query name: pending_invite schema: type: boolean - in: query name: permission schema: type: string - in: query name: role schema: type: integer - name: search required: false in: query description: A search term. schema: type: string tags: - users security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUserProfileUnoptimizedList' text/csv: schema: $ref: '#/components/schemas/PaginatedUserProfileUnoptimizedList' description: '' post: operationId: users_create summary: Create New User parameters: - in: query name: format schema: type: string enum: - csv - json tags: - users requestBody: content: application/json: schema: type: array items: $ref: '#/components/schemas/InviteFunctionalUserRequest' application/x-www-form-urlencoded: schema: type: array items: $ref: '#/components/schemas/InviteFunctionalUserRequest' ? '' : schema: type: array items: $ref: '#/components/schemas/InviteFunctionalUserRequest' application/xml: schema: type: array items: $ref: '#/components/schemas/InviteFunctionalUserRequest' multipart/form-data: schema: type: array items: $ref: '#/components/schemas/InviteFunctionalUserRequest' required: true security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/UserProfileUnoptimizedSerializerList' text/csv: schema: $ref: '#/components/schemas/UserProfileUnoptimizedSerializerList' description: '' /api/v3/users/{id}/: put: operationId: users_update summary: Update User parameters: - in: query name: format schema: type: string enum: - csv - json - in: path name: id schema: type: integer description: A unique integer value identifying this user profile. required: true tags: - users requestBody: content: application/json: schema: $ref: '#/components/schemas/UserProfileUpsertRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UserProfileUpsertRequest' ? '' : schema: $ref: '#/components/schemas/UserProfileUpsertRequest' application/xml: schema: $ref: '#/components/schemas/UserProfileUpsertRequest' multipart/form-data: schema: $ref: '#/components/schemas/UserProfileUpsertRequest' required: true security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserProfileUnoptimizedSerializerSingle' text/csv: schema: $ref: '#/components/schemas/UserProfileUnoptimizedSerializerSingle' description: '' delete: operationId: users_destroy summary: Deactivate User parameters: - in: query name: format schema: type: string enum: - csv - json - in: path name: id schema: type: integer description: A unique integer value identifying this user profile. required: true tags: - users security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '204': description: No response body /api/v3/users/me/: get: operationId: users_me_list description: Get the logged in user account information summary: Get Logged-in User parameters: - in: query name: format schema: type: string enum: - csv - json tags: - users security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserProfileMeSerializerSingle' examples: Logged-inUser: value: data: id: 2 domains: active: false procurify_domains: - subdomain: example.com name: example.com headquarter_logo: https://commondatastorage.googleapis.com/cdn.procurify.com/attachments/7e3c3a59-8e37-4575-b510-508aeea9ee43 systemaccess_cache: structured: '1': flattened: - nav_receive - nav_approval - nav_manage - nav_request - nav_purchase - nav_report - nav_setting roles: - permissions: - id: 3 description: Navigation for Request name: Request - id: 4 description: Navigation for Approval name: Approval - id: 5 description: Navigation for Purchase name: Purchase - id: 6 description: Navigation for Receive name: Receive - id: 7 description: Navigation for Manage name: Manage - id: 8 description: Navigation for Settings name: Settings - id: 9 description: Navigation for Report name: Report id: 15 name: Location Manager '2': flattened: - nav_request - nav_approval - nav_report roles: - permissions: - id: 3 description: Navigation for Request name: Request - id: 4 description: Navigation for Approval name: Approval - id: 9 description: Navigation for Report name: Report id: 25 name: Approver '3': flattened: - nav_request - nav_approval - nav_report roles: - permissions: - id: 3 description: Navigation for Request name: Request - id: 4 description: Navigation for Approval name: Approval - id: 9 description: Navigation for Report name: Report id: 25 name: Approver system: flattened: - superuser - accounts_payable roles: - permissions: - id: 2 description: Full Access name: Superuser id: 2 name: Superuser - permissions: - id: 12 description: Accounts Payable name: Accounts Payable id: 31 name: AP flattened: - superuser - nav_manage - nav_request - nav_purchase - accounts_payable - nav_receive - nav_setting - nav_approval - nav_report approval_delegatee: null is_approval_delegatee: false department: branch: name: '' url: '' logo: null currency: name: '' description: '' rate: null base: false active: false phoneOne: '' fax: '' email: '' primary_billing_address: name: '' addressLineOne: '' city: '' postalCode: '' state_province: '' country: '' primary_shipping_address: name: '' addressLineOne: '' city: '' postalCode: '' state_province: '' country: '' language: null locationTimezone: null active: false external_id: '' external_id: '' name: '' active: false created_at: '2017-03-17T21:45:36.120222Z' updated_at: '2017-03-24T00:55:40.724146Z' firstName: Frank lastName: Borman email: nick+redshift7@procurify.com position: '' phone: '-' address: '' notifications: true is_active: true pending_invite: false role: 7 mobile: false profile_image: nickredshift7procurifycom_aa1fbc9b_frank-borman.jpg slack_user_id: '' is_sso_enabled: false last_changed_by: null user: 2 metadata: {} summary: Logged-in User text/csv: schema: $ref: '#/components/schemas/UserProfileMeSerializerSingle' description: '' /api/v3/vendors/: get: operationId: vendors_list description: '**Vendor Type Codes** | Vendor Type | Type | Description | |---------------------|-----------|-----------------------------------| | OTHER | 1 | Previously ''OTHER'' vendor (ID=1), used for storing non-vendor | | | for storing non-vendor Vendor names in request. | | HIDDEN | 2 | New type of vendors that is reserved for system purposes (eg. Amazon Business). | | PREFERRED (default) | 3 | The default vendors from previous list | | | where active vendor dropdowns everywhere previously showed. | | | Request now ONLY shows these vendors (+OTHER) | | REGULAR | 4 | New type of vendors that are non-preferred, | | | for any AP purposes and purchasers to update. | | | (DOES NOT show up in Request, but shows up in Procure) | | EMPLOYEE | 5 | New type of vendors that do not show up anywhere except in AP employees list. | | CC_PROVIDER | 6 | Similar type of vendors to AP employees, but for AP credit card providers. |' summary: Get list of all active vendors parameters: - in: query name: exclude_other schema: type: boolean - in: query name: external_id schema: type: string - in: query name: format schema: type: string enum: - csv - json - in: query name: name schema: type: string - name: order_by required: false in: query description: Which field to use when ordering the results. schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer - name: search required: false in: query description: A search term. schema: type: string - in: query name: type schema: type: integer enum: - 1 - 2 - 3 - 4 - 5 - 6 - 7 description: 'Type of the vendor. See above for possible options. * `1` - other * `2` - amazon punchout * `3` - preferred * `4` - regular * `5` - employee * `6` - credit card provider * `7` - checkout' - in: query name: type__in schema: type: array items: type: string enum: - amazon_punchout - cc_provider - checkout - employee - other - pending - preferred - regular description: '* `other` - other * `amazon_punchout` - amazon_punchout * `preferred` - preferred * `regular` - regular * `employee` - employee * `cc_provider` - cc_provider * `checkout` - checkout * `pending` - pending' explode: true style: form - in: path name: vendor_group schema: type: string enum: - all - credit_card_providers - default - other - preferred - purchasable - requestable description: ' **"all"**: Get list of all vendors. **"credit_card_providers"**: Get list of credit card provider vendors. These vendors are displayed in Payee Management for Credit Card Providers. **"default"**: Get list of "preferred" and "regular" vendors. These vendors are displayed in Procure (procurement, vendors, etc) and AP i.e., default vendor list. OTHER is discontinued from procure. **"other"**: Get list of "other" vendors. Only returns the ''OTHER'' vendor reserved for requesting non-vendor names. **"preferred"**: Get list of "preferred" vendors. **"purchasable"**: Get list of "purchasable" vendors. **"requestable"**: Get list of "requestable" vendors. These vendors are displayed in Request and designated by Purchaser.' required: true tags: - vendors security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedOptimizedVendorList' text/csv: schema: $ref: '#/components/schemas/PaginatedOptimizedVendorList' description: '' post: operationId: vendors_create description: 'Create a new vendor Due to having multiple vendors with the same name, especially common if user keeps deleting vendors with the same name, these deleted vendors get thrown into the inactive list. **Vendor Types** | Vendor Type | Type | |---------------------|-----------| | OTHER | 1 | | HIDDEN | 2 | | PREFERRED (default) | 3 | | REGULAR | 4 | | EMPLOYEE | 5 | | CC_PROVIDER | 6 |' summary: Create Vendor parameters: - in: query name: format schema: type: string enum: - csv - json tags: - vendors requestBody: content: application/json: schema: $ref: '#/components/schemas/OptimizedVendorRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/OptimizedVendorRequest' ? '' : schema: $ref: '#/components/schemas/OptimizedVendorRequest' application/xml: schema: $ref: '#/components/schemas/OptimizedVendorRequest' multipart/form-data: schema: $ref: '#/components/schemas/OptimizedVendorRequest' required: true security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/VendorDetailSerializerSingleCreate' text/csv: schema: $ref: '#/components/schemas/VendorDetailSerializerSingleCreate' description: '' /api/v3/vendors/{id}/: get: operationId: vendors_retrieve description: Get detail of a vendor by id summary: Get Vendor by ID parameters: - in: query name: format schema: type: string enum: - csv - json - in: path name: id schema: type: integer description: A unique integer value identifying this vendor. required: true tags: - vendors security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/VendorDetailSerializerSingleRetrieve' text/csv: schema: $ref: '#/components/schemas/VendorDetailSerializerSingleRetrieve' description: '' put: operationId: vendors_update summary: Update Vendor parameters: - in: query name: format schema: type: string enum: - csv - json - in: path name: id schema: type: integer description: A unique integer value identifying this vendor. required: true tags: - vendors requestBody: content: application/json: schema: $ref: '#/components/schemas/OptimizedVendorRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/OptimizedVendorRequest' ? '' : schema: $ref: '#/components/schemas/OptimizedVendorRequest' application/xml: schema: $ref: '#/components/schemas/OptimizedVendorRequest' multipart/form-data: schema: $ref: '#/components/schemas/OptimizedVendorRequest' required: true security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/VendorSerializerSingle' text/csv: schema: $ref: '#/components/schemas/VendorSerializerSingle' description: '' patch: operationId: vendors_partial_update summary: Partial Update Vendor parameters: - in: query name: format schema: type: string enum: - csv - json - in: path name: id schema: type: integer description: A unique integer value identifying this vendor. required: true tags: - vendors requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedOptimizedVendorRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedOptimizedVendorRequest' ? '' : schema: $ref: '#/components/schemas/PatchedOptimizedVendorRequest' application/xml: schema: $ref: '#/components/schemas/PatchedOptimizedVendorRequest' multipart/form-data: schema: $ref: '#/components/schemas/PatchedOptimizedVendorRequest' security: - RemoteAuthentication: [] - M2MAuthentication: [] - BasicAuthentication: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/OptimizedVendorSerializerSingle' text/csv: schema: $ref: '#/components/schemas/OptimizedVendorSerializerSingle' description: '' /oauth/token: post: servers: - url: https://.procurify.com description: Authenticate with oauth operationId: api_account_code_retrieve summary: Authenticate with OAuth description: "Getting access to Procurify API involves the following three steps:\n\ \n 1. Request credentials for your Procurify account.\n 2. Request access\ \ token using your credentials.\n 3. Use access token to access Procurify\ \ API resources.\n\n#### Request credentials for your Procurify account.\n\ \nThe first step is to request credentials from Procurify. Your role must\ \ have access to manage integrations settings in order to request API credentials.\ \ You can request API credentials by going to go:\n\n 1. Settings in the\ \ left navigation bar.\n 2. Integrations in the Tools section.\n 3. View\ \ button beside API item\n\nThis page will allow you to enter an optional\ \ description of the application you are developing with the Procurify API\ \ and once you are ready, click on “Create Application”. On the next screen,\ \ you will be presented with a Client ID and a Client Secret. You will need\ \ to copy and save these credentials securely. Please note that the Client\ \ Secret is only presented once.\n\n#### Request access token using your credentials.\n\ \nOnce you have the client credentials, you will need to request an access\ \ token using these credentials that can be used as a bearer token when making\ \ a request to Procurify API. You will need the following information to request\ \ an access token:\n\n|Info|Value|\n--- | ---\n|Token URL:|https://<your-domain>.procurify.com/oauth/token|\n\ |Client ID:|*From the previous step*|\n|Client Secret:|*From the previous\ \ step*|\n|Audience:|https://api.procurify.com/|\n|Grant Type:|client_credentials|\n\ \nOnce you have the access token, you will need to cache it until it expires\ \ (24 hrs). Please let Procurify support know if you would like help with\ \ this.\n\n\nAn example request and response using cURL (replace client id\ \ and client secret)\n\n $ curl -H \"content-type: application/json\" -X\ \ POST \\\n -d '{\"client_id\": \"~your_client_id~\", \\\n \ \ \"client_secret\": \"~your_client_secret~\", \\\n \"audience\"\ : \"https://api.procurify.com/\", \\\n \"grant_type\": \"client_credentials\"\ }' \\\n https://.procurify.com/oauth/token\n\n {\"\ access_token\": \"~your-access-token~\",\n \"scope\": \"urn:procurify-api:domain:~your_domain~\ \ urn:procurify-api:email:~your_email~\",\n \"expires_in\": 86400,\n \ \ \"token_type\": \"Bearer\"}\n\n\n#### Use access token to access Procurify\ \ API resources.\n\nOnce you have the access token, you can make requests\ \ to Procurify API resources. You will need to set the following headers when\ \ making the request.\n\n|Key|Value|\n--- | ---\n|Authorization:|Bearer *access_token\ \ from previous step*|\n|X-Procurify-Client:|api|\n\n\nAn example request\ \ and response using cURL (replace access token and your procurify domain)\n\ \n $ curl -H \"Authorization: Bearer ~access_token~\" \\\n -H \"\ X-Procurify-Client: api\" \\\n https://.procurify.com/api/v3/vendors/\n\ \n {\"data\":[{\"id\":1,\"name\":\"OTHER\",\"active\":true,\"addressLineOne\"\ :\"OTHER\"...}" parameters: [] tags: - oauth security: [] requestBody: content: application/json: schema: type: object properties: client_id: type: string client_secret: type: string audience: type: string grant_type: type: string example: client_id: ~your_client_id~ client_secret: ~your_client_secret~ audience: https://api.procurify.com/ grant_type: client_credentials responses: '200': description: Successful authentication content: application/json: schema: type: object properties: access_token: type: string scope: type: string expires_in: type: number token_type: type: string enum: - Bearer example: access_token: ~your-access-token~ scope: urn:procurify-api:domain:~your_domain~ urn:procurify-api:email:~your_email~ expires_in: 86400 token_type: Bearer components: schemas: APBillPaymentDocs: type: object properties: id: type: integer readOnly: true payment: $ref: '#/components/schemas/PaymentSimpleDocs' payment_method: $ref: '#/components/schemas/PaymentMethodDocs' amount: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ title: Payment Amount transaction: type: integer nullable: true required: - payment - payment_method APCreditCard: type: object properties: id: type: integer readOnly: true uuid: type: string format: uuid is_active: type: boolean created_at: type: string format: date-time readOnly: true updated_at: type: string format: date-time readOnly: true name: type: string maxLength: 255 number: type: string pattern: ^[0-9]{4}$ maxLength: 19 balance: type: integer maximum: 2147483647 minimum: -2147483648 nullable: true gl_code: type: string maxLength: 100 type: allOf: - $ref: '#/components/schemas/CreditCardTypeEnum' minimum: -2147483648 maximum: 2147483647 category: nullable: true minimum: -2147483648 maximum: 2147483647 oneOf: - $ref: '#/components/schemas/CategoryEnum' - $ref: '#/components/schemas/NullEnum' type: integer external_id: type: string description: External id of the Credit Card maxLength: 100 status: nullable: true description: 'The status of the Credit Card * `pending` - Pending * `active` - Active * `inactive` - Inactive * `canceled` - Canceled * `lost` - Lost * `stolen` - Stolen' oneOf: - $ref: '#/components/schemas/CreditCardStatusEnum' - $ref: '#/components/schemas/BlankEnum' - $ref: '#/components/schemas/NullEnum' type: integer require_activation: type: boolean title: Require new activation? description: Does this card require new activation? last_changed_by: type: integer nullable: true title: Last changed by user vendor: type: integer payment_method: type: integer nullable: true currency: type: integer creator: type: integer nullable: true title: Card Issuer required: - currency - uuid - vendor Account: type: object properties: id: type: integer readOnly: true account_code: $ref: '#/components/schemas/AccountCodeRead' department: $ref: '#/components/schemas/DepartmentSummary' warning_indicator: type: boolean readOnly: true start_datetime: type: string format: date-time nullable: true end_datetime: type: string format: date-time nullable: true budget: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,2})?$ budget_used_approved: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,2})?$ budget_used_purchased: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,2})?$ balance_approved: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,2})?$ balance_purchased: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,2})?$ active: type: boolean required: - account_code - department AccountCodeCreateRequest: type: object properties: code: type: string minLength: 1 maxLength: 50 description: type: string minLength: 1 maxLength: 200 parent: type: integer nullable: true account_type: allOf: - $ref: '#/components/schemas/AccountTypeEnum' minimum: -2147483648 maximum: 2147483647 departments: type: array items: type: integer required: - code - description AccountCodeRead: type: object properties: id: type: integer readOnly: true applied_accounts_count: type: integer readOnly: true code: type: string maxLength: 50 code_length: type: integer maximum: 2147483647 minimum: -2147483648 description: type: string maxLength: 200 account_type: allOf: - $ref: '#/components/schemas/AccountTypeEnum' minimum: -2147483648 maximum: 2147483647 active: type: boolean parent: type: integer nullable: true required: - code - description AccountCodeReadSerializerSingleCreate: type: object properties: metadata: type: object additionalProperties: {} default: {} data: $ref: '#/components/schemas/AccountCodeRead' required: - data AccountCodeReadSerializerSingleUpdate: type: object properties: metadata: type: object additionalProperties: {} default: {} data: $ref: '#/components/schemas/AccountCodeRead' required: - data AccountCodeUpdateRequest: type: object properties: code: type: string minLength: 1 maxLength: 50 description: type: string minLength: 1 maxLength: 200 account_type: allOf: - $ref: '#/components/schemas/AccountTypeEnum' minimum: -2147483648 maximum: 2147483647 parent: type: integer nullable: true required: - code - description AccountRead: type: object properties: id: type: integer readOnly: true account_code: $ref: '#/components/schemas/AccountCodeRead' department: $ref: '#/components/schemas/DepartmentSummary' warning_indicator: type: boolean readOnly: true budget_used_approved: type: number format: double budget_used_purchased: type: number format: double start_datetime: type: string format: date-time nullable: true end_datetime: type: string format: date-time nullable: true budget: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,2})?$ balance_approved: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,2})?$ balance_purchased: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,2})?$ active: type: boolean required: - account_code - department AccountTypeEnum: enum: - 0 - 1 - 2 - 3 - 4 - 5 type: integer description: '* `0` - Assets * `1` - Liability * `2` - Expense * `3` - Income * `4` - Equity * `5` - Other' ActionEnum: enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 type: integer description: '* `0` - Request * `1` - FinalApproval * `2` - ApprovalDenied * `3` - ApproveAndPassOn * `4` - Purchase * `5` - RejectLineItems * `6` - UpdateOnReceive * `7` - MarkOrderReceived * `8` - ClosePO * `9` - UnmarkOrderReceived * `10` - OpenPO * `11` - RequestLineItem * `12` - UndoReceiveLog * `13` - CancelPO * `14` - StockLineItem * `15` - TransactionApproved * `16` - TransactionDenied * `17` - TransactionPartiallyDenied * `18` - TransactionAllocation * `19` - OrderPurchased * `20` - RecordPO' Address: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 150 addressLineOne: type: string title: Address line 1 maxLength: 300 city: type: string maxLength: 50 postalCode: type: string title: Postal Code maxLength: 20 state_province: type: string title: State/Province maxLength: 40 country: type: string maxLength: 80 required: - addressLineOne - city - country - name - postalCode AddressAssociationEnum: enum: - 1 - 2 - 3 - 4 - 5 - 6 - 7 type: integer description: '* `1` - Billing * `2` - Shipping * `3` - Vendor * `4` - General * `5` - User * `6` - Travel * `7` - Private' AddressDocs: type: object properties: id: type: integer name: type: string required: - id - name AddressRequest: type: object properties: name: type: string minLength: 1 maxLength: 150 addressLineOne: type: string minLength: 1 title: Address line 1 maxLength: 300 city: type: string minLength: 1 maxLength: 50 postalCode: type: string minLength: 1 title: Postal Code maxLength: 20 state_province: type: string title: State/Province maxLength: 40 country: type: string minLength: 1 maxLength: 80 required: - addressLineOne - city - country - name - postalCode AddressSummary: type: object properties: id: type: integer readOnly: true is_active: type: boolean created_at: type: string format: date-time readOnly: true updated_at: type: string format: date-time readOnly: true name: type: string maxLength: 150 addressAssociation: allOf: - $ref: '#/components/schemas/AddressAssociationEnum' minimum: -2147483648 maximum: 2147483647 addressLineOne: type: string title: Address line 1 maxLength: 300 addressLineTwo: type: string title: Address line 2 maxLength: 300 postalCode: type: string title: Postal Code maxLength: 20 city: type: string maxLength: 50 state_province: type: string title: State/Province maxLength: 40 country: type: string maxLength: 80 last_changed_by: type: integer nullable: true title: Last changed by user required: - addressLineOne - city - country - name - postalCode Adjustment: type: object properties: id: type: integer type: $ref: '#/components/schemas/AdjustmentTypeEnum' value: type: string format: decimal pattern: ^-?\d{0,7}(?:\.\d{0,8})?$ name: type: string nullable: true required: - type - value AdjustmentTypeEnum: enum: - percent - amount - 0 - 1 description: '* `percent` - percent * `amount` - amount * `0` - 0 * `1` - 1' AllocationRead: type: object properties: id: type: integer readOnly: true amount: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ title: Allocated Amount account: $ref: '#/components/schemas/SpendAccountRead' required: - account - amount ApiNestedEditDeletePurchaseOrderDetail: type: object properties: metadata: $ref: '#/components/schemas/PermissionsEditDelete' data: $ref: '#/components/schemas/PurchaseOrderDetail' required: - data - metadata ApprovalDelegatee: type: object properties: id: type: integer firstName: type: string lastName: type: string email: type: string format: email profile_image: type: string nullable: true required: - email - firstName - id - lastName ApprovalDelegateeDocs: type: object properties: id: type: integer readOnly: true department: type: integer nullable: true firstName: type: string maxLength: 100 lastName: type: string maxLength: 100 email: type: string format: email maxLength: 254 required: - email ApprovalDelegateeSlimDocs: type: object properties: id: type: integer readOnly: true firstName: type: string maxLength: 100 lastName: type: string maxLength: 100 ApprovalDelegationRead: type: object properties: approval_delegatee: $ref: '#/components/schemas/UserProfileRead' expected_return_date: type: string format: date nullable: true delegator: $ref: '#/components/schemas/SimpleUserProfile' setter: $ref: '#/components/schemas/SimpleUserProfile' required: - approval_delegatee - delegator - setter ApprovalWorkflow: type: object properties: is_complete: type: boolean updated_at: type: string format: date-time can_self_approve: type: boolean can_peer_review: type: boolean current_step: allOf: - $ref: '#/components/schemas/ApprovalWorkflowCurrentStep' nullable: true type: object next_step: allOf: - $ref: '#/components/schemas/ApprovalWorkflowNextStep' nullable: true type: object required: - can_peer_review - can_self_approve - current_step - is_complete - next_step - updated_at ApprovalWorkflowApprover: type: object properties: id: type: integer firstName: type: string lastName: type: string email: type: string format: email profile_image: type: string nullable: true approval_delegatee: allOf: - $ref: '#/components/schemas/ApprovalDelegatee' nullable: true type: object required: - email - firstName - id - lastName ApprovalWorkflowApproverGroup: type: object properties: approvers: type: array items: $ref: '#/components/schemas/ApprovalWorkflowApprover' is_pooled: type: boolean level: type: integer group_id: type: integer group_name: type: string required: - approvers - group_id - group_name - is_pooled - level ApprovalWorkflowCurrentStep: type: object properties: status: type: integer step_number: type: integer group_id: type: integer group_name: type: string approver: $ref: '#/components/schemas/ApprovalWorkflowApproverGroup' required: - approver - group_id - group_name - status - step_number ApprovalWorkflowNextStep: type: object properties: status: type: integer step_number: type: integer group_id: type: integer group_name: type: string options: type: array items: type: object additionalProperties: {} required: - group_id - group_name - options - status - step_number ApproverChoicesMetadataApproverReadDocs: type: object properties: metadata: $ref: '#/components/schemas/ApproverChoicesMetadataDocs' data: type: array items: $ref: '#/components/schemas/ApproverReadDocs' required: - data - metadata ApproverChoicesMetadataDocs: type: object properties: permissions: $ref: '#/components/schemas/PermissionsApprove' summary: $ref: '#/components/schemas/PaymentSummaryDocs' required: - summary ApproverRead: type: object properties: id: type: integer readOnly: true user: $ref: '#/components/schemas/SimpleUserSummary' amount_limit: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,2})?$ item_variance_amount_limit: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,2})?$ nullable: true item_variance_percentage_limit: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,2})?$ nullable: true approval_level: type: integer required: - amount_limit - approval_level - user ApproverReadDocs: type: object properties: id: type: integer readOnly: true user: $ref: '#/components/schemas/SimpleUserSummary' amount_limit: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,2})?$ item_variance_amount_limit: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,2})?$ nullable: true item_variance_percentage_limit: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,2})?$ nullable: true approval_level: type: integer bill_amount_limit: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,2})?$ required: - amount_limit - approval_level - bill_amount_limit - user Attachment: type: object properties: id: type: integer readOnly: true uuid: type: string format: uuid file: type: string name: type: string maxLength: 255 user: type: integer description: type: string maxLength: 1000 mimetype: type: string maxLength: 100 length: type: integer maximum: 2147483647 minimum: -2147483648 nullable: true sha1_hash: type: string maxLength: 40 created_at: type: string format: date-time readOnly: true required: - file - user - uuid AuthorizationStatusEnum: enum: - reversed - pending - closed type: string BillCostRead: type: object properties: id: type: integer readOnly: true cost_allocation: $ref: '#/components/schemas/CostAllocationRead' name: type: string maxLength: 100 amount: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ bill: type: integer cost: type: integer nullable: true title: Cost Class currency: type: integer nullable: true required: - amount - bill - cost_allocation - name BillDocs: type: object properties: id: type: integer readOnly: true uuid: type: string format: uuid readOnly: true vendor: $ref: '#/components/schemas/VendorDocs' tax_amount: type: number format: double readOnly: true vendor_name: type: string maxLength: 100 due_date: type: string format: date-time nullable: true title: Bill Due Date status: allOf: - $ref: '#/components/schemas/BillStatusEnum' minimum: 0 maximum: 4294967295 type: allOf: - $ref: '#/components/schemas/BillTypeEnum' minimum: 0 maximum: 4294967295 group: type: integer required: - group - vendor BillItemsMetadataDocs: type: object properties: summary: $ref: '#/components/schemas/BillItemsSummaryDocs' pagination: $ref: '#/components/schemas/PaginationDocs' required: - pagination - summary BillItemsSummaryDocs: type: object properties: total_items: type: integer total_cost: type: number format: double required: - total_cost - total_items BillListViewApproverUserDocs: type: object properties: firstName: type: string maxLength: 100 lastName: type: string maxLength: 100 profile_image: type: string nullable: true approval_delegatee: $ref: '#/components/schemas/ApprovalDelegateeSlimDocs' required: - approval_delegatee BillMetadataBillRead: type: object properties: metadata: $ref: '#/components/schemas/SingleBillMetadataDocs' data: $ref: '#/components/schemas/BillRead' required: - data - metadata BillMetadataListSimpleBill: type: object properties: metadata: $ref: '#/components/schemas/ListBillsMetadataDocs' data: type: array items: $ref: '#/components/schemas/SimpleBill' required: - data - metadata BillPaymentDocs: type: object properties: id: type: integer readOnly: true bill: $ref: '#/components/schemas/BillDocs' user: $ref: '#/components/schemas/UserDocs' payment_method: $ref: '#/components/schemas/BillPaymentVendorPaymentMethodRead' amount: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ title: Payment Amount transaction: type: integer nullable: true required: - bill - payment_method - user BillPaymentVendorPaymentMethodRead: type: object properties: id: type: integer readOnly: true vendor: type: integer name: type: string maxLength: 255 type: allOf: - $ref: '#/components/schemas/PaymentMethodTypeEnum' title: Payment Method minimum: 0 maximum: 4294967295 data: {} currency: $ref: '#/components/schemas/Currency' required: - currency - data - vendor BillPurchaseOrderDocs: type: object properties: id: type: integer number: type: string currency: type: string total_amount: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,2})?$ required: - currency - id - number - total_amount BillRead: type: object properties: id: type: integer readOnly: true uuid: type: string format: uuid user: $ref: '#/components/schemas/UserSummary' vendor: $ref: '#/components/schemas/VendorRead' approval_chain: type: integer readOnly: true nullable: true approver: allOf: - $ref: '#/components/schemas/ApproverRead' nullable: true type: object items: type: array items: $ref: '#/components/schemas/ItemReadSerializer_v2' costs: type: array items: $ref: '#/components/schemas/BillCostRead' invoice_attachments: type: array items: $ref: '#/components/schemas/Attachment' bill_statuses: type: array items: $ref: '#/components/schemas/BillStatusRead' currency: $ref: '#/components/schemas/Currency' comments: type: array items: $ref: '#/components/schemas/Comment' readOnly: true version_choices: type: array items: $ref: '#/components/schemas/VersionChoicesDocs' readOnly: true tax_amount: type: number format: double readOnly: true inclusive_tax_amount: type: number format: double readOnly: true exclusive_tax_amount: type: number format: double readOnly: true subtotal_cost: type: number format: double description: This amount does not include any tax or shipping_amount readOnly: true total_cost: type: number format: double description: This amount should not contain any tax or shipping, but include bill cost readOnly: true total_cost_with_tax: type: number format: double description: Make sure full tax amount is added readOnly: true converted_total_cost: type: number format: double description: Total cost converted to base currency. readOnly: true next_approver_choices: type: array items: $ref: '#/components/schemas/ApproverRead' nullable: true readOnly: true locked: type: boolean readOnly: true bill_payment: allOf: - $ref: '#/components/schemas/APBillPaymentDocs' nullable: true readOnly: true type: object creditcard: type: integer readOnly: true creditcard_name: type: string readOnly: true last_export_user: allOf: - $ref: '#/components/schemas/SimpleUserSummary' readOnly: true last_export_date: type: string format: date readOnly: true vendor_name: type: string maxLength: 100 vendor_contact: type: string maxLength: 100 vendor_address_one: type: string title: Vendor Address Line One maxLength: 300 vendor_address_two: type: string title: Vendor Address Line Two maxLength: 300 vendor_postal_code: type: string maxLength: 10 vendor_city: type: string maxLength: 50 vendor_state_province: type: string title: Vendor State/Province maxLength: 40 vendor_country: type: string maxLength: 80 last_modified_datetime: type: string format: date-time readOnly: true title: Last Modified submitted_date: type: string format: date-time nullable: true invoice_number: type: string maxLength: 50 invoice_date: type: string format: date-time nullable: true title: Bill Invoice Date due_date: type: string format: date-time nullable: true title: Bill Due Date payment_terms: type: string maxLength: 100 version: type: integer maximum: 4294967295 minimum: 0 format: int64 status: allOf: - $ref: '#/components/schemas/BillStatusEnum' minimum: 0 maximum: 4294967295 type: allOf: - $ref: '#/components/schemas/BillTypeEnum' minimum: 0 maximum: 4294967295 active: type: boolean note: type: string gl_post_date: type: string format: date-time nullable: true group: type: integer nullable: true payment_method: type: integer nullable: true title: Bill Payment Method payment_method_name: type: string readOnly: true added_purchase_orders: type: array items: $ref: '#/components/schemas/BillPurchaseOrderDocs' readOnly: true description: List of purchase orders of the added bill items. shipping_amount: type: number format: double readOnly: true invoice_uuid: type: string readOnly: true invoice_total: type: number format: double maximum: 10000000000000 minimum: -10000000000000 exclusiveMaximum: true exclusiveMinimum: true readOnly: true creator: $ref: '#/components/schemas/UserSummary' required: - bill_statuses - costs - creator - currency - invoice_attachments - items - user - uuid - vendor BillStatusEnum: enum: - 0 - 1 - 2 - 3 - 6 - 7 - 8 - 4 - 5 type: integer description: '* `0` - Draft * `1` - Confirmed * `2` - Approved * `3` - Denied * `6` - Payment Confirmed * `7` - Payment Approved * `8` - Payment Limbo * `4` - Paid * `5` - Withdrawn' BillStatusRead: type: object properties: id: type: integer readOnly: true user: $ref: '#/components/schemas/UserSummary' date: type: string format: date-time status: allOf: - $ref: '#/components/schemas/BillStatusEnum' minimum: 0 maximum: 4294967295 bill: type: integer required: - bill - date - status - user BillSummaryDocs: type: object properties: has_multiple_currency: type: boolean total_cost: type: number format: double required: - has_multiple_currency - total_cost BillTypeEnum: enum: - 0 - 1 - 2 type: integer description: '* `0` - Order * `1` - Expense * `2` - Creditcard' BlankEnum: enum: - '' BlanketOrderItemRead: type: object properties: price: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ quantity: type: number format: double nullable: true readOnly: true amount: type: number format: double nullable: true readOnly: true required: - price Branch: type: object properties: id: type: integer readOnly: true external_id: type: string nullable: true description: External id maxLength: 100 name: type: string maxLength: 150 url: type: string format: uri nullable: true maxLength: 200 logo: type: string language: allOf: - $ref: '#/components/schemas/LanguageEnum' minimum: -2147483648 maximum: 2147483647 multipleLocations: type: boolean locationTimezone: nullable: true oneOf: - $ref: '#/components/schemas/LocationTimezoneEnum' - $ref: '#/components/schemas/BlankEnum' - $ref: '#/components/schemas/NullEnum' type: integer userLimit: type: integer maximum: 4294967295 minimum: 0 format: int64 budgetOvertureToggle: type: boolean purchase_filtering: type: boolean catalog_permission: type: boolean separate_expense_approval: type: boolean standalone_travel_approval: type: boolean phoneOne: type: string maxLength: 20 phoneTwo: type: string nullable: true maxLength: 20 fax: type: string nullable: true maxLength: 20 email: type: string format: email nullable: true maxLength: 254 fiscalYearEndDay: type: integer maximum: 4294967295 minimum: 0 format: int64 nullable: true fiscalYearEndMonth: type: integer maximum: 4294967295 minimum: 0 format: int64 nullable: true beginDate: type: string format: date-time readOnly: true nullable: true ported: type: boolean port_date: type: string format: date-time nullable: true active: type: boolean activated: type: boolean setup_stage: $ref: '#/components/schemas/SetupStageEnum' localCurrency: type: integer contactPerson: type: integer nullable: true buyerAddress: type: integer nullable: true shippingAddress: type: integer nullable: true required: - localCurrency - name - phoneOne BranchSummary: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 150 required: - name BreakdownDocs: type: object properties: score: type: number format: double weight: type: string format: decimal pattern: ^-?\d{0,1}(?:\.\d{0,1})?$ required: - score - weight CatalogItemBundleRead: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 100 description: type: string maxLength: 250 image: type: string active: type: boolean items: type: array items: $ref: '#/components/schemas/CatalogItemReadSerializerWithQuantity' readOnly: true items_count: type: integer readOnly: true required: - name CatalogItemRead: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 255 image: type: string unitType: type: string maxLength: 30 pref_vendor: $ref: '#/components/schemas/VendorRead' account_code: $ref: '#/components/schemas/AccountCodeRead' internalSKU: type: string maxLength: 50 description: type: string nullable: true product_url: type: string nullable: true currency: $ref: '#/components/schemas/CurrencySummary' price: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ rfo_lock: type: boolean departments: type: array items: type: integer readOnly: true custom_fields: type: array items: $ref: '#/components/schemas/CustomFieldValueRead' readOnly: true requested_count: type: integer maximum: 2147483647 minimum: -2147483648 last_requested_date: type: string format: date-time nullable: true selected_account: type: object additionalProperties: {} readOnly: true required: - account_code - currency - name - pref_vendor CatalogItemReadSerializerSingleCreate: type: object properties: metadata: type: object additionalProperties: {} default: {} data: $ref: '#/components/schemas/CatalogItemRead' required: - data CatalogItemReadSerializerSingleUpdate: type: object properties: metadata: type: object additionalProperties: {} default: {} data: $ref: '#/components/schemas/CatalogItemRead' required: - data CatalogItemReadSerializerWithQuantity: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 255 image: type: string unitType: type: string maxLength: 30 pref_vendor: $ref: '#/components/schemas/VendorRead' account_code: $ref: '#/components/schemas/AccountCodeRead' internalSKU: type: string maxLength: 50 description: type: string nullable: true product_url: type: string nullable: true currency: $ref: '#/components/schemas/CurrencySummary' price: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ rfo_lock: type: boolean departments: type: array items: type: integer readOnly: true custom_fields: type: array items: $ref: '#/components/schemas/CustomFieldValueRead' readOnly: true requested_count: type: integer maximum: 2147483647 minimum: -2147483648 last_requested_date: type: string format: date-time nullable: true selected_account: type: object additionalProperties: {} readOnly: true quantity: type: number format: double required: - account_code - currency - name - pref_vendor - quantity CatalogItemUpsertRequest: type: object properties: id: type: integer name: type: string minLength: 1 maxLength: 255 image: type: string unitType: type: string maxLength: 30 pref_vendor: type: integer nullable: true account_code: type: integer nullable: true internalSKU: type: string maxLength: 50 description: type: string nullable: true product_url: type: string nullable: true currency: type: integer price: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ rfo_lock: type: boolean departments: type: array items: type: integer custom_fields: type: array items: type: object additionalProperties: {} required: - currency - custom_fields - name CategoryEnum: enum: - 0 - 1 type: integer description: '* `0` - Physical * `1` - Virtual' ChartOfAccountsAccount: type: object properties: id: type: integer readOnly: true account_code: $ref: '#/components/schemas/AccountCodeRead' department: $ref: '#/components/schemas/DepartmentRead' start_datetime: type: string format: date-time nullable: true end_datetime: type: string format: date-time nullable: true budget: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,2})?$ budget_used_approved: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,2})?$ budget_used_purchased: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,2})?$ balance_approved: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,2})?$ balance_purchased: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,2})?$ active: type: boolean required: - account_code - department Comment: type: object properties: userprofile: allOf: - $ref: '#/components/schemas/UserSummary' readOnly: true id: type: integer readOnly: true comment: type: string readOnly: true submit_date: type: string format: date-time title: Date/time submitted CompanyPaymentMethod: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 255 type: allOf: - $ref: '#/components/schemas/PaymentMethodTypeEnum' title: Payment Method minimum: 0 maximum: 4294967295 data: {} currency: type: integer gl_code: type: string maxLength: 100 required: - data CompanyPaymentMethodRead: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 255 type: allOf: - $ref: '#/components/schemas/PaymentMethodTypeEnum' title: Payment Method minimum: 0 maximum: 4294967295 data: {} currency: $ref: '#/components/schemas/Currency' gl_code: type: string required: - currency - data CompanyPaymentMethodRequest: type: object properties: name: type: string maxLength: 255 type: allOf: - $ref: '#/components/schemas/PaymentMethodTypeEnum' title: Payment Method minimum: 0 maximum: 4294967295 data: {} currency: type: integer gl_code: type: string maxLength: 100 required: - data CostAllocationRead: type: object properties: id: type: integer readOnly: true budget: $ref: '#/components/schemas/AccountRead' object_id: type: integer maximum: 4294967295 minimum: 0 format: int64 nullable: true amount: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ title: Billed Amount currency: $ref: '#/components/schemas/Currency' created_on: type: string format: date-time readOnly: true required: - amount - budget - currency CostDetails: type: object properties: subtotal: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,8})?$ nullable: true total_cost: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,8})?$ total_cost_in_base_currency: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,8})?$ tax_amount: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,8})?$ required: - tax_amount - total_cost - total_cost_in_base_currency CreditCard: type: object properties: id: type: integer readOnly: true uuid: type: string format: uuid is_active: type: boolean created_at: type: string format: date-time readOnly: true updated_at: type: string format: date-time readOnly: true name: type: string maxLength: 255 number: type: string pattern: ^[0-9]{4}$ maxLength: 19 balance: type: integer maximum: 2147483647 minimum: -2147483648 nullable: true gl_code: type: string maxLength: 100 type: allOf: - $ref: '#/components/schemas/CreditCardTypeEnum' minimum: -2147483648 maximum: 2147483647 category: nullable: true minimum: -2147483648 maximum: 2147483647 oneOf: - $ref: '#/components/schemas/CategoryEnum' - $ref: '#/components/schemas/NullEnum' type: integer external_id: type: string description: External id of the Credit Card maxLength: 100 status: nullable: true description: 'The status of the Credit Card * `pending` - Pending * `active` - Active * `inactive` - Inactive * `canceled` - Canceled * `lost` - Lost * `stolen` - Stolen' oneOf: - $ref: '#/components/schemas/CreditCardStatusEnum' - $ref: '#/components/schemas/BlankEnum' - $ref: '#/components/schemas/NullEnum' type: integer require_activation: type: boolean title: Require new activation? description: Does this card require new activation? last_changed_by: type: integer nullable: true title: Last changed by user vendor: type: integer payment_method: type: integer nullable: true currency: type: integer currency_name: type: string readOnly: true creator: type: integer nullable: true title: Card Issuer assignees: type: array items: $ref: '#/components/schemas/CreditCardAssignee' required: - assignees - currency - uuid - vendor CreditCardAssignee: type: object properties: id: type: integer readOnly: true firstName: type: string maxLength: 100 lastName: type: string maxLength: 100 email: type: string format: email maxLength: 254 profile_image: type: string nullable: true required: - email CreditCardAssigneeRequest: type: object properties: firstName: type: string maxLength: 100 lastName: type: string maxLength: 100 email: type: string format: email minLength: 1 maxLength: 254 profile_image: type: string format: binary nullable: true required: - email CreditCardItemRead: type: object properties: id: type: integer readOnly: true creditcard: $ref: '#/components/schemas/APCreditCard' po: $ref: '#/components/schemas/PurchaseOrderRead' expense: allOf: - $ref: '#/components/schemas/ExpenseDocs' readOnly: true creditcard_is_editable: type: boolean readOnly: true matched_statement_items: type: array items: $ref: '#/components/schemas/StatementItem' readOnly: true required: - creditcard - po CreditCardRead: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 255 number: type: string pattern: ^[0-9]{4}$ maxLength: 19 vendor: $ref: '#/components/schemas/SimpleVendor' type: allOf: - $ref: '#/components/schemas/CreditCardTypeEnum' minimum: -2147483648 maximum: 2147483647 currency: $ref: '#/components/schemas/Currency' balance: type: integer maximum: 2147483647 minimum: -2147483648 nullable: true assignees: type: array items: $ref: '#/components/schemas/SimpleUserSummary' last_reconciliation_date: type: string format: date-time description: "Comments:\n This field may be incorrect depending on what\ \ types of\n edit we allow our users. Fix later." readOnly: true last_reconciliation_balance: type: number format: double readOnly: true session: allOf: - $ref: '#/components/schemas/SessionCreate' readOnly: true gl_code: type: string maxLength: 100 last_statement_date: type: string format: date-time readOnly: true required: - assignees - currency - vendor CreditCardRequest: type: object properties: uuid: type: string format: uuid is_active: type: boolean name: type: string minLength: 1 maxLength: 255 number: type: string minLength: 1 pattern: ^[0-9]{4}$ maxLength: 19 balance: type: integer maximum: 2147483647 minimum: -2147483648 nullable: true gl_code: type: string maxLength: 100 type: allOf: - $ref: '#/components/schemas/CreditCardTypeEnum' minimum: -2147483648 maximum: 2147483647 category: nullable: true minimum: -2147483648 maximum: 2147483647 oneOf: - $ref: '#/components/schemas/CategoryEnum' - $ref: '#/components/schemas/NullEnum' type: integer external_id: type: string description: External id of the Credit Card maxLength: 100 status: nullable: true description: 'The status of the Credit Card * `pending` - Pending * `active` - Active * `inactive` - Inactive * `canceled` - Canceled * `lost` - Lost * `stolen` - Stolen' oneOf: - $ref: '#/components/schemas/CreditCardStatusEnum' - $ref: '#/components/schemas/BlankEnum' - $ref: '#/components/schemas/NullEnum' type: integer require_activation: type: boolean title: Require new activation? description: Does this card require new activation? last_changed_by: type: integer nullable: true title: Last changed by user vendor: type: integer payment_method: type: integer nullable: true currency: type: integer creator: type: integer nullable: true title: Card Issuer assignees: type: array items: $ref: '#/components/schemas/CreditCardAssigneeRequest' required: - assignees - currency - uuid - vendor CreditCardStatusEnum: enum: - pending - active - inactive - canceled - lost - stolen type: string description: '* `pending` - Pending * `active` - Active * `inactive` - Inactive * `canceled` - Canceled * `lost` - Lost * `stolen` - Stolen' CreditCardTypeEnum: enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 type: integer description: '* `0` - other-credit-card * `1` - Visa * `2` - Mastercard * `3` - American Express * `4` - Discover * `5` - JCB * `6` - Diner''s Club * `7` - Procurify' Currency: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 10 description: type: string maxLength: 100 rate: type: string format: decimal pattern: ^-?\d{0,9}(?:\.\d{0,6})?$ base: type: boolean active: type: boolean required: - name - rate CurrencyRequest: type: object properties: name: type: string minLength: 1 maxLength: 10 description: type: string maxLength: 100 rate: type: string format: decimal pattern: ^-?\d{0,9}(?:\.\d{0,6})?$ base: type: boolean active: type: boolean required: - name - rate CurrencySummary: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 10 rate: type: string format: decimal pattern: ^-?\d{0,9}(?:\.\d{0,6})?$ base: type: boolean required: - name - rate CustomFieldRead: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 200 content_type: type: integer default_value: type: string maxLength: 5000 is_required: type: boolean field_choices: type: array items: type: string readOnly: true field_type: $ref: '#/components/schemas/FieldTypeEnum' field_label: type: string readOnly: true is_active: type: boolean readOnly: true required: - content_type - name CustomFieldReadSerializerSingle: type: object properties: metadata: type: object additionalProperties: {} default: {} data: $ref: '#/components/schemas/CustomFieldRead' required: - data CustomFieldUpdateRequest: type: object properties: name: type: string minLength: 1 maxLength: 200 default_value: type: string maxLength: 5000 is_required: type: boolean field_type: type: string minLength: 1 field_choices: type: array items: type: string minLength: 1 default: [] required: - field_type - name CustomFieldValueRead: type: object properties: id: type: integer readOnly: true value: oneOf: - type: string - type: boolean description: 'Given the *incoming* primitive data, return the value for this field that should be validated and transformed to a native value.' readOnly: true field: $ref: '#/components/schemas/CustomFieldRead' required: - field DenialReasonEnum: enum: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 type: integer description: '* `1` - Other * `2` - Over budget * `3` - Unapproved vendor * `4` - Duplicate request * `5` - Policy violation * `6` - Incorrect specs * `7` - Per request * `8` - Missing information * `9` - Incorrect timing * `10` - Process not followed' DepartmentIdValidationRequest: type: object properties: id: type: integer minimum: 1 required: - id DepartmentLocationRead: type: object properties: id: type: integer readOnly: true branch: $ref: '#/components/schemas/LocationView' external_id: type: string nullable: true description: External id maxLength: 100 name: type: string maxLength: 150 active: type: boolean punchout_email: type: string nullable: true is_active_for_account_code: type: boolean readOnly: true required: - branch - name DepartmentRead: type: object properties: id: type: integer readOnly: true branch: $ref: '#/components/schemas/LocationSimple' external_id: type: string nullable: true description: External id maxLength: 100 name: type: string maxLength: 150 active: type: boolean punchout_email: type: string nullable: true is_active_for_account_code: type: boolean readOnly: true required: - branch - name DepartmentReadSerializerSingleCreate: type: object properties: metadata: type: object additionalProperties: {} default: {} data: $ref: '#/components/schemas/DepartmentRead' required: - data DepartmentReadSerializerSingleUpdate: type: object properties: metadata: type: object additionalProperties: {} default: {} data: $ref: '#/components/schemas/DepartmentRead' required: - data DepartmentSummary: type: object properties: id: type: integer readOnly: true branch: $ref: '#/components/schemas/BranchSummary' external_id: type: string nullable: true description: External id maxLength: 100 name: type: string maxLength: 150 punchout_email: type: string format: email nullable: true description: PunchOut Email maxLength: 254 active: type: boolean required: - branch - name DepartmentUpsertRequest: type: object properties: branch: type: integer external_id: type: string nullable: true description: External id maxLength: 100 name: type: string minLength: 1 maxLength: 150 active: type: boolean punchout_email: type: string nullable: true minLength: 1 required: - branch - name DomainSwitching: type: object properties: active: type: boolean procurify_domains: type: array items: $ref: '#/components/schemas/ProcurifyDomain' required: - active - procurify_domains DurationEnum: enum: - 0 - 1 type: integer description: '* `0` - YEARS * `1` - MONTHS' EmailConfiguration: type: object properties: auto_po: type: boolean payment_remittance: type: boolean EmailConfigurationRequest: type: object properties: auto_po: type: boolean payment_remittance: type: boolean ExpenseDocs: type: object properties: merchant: type: string notes: type: string nullable: true expenseReport: $ref: '#/components/schemas/ExpenseReportWithUserDocs' required: - expenseReport - merchant - notes ExpenseLineCreditCard: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 255 number: type: string pattern: ^[0-9]{4}$ maxLength: 19 type: allOf: - $ref: '#/components/schemas/CreditCardTypeEnum' minimum: -2147483648 maximum: 2147483647 ExpenseRead: type: object properties: id: type: integer readOnly: true account: $ref: '#/components/schemas/Account' localCurrency: $ref: '#/components/schemas/CurrencySummary' expense_type_fields: {} creditcard: $ref: '#/components/schemas/ExpenseLineCreditCard' account_id: type: integer expenseReport: $ref: '#/components/schemas/SimpleExpenseReport' requester: allOf: - $ref: '#/components/schemas/SimpleUserSummary' readOnly: true approver: allOf: - $ref: '#/components/schemas/SimpleUserSummary' readOnly: true approved_date: type: string format: date-time readOnly: true is_active: type: boolean created_at: type: string format: date-time readOnly: true updated_at: type: string format: date-time readOnly: true merchant: type: string maxLength: 100 transDate: type: string format: date-time reimburse: type: boolean expense_type: allOf: - $ref: '#/components/schemas/ExpenseTypeEnum' minimum: -2147483648 maximum: 2147483647 paymentType: allOf: - $ref: '#/components/schemas/PaymentTypeEnum' minimum: -2147483648 maximum: 2147483647 amount: type: string format: decimal pattern: ^-?\d{0,12}(?:\.\d{0,2})?$ nullable: true currency_rate_final: type: string format: decimal pattern: ^-?\d{0,9}(?:\.\d{0,6})?$ exchange_rate_override: type: boolean tax_name: type: string maxLength: 30 tax_percentage: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,8})?$ tax_amount: type: string format: decimal pattern: ^-?\d{0,12}(?:\.\d{0,2})?$ nullable: true tax_is_inclusive: type: boolean notes: type: string nullable: true maxLength: 500 attachment: type: string active: type: boolean last_changed_by: type: integer nullable: true title: Last changed by user mileage_preset: type: integer nullable: true tax: type: integer nullable: true required: - account - account_id - creditcard - currency_rate_final - expenseReport - expense_type_fields - localCurrency - merchant - tax_percentage - transDate ExpenseReportDocs: type: object properties: id: type: integer uuid: type: string ExpenseReportUserSummaryDocs: type: object properties: id: type: integer readOnly: true firstName: type: string maxLength: 100 lastName: type: string maxLength: 100 email: type: string format: email maxLength: 254 position: type: string nullable: true maxLength: 100 profile_image: type: string nullable: true approval_delegatee: allOf: - $ref: '#/components/schemas/ApprovalDelegateeDocs' nullable: true type: object expected_return_date: type: string format: date readOnly: true required: - approval_delegatee - email ExpenseReportWithUserDocs: type: object properties: id: type: integer uuid: type: string user: $ref: '#/components/schemas/ExpenseReportUserSummaryDocs' required: - id - user - uuid ExpenseTypeEnum: enum: - 0 - 1 - 2 - 3 - 4 - 5 type: integer description: '* `0` - OTHER * `1` - MEALS * `2` - MILEAGE * `3` - LABOUR * `4` - AIRFARE * `5` - LODGING' FieldTypeEnum: enum: - t - a - i - f - b - m - d - h type: string description: '* `t` - Text * `a` - Large Text Field * `i` - Integer * `f` - Floating point decimal * `b` - Boolean (Yes/No) * `m` - Dropdown Choices * `d` - Date * `h` - Date Time' FlagRead: type: object properties: color: type: string readOnly: true symbol: type: string readOnly: true object_id: type: integer maximum: 4294967295 minimum: 0 format: int64 content_type: type: integer nullable: true required: - object_id FrequencyEnum: enum: - 0 - 1 type: integer description: '* `0` - YEARLY * `1` - MONTHLY' FulfilmentStatusEnum: enum: - empty - partial - full type: string description: '* `empty` - Empty * `partial` - Partial * `full` - Full' InviteFunctionalUserRequest: type: object properties: email: type: string format: email minLength: 1 send_invitation_email: type: boolean default: true first_name: type: string default: '' last_name: type: string default: '' phone: type: string default: '' position: type: string default: '' role_id: type: integer minimum: 0 default: 0 all_locations: type: boolean default: false locations: type: array items: $ref: '#/components/schemas/LocationIdValidationSerializersRequest' default: [] home_department: type: integer minimum: 0 default: 0 home_location: type: integer minimum: 0 default: 0 required: - email ItemMetadataItemRead: type: object properties: metadata: $ref: '#/components/schemas/BillItemsMetadataDocs' data: type: array items: $ref: '#/components/schemas/ItemReadSerializer_v2' required: - data - metadata ItemReadSerializer_v2: type: object properties: id: type: integer readOnly: true orderitem: allOf: - $ref: '#/components/schemas/OrderItemRead' readOnly: true description: Purchase order item origin (if exists). expense: allOf: - $ref: '#/components/schemas/ExpenseRead' nullable: true description: Expense line item origin (if exists). type: object bill: type: integer nullable: true vendor: $ref: '#/components/schemas/VendorRead' sku: type: string maxLength: 100 description: type: string maxLength: 1000 po: allOf: - $ref: '#/components/schemas/PODocs' readOnly: true description: Purchase order origin (if originated from PO item or PO misc. costs). unit: type: string maxLength: 30 quantity: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ title: Item Quantity readOnly: true description: Item quantity, only applicable to bill by quantity. currency: $ref: '#/components/schemas/Currency' total_cost: type: number format: double description: Item total cost without tax amount. readOnly: true received_on: type: string format: date-time readOnly: true description: Last received datetime of the related purchase order item. packing_slips: type: array items: $ref: '#/components/schemas/Attachment' readOnly: true cost_allocations: type: array items: $ref: '#/components/schemas/CostAllocationRead' archived: type: boolean expense_report: allOf: - $ref: '#/components/schemas/ExpenseReportDocs' readOnly: true same_unit_cost: type: boolean readOnly: true creditcard_item: allOf: - $ref: '#/components/schemas/CreditCardItemRead' nullable: true description: Credit card item origin (if exists). type: object is_edited: type: boolean readOnly: true unit_cost_diff_log: allOf: - $ref: '#/components/schemas/UnitCostDiffLogDocs' nullable: true readOnly: true type: object tax_name: type: string maxLength: 100 tax_percentage: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,8})?$ nullable: true tax_amount: type: number format: double readOnly: true tax_is_inclusive: type: boolean tax: type: integer nullable: true total_cost_with_tax: type: number format: double description: Item total cost with tax amount. readOnly: true shipping_amount: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ nullable: true unit_cost: type: number format: float readOnly: true description: Unit cost of the item, applicable to bill by quantity items only. custom_fields: type: array items: $ref: '#/components/schemas/CustomFieldValueRead' readOnly: true type: type: string bill_by_cost: type: boolean readOnly: true description: Item billing method is bill by cost (true) or bill by quantity (false). required: - cost_allocations - creditcard_item - currency - description - expense - type - vendor ItemWriteRequest: type: object properties: order_item: type: integer description: The ID of an order item that you wish to create a receipt for. This will be the id property found in the PO or Order Items responses for this item. pass_quantity: type: string format: decimal pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ fail_quantity: type: string format: decimal pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ required: - fail_quantity - order_item - pass_quantity LanguageEnum: enum: - 1 type: integer description: '* `1` - English' LegalEntitySummary: type: object properties: id: type: integer readOnly: true uuid: type: string format: uuid readOnly: true name: type: string readOnly: true LineItemCustomFieldRequest: type: object description: "Serializer used when custom fields are provided in a request.\ \ E.g JSON request with:\n\"custom_fields\": [\n {\n \"custom_field_name\"\ : \"string\",\n \"custom_field_value\": \"string\"\n },\n ...\n]" properties: custom_field_name: type: string minLength: 1 custom_field_value: type: string minLength: 1 required: - custom_field_name - custom_field_value ListBillsMetadataDocs: type: object properties: permissions: $ref: '#/components/schemas/PermissionsEditDeleteApprove' summary: $ref: '#/components/schemas/BillSummaryDocs' pagination: $ref: '#/components/schemas/PaginationDocs' required: - pagination - permissions - summary LocationCreateUpsertRequest: type: object properties: name: type: string minLength: 1 maxLength: 150 url: type: string nullable: true logo: type: string nullable: true currency: type: string minLength: 1 phoneOne: type: string minLength: 1 maxLength: 20 fax: type: string nullable: true maxLength: 20 email: type: string format: email nullable: true maxLength: 254 primary_billing_address: $ref: '#/components/schemas/AddressRequest' primary_shipping_address: $ref: '#/components/schemas/AddressRequest' shipping_addresses: type: array items: $ref: '#/components/schemas/AddressRequest' language: allOf: - $ref: '#/components/schemas/LanguageEnum' minimum: -2147483648 maximum: 2147483647 locationTimezone: nullable: true oneOf: - $ref: '#/components/schemas/LocationTimezoneEnum' - $ref: '#/components/schemas/BlankEnum' - $ref: '#/components/schemas/NullEnum' type: integer active: type: boolean external_id: type: string nullable: true description: External id maxLength: 100 legal_entity: type: integer required: - currency - name - phoneOne - primary_billing_address - primary_shipping_address - shipping_addresses LocationIdValidationSerializersRequest: type: object properties: id: type: integer minimum: 1 all_departments: type: boolean default: false departments: type: array items: $ref: '#/components/schemas/DepartmentIdValidationRequest' default: [] required: - id LocationSimple: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 150 headquarter: type: boolean readOnly: true required: - name LocationTimezoneEnum: enum: - Africa/Abidjan - Africa/Accra - Africa/Addis_Ababa - Africa/Algiers - Africa/Asmara - Africa/Bamako - Africa/Bangui - Africa/Banjul - Africa/Bissau - Africa/Blantyre - Africa/Brazzaville - Africa/Bujumbura - Africa/Cairo - Africa/Casablanca - Africa/Ceuta - Africa/Conakry - Africa/Dakar - Africa/Dar_es_Salaam - Africa/Djibouti - Africa/Douala - Africa/El_Aaiun - Africa/Freetown - Africa/Gaborone - Africa/Harare - Africa/Johannesburg - Africa/Juba - Africa/Kampala - Africa/Khartoum - Africa/Kigali - Africa/Kinshasa - Africa/Lagos - Africa/Libreville - Africa/Lome - Africa/Luanda - Africa/Lubumbashi - Africa/Lusaka - Africa/Malabo - Africa/Maputo - Africa/Maseru - Africa/Mbabane - Africa/Mogadishu - Africa/Monrovia - Africa/Nairobi - Africa/Ndjamena - Africa/Niamey - Africa/Nouakchott - Africa/Ouagadougou - Africa/Porto-Novo - Africa/Sao_Tome - Africa/Tripoli - Africa/Tunis - Africa/Windhoek - America/Adak - America/Anchorage - America/Anguilla - America/Antigua - America/Araguaina - America/Argentina/Buenos_Aires - America/Argentina/Catamarca - America/Argentina/Cordoba - America/Argentina/Jujuy - America/Argentina/La_Rioja - America/Argentina/Mendoza - America/Argentina/Rio_Gallegos - America/Argentina/Salta - America/Argentina/San_Juan - America/Argentina/San_Luis - America/Argentina/Tucuman - America/Argentina/Ushuaia - America/Aruba - America/Asuncion - America/Atikokan - America/Bahia - America/Bahia_Banderas - America/Barbados - America/Belem - America/Belize - America/Blanc-Sablon - America/Boa_Vista - America/Bogota - America/Boise - America/Cambridge_Bay - America/Campo_Grande - America/Cancun - America/Caracas - America/Cayenne - America/Cayman - America/Chicago - America/Chihuahua - America/Costa_Rica - America/Creston - America/Cuiaba - America/Curacao - America/Danmarkshavn - America/Dawson - America/Dawson_Creek - America/Denver - America/Detroit - America/Dominica - America/Edmonton - America/Eirunepe - America/El_Salvador - America/Fort_Nelson - America/Fortaleza - America/Glace_Bay - America/Godthab - America/Goose_Bay - America/Grand_Turk - America/Grenada - America/Guadeloupe - America/Guatemala - America/Guayaquil - America/Guyana - America/Halifax - America/Havana - America/Hermosillo - America/Indiana/Indianapolis - America/Indiana/Knox - America/Indiana/Marengo - America/Indiana/Petersburg - America/Indiana/Tell_City - America/Indiana/Vevay - America/Indiana/Vincennes - America/Indiana/Winamac - America/Inuvik - America/Iqaluit - America/Jamaica - America/Juneau - America/Kentucky/Louisville - America/Kentucky/Monticello - America/Kralendijk - America/La_Paz - America/Lima - America/Los_Angeles - America/Lower_Princes - America/Maceio - America/Managua - America/Manaus - America/Marigot - America/Martinique - America/Matamoros - America/Mazatlan - America/Menominee - America/Merida - America/Metlakatla - America/Mexico_City - America/Miquelon - America/Moncton - America/Monterrey - America/Montevideo - America/Montserrat - America/Nassau - America/New_York - America/Nipigon - America/Nome - America/Noronha - America/North_Dakota/Beulah - America/North_Dakota/Center - America/North_Dakota/New_Salem - America/Ojinaga - America/Panama - America/Pangnirtung - America/Paramaribo - America/Phoenix - America/Port-au-Prince - America/Port_of_Spain - America/Porto_Velho - America/Puerto_Rico - America/Punta_Arenas - America/Rainy_River - America/Rankin_Inlet - America/Recife - America/Regina - America/Resolute - America/Rio_Branco - America/Santarem - America/Santiago - America/Santo_Domingo - America/Sao_Paulo - America/Scoresbysund - America/Sitka - America/St_Barthelemy - America/St_Johns - America/St_Kitts - America/St_Lucia - America/St_Thomas - America/St_Vincent - America/Swift_Current - America/Tegucigalpa - America/Thule - America/Thunder_Bay - America/Tijuana - America/Toronto - America/Tortola - America/Vancouver - America/Whitehorse - America/Winnipeg - America/Yakutat - America/Yellowknife - Antarctica/Casey - Antarctica/Davis - Antarctica/DumontDUrville - Antarctica/Macquarie - Antarctica/Mawson - Antarctica/McMurdo - Antarctica/Palmer - Antarctica/Rothera - Antarctica/Syowa - Antarctica/Troll - Antarctica/Vostok - Arctic/Longyearbyen - Asia/Aden - Asia/Almaty - Asia/Amman - Asia/Anadyr - Asia/Aqtau - Asia/Aqtobe - Asia/Ashgabat - Asia/Atyrau - Asia/Baghdad - Asia/Bahrain - Asia/Baku - Asia/Bangkok - Asia/Barnaul - Asia/Beirut - Asia/Bishkek - Asia/Brunei - Asia/Chita - Asia/Choibalsan - Asia/Colombo - Asia/Damascus - Asia/Dhaka - Asia/Dili - Asia/Dubai - Asia/Dushanbe - Asia/Famagusta - Asia/Gaza - Asia/Hebron - Asia/Ho_Chi_Minh - Asia/Hong_Kong - Asia/Hovd - Asia/Irkutsk - Asia/Jakarta - Asia/Jayapura - Asia/Jerusalem - Asia/Kabul - Asia/Kamchatka - Asia/Karachi - Asia/Kathmandu - Asia/Khandyga - Asia/Kolkata - Asia/Krasnoyarsk - Asia/Kuala_Lumpur - Asia/Kuching - Asia/Kuwait - Asia/Macau - Asia/Magadan - Asia/Makassar - Asia/Manila - Asia/Muscat - Asia/Nicosia - Asia/Novokuznetsk - Asia/Novosibirsk - Asia/Omsk - Asia/Oral - Asia/Phnom_Penh - Asia/Pontianak - Asia/Pyongyang - Asia/Qatar - Asia/Qyzylorda - Asia/Riyadh - Asia/Sakhalin - Asia/Samarkand - Asia/Seoul - Asia/Shanghai - Asia/Singapore - Asia/Srednekolymsk - Asia/Taipei - Asia/Tashkent - Asia/Tbilisi - Asia/Tehran - Asia/Thimphu - Asia/Tokyo - Asia/Tomsk - Asia/Ulaanbaatar - Asia/Urumqi - Asia/Ust-Nera - Asia/Vientiane - Asia/Vladivostok - Asia/Yakutsk - Asia/Yangon - Asia/Yekaterinburg - Asia/Yerevan - Atlantic/Azores - Atlantic/Bermuda - Atlantic/Canary - Atlantic/Cape_Verde - Atlantic/Faroe - Atlantic/Madeira - Atlantic/Reykjavik - Atlantic/South_Georgia - Atlantic/St_Helena - Atlantic/Stanley - Australia/Adelaide - Australia/Brisbane - Australia/Broken_Hill - Australia/Currie - Australia/Darwin - Australia/Eucla - Australia/Hobart - Australia/Lindeman - Australia/Lord_Howe - Australia/Melbourne - Australia/Perth - Australia/Sydney - Canada/Atlantic - Canada/Central - Canada/Eastern - Canada/Mountain - Canada/Newfoundland - Canada/Pacific - Europe/Amsterdam - Europe/Andorra - Europe/Astrakhan - Europe/Athens - Europe/Belgrade - Europe/Berlin - Europe/Bratislava - Europe/Brussels - Europe/Bucharest - Europe/Budapest - Europe/Busingen - Europe/Chisinau - Europe/Copenhagen - Europe/Dublin - Europe/Gibraltar - Europe/Guernsey - Europe/Helsinki - Europe/Isle_of_Man - Europe/Istanbul - Europe/Jersey - Europe/Kaliningrad - Europe/Kiev - Europe/Kirov - Europe/Lisbon - Europe/Ljubljana - Europe/London - Europe/Luxembourg - Europe/Madrid - Europe/Malta - Europe/Mariehamn - Europe/Minsk - Europe/Monaco - Europe/Moscow - Europe/Oslo - Europe/Paris - Europe/Podgorica - Europe/Prague - Europe/Riga - Europe/Rome - Europe/Samara - Europe/San_Marino - Europe/Sarajevo - Europe/Saratov - Europe/Simferopol - Europe/Skopje - Europe/Sofia - Europe/Stockholm - Europe/Tallinn - Europe/Tirane - Europe/Ulyanovsk - Europe/Uzhgorod - Europe/Vaduz - Europe/Vatican - Europe/Vienna - Europe/Vilnius - Europe/Volgograd - Europe/Warsaw - Europe/Zagreb - Europe/Zaporozhye - Europe/Zurich - GMT - Indian/Antananarivo - Indian/Chagos - Indian/Christmas - Indian/Cocos - Indian/Comoro - Indian/Kerguelen - Indian/Mahe - Indian/Maldives - Indian/Mauritius - Indian/Mayotte - Indian/Reunion - Pacific/Apia - Pacific/Auckland - Pacific/Bougainville - Pacific/Chatham - Pacific/Chuuk - Pacific/Easter - Pacific/Efate - Pacific/Enderbury - Pacific/Fakaofo - Pacific/Fiji - Pacific/Funafuti - Pacific/Galapagos - Pacific/Gambier - Pacific/Guadalcanal - Pacific/Guam - Pacific/Honolulu - Pacific/Kiritimati - Pacific/Kosrae - Pacific/Kwajalein - Pacific/Majuro - Pacific/Marquesas - Pacific/Midway - Pacific/Nauru - Pacific/Niue - Pacific/Norfolk - Pacific/Noumea - Pacific/Pago_Pago - Pacific/Palau - Pacific/Pitcairn - Pacific/Pohnpei - Pacific/Port_Moresby - Pacific/Rarotonga - Pacific/Saipan - Pacific/Tahiti - Pacific/Tarawa - Pacific/Tongatapu - Pacific/Wake - Pacific/Wallis - US/Alaska - US/Arizona - US/Central - US/Eastern - US/Hawaii - US/Mountain - US/Pacific - UTC type: string description: '* `Africa/Abidjan` - Africa/Abidjan * `Africa/Accra` - Africa/Accra * `Africa/Addis_Ababa` - Africa/Addis_Ababa * `Africa/Algiers` - Africa/Algiers * `Africa/Asmara` - Africa/Asmara * `Africa/Bamako` - Africa/Bamako * `Africa/Bangui` - Africa/Bangui * `Africa/Banjul` - Africa/Banjul * `Africa/Bissau` - Africa/Bissau * `Africa/Blantyre` - Africa/Blantyre * `Africa/Brazzaville` - Africa/Brazzaville * `Africa/Bujumbura` - Africa/Bujumbura * `Africa/Cairo` - Africa/Cairo * `Africa/Casablanca` - Africa/Casablanca * `Africa/Ceuta` - Africa/Ceuta * `Africa/Conakry` - Africa/Conakry * `Africa/Dakar` - Africa/Dakar * `Africa/Dar_es_Salaam` - Africa/Dar_es_Salaam * `Africa/Djibouti` - Africa/Djibouti * `Africa/Douala` - Africa/Douala * `Africa/El_Aaiun` - Africa/El_Aaiun * `Africa/Freetown` - Africa/Freetown * `Africa/Gaborone` - Africa/Gaborone * `Africa/Harare` - Africa/Harare * `Africa/Johannesburg` - Africa/Johannesburg * `Africa/Juba` - Africa/Juba * `Africa/Kampala` - Africa/Kampala * `Africa/Khartoum` - Africa/Khartoum * `Africa/Kigali` - Africa/Kigali * `Africa/Kinshasa` - Africa/Kinshasa * `Africa/Lagos` - Africa/Lagos * `Africa/Libreville` - Africa/Libreville * `Africa/Lome` - Africa/Lome * `Africa/Luanda` - Africa/Luanda * `Africa/Lubumbashi` - Africa/Lubumbashi * `Africa/Lusaka` - Africa/Lusaka * `Africa/Malabo` - Africa/Malabo * `Africa/Maputo` - Africa/Maputo * `Africa/Maseru` - Africa/Maseru * `Africa/Mbabane` - Africa/Mbabane * `Africa/Mogadishu` - Africa/Mogadishu * `Africa/Monrovia` - Africa/Monrovia * `Africa/Nairobi` - Africa/Nairobi * `Africa/Ndjamena` - Africa/Ndjamena * `Africa/Niamey` - Africa/Niamey * `Africa/Nouakchott` - Africa/Nouakchott * `Africa/Ouagadougou` - Africa/Ouagadougou * `Africa/Porto-Novo` - Africa/Porto-Novo * `Africa/Sao_Tome` - Africa/Sao_Tome * `Africa/Tripoli` - Africa/Tripoli * `Africa/Tunis` - Africa/Tunis * `Africa/Windhoek` - Africa/Windhoek * `America/Adak` - America/Adak * `America/Anchorage` - America/Anchorage * `America/Anguilla` - America/Anguilla * `America/Antigua` - America/Antigua * `America/Araguaina` - America/Araguaina * `America/Argentina/Buenos_Aires` - America/Argentina/Buenos_Aires * `America/Argentina/Catamarca` - America/Argentina/Catamarca * `America/Argentina/Cordoba` - America/Argentina/Cordoba * `America/Argentina/Jujuy` - America/Argentina/Jujuy * `America/Argentina/La_Rioja` - America/Argentina/La_Rioja * `America/Argentina/Mendoza` - America/Argentina/Mendoza * `America/Argentina/Rio_Gallegos` - America/Argentina/Rio_Gallegos * `America/Argentina/Salta` - America/Argentina/Salta * `America/Argentina/San_Juan` - America/Argentina/San_Juan * `America/Argentina/San_Luis` - America/Argentina/San_Luis * `America/Argentina/Tucuman` - America/Argentina/Tucuman * `America/Argentina/Ushuaia` - America/Argentina/Ushuaia * `America/Aruba` - America/Aruba * `America/Asuncion` - America/Asuncion * `America/Atikokan` - America/Atikokan * `America/Bahia` - America/Bahia * `America/Bahia_Banderas` - America/Bahia_Banderas * `America/Barbados` - America/Barbados * `America/Belem` - America/Belem * `America/Belize` - America/Belize * `America/Blanc-Sablon` - America/Blanc-Sablon * `America/Boa_Vista` - America/Boa_Vista * `America/Bogota` - America/Bogota * `America/Boise` - America/Boise * `America/Cambridge_Bay` - America/Cambridge_Bay * `America/Campo_Grande` - America/Campo_Grande * `America/Cancun` - America/Cancun * `America/Caracas` - America/Caracas * `America/Cayenne` - America/Cayenne * `America/Cayman` - America/Cayman * `America/Chicago` - America/Chicago * `America/Chihuahua` - America/Chihuahua * `America/Costa_Rica` - America/Costa_Rica * `America/Creston` - America/Creston * `America/Cuiaba` - America/Cuiaba * `America/Curacao` - America/Curacao * `America/Danmarkshavn` - America/Danmarkshavn * `America/Dawson` - America/Dawson * `America/Dawson_Creek` - America/Dawson_Creek * `America/Denver` - America/Denver * `America/Detroit` - America/Detroit * `America/Dominica` - America/Dominica * `America/Edmonton` - America/Edmonton * `America/Eirunepe` - America/Eirunepe * `America/El_Salvador` - America/El_Salvador * `America/Fort_Nelson` - America/Fort_Nelson * `America/Fortaleza` - America/Fortaleza * `America/Glace_Bay` - America/Glace_Bay * `America/Godthab` - America/Godthab * `America/Goose_Bay` - America/Goose_Bay * `America/Grand_Turk` - America/Grand_Turk * `America/Grenada` - America/Grenada * `America/Guadeloupe` - America/Guadeloupe * `America/Guatemala` - America/Guatemala * `America/Guayaquil` - America/Guayaquil * `America/Guyana` - America/Guyana * `America/Halifax` - America/Halifax * `America/Havana` - America/Havana * `America/Hermosillo` - America/Hermosillo * `America/Indiana/Indianapolis` - America/Indiana/Indianapolis * `America/Indiana/Knox` - America/Indiana/Knox * `America/Indiana/Marengo` - America/Indiana/Marengo * `America/Indiana/Petersburg` - America/Indiana/Petersburg * `America/Indiana/Tell_City` - America/Indiana/Tell_City * `America/Indiana/Vevay` - America/Indiana/Vevay * `America/Indiana/Vincennes` - America/Indiana/Vincennes * `America/Indiana/Winamac` - America/Indiana/Winamac * `America/Inuvik` - America/Inuvik * `America/Iqaluit` - America/Iqaluit * `America/Jamaica` - America/Jamaica * `America/Juneau` - America/Juneau * `America/Kentucky/Louisville` - America/Kentucky/Louisville * `America/Kentucky/Monticello` - America/Kentucky/Monticello * `America/Kralendijk` - America/Kralendijk * `America/La_Paz` - America/La_Paz * `America/Lima` - America/Lima * `America/Los_Angeles` - America/Los_Angeles * `America/Lower_Princes` - America/Lower_Princes * `America/Maceio` - America/Maceio * `America/Managua` - America/Managua * `America/Manaus` - America/Manaus * `America/Marigot` - America/Marigot * `America/Martinique` - America/Martinique * `America/Matamoros` - America/Matamoros * `America/Mazatlan` - America/Mazatlan * `America/Menominee` - America/Menominee * `America/Merida` - America/Merida * `America/Metlakatla` - America/Metlakatla * `America/Mexico_City` - America/Mexico_City * `America/Miquelon` - America/Miquelon * `America/Moncton` - America/Moncton * `America/Monterrey` - America/Monterrey * `America/Montevideo` - America/Montevideo * `America/Montserrat` - America/Montserrat * `America/Nassau` - America/Nassau * `America/New_York` - America/New_York * `America/Nipigon` - America/Nipigon * `America/Nome` - America/Nome * `America/Noronha` - America/Noronha * `America/North_Dakota/Beulah` - America/North_Dakota/Beulah * `America/North_Dakota/Center` - America/North_Dakota/Center * `America/North_Dakota/New_Salem` - America/North_Dakota/New_Salem * `America/Ojinaga` - America/Ojinaga * `America/Panama` - America/Panama * `America/Pangnirtung` - America/Pangnirtung * `America/Paramaribo` - America/Paramaribo * `America/Phoenix` - America/Phoenix * `America/Port-au-Prince` - America/Port-au-Prince * `America/Port_of_Spain` - America/Port_of_Spain * `America/Porto_Velho` - America/Porto_Velho * `America/Puerto_Rico` - America/Puerto_Rico * `America/Punta_Arenas` - America/Punta_Arenas * `America/Rainy_River` - America/Rainy_River * `America/Rankin_Inlet` - America/Rankin_Inlet * `America/Recife` - America/Recife * `America/Regina` - America/Regina * `America/Resolute` - America/Resolute * `America/Rio_Branco` - America/Rio_Branco * `America/Santarem` - America/Santarem * `America/Santiago` - America/Santiago * `America/Santo_Domingo` - America/Santo_Domingo * `America/Sao_Paulo` - America/Sao_Paulo * `America/Scoresbysund` - America/Scoresbysund * `America/Sitka` - America/Sitka * `America/St_Barthelemy` - America/St_Barthelemy * `America/St_Johns` - America/St_Johns * `America/St_Kitts` - America/St_Kitts * `America/St_Lucia` - America/St_Lucia * `America/St_Thomas` - America/St_Thomas * `America/St_Vincent` - America/St_Vincent * `America/Swift_Current` - America/Swift_Current * `America/Tegucigalpa` - America/Tegucigalpa * `America/Thule` - America/Thule * `America/Thunder_Bay` - America/Thunder_Bay * `America/Tijuana` - America/Tijuana * `America/Toronto` - America/Toronto * `America/Tortola` - America/Tortola * `America/Vancouver` - America/Vancouver * `America/Whitehorse` - America/Whitehorse * `America/Winnipeg` - America/Winnipeg * `America/Yakutat` - America/Yakutat * `America/Yellowknife` - America/Yellowknife * `Antarctica/Casey` - Antarctica/Casey * `Antarctica/Davis` - Antarctica/Davis * `Antarctica/DumontDUrville` - Antarctica/DumontDUrville * `Antarctica/Macquarie` - Antarctica/Macquarie * `Antarctica/Mawson` - Antarctica/Mawson * `Antarctica/McMurdo` - Antarctica/McMurdo * `Antarctica/Palmer` - Antarctica/Palmer * `Antarctica/Rothera` - Antarctica/Rothera * `Antarctica/Syowa` - Antarctica/Syowa * `Antarctica/Troll` - Antarctica/Troll * `Antarctica/Vostok` - Antarctica/Vostok * `Arctic/Longyearbyen` - Arctic/Longyearbyen * `Asia/Aden` - Asia/Aden * `Asia/Almaty` - Asia/Almaty * `Asia/Amman` - Asia/Amman * `Asia/Anadyr` - Asia/Anadyr * `Asia/Aqtau` - Asia/Aqtau * `Asia/Aqtobe` - Asia/Aqtobe * `Asia/Ashgabat` - Asia/Ashgabat * `Asia/Atyrau` - Asia/Atyrau * `Asia/Baghdad` - Asia/Baghdad * `Asia/Bahrain` - Asia/Bahrain * `Asia/Baku` - Asia/Baku * `Asia/Bangkok` - Asia/Bangkok * `Asia/Barnaul` - Asia/Barnaul * `Asia/Beirut` - Asia/Beirut * `Asia/Bishkek` - Asia/Bishkek * `Asia/Brunei` - Asia/Brunei * `Asia/Chita` - Asia/Chita * `Asia/Choibalsan` - Asia/Choibalsan * `Asia/Colombo` - Asia/Colombo * `Asia/Damascus` - Asia/Damascus * `Asia/Dhaka` - Asia/Dhaka * `Asia/Dili` - Asia/Dili * `Asia/Dubai` - Asia/Dubai * `Asia/Dushanbe` - Asia/Dushanbe * `Asia/Famagusta` - Asia/Famagusta * `Asia/Gaza` - Asia/Gaza * `Asia/Hebron` - Asia/Hebron * `Asia/Ho_Chi_Minh` - Asia/Ho_Chi_Minh * `Asia/Hong_Kong` - Asia/Hong_Kong * `Asia/Hovd` - Asia/Hovd * `Asia/Irkutsk` - Asia/Irkutsk * `Asia/Jakarta` - Asia/Jakarta * `Asia/Jayapura` - Asia/Jayapura * `Asia/Jerusalem` - Asia/Jerusalem * `Asia/Kabul` - Asia/Kabul * `Asia/Kamchatka` - Asia/Kamchatka * `Asia/Karachi` - Asia/Karachi * `Asia/Kathmandu` - Asia/Kathmandu * `Asia/Khandyga` - Asia/Khandyga * `Asia/Kolkata` - Asia/Kolkata * `Asia/Krasnoyarsk` - Asia/Krasnoyarsk * `Asia/Kuala_Lumpur` - Asia/Kuala_Lumpur * `Asia/Kuching` - Asia/Kuching * `Asia/Kuwait` - Asia/Kuwait * `Asia/Macau` - Asia/Macau * `Asia/Magadan` - Asia/Magadan * `Asia/Makassar` - Asia/Makassar * `Asia/Manila` - Asia/Manila * `Asia/Muscat` - Asia/Muscat * `Asia/Nicosia` - Asia/Nicosia * `Asia/Novokuznetsk` - Asia/Novokuznetsk * `Asia/Novosibirsk` - Asia/Novosibirsk * `Asia/Omsk` - Asia/Omsk * `Asia/Oral` - Asia/Oral * `Asia/Phnom_Penh` - Asia/Phnom_Penh * `Asia/Pontianak` - Asia/Pontianak * `Asia/Pyongyang` - Asia/Pyongyang * `Asia/Qatar` - Asia/Qatar * `Asia/Qyzylorda` - Asia/Qyzylorda * `Asia/Riyadh` - Asia/Riyadh * `Asia/Sakhalin` - Asia/Sakhalin * `Asia/Samarkand` - Asia/Samarkand * `Asia/Seoul` - Asia/Seoul * `Asia/Shanghai` - Asia/Shanghai * `Asia/Singapore` - Asia/Singapore * `Asia/Srednekolymsk` - Asia/Srednekolymsk * `Asia/Taipei` - Asia/Taipei * `Asia/Tashkent` - Asia/Tashkent * `Asia/Tbilisi` - Asia/Tbilisi * `Asia/Tehran` - Asia/Tehran * `Asia/Thimphu` - Asia/Thimphu * `Asia/Tokyo` - Asia/Tokyo * `Asia/Tomsk` - Asia/Tomsk * `Asia/Ulaanbaatar` - Asia/Ulaanbaatar * `Asia/Urumqi` - Asia/Urumqi * `Asia/Ust-Nera` - Asia/Ust-Nera * `Asia/Vientiane` - Asia/Vientiane * `Asia/Vladivostok` - Asia/Vladivostok * `Asia/Yakutsk` - Asia/Yakutsk * `Asia/Yangon` - Asia/Yangon * `Asia/Yekaterinburg` - Asia/Yekaterinburg * `Asia/Yerevan` - Asia/Yerevan * `Atlantic/Azores` - Atlantic/Azores * `Atlantic/Bermuda` - Atlantic/Bermuda * `Atlantic/Canary` - Atlantic/Canary * `Atlantic/Cape_Verde` - Atlantic/Cape_Verde * `Atlantic/Faroe` - Atlantic/Faroe * `Atlantic/Madeira` - Atlantic/Madeira * `Atlantic/Reykjavik` - Atlantic/Reykjavik * `Atlantic/South_Georgia` - Atlantic/South_Georgia * `Atlantic/St_Helena` - Atlantic/St_Helena * `Atlantic/Stanley` - Atlantic/Stanley * `Australia/Adelaide` - Australia/Adelaide * `Australia/Brisbane` - Australia/Brisbane * `Australia/Broken_Hill` - Australia/Broken_Hill * `Australia/Currie` - Australia/Currie * `Australia/Darwin` - Australia/Darwin * `Australia/Eucla` - Australia/Eucla * `Australia/Hobart` - Australia/Hobart * `Australia/Lindeman` - Australia/Lindeman * `Australia/Lord_Howe` - Australia/Lord_Howe * `Australia/Melbourne` - Australia/Melbourne * `Australia/Perth` - Australia/Perth * `Australia/Sydney` - Australia/Sydney * `Canada/Atlantic` - Canada/Atlantic * `Canada/Central` - Canada/Central * `Canada/Eastern` - Canada/Eastern * `Canada/Mountain` - Canada/Mountain * `Canada/Newfoundland` - Canada/Newfoundland * `Canada/Pacific` - Canada/Pacific * `Europe/Amsterdam` - Europe/Amsterdam * `Europe/Andorra` - Europe/Andorra * `Europe/Astrakhan` - Europe/Astrakhan * `Europe/Athens` - Europe/Athens * `Europe/Belgrade` - Europe/Belgrade * `Europe/Berlin` - Europe/Berlin * `Europe/Bratislava` - Europe/Bratislava * `Europe/Brussels` - Europe/Brussels * `Europe/Bucharest` - Europe/Bucharest * `Europe/Budapest` - Europe/Budapest * `Europe/Busingen` - Europe/Busingen * `Europe/Chisinau` - Europe/Chisinau * `Europe/Copenhagen` - Europe/Copenhagen * `Europe/Dublin` - Europe/Dublin * `Europe/Gibraltar` - Europe/Gibraltar * `Europe/Guernsey` - Europe/Guernsey * `Europe/Helsinki` - Europe/Helsinki * `Europe/Isle_of_Man` - Europe/Isle_of_Man * `Europe/Istanbul` - Europe/Istanbul * `Europe/Jersey` - Europe/Jersey * `Europe/Kaliningrad` - Europe/Kaliningrad * `Europe/Kiev` - Europe/Kiev * `Europe/Kirov` - Europe/Kirov * `Europe/Lisbon` - Europe/Lisbon * `Europe/Ljubljana` - Europe/Ljubljana * `Europe/London` - Europe/London * `Europe/Luxembourg` - Europe/Luxembourg * `Europe/Madrid` - Europe/Madrid * `Europe/Malta` - Europe/Malta * `Europe/Mariehamn` - Europe/Mariehamn * `Europe/Minsk` - Europe/Minsk * `Europe/Monaco` - Europe/Monaco * `Europe/Moscow` - Europe/Moscow * `Europe/Oslo` - Europe/Oslo * `Europe/Paris` - Europe/Paris * `Europe/Podgorica` - Europe/Podgorica * `Europe/Prague` - Europe/Prague * `Europe/Riga` - Europe/Riga * `Europe/Rome` - Europe/Rome * `Europe/Samara` - Europe/Samara * `Europe/San_Marino` - Europe/San_Marino * `Europe/Sarajevo` - Europe/Sarajevo * `Europe/Saratov` - Europe/Saratov * `Europe/Simferopol` - Europe/Simferopol * `Europe/Skopje` - Europe/Skopje * `Europe/Sofia` - Europe/Sofia * `Europe/Stockholm` - Europe/Stockholm * `Europe/Tallinn` - Europe/Tallinn * `Europe/Tirane` - Europe/Tirane * `Europe/Ulyanovsk` - Europe/Ulyanovsk * `Europe/Uzhgorod` - Europe/Uzhgorod * `Europe/Vaduz` - Europe/Vaduz * `Europe/Vatican` - Europe/Vatican * `Europe/Vienna` - Europe/Vienna * `Europe/Vilnius` - Europe/Vilnius * `Europe/Volgograd` - Europe/Volgograd * `Europe/Warsaw` - Europe/Warsaw * `Europe/Zagreb` - Europe/Zagreb * `Europe/Zaporozhye` - Europe/Zaporozhye * `Europe/Zurich` - Europe/Zurich * `GMT` - GMT * `Indian/Antananarivo` - Indian/Antananarivo * `Indian/Chagos` - Indian/Chagos * `Indian/Christmas` - Indian/Christmas * `Indian/Cocos` - Indian/Cocos * `Indian/Comoro` - Indian/Comoro * `Indian/Kerguelen` - Indian/Kerguelen * `Indian/Mahe` - Indian/Mahe * `Indian/Maldives` - Indian/Maldives * `Indian/Mauritius` - Indian/Mauritius * `Indian/Mayotte` - Indian/Mayotte * `Indian/Reunion` - Indian/Reunion * `Pacific/Apia` - Pacific/Apia * `Pacific/Auckland` - Pacific/Auckland * `Pacific/Bougainville` - Pacific/Bougainville * `Pacific/Chatham` - Pacific/Chatham * `Pacific/Chuuk` - Pacific/Chuuk * `Pacific/Easter` - Pacific/Easter * `Pacific/Efate` - Pacific/Efate * `Pacific/Enderbury` - Pacific/Enderbury * `Pacific/Fakaofo` - Pacific/Fakaofo * `Pacific/Fiji` - Pacific/Fiji * `Pacific/Funafuti` - Pacific/Funafuti * `Pacific/Galapagos` - Pacific/Galapagos * `Pacific/Gambier` - Pacific/Gambier * `Pacific/Guadalcanal` - Pacific/Guadalcanal * `Pacific/Guam` - Pacific/Guam * `Pacific/Honolulu` - Pacific/Honolulu * `Pacific/Kiritimati` - Pacific/Kiritimati * `Pacific/Kosrae` - Pacific/Kosrae * `Pacific/Kwajalein` - Pacific/Kwajalein * `Pacific/Majuro` - Pacific/Majuro * `Pacific/Marquesas` - Pacific/Marquesas * `Pacific/Midway` - Pacific/Midway * `Pacific/Nauru` - Pacific/Nauru * `Pacific/Niue` - Pacific/Niue * `Pacific/Norfolk` - Pacific/Norfolk * `Pacific/Noumea` - Pacific/Noumea * `Pacific/Pago_Pago` - Pacific/Pago_Pago * `Pacific/Palau` - Pacific/Palau * `Pacific/Pitcairn` - Pacific/Pitcairn * `Pacific/Pohnpei` - Pacific/Pohnpei * `Pacific/Port_Moresby` - Pacific/Port_Moresby * `Pacific/Rarotonga` - Pacific/Rarotonga * `Pacific/Saipan` - Pacific/Saipan * `Pacific/Tahiti` - Pacific/Tahiti * `Pacific/Tarawa` - Pacific/Tarawa * `Pacific/Tongatapu` - Pacific/Tongatapu * `Pacific/Wake` - Pacific/Wake * `Pacific/Wallis` - Pacific/Wallis * `US/Alaska` - US/Alaska * `US/Arizona` - US/Arizona * `US/Central` - US/Central * `US/Eastern` - US/Eastern * `US/Hawaii` - US/Hawaii * `US/Mountain` - US/Mountain * `US/Pacific` - US/Pacific * `UTC` - UTC' LocationView: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 150 url: type: string format: uri nullable: true maxLength: 200 logo: type: string currency: $ref: '#/components/schemas/Currency' phoneOne: type: string maxLength: 20 fax: type: string nullable: true maxLength: 20 email: type: string format: email nullable: true maxLength: 254 primary_billing_address: $ref: '#/components/schemas/Address' primary_shipping_address: $ref: '#/components/schemas/Address' shipping_addresses: type: array items: $ref: '#/components/schemas/Address' readOnly: true language: allOf: - $ref: '#/components/schemas/LanguageEnum' minimum: -2147483648 maximum: 2147483647 locationTimezone: nullable: true oneOf: - $ref: '#/components/schemas/LocationTimezoneEnum' - $ref: '#/components/schemas/BlankEnum' - $ref: '#/components/schemas/NullEnum' type: integer headquarter: type: boolean readOnly: true department_count: type: integer readOnly: true active: type: boolean external_id: type: string nullable: true description: External id maxLength: 100 legal_entity: allOf: - $ref: '#/components/schemas/LegalEntitySummary' readOnly: true nullable: true type: object required: - currency - name - phoneOne - primary_billing_address - primary_shipping_address LocationViewSerializerSingleCreate: type: object properties: metadata: type: object additionalProperties: {} default: {} data: $ref: '#/components/schemas/LocationView' required: - data LocationViewSerializerSingleRetrieve: type: object properties: metadata: type: object additionalProperties: {} default: {} data: $ref: '#/components/schemas/LocationView' required: - data MarkBillsAsPaid: type: object properties: bill_uuids: type: array items: type: string bill_group_ids: type: array items: type: integer default: [] payment_date: type: string required: - bill_uuids - payment_date MarkBillsAsPaidRequest: type: object properties: bill_uuids: type: array items: type: string minLength: 1 bill_group_ids: type: array items: type: integer default: [] payment_date: type: string required: - bill_uuids - payment_date MasterLogger: type: object properties: id: type: integer readOnly: true user: $ref: '#/components/schemas/UserSummary' next_approver: $ref: '#/components/schemas/UserSummary' next_approvers: type: array items: type: integer nextApprover: $ref: '#/components/schemas/UserSummary' approval_delegation: allOf: - $ref: '#/components/schemas/ApprovalDelegationRead' nullable: true type: object dateTime: type: string format: date-time readOnly: true action: nullable: true minimum: -2147483648 maximum: 2147483647 oneOf: - $ref: '#/components/schemas/ActionEnum' - $ref: '#/components/schemas/NullEnum' type: integer line_qty_pass: type: string format: decimal pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ nullable: true line_qty_fail: type: string format: decimal pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ nullable: true order: type: integer nullable: true lineItem: type: integer nullable: true PO: type: integer title: Procurify PO Number nullable: true inventoryItem: type: integer nullable: true stocking_parent: type: integer nullable: true required: - approval_delegation - nextApprover - next_approver - user MinimalRoleRead: type: object properties: name: type: string maxLength: 150 type: type: integer required: - name - type Nested: type: object properties: id: type: integer readOnly: true code: type: string maxLength: 50 code_length: type: integer maximum: 2147483647 minimum: -2147483648 description: type: string maxLength: 200 account_type: allOf: - $ref: '#/components/schemas/AccountTypeEnum' minimum: -2147483648 maximum: 2147483647 active: type: boolean parent: type: integer nullable: true required: - code - description NestedVendorRequest: type: object properties: id: type: integer readOnly: true requester: type: string readOnly: true submitted_date: type: string format: date-time next_approver: type: string readOnly: true permissions: type: object additionalProperties: {} readOnly: true required: - submitted_date NestedVendorRequestRequest: type: object properties: submitted_date: type: string format: date-time required: - submitted_date NullEnum: enum: - null OptimizedVendor: type: object properties: id: type: integer readOnly: true name: type: string description: Name of the vendor maxLength: 150 active: type: boolean addressLineOne: type: string nullable: true title: Address line 1 description: First line of address maxLength: 300 addressLineTwo: type: string nullable: true title: Address line 2 description: Second line of address maxLength: 300 postalCode: type: string nullable: true title: Postal Code description: Postal or Zip code of the vendor maxLength: 20 city: type: string nullable: true description: City of the vendor maxLength: 50 state_province: type: string nullable: true title: State/Province description: State or Province of the vendor maxLength: 40 country: type: string nullable: true description: Country of the vendor maxLength: 80 phoneOne: type: string nullable: true description: Primary phone no. of the vendor maxLength: 20 phoneTwo: type: string nullable: true description: Secondary phone no. of the vendor maxLength: 20 fax: type: string nullable: true description: Fax no. of the vendor maxLength: 20 email: type: array items: type: string format: email comments: type: string nullable: true description: Notes about the vendor contact: type: string nullable: true description: Contact person of the vendor maxLength: 50 url: type: string nullable: true description: Website of the vendor maxLength: 200 external_id: type: string nullable: true description: External id of the vendor maxLength: 100 dateModified: type: string format: date-time readOnly: true currency: type: integer nullable: true payment_term_ref: allOf: - $ref: '#/components/schemas/PaymentTerm' nullable: true type: object shipping_term_ref: allOf: - $ref: '#/components/schemas/ShippingTerm' nullable: true type: object payment_method_ref: allOf: - $ref: '#/components/schemas/PaymentMethod' nullable: true type: object shipping_method_ref: allOf: - $ref: '#/components/schemas/ShippingMethod' nullable: true type: object payment_methods: type: array items: $ref: '#/components/schemas/PaymentMethodRead' readOnly: true tax: type: integer nullable: true type: $ref: '#/components/schemas/VendorTypeEnum' default_payment_method: type: integer nullable: true creditcards: type: array items: $ref: '#/components/schemas/CreditCard' readOnly: true is_1099_eligible: type: boolean nullable: true title: 1099 Eligible? overall_score: type: string format: decimal pattern: ^-?\d{0,2}(?:\.\d{0,3})?$ nullable: true is_auto_email_po_enabled: type: boolean po_pdf_labels: type: string description: Placeholder for a KVStore value maxLength: 200 vendor_request: allOf: - $ref: '#/components/schemas/NestedVendorRequest' readOnly: true email_configurations: type: object additionalProperties: $ref: '#/components/schemas/EmailConfiguration' required: - email - name - overall_score - type OptimizedVendorRequest: type: object properties: name: type: string minLength: 1 description: Name of the vendor maxLength: 150 active: type: boolean addressLineOne: type: string nullable: true title: Address line 1 description: First line of address maxLength: 300 addressLineTwo: type: string nullable: true title: Address line 2 description: Second line of address maxLength: 300 postalCode: type: string nullable: true title: Postal Code description: Postal or Zip code of the vendor maxLength: 20 city: type: string nullable: true description: City of the vendor maxLength: 50 state_province: type: string nullable: true title: State/Province description: State or Province of the vendor maxLength: 40 country: type: string nullable: true description: Country of the vendor maxLength: 80 phoneOne: type: string nullable: true description: Primary phone no. of the vendor maxLength: 20 phoneTwo: type: string nullable: true description: Secondary phone no. of the vendor maxLength: 20 fax: type: string nullable: true description: Fax no. of the vendor maxLength: 20 email: type: array items: type: string format: email minLength: 1 comments: type: string nullable: true description: Notes about the vendor contact: type: string nullable: true description: Contact person of the vendor maxLength: 50 url: type: string nullable: true description: Website of the vendor maxLength: 200 external_id: type: string nullable: true description: External id of the vendor maxLength: 100 currency: type: integer nullable: true payment_term_ref: allOf: - $ref: '#/components/schemas/PaymentTermRequest' nullable: true type: object shipping_term_ref: allOf: - $ref: '#/components/schemas/ShippingTermRequest' nullable: true type: object payment_method_ref: allOf: - $ref: '#/components/schemas/PaymentMethodRequest' nullable: true type: object shipping_method_ref: allOf: - $ref: '#/components/schemas/ShippingMethodRequest' nullable: true type: object tax: type: integer nullable: true type: $ref: '#/components/schemas/VendorTypeEnum' default_payment_method: type: integer nullable: true is_1099_eligible: type: boolean nullable: true title: 1099 Eligible? overall_score: type: string format: decimal pattern: ^-?\d{0,2}(?:\.\d{0,3})?$ nullable: true is_auto_email_po_enabled: type: boolean po_pdf_labels: type: string description: Placeholder for a KVStore value maxLength: 200 email_configurations: type: object additionalProperties: $ref: '#/components/schemas/EmailConfigurationRequest' required: - email - name - overall_score - type OptimizedVendorSerializerSingle: type: object properties: metadata: type: object additionalProperties: {} default: {} data: $ref: '#/components/schemas/OptimizedVendor' required: - data OrderItem: type: object properties: PO: type: array items: type: integer title: PO PO_line_num: type: integer maximum: 2147483647 minimum: -2147483648 account: type: integer accountCode: type: string maxLength: 100 active: type: boolean approved_currency_rate: type: string format: decimal pattern: ^-?\d{0,9}(?:\.\d{0,6})?$ nullable: true approved_datetime: type: string format: date-time nullable: true approved_price: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ nullable: true approved_quantity: type: string format: decimal pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ nullable: true approved_shipping_amount: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ nullable: true approved_tax_amount: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ nullable: true attachments: type: string catalog_item: type: integer nullable: true created_at: type: string format: date-time readOnly: true currency: type: integer dateInvoiced: type: string format: date-time nullable: true external_id: type: string description: External id of the order item maxLength: 100 hot: type: boolean id: type: integer readOnly: true inventoryItem: type: integer nullable: true is_active: type: boolean item_attachments: type: array items: type: integer last_changed_by: type: integer nullable: true title: Last changed by user last_modified: type: string format: date-time readOnly: true lineComment: type: string nullable: true name: type: string maxLength: 255 num: type: string maxLength: 50 orderNum: type: integer nullable: true order_number: type: integer readOnly: true nullable: true po_note: type: string title: Comment po_version: type: integer maximum: 2147483647 minimum: -2147483648 pref_vendor: type: integer price: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ purchase_order: type: integer title: Procurify PO Number nullable: true purchaser: type: integer nullable: true quantity: type: string format: decimal pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ receivedFailQty: type: string format: decimal pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ title: Received Fail Quantity receivedPassQty: type: string format: decimal pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ title: Received Pass Quantity shipping_amount: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ nullable: true sku: type: string maxLength: 100 status: nullable: true minimum: -2147483648 maximum: 2147483647 oneOf: - $ref: '#/components/schemas/OrderItemStatusEnum' - $ref: '#/components/schemas/NullEnum' type: integer tax_amount: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ nullable: true total_cost: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,2})?$ unit: type: string maxLength: 30 updated_at: type: string format: date-time readOnly: true vendor: type: string nullable: true maxLength: 100 receive_method: allOf: - $ref: '#/components/schemas/ReceiveMethodEnum' minimum: 0 maximum: 65535 type: allOf: - $ref: '#/components/schemas/OrderItemTypeEnum' minimum: 0 maximum: 65535 blanket: allOf: - $ref: '#/components/schemas/BlanketOrderItemRead' readOnly: true required: - account - approved_datetime - currency - name - num - pref_vendor - price - quantity - unit OrderItemAttachment: type: object properties: id: type: integer readOnly: true attachment: type: string upload_datetime: type: string format: date-time readOnly: true name: type: string maxLength: 100 type: $ref: '#/components/schemas/OrderItemAttachmentTypeEnum' user: type: integer item: type: integer required: - attachment - item - name - user OrderItemAttachmentTypeEnum: enum: - other - invoice - packingslip type: string description: '* `other` - other * `invoice` - invoice * `packingslip` - packingslip' OrderItemPurchaseEdit: type: object properties: id: type: integer name: type: string maxLength: 255 sku: type: string maxLength: 100 unit: type: string maxLength: 30 quantity: type: string format: decimal pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ price: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ po_note: type: string title: Comment custom_fields: type: array items: type: object additionalProperties: {} tax_amount: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ nullable: true shipping_amount: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ nullable: true receive_method: allOf: - $ref: '#/components/schemas/ReceiveMethodEnum' minimum: 0 maximum: 65535 required: - custom_fields - id - name - price - quantity - unit OrderItemPurchaseEditRequest: type: object properties: id: type: integer name: type: string minLength: 1 maxLength: 255 sku: type: string maxLength: 100 unit: type: string minLength: 1 maxLength: 30 quantity: type: string format: decimal pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ price: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ po_note: type: string title: Comment custom_fields: type: array items: type: object additionalProperties: {} tax_amount: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ nullable: true shipping_amount: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ nullable: true receive_method: allOf: - $ref: '#/components/schemas/ReceiveMethodEnum' minimum: 0 maximum: 65535 required: - custom_fields - id - name - price - quantity - unit OrderItemRead: type: object properties: PO: type: array items: type: integer title: PO PO_line_num: type: integer maximum: 2147483647 minimum: -2147483648 account: $ref: '#/components/schemas/AccountRead' accountCode: type: string maxLength: 100 active: type: boolean approved_currency_rate: type: string format: decimal pattern: ^-?\d{0,9}(?:\.\d{0,6})?$ nullable: true approved_datetime: type: string format: date-time nullable: true approved_price: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ nullable: true approved_quantity: type: number format: double approved_shipping_amount: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ nullable: true approved_tax_amount: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ nullable: true attachments: type: string catalog_item: allOf: - $ref: '#/components/schemas/CatalogItemRead' nullable: true type: object created_at: type: string format: date-time readOnly: true currency: $ref: '#/components/schemas/CurrencySummary' dateInvoiced: type: string format: date-time nullable: true external_id: type: string description: External id of the order item maxLength: 100 hot: type: boolean id: type: integer readOnly: true inventoryItem: type: integer nullable: true is_active: type: boolean item_attachments: type: array items: $ref: '#/components/schemas/Attachment' last_changed_by: type: integer nullable: true title: Last changed by user last_modified: type: string format: date-time readOnly: true lineComment: type: string nullable: true name: type: string maxLength: 255 num: type: string maxLength: 50 orderNum: type: integer nullable: true order_number: type: integer readOnly: true nullable: true po_note: type: string title: Comment po_version: type: integer maximum: 2147483647 minimum: -2147483648 pref_vendor: $ref: '#/components/schemas/VendorRead' price: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ purchase_order: type: integer title: Procurify PO Number nullable: true purchaser: $ref: '#/components/schemas/UserSummary' quantity: type: number format: double receivedFailQty: type: number format: double receivedPassQty: type: number format: double shipping_amount: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ nullable: true sku: type: string maxLength: 100 status: nullable: true minimum: -2147483648 maximum: 2147483647 oneOf: - $ref: '#/components/schemas/OrderItemStatusEnum' - $ref: '#/components/schemas/NullEnum' type: integer tax_amount: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ nullable: true total_cost: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,2})?$ unit: type: string maxLength: 30 updated_at: type: string format: date-time readOnly: true vendor: type: string readOnly: true receive_method: allOf: - $ref: '#/components/schemas/ReceiveMethodEnum' minimum: 0 maximum: 65535 type: allOf: - $ref: '#/components/schemas/OrderItemTypeEnum' minimum: 0 maximum: 65535 blanket: allOf: - $ref: '#/components/schemas/BlanketOrderItemRead' readOnly: true comments: type: array items: $ref: '#/components/schemas/Comment' readOnly: true confirmation_status: type: integer nullable: true readOnly: true confirmation_status_description: type: string nullable: true readOnly: true cost_details: allOf: - $ref: '#/components/schemas/CostDetails' nullable: true readOnly: true type: object custom_fields: type: array items: $ref: '#/components/schemas/CustomFieldValueRead' readOnly: true date_required: type: string format: date-time readOnly: true fully_received_actual_receive_date: type: string format: date readOnly: true has_sibling_items: type: boolean readOnly: true line_comment: type: string readOnly: true logs: type: array items: $ref: '#/components/schemas/MasterLogger' readOnly: true order_description: type: string readOnly: true order_status: type: integer readOnly: true order_uuid: type: string format: uuid readOnly: true punchout_supplier_icon: type: string readOnly: true nullable: true punchout_supplier_name: type: string readOnly: true nullable: true punchout_system: type: integer nullable: true readOnly: true punchout_vendor_reference: type: integer nullable: true readOnly: true punchout_supplier_can_update_quantity: type: boolean readOnly: true purchase_order_number: type: string readOnly: true purchase_order_uuid: type: string format: uuid readOnly: true purchased_currency_rate: type: string format: decimal pattern: ^-?\d{0,9}(?:\.\d{0,6})?$ readOnly: true default: '0.000000' recurrence: allOf: - $ref: '#/components/schemas/RecurringOrderItem' nullable: true type: object requester: allOf: - $ref: '#/components/schemas/SimpleUserSummary' readOnly: true spend_allocation: type: array items: $ref: '#/components/schemas/AllocationRead' readOnly: true submitted_date: type: string format: date-time readOnly: true taxes: type: array items: $ref: '#/components/schemas/Adjustment' nullable: true required: - account - approved_datetime - approved_quantity - catalog_item - currency - item_attachments - name - num - pref_vendor - price - purchaser - quantity - receivedFailQty - receivedPassQty - recurrence - unit OrderItemStatusEnum: enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 type: integer description: '* `0` - Purchase Pending * `1` - Purchaser In-Use * `2` - Receive Pending * `3` - Received * `4` - Rejected for Purchase * `5` - Partial Received * `6` - Fulfilled * `7` - Approval Denied * `8` - Request Draft' OrderItemTypeEnum: enum: - 0 - 1 - 2 type: integer description: '* `0` - One Time * `1` - Recurring * `2` - Blanket' OrderRead: type: object properties: num: type: integer readOnly: true uuid: type: string format: uuid branch: $ref: '#/components/schemas/Branch' user: $ref: '#/components/schemas/UserSummary' department: $ref: '#/components/schemas/DepartmentSummary' currency: allOf: - $ref: '#/components/schemas/CurrencySummary' readOnly: true total_cost_in_base_currency: type: number format: float readOnly: true logs: type: array items: $ref: '#/components/schemas/MasterLogger' item_count: type: integer readOnly: true ip_address: type: string nullable: true date: type: string format: date-time readOnly: true description: type: string nullable: true dateRequired: type: string format: date-time dateModified: type: string format: date-time readOnly: true lineCount: type: integer maximum: 2147483647 minimum: -2147483648 nullable: true purchasedCount: type: integer maximum: 2147483647 minimum: -2147483648 totalPrice: type: string format: decimal pattern: ^-?\d{0,14}(?:\.\d{0,2})?$ nullable: true status: allOf: - $ref: '#/components/schemas/OrderStatusEnum' minimum: -2147483648 maximum: 2147483647 next_approver: allOf: - $ref: '#/components/schemas/UserSummary' readOnly: true next_approvers: type: array items: $ref: '#/components/schemas/UserSummary' approval_delegatee: type: integer nullable: true punchout_group: allOf: - $ref: '#/components/schemas/PunchOutReadDocs' nullable: true readOnly: true type: object punchout_shipping_address: allOf: - $ref: '#/components/schemas/AddressDocs' nullable: true readOnly: true type: object punchout_items_rejected: type: boolean readOnly: true punchout_supplier_name: type: string readOnly: true nullable: true punchout_supplier_icon: type: string readOnly: true nullable: true punchout_vendor_reference: type: integer nullable: true readOnly: true punchout_is_retriable: type: boolean readOnly: true punchout_order_purchase_order_id: type: integer readOnly: true nullable: true has_blanket_order_items: type: boolean readOnly: true approval_workflow: allOf: - $ref: '#/components/schemas/ApprovalWorkflow' readOnly: true denial_reason: nullable: true minimum: 0 maximum: 4294967295 oneOf: - $ref: '#/components/schemas/DenialReasonEnum' - $ref: '#/components/schemas/NullEnum' type: integer denial_comment: type: string nullable: true maxLength: 300 required: - branch - dateRequired - department - logs - next_approvers - user - uuid OrderStatusEnum: enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 type: integer description: '* `0` - Pending * `1` - Approved * `2` - Denied * `3` - Purchased * `4` - Cancelled * `5` - Received * `6` - Draft' PODocs: type: object properties: number: type: string id: type: integer uuid: type: string POWithListPurchaseOrderDocs: type: object properties: metadata: $ref: '#/components/schemas/PurchaseOrderListMeta' data: type: array items: $ref: '#/components/schemas/PurchaseOrderDocs' required: - data - metadata PaginatedAccountCodeReadList: type: object properties: metadata: type: object properties: pagination: type: object properties: count: type: integer example: 10 next: type: string nullable: true format: uri example: null previous: type: string nullable: true format: uri example: null page_size: type: integer example: 10 num_pages: type: integer example: 1 current_page: type: integer example: 1 example: pagination: count: 10 next: null previous: null page_size: 10 num_pages: 1 current_page: 1 data: type: array items: $ref: '#/components/schemas/AccountCodeRead' PaginatedCatalogItemBundleReadList: type: object properties: metadata: type: object properties: pagination: type: object properties: count: type: integer example: 10 next: type: string nullable: true format: uri example: null previous: type: string nullable: true format: uri example: null page_size: type: integer example: 10 num_pages: type: integer example: 1 current_page: type: integer example: 1 example: pagination: count: 10 next: null previous: null page_size: 10 num_pages: 1 current_page: 1 data: type: array items: $ref: '#/components/schemas/CatalogItemBundleRead' PaginatedCatalogItemReadList: type: object properties: metadata: type: object properties: pagination: type: object properties: count: type: integer example: 10 next: type: string nullable: true format: uri example: null previous: type: string nullable: true format: uri example: null page_size: type: integer example: 10 num_pages: type: integer example: 1 current_page: type: integer example: 1 example: pagination: count: 10 next: null previous: null page_size: 10 num_pages: 1 current_page: 1 data: type: array items: $ref: '#/components/schemas/CatalogItemRead' PaginatedChartOfAccountsAccountList: type: object properties: metadata: type: object properties: pagination: type: object properties: count: type: integer example: 10 next: type: string nullable: true format: uri example: null previous: type: string nullable: true format: uri example: null page_size: type: integer example: 10 num_pages: type: integer example: 1 current_page: type: integer example: 1 example: pagination: count: 10 next: null previous: null page_size: 10 num_pages: 1 current_page: 1 data: type: array items: $ref: '#/components/schemas/ChartOfAccountsAccount' PaginatedCompanyPaymentMethodReadList: type: object properties: metadata: type: object properties: pagination: type: object properties: count: type: integer example: 10 next: type: string nullable: true format: uri example: null previous: type: string nullable: true format: uri example: null page_size: type: integer example: 10 num_pages: type: integer example: 1 current_page: type: integer example: 1 example: pagination: count: 10 next: null previous: null page_size: 10 num_pages: 1 current_page: 1 data: type: array items: $ref: '#/components/schemas/CompanyPaymentMethodRead' PaginatedCurrencyList: type: object properties: metadata: type: object properties: pagination: type: object properties: count: type: integer example: 10 next: type: string nullable: true format: uri example: null previous: type: string nullable: true format: uri example: null page_size: type: integer example: 10 num_pages: type: integer example: 1 current_page: type: integer example: 1 example: pagination: count: 10 next: null previous: null page_size: 10 num_pages: 1 current_page: 1 data: type: array items: $ref: '#/components/schemas/Currency' PaginatedCustomFieldReadList: type: object properties: metadata: type: object properties: pagination: type: object properties: count: type: integer example: 10 next: type: string nullable: true format: uri example: null previous: type: string nullable: true format: uri example: null page_size: type: integer example: 10 num_pages: type: integer example: 1 current_page: type: integer example: 1 example: pagination: count: 10 next: null previous: null page_size: 10 num_pages: 1 current_page: 1 data: type: array items: $ref: '#/components/schemas/CustomFieldRead' PaginatedDepartmentReadList: type: object properties: metadata: type: object properties: pagination: type: object properties: count: type: integer example: 10 next: type: string nullable: true format: uri example: null previous: type: string nullable: true format: uri example: null page_size: type: integer example: 10 num_pages: type: integer example: 1 current_page: type: integer example: 1 example: pagination: count: 10 next: null previous: null page_size: 10 num_pages: 1 current_page: 1 data: type: array items: $ref: '#/components/schemas/DepartmentRead' PaginatedLocationViewList: type: object properties: metadata: type: object properties: pagination: type: object properties: count: type: integer example: 10 next: type: string nullable: true format: uri example: null previous: type: string nullable: true format: uri example: null page_size: type: integer example: 10 num_pages: type: integer example: 1 current_page: type: integer example: 1 example: pagination: count: 10 next: null previous: null page_size: 10 num_pages: 1 current_page: 1 data: type: array items: $ref: '#/components/schemas/LocationView' PaginatedOptimizedVendorList: type: object properties: metadata: type: object properties: pagination: type: object properties: count: type: integer example: 10 next: type: string nullable: true format: uri example: null previous: type: string nullable: true format: uri example: null page_size: type: integer example: 10 num_pages: type: integer example: 1 current_page: type: integer example: 1 example: pagination: count: 10 next: null previous: null page_size: 10 num_pages: 1 current_page: 1 data: type: array items: $ref: '#/components/schemas/OptimizedVendor' PaginatedOrderItemList: type: object properties: metadata: type: object properties: pagination: type: object properties: count: type: integer example: 10 next: type: string nullable: true format: uri example: null previous: type: string nullable: true format: uri example: null page_size: type: integer example: 10 num_pages: type: integer example: 1 current_page: type: integer example: 1 example: pagination: count: 10 next: null previous: null page_size: 10 num_pages: 1 current_page: 1 data: type: array items: $ref: '#/components/schemas/OrderItem' PaginatedOrderReadList: type: object properties: metadata: type: object properties: pagination: type: object properties: count: type: integer example: 10 next: type: string nullable: true format: uri example: null previous: type: string nullable: true format: uri example: null page_size: type: integer example: 10 num_pages: type: integer example: 1 current_page: type: integer example: 1 example: pagination: count: 10 next: null previous: null page_size: 10 num_pages: 1 current_page: 1 data: type: array items: $ref: '#/components/schemas/OrderRead' PaginatedPaymentResponseList: type: object properties: metadata: type: object properties: pagination: type: object properties: count: type: integer example: 10 next: type: string nullable: true format: uri example: null previous: type: string nullable: true format: uri example: null page_size: type: integer example: 10 num_pages: type: integer example: 1 current_page: type: integer example: 1 example: pagination: count: 10 next: null previous: null page_size: 10 num_pages: 1 current_page: 1 data: type: array items: $ref: '#/components/schemas/PaymentResponse' PaginatedPermissionGroupReadList: type: object properties: metadata: type: object properties: pagination: type: object properties: count: type: integer example: 10 next: type: string nullable: true format: uri example: null previous: type: string nullable: true format: uri example: null page_size: type: integer example: 10 num_pages: type: integer example: 1 current_page: type: integer example: 1 example: pagination: count: 10 next: null previous: null page_size: 10 num_pages: 1 current_page: 1 data: type: array items: $ref: '#/components/schemas/PermissionGroupRead' PaginatedPermissionReadList: type: object properties: metadata: type: object properties: pagination: type: object properties: count: type: integer example: 10 next: type: string nullable: true format: uri example: null previous: type: string nullable: true format: uri example: null page_size: type: integer example: 10 num_pages: type: integer example: 1 current_page: type: integer example: 1 example: pagination: count: 10 next: null previous: null page_size: 10 num_pages: 1 current_page: 1 data: type: array items: $ref: '#/components/schemas/PermissionRead' PaginatedReceiptItemReadList: type: object properties: pagination: type: object properties: count: type: integer example: 10 next: type: string nullable: true format: uri example: null previous: type: string nullable: true format: uri example: null page_size: type: integer example: 10 num_pages: type: integer example: 1 current_page: type: integer example: 1 data: type: array items: $ref: '#/components/schemas/ReceiptItemRead' PaginatedTransactionList: type: object properties: metadata: type: object properties: pagination: type: object properties: count: type: integer example: 10 next: type: string nullable: true format: uri example: null previous: type: string nullable: true format: uri example: null page_size: type: integer example: 10 num_pages: type: integer example: 1 current_page: type: integer example: 1 example: pagination: count: 10 next: null previous: null page_size: 10 num_pages: 1 current_page: 1 data: type: array items: $ref: '#/components/schemas/Transaction' PaginatedUserProfileUnoptimizedList: type: object properties: metadata: type: object properties: pagination: type: object properties: count: type: integer example: 10 next: type: string nullable: true format: uri example: null previous: type: string nullable: true format: uri example: null page_size: type: integer example: 10 num_pages: type: integer example: 1 current_page: type: integer example: 1 example: pagination: count: 10 next: null previous: null page_size: 10 num_pages: 1 current_page: 1 data: type: array items: $ref: '#/components/schemas/UserProfileUnoptimized' PaginatedVendorPaymentMethodReadList: type: object properties: metadata: type: object properties: pagination: type: object properties: count: type: integer example: 10 next: type: string nullable: true format: uri example: null previous: type: string nullable: true format: uri example: null page_size: type: integer example: 10 num_pages: type: integer example: 1 current_page: type: integer example: 1 example: pagination: count: 10 next: null previous: null page_size: 10 num_pages: 1 current_page: 1 data: type: array items: $ref: '#/components/schemas/VendorPaymentMethodRead' PaginationDocs: type: object properties: count: type: integer next: type: string nullable: true previous: type: string nullable: true page_size: type: integer num_pages: type: integer current_page: type: integer required: - count - current_page - next - num_pages - page_size - previous PatchedOptimizedVendorRequest: type: object properties: name: type: string minLength: 1 description: Name of the vendor maxLength: 150 active: type: boolean addressLineOne: type: string nullable: true title: Address line 1 description: First line of address maxLength: 300 addressLineTwo: type: string nullable: true title: Address line 2 description: Second line of address maxLength: 300 postalCode: type: string nullable: true title: Postal Code description: Postal or Zip code of the vendor maxLength: 20 city: type: string nullable: true description: City of the vendor maxLength: 50 state_province: type: string nullable: true title: State/Province description: State or Province of the vendor maxLength: 40 country: type: string nullable: true description: Country of the vendor maxLength: 80 phoneOne: type: string nullable: true description: Primary phone no. of the vendor maxLength: 20 phoneTwo: type: string nullable: true description: Secondary phone no. of the vendor maxLength: 20 fax: type: string nullable: true description: Fax no. of the vendor maxLength: 20 email: type: array items: type: string format: email minLength: 1 comments: type: string nullable: true description: Notes about the vendor contact: type: string nullable: true description: Contact person of the vendor maxLength: 50 url: type: string nullable: true description: Website of the vendor maxLength: 200 external_id: type: string nullable: true description: External id of the vendor maxLength: 100 currency: type: integer nullable: true payment_term_ref: allOf: - $ref: '#/components/schemas/PaymentTermRequest' nullable: true type: object shipping_term_ref: allOf: - $ref: '#/components/schemas/ShippingTermRequest' nullable: true type: object payment_method_ref: allOf: - $ref: '#/components/schemas/PaymentMethodRequest' nullable: true type: object shipping_method_ref: allOf: - $ref: '#/components/schemas/ShippingMethodRequest' nullable: true type: object tax: type: integer nullable: true type: $ref: '#/components/schemas/VendorTypeEnum' default_payment_method: type: integer nullable: true is_1099_eligible: type: boolean nullable: true title: 1099 Eligible? overall_score: type: string format: decimal pattern: ^-?\d{0,2}(?:\.\d{0,3})?$ nullable: true is_auto_email_po_enabled: type: boolean po_pdf_labels: type: string description: Placeholder for a KVStore value maxLength: 200 email_configurations: type: object additionalProperties: $ref: '#/components/schemas/EmailConfigurationRequest' PaymentCreator: type: object properties: email: type: string first_name: type: string last_name: type: string required: - email - first_name - last_name PaymentCurrencyResponse: type: object properties: id: type: integer name: type: string required: - id - name PaymentListRead: type: object properties: id: type: integer readOnly: true bill_payments: type: array items: $ref: '#/components/schemas/BillPaymentDocs' nullable: true readOnly: true payment_method_type: type: integer readOnly: true payment_method: allOf: - $ref: '#/components/schemas/CompanyPaymentMethodRead' nullable: true type: object payment_date: type: string format: date nullable: true readOnly: true amount: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ total_amount_with_tax: type: string readOnly: true tax_amount: type: string readOnly: true inclusive_tax_amount: type: string readOnly: true exclusive_tax_amount: type: string readOnly: true currency: $ref: '#/components/schemas/Currency' status: allOf: - $ref: '#/components/schemas/PaymentStatusEnum' minimum: 0 maximum: 4294967295 ach_number: type: integer readOnly: true next_approver_choices: type: array items: $ref: '#/components/schemas/ApproverRead' readOnly: true required: - currency - payment_method PaymentMetadataDocs: type: object properties: permissions: $ref: '#/components/schemas/PermissionsEditDeleteApprove' summary: $ref: '#/components/schemas/PaymentSummaryDocs' pagination: $ref: '#/components/schemas/PaginationDocs' required: - pagination - permissions - summary PaymentMetadataPaymentListRead: type: object properties: metadata: $ref: '#/components/schemas/PaymentMetadataDocs' data: type: array items: $ref: '#/components/schemas/PaymentListRead' required: - data - metadata PaymentMethod: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 100 description: type: string nullable: true active: type: boolean required: - name PaymentMethodDocs: type: object properties: id: type: integer readOnly: true vendor: type: integer name: type: string maxLength: 255 type: allOf: - $ref: '#/components/schemas/PaymentMethodTypeEnum' title: Payment Method minimum: 0 maximum: 4294967295 data: type: object additionalProperties: {} description: 'Some semi-structured data about this payment method. Keys depend on the type of the payment method.' readOnly: true currency: $ref: '#/components/schemas/Currency' required: - currency - vendor PaymentMethodRead: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 255 type: allOf: - $ref: '#/components/schemas/PaymentMethodTypeEnum' title: Payment Method minimum: 0 maximum: 4294967295 data: {} currency: $ref: '#/components/schemas/Currency' payment_rail: type: string readOnly: true bank_account_country_code: type: string nullable: true readOnly: true required: - currency - data PaymentMethodReadRequest: type: object properties: name: type: string maxLength: 255 type: allOf: - $ref: '#/components/schemas/PaymentMethodTypeEnum' title: Payment Method minimum: 0 maximum: 4294967295 data: {} currency: $ref: '#/components/schemas/CurrencyRequest' required: - currency - data PaymentMethodRequest: type: object properties: name: type: string minLength: 1 maxLength: 100 description: type: string nullable: true active: type: boolean required: - name PaymentMethodTypeEnum: enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 type: integer description: '* `0` - OTHER * `1` - CHECK * `2` - ACH * `3` - EFT * `4` - WIRE * `5` - PROCURIFY_CHECK * `6` - PROCURIFY_ACH * `7` - PROCURIFY_WIRE * `8` - AIRWALLEX' PaymentResponse: type: object properties: id: type: integer uuid: type: string payment_source_name: type: string nullable: true readOnly: true payment_source_type: allOf: - $ref: '#/components/schemas/PaymentSourceTypeEnum' nullable: true readOnly: true description: ' * direct_debit: Payment is paid from a direct debit account * financial_account: Payment is paid from a financial account * external: Payment is paid outside of Procurify' type: object external_payment_source_id: type: integer nullable: true readOnly: true description: External bank account ID creator: $ref: '#/components/schemas/PaymentCreator' created_at: type: string format: date-time updated_at: type: string format: date-time amount: type: string format: decimal pattern: ^-?\d{0,19}(?:\.\d{0,2})?$ currency: $ref: '#/components/schemas/PaymentCurrencyResponse' status: allOf: - $ref: '#/components/schemas/PaymentResponseStatusEnum' nullable: true readOnly: true description: ' * draft: Payment has been created but not yet submitted for approval. * pending_approval: Payment is waiting for approval. * approved: Payment has been approved and is awaiting processing. * denied: Payment has been denied by an approver. * paid: Payment has been successfully completed. * processing: Payment is currently being processed. * failed: Payment processing has failed. * scheduled: Payment is scheduled for a future processing date.' type: object processing_date: type: string nullable: true readOnly: true direct_debit_bank_account_mask: type: string nullable: true description: Last 4 digits of direct debit account. vendor_name: type: string nullable: true readOnly: true posted_date: type: string format: date nullable: true gl_code: type: string nullable: true readOnly: true description: Payment source's GL code. vendor_payment_method_country_code: type: string nullable: true readOnly: true description: ISO 3166 country codes vendor_payment_method_rail: type: string nullable: true readOnly: true description: 'Rails supported: ACH, FEDWIRE, PAPER_CHECK, LOCAL, etc.' bill_groups: type: array items: type: integer readOnly: true description: List of bill group IDs associated with the payment. required: - amount - created_at - creator - currency - direct_debit_bank_account_mask - id - posted_date - updated_at - uuid PaymentResponseStatusEnum: enum: - draft - pending_approval - approved - denied - paid - processing - failed - scheduled type: string PaymentSimpleDocs: type: object properties: id: type: integer readOnly: true user: type: integer title: Payment User approver: type: integer nullable: true title: Current Approver status: allOf: - $ref: '#/components/schemas/PaymentStatusEnum' minimum: 0 maximum: 4294967295 currency: type: integer amount: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ payment_method: type: integer nullable: true payment_date: type: string format: date nullable: true memo: type: string maxLength: 255 reference_number: type: string maxLength: 255 is_processed: type: boolean required: - currency - user PaymentSourceTypeEnum: enum: - direct_debit - financial_account - external type: string PaymentStatusEnum: enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 type: integer description: '* `0` - Draft * `1` - Confirmed * `2` - Approved * `3` - Denied * `4` - Void * `5` - Paid * `6` - Partially Paid * `7` - Processing * `8` - Failed * `9` - Scheduled' PaymentSummaryDocs: type: object properties: total_cost: type: number format: double required: - total_cost PaymentTerm: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 100 description: type: string nullable: true active: type: boolean required: - name PaymentTermRequest: type: object properties: name: type: string minLength: 1 maxLength: 100 description: type: string nullable: true active: type: boolean required: - name PaymentTypeEnum: enum: - 0 - 1 - 2 - 3 - 4 type: integer description: '* `0` - Other - CreditCard * `1` - Other - Cash * `2` - Other - Cheque * `3` - Other * `4` - Credit Card' PendingApprovalsCountDocs: type: object properties: order: type: integer expense: type: integer travel: type: integer bill: type: integer payment: type: integer required: - bill - expense - order - payment - travel PermissionGroupRead: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 150 user_count: type: integer readOnly: true permissions: type: array items: $ref: '#/components/schemas/PermissionRead' readOnly: true type: type: integer tier: type: string readOnly: true required: - name - type PermissionRead: type: object properties: id: type: integer readOnly: true codename: type: string maxLength: 100 tier: type: string description: 'Get the tier for this permission from PermissionMeta. Returns "Basic" if PermissionMeta doesn''t exist, otherwise returns the tier label ("Basic" or "Pro").' readOnly: true required: - codename PermissionsApprove: type: object properties: can_approve: type: boolean PermissionsEditDelete: type: object properties: can_edit: type: boolean can_delete: type: boolean required: - can_delete - can_edit PermissionsEditDeleteApprove: type: object properties: can_edit: type: boolean can_delete: type: boolean can_approve: type: boolean required: - can_approve - can_delete - can_edit PriceModifierDocs: type: object properties: value: type: number format: double type: $ref: '#/components/schemas/PriceModifierDocsTypeEnum' required: - type - value PriceModifierDocsTypeEnum: enum: - amount - percentage type: string description: '* `amount` - amount * `percentage` - percentage' ProcurifyDomain: type: object properties: subdomain: type: string maxLength: 200 name: type: string maxLength: 300 required: - name - subdomain PunchOutReadDocs: type: object properties: id: type: integer name: type: string required: - id - name PurchaseAgreementStatusEnum: enum: - 0 - 1 - 2 - 3 - 4 - 5 type: integer description: '* `0` - Open * `1` - Pending * `2` - Closed * `3` - Cancelled * `4` - Denied * `5` - Draft' PurchaseOrderBillingHistory: type: object properties: id: type: integer number: type: string has_unbilled_unreceived_items: type: boolean items: type: array items: $ref: '#/components/schemas/PurchaseOrderBillingHistoryItem' required: - has_unbilled_unreceived_items - id - items - number PurchaseOrderBillingHistoryItem: type: object properties: id: type: integer billed_qty: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ default: '0.00000000' received_qty: type: string format: decimal pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ default: '0.00000' required: - id PurchaseOrderBillingHistorySerializerList: type: object properties: metadata: type: object additionalProperties: {} default: {} data: type: array items: $ref: '#/components/schemas/PurchaseOrderBillingHistory' required: - data PurchaseOrderContract: type: object properties: id: type: integer uuid: type: string name: type: string required: - id - uuid PurchaseOrderCountsBreakdown: type: object properties: all: type: integer open: type: integer partial: type: integer closed: type: integer cancelled: type: integer page: type: integer required: - all - cancelled - closed - open - page - partial PurchaseOrderCountsMeta: type: object properties: purchased: $ref: '#/components/schemas/PurchaseOrderCountsBreakdown' receivable: $ref: '#/components/schemas/PurchaseOrderCountsBreakdown' PurchaseOrderDetail: type: object properties: number: type: string readOnly: true uuid: type: string format: uuid purchaser: $ref: '#/components/schemas/UserSummary' procurify_PO: type: integer readOnly: true title: Procurify PO Number PO_Num: type: string nullable: true title: PO Number maxLength: 30 date: type: string format: date-time readOnly: true title: PO Date buyer_name: type: string maxLength: 100 buyer_contact: type: string maxLength: 100 buyer_addressLineOne: type: string title: Address line maxLength: 300 buyer_postalCode: type: string title: Postal Code maxLength: 20 buyer_city: type: string maxLength: 50 buyer_state_province: type: string title: State/Province maxLength: 40 buyer_country: type: string title: Country maxLength: 80 buyer_address: $ref: '#/components/schemas/AddressSummary' receiver_name: type: string maxLength: 100 receiver_contact: type: string maxLength: 100 receiver_addressLineOne: type: string title: Address line maxLength: 300 receiver_postalCode: type: string title: Postal Code maxLength: 20 receiver_city: type: string maxLength: 50 receiver_state_province: type: string title: State/Province maxLength: 40 receiver_country: type: string title: Country maxLength: 80 receiver_address: $ref: '#/components/schemas/AddressSummary' pref_vendor: $ref: '#/components/schemas/VendorRead' vendor_name: type: string nullable: true maxLength: 150 vendor_contact: type: string nullable: true maxLength: 100 vendor_addressLineOne: type: string nullable: true title: Address line maxLength: 300 vendor_postalCode: type: string nullable: true title: Postal Code maxLength: 20 vendor_city: type: string nullable: true maxLength: 50 vendor_state_province: type: string nullable: true title: State/Province maxLength: 40 vendor_country: type: string nullable: true title: Country maxLength: 80 payment_terms: type: string maxLength: 100 shipping_terms: type: string maxLength: 100 shipping_method: $ref: '#/components/schemas/ShippingMethod' promise_date: type: string format: date-time subtotal: type: string format: decimal pattern: ^-?\d{0,17}(?:\.\d{0,2})?$ freight: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true tax: allOf: - $ref: '#/components/schemas/PriceModifierDocs' readOnly: true discount: allOf: - $ref: '#/components/schemas/PriceModifierDocs' readOnly: true other: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true total: type: string format: decimal pattern: ^-?\d{0,17}(?:\.\d{0,2})?$ title: Total Cost comment: type: string nullable: true title: Notes purchased_currency: $ref: '#/components/schemas/CurrencySummary' purchased_currency_rate: type: string format: decimal pattern: ^-?\d{0,9}(?:\.\d{0,6})?$ nullable: true active: type: boolean state: nullable: true minimum: -2147483648 maximum: 2147483647 oneOf: - $ref: '#/components/schemas/PurchaseOrderStateEnum' - $ref: '#/components/schemas/NullEnum' type: integer fulfilment_status: $ref: '#/components/schemas/FulfilmentStatusEnum' disclaimer_description: type: string nullable: true maxLength: 100 disclaimer_text: type: string nullable: true recorded_date: type: string format: date-time nullable: true closed_date: type: string format: date-time nullable: true last_modified: type: string format: date-time readOnly: true staged_for_export: type: boolean version: type: integer maximum: 2147483647 minimum: -2147483648 item_count: type: integer readOnly: true most_recent_version: type: integer maximum: 2147483647 minimum: -2147483648 readOnly: true punchout_system: type: integer nullable: true readOnly: true purchase_agreement: type: integer nullable: true readOnly: true purchase_agreement_status: allOf: - $ref: '#/components/schemas/PurchaseAgreementStatusEnum' readOnly: true nullable: true type: object punchout_vendor_reference: type: integer nullable: true readOnly: true punchout_supplier_icon: type: string nullable: true readOnly: true punchout_supplier_name: type: string nullable: true readOnly: true has_blanket_order_items: type: boolean readOnly: true expiry_date: type: string format: date-time nullable: true contract: $ref: '#/components/schemas/PurchaseOrderContract' order_items: type: array items: $ref: '#/components/schemas/PurchaseOrderLineItemRead' creditcard_is_editable: type: boolean custom_fields: type: array items: $ref: '#/components/schemas/CustomFieldValueRead' readOnly: true creditcard: allOf: - $ref: '#/components/schemas/CreditCardRead' nullable: true type: object payment_term: $ref: '#/components/schemas/PaymentTerm' shipping_term: $ref: '#/components/schemas/ShippingTerm' cost_details: allOf: - $ref: '#/components/schemas/CostDetails' nullable: true readOnly: true type: object punchout_is_retriable: type: boolean readOnly: true required: - buyer_address - buyer_addressLineOne - buyer_city - buyer_contact - buyer_country - buyer_name - buyer_postalCode - contract - creditcard - creditcard_is_editable - order_items - payment_term - payment_terms - pref_vendor - promise_date - purchased_currency - purchaser - receiver_address - receiver_addressLineOne - receiver_city - receiver_contact - receiver_country - receiver_name - receiver_postalCode - shipping_method - shipping_term - shipping_terms - subtotal - total - uuid PurchaseOrderDetailSerializerSingle: type: object properties: metadata: type: object additionalProperties: {} default: {} data: $ref: '#/components/schemas/PurchaseOrderDetail' required: - data PurchaseOrderDocs: type: object properties: number: type: string readOnly: true uuid: type: string format: uuid purchaser: $ref: '#/components/schemas/UserSummary' procurify_PO: type: integer readOnly: true title: Procurify PO Number PO_Num: type: string nullable: true title: PO Number maxLength: 30 date: type: string format: date-time readOnly: true title: PO Date buyer_name: type: string maxLength: 100 buyer_contact: type: string maxLength: 100 buyer_addressLineOne: type: string title: Address line maxLength: 300 buyer_postalCode: type: string title: Postal Code maxLength: 20 buyer_city: type: string maxLength: 50 buyer_state_province: type: string title: State/Province maxLength: 40 buyer_country: type: string title: Country maxLength: 80 buyer_address: $ref: '#/components/schemas/AddressSummary' receiver_name: type: string maxLength: 100 receiver_contact: type: string maxLength: 100 receiver_addressLineOne: type: string title: Address line maxLength: 300 receiver_postalCode: type: string title: Postal Code maxLength: 20 receiver_city: type: string maxLength: 50 receiver_state_province: type: string title: State/Province maxLength: 40 receiver_country: type: string title: Country maxLength: 80 receiver_address: $ref: '#/components/schemas/AddressSummary' pref_vendor: $ref: '#/components/schemas/VendorRead' vendor_name: type: string nullable: true maxLength: 150 vendor_contact: type: string nullable: true maxLength: 100 vendor_addressLineOne: type: string nullable: true title: Address line maxLength: 300 vendor_postalCode: type: string nullable: true title: Postal Code maxLength: 20 vendor_city: type: string nullable: true maxLength: 50 vendor_state_province: type: string nullable: true title: State/Province maxLength: 40 vendor_country: type: string nullable: true title: Country maxLength: 80 payment_terms: type: string maxLength: 100 shipping_terms: type: string maxLength: 100 shipping_method: type: string title: Ship Via maxLength: 100 promise_date: type: string format: date-time subtotal: type: string format: decimal pattern: ^-?\d{0,17}(?:\.\d{0,2})?$ freight: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true tax: allOf: - $ref: '#/components/schemas/PriceModifierDocs' readOnly: true discount: allOf: - $ref: '#/components/schemas/PriceModifierDocs' readOnly: true other: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true total: type: string format: decimal pattern: ^-?\d{0,17}(?:\.\d{0,2})?$ title: Total Cost comment: type: string nullable: true title: Notes purchased_currency: $ref: '#/components/schemas/CurrencySummary' purchased_currency_rate: type: string format: decimal pattern: ^-?\d{0,9}(?:\.\d{0,6})?$ nullable: true active: type: boolean state: nullable: true minimum: -2147483648 maximum: 2147483647 oneOf: - $ref: '#/components/schemas/PurchaseOrderStateEnum' - $ref: '#/components/schemas/NullEnum' type: integer fulfilment_status: $ref: '#/components/schemas/FulfilmentStatusEnum' disclaimer_description: type: string nullable: true maxLength: 100 disclaimer_text: type: string nullable: true recorded_date: type: string format: date-time nullable: true closed_date: type: string format: date-time nullable: true last_modified: type: string format: date-time readOnly: true staged_for_export: type: boolean version: type: integer maximum: 2147483647 minimum: -2147483648 item_count: type: integer readOnly: true most_recent_version: type: integer maximum: 2147483647 minimum: -2147483648 readOnly: true punchout_system: type: integer nullable: true readOnly: true purchase_agreement: type: integer nullable: true readOnly: true purchase_agreement_status: allOf: - $ref: '#/components/schemas/PurchaseAgreementStatusEnum' readOnly: true nullable: true type: object punchout_vendor_reference: type: integer nullable: true readOnly: true punchout_supplier_icon: type: string nullable: true readOnly: true punchout_supplier_name: type: string nullable: true readOnly: true has_blanket_order_items: type: boolean readOnly: true expiry_date: type: string format: date-time nullable: true contract: $ref: '#/components/schemas/PurchaseOrderContract' required: - buyer_address - buyer_addressLineOne - buyer_city - buyer_contact - buyer_country - buyer_name - buyer_postalCode - contract - payment_terms - pref_vendor - promise_date - purchased_currency - purchaser - receiver_address - receiver_addressLineOne - receiver_city - receiver_contact - receiver_country - receiver_name - receiver_postalCode - shipping_method - shipping_terms - subtotal - total - uuid PurchaseOrderLineItemRead: type: object properties: PO: type: array items: type: integer title: PO PO_line_num: type: integer maximum: 2147483647 minimum: -2147483648 account: $ref: '#/components/schemas/AccountRead' accountCode: type: string maxLength: 100 active: type: boolean approved_currency_rate: type: string format: decimal pattern: ^-?\d{0,9}(?:\.\d{0,6})?$ nullable: true approved_datetime: type: string format: date-time nullable: true approved_price: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ nullable: true approved_quantity: type: number format: double approved_shipping_amount: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ nullable: true approved_tax_amount: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ nullable: true attachments: type: array items: $ref: '#/components/schemas/OrderItemAttachment' nullable: true catalog_item: allOf: - $ref: '#/components/schemas/CatalogItemRead' nullable: true type: object created_at: type: string format: date-time readOnly: true currency: $ref: '#/components/schemas/CurrencySummary' dateInvoiced: type: string format: date-time nullable: true external_id: type: string description: External id of the order item maxLength: 100 hot: type: boolean id: type: integer readOnly: true inventoryItem: type: integer nullable: true is_active: type: boolean item_attachments: type: array items: $ref: '#/components/schemas/Attachment' last_changed_by: type: integer nullable: true title: Last changed by user last_modified: type: string format: date-time readOnly: true lineComment: type: string nullable: true name: type: string maxLength: 255 num: type: string maxLength: 50 orderNum: type: integer nullable: true order_number: type: integer readOnly: true nullable: true po_note: type: string title: Comment po_version: type: integer maximum: 2147483647 minimum: -2147483648 pref_vendor: $ref: '#/components/schemas/VendorRead' price: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ purchase_order: type: integer title: Procurify PO Number nullable: true purchaser: $ref: '#/components/schemas/UserSummary' quantity: type: number format: double receivedFailQty: type: number format: double receivedPassQty: type: number format: double shipping_amount: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ nullable: true sku: type: string maxLength: 100 status: nullable: true minimum: -2147483648 maximum: 2147483647 oneOf: - $ref: '#/components/schemas/OrderItemStatusEnum' - $ref: '#/components/schemas/NullEnum' type: integer tax_amount: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ nullable: true total_cost: type: string format: decimal pattern: ^-?\d{0,16}(?:\.\d{0,2})?$ unit: type: string maxLength: 30 updated_at: type: string format: date-time readOnly: true vendor: type: string readOnly: true receive_method: allOf: - $ref: '#/components/schemas/ReceiveMethodEnum' minimum: 0 maximum: 65535 type: allOf: - $ref: '#/components/schemas/OrderItemTypeEnum' minimum: 0 maximum: 65535 blanket: allOf: - $ref: '#/components/schemas/BlanketOrderItemRead' readOnly: true comments: type: array items: $ref: '#/components/schemas/Comment' readOnly: true confirmation_status: type: integer nullable: true readOnly: true confirmation_status_description: type: string nullable: true readOnly: true cost_details: allOf: - $ref: '#/components/schemas/CostDetails' nullable: true readOnly: true type: object custom_fields: type: array items: $ref: '#/components/schemas/CustomFieldValueRead' readOnly: true date_required: type: string format: date-time readOnly: true fully_received_actual_receive_date: type: string format: date readOnly: true has_sibling_items: type: boolean readOnly: true line_comment: type: string readOnly: true logs: type: array items: $ref: '#/components/schemas/MasterLogger' readOnly: true order_description: type: string readOnly: true order_status: type: integer readOnly: true order_uuid: type: string format: uuid readOnly: true punchout_supplier_icon: type: string readOnly: true nullable: true punchout_supplier_name: type: string readOnly: true nullable: true punchout_system: type: integer nullable: true readOnly: true punchout_vendor_reference: type: integer nullable: true readOnly: true punchout_supplier_can_update_quantity: type: boolean readOnly: true purchase_order_number: type: string readOnly: true purchase_order_uuid: type: string format: uuid readOnly: true purchased_currency_rate: type: string format: decimal pattern: ^-?\d{0,9}(?:\.\d{0,6})?$ readOnly: true default: '0.000000' recurrence: allOf: - $ref: '#/components/schemas/RecurringOrderItem' nullable: true type: object requester: allOf: - $ref: '#/components/schemas/SimpleUserSummary' readOnly: true spend_allocation: type: array items: $ref: '#/components/schemas/AllocationRead' readOnly: true submitted_date: type: string format: date-time readOnly: true taxes: type: array items: $ref: '#/components/schemas/Adjustment' nullable: true receive_log_count: type: integer readOnly: true approval_history: type: array items: $ref: '#/components/schemas/MasterLogger' readOnly: true flags: type: array items: $ref: '#/components/schemas/FlagRead' readOnly: true approved_total_cost: type: string format: decimal pattern: ^-?\d{0,10}(?:\.\d{0,8})?$ required: - account - approved_datetime - approved_quantity - approved_total_cost - attachments - catalog_item - currency - item_attachments - name - num - pref_vendor - price - purchaser - quantity - receivedFailQty - receivedPassQty - recurrence - unit PurchaseOrderListMeta: type: object properties: counts: $ref: '#/components/schemas/PurchaseOrderCountsMeta' pagination: $ref: '#/components/schemas/PaginationDocs' required: - counts - pagination PurchaseOrderRead: type: object properties: number: type: string readOnly: true uuid: type: string format: uuid purchaser: $ref: '#/components/schemas/SimpleUserSummary' vendor_name: type: string nullable: true maxLength: 150 required: - purchaser - uuid PurchaseOrderReadDocs: type: object properties: id: type: integer PO_Num: type: string nullable: true title: PO Number maxLength: 30 date: type: string format: date-time readOnly: true title: PO Date discount: allOf: - $ref: '#/components/schemas/PriceModifierDocs' readOnly: true freight: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true fulfilment_status: $ref: '#/components/schemas/FulfilmentStatusEnum' item_count: type: integer readOnly: true last_modified: type: string format: date-time readOnly: true number: type: string other: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true pref_vendor: $ref: '#/components/schemas/SimpleVendor' procurify_PO: type: integer readOnly: true title: Procurify PO Number promise_date: type: string format: date-time punchout_system: type: integer nullable: true readOnly: true purchase_agreement: type: integer nullable: true purchase_agreement_status: allOf: - $ref: '#/components/schemas/PurchaseAgreementStatusEnum' readOnly: true nullable: true type: object purchased_currency: $ref: '#/components/schemas/SimpleCurrency' purchased_currency_rate: type: string format: decimal pattern: ^-?\d{0,9}(?:\.\d{0,6})?$ nullable: true purchaser: $ref: '#/components/schemas/SimpleUser' state: nullable: true minimum: -2147483648 maximum: 2147483647 oneOf: - $ref: '#/components/schemas/PurchaseOrderStateEnum' - $ref: '#/components/schemas/NullEnum' type: integer subtotal: type: string format: decimal pattern: ^-?\d{0,17}(?:\.\d{0,2})?$ total: type: string format: decimal pattern: ^-?\d{0,17}(?:\.\d{0,2})?$ title: Total Cost uuid: type: string format: uuid version: type: integer maximum: 2147483647 minimum: -2147483648 punchout_items_rejected: type: boolean readOnly: true total_amount: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,2})?$ currency: type: string default: '' email_status: type: string nullable: true maxLength: 50 email_status_updated_at: type: string format: date-time nullable: true punchout_supplier_name: type: string nullable: true readOnly: true punchout_supplier_icon: type: string nullable: true readOnly: true punchout_vendor_reference: type: integer nullable: true readOnly: true punchout_is_retriable: type: boolean readOnly: true has_blanket_order_items: type: boolean readOnly: true expiry_date: type: string format: date-time nullable: true required: - id - number - pref_vendor - promise_date - purchased_currency - purchaser - subtotal - total - total_amount - uuid PurchaseOrderReadDocsSerializerSingle: type: object properties: metadata: type: object additionalProperties: {} default: {} data: $ref: '#/components/schemas/PurchaseOrderReadDocs' required: - data PurchaseOrderStateEnum: enum: - 0 - 1 - 3 - 4 - 5 type: integer description: '* `0` - Purchased * `1` - Cancelled * `3` - Closed * `4` - Paid * `5` - Reopened' PurchaseOrderUpdate: type: object properties: order_items: type: array items: $ref: '#/components/schemas/OrderItemPurchaseEdit' PO_Num: type: string nullable: true title: PO Number maxLength: 30 buyer_name: type: string maxLength: 100 buyer_contact: type: string maxLength: 100 buyer_addressLineOne: type: string title: Address line maxLength: 300 buyer_postalCode: type: string title: Postal Code maxLength: 20 buyer_city: type: string maxLength: 50 buyer_state_province: type: string title: State/Province maxLength: 40 buyer_country: type: string title: Country maxLength: 80 buyer_address: type: integer comment: type: string nullable: true title: Notes receiver_name: type: string maxLength: 100 receiver_contact: type: string maxLength: 100 receiver_addressLineOne: type: string title: Address line maxLength: 300 receiver_postalCode: type: string title: Postal Code maxLength: 20 receiver_city: type: string maxLength: 50 receiver_state_province: type: string title: State/Province maxLength: 40 receiver_country: type: string title: Country maxLength: 80 receiver_address: type: integer promise_date: type: string format: date-time freight: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true discount: type: object additionalProperties: {} tax: type: object additionalProperties: {} other: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true disclaimer_description: type: string nullable: true maxLength: 100 disclaimer_text: type: string nullable: true payment_term_ref: type: integer nullable: true shipping_term_ref: type: integer nullable: true payment_method_ref: type: integer nullable: true shipping_method_ref: type: integer nullable: true creditcard: type: integer nullable: true version: type: integer expiry_date: type: string format: date-time nullable: true contract: type: integer nullable: true required: - buyer_address - buyer_addressLineOne - buyer_city - buyer_contact - buyer_country - buyer_name - buyer_postalCode - discount - order_items - promise_date - receiver_address - receiver_addressLineOne - receiver_city - receiver_contact - receiver_country - receiver_name - receiver_postalCode - tax - version PurchaseOrderUpdateRequest: type: object properties: order_items: type: array items: $ref: '#/components/schemas/OrderItemPurchaseEditRequest' custom_fields: type: array items: type: object additionalProperties: {} writeOnly: true default: [] PO_Num: type: string nullable: true title: PO Number maxLength: 30 buyer_name: type: string minLength: 1 maxLength: 100 buyer_contact: type: string minLength: 1 maxLength: 100 buyer_addressLineOne: type: string minLength: 1 title: Address line maxLength: 300 buyer_postalCode: type: string minLength: 1 title: Postal Code maxLength: 20 buyer_city: type: string minLength: 1 maxLength: 50 buyer_state_province: type: string title: State/Province maxLength: 40 buyer_country: type: string minLength: 1 title: Country maxLength: 80 buyer_address: type: integer comment: type: string nullable: true title: Notes receiver_name: type: string minLength: 1 maxLength: 100 receiver_contact: type: string minLength: 1 maxLength: 100 receiver_addressLineOne: type: string minLength: 1 title: Address line maxLength: 300 receiver_postalCode: type: string minLength: 1 title: Postal Code maxLength: 20 receiver_city: type: string minLength: 1 maxLength: 50 receiver_state_province: type: string title: State/Province maxLength: 40 receiver_country: type: string minLength: 1 title: Country maxLength: 80 receiver_address: type: integer promise_date: type: string format: date-time freight: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true discount: type: object additionalProperties: {} tax: type: object additionalProperties: {} other: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,6})?$ nullable: true disclaimer_description: type: string nullable: true maxLength: 100 disclaimer_text: type: string nullable: true payment_term_ref: type: integer nullable: true shipping_term_ref: type: integer nullable: true payment_method_ref: type: integer nullable: true shipping_method_ref: type: integer nullable: true creditcard: type: integer nullable: true version: type: integer expiry_date: type: string format: date-time nullable: true contract: type: integer nullable: true required: - buyer_address - buyer_addressLineOne - buyer_city - buyer_contact - buyer_country - buyer_name - buyer_postalCode - discount - order_items - promise_date - receiver_address - receiver_addressLineOne - receiver_city - receiver_contact - receiver_country - receiver_name - receiver_postalCode - tax - version PurchaseOrderUpdateSerializerSingle: type: object properties: metadata: type: object additionalProperties: {} default: {} data: $ref: '#/components/schemas/PurchaseOrderUpdate' required: - data ReceiptItemRead: type: object properties: id: type: integer readOnly: true pass_quantity: type: string format: decimal pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ fail_quantity: type: string format: decimal pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ order_item: type: integer created_at: type: string format: date-time readOnly: true is_edited: type: boolean readOnly: true created_by: $ref: '#/components/schemas/SimpleUserProfile' total_quantity: type: string format: decimal pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ nullable: true readOnly: true received_at: type: string format: date nullable: true required: - created_by - order_item ReceiveMethodEnum: enum: - 0 - 1 type: integer description: '* `0` - Quantity * `1` - Currency amount' ReconciliationStatusEnum: enum: - pending - reviewed type: string RecurringOrderItem: type: object properties: id: type: integer readOnly: true start_date: type: string format: date frequency: allOf: - $ref: '#/components/schemas/FrequencyEnum' minimum: 0 maximum: 4294967295 duration: allOf: - $ref: '#/components/schemas/DurationEnum' minimum: 0 maximum: 4294967295 duration_quantity: type: integer maximum: 4294967295 minimum: 1 format: int64 recurring_price: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ periods_count: type: integer readOnly: true required: - duration - duration_quantity - frequency - recurring_price RequisitionCreateRequest: type: object properties: required_date: type: string format: date location_name: type: string minLength: 1 department_name: type: string minLength: 1 line_items: type: array items: $ref: '#/components/schemas/RequisitionLineCreateRequest' required: - department_name - line_items - location_name - required_date RequisitionLineCreateRequest: type: object properties: item_name: type: string minLength: 1 maxLength: 255 vendor_name: type: string minLength: 1 account_code: type: string minLength: 1 unit_price: type: string format: decimal pattern: ^-?\d{0,13}(?:\.\d{0,8})?$ quantity: type: string format: decimal pattern: ^-?\d{0,10}(?:\.\d{0,5})?$ unit: type: string minLength: 1 maxLength: 30 currency_code: type: string minLength: 1 custom_fields: type: array items: $ref: '#/components/schemas/LineItemCustomFieldRequest' required: - account_code - currency_code - custom_fields - item_name - quantity - unit - unit_price - vendor_name RequisitionRead: type: object properties: uuid: type: string format: uuid readOnly: true RequisitionReadSerializerSingle: type: object properties: metadata: type: object additionalProperties: {} default: {} data: $ref: '#/components/schemas/RequisitionRead' required: - data RoleEnum: enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 type: integer description: '* `0` - User * `1` - Approver * `2` - Purchaser * `3` - Receiver * `4` - Administrator * `5` - EKA * `6` - Accounting * `7` - Superuser * `8` - Accounts Payable * `9` - FNG Approver * `10` - FNG Controller' SessionCreate: type: object properties: creditcard: type: integer title: Credit Card balance: type: string format: decimal pattern: ^-?\d{0,9}(?:\.\d{0,2})?$ statement_date: type: string format: date-time nullable: true required: - creditcard SetupStageEnum: enum: - COMP - DEPT - USER - COA - BDGT - APPR - FIN type: string description: '* `COMP` - Company * `DEPT` - Department * `USER` - User * `COA` - Chart_of_Accounts * `BDGT` - Budget_Control * `APPR` - Approver * `FIN` - Finished' ShippingMethod: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 100 description: type: string nullable: true active: type: boolean required: - name ShippingMethodRequest: type: object properties: name: type: string minLength: 1 maxLength: 100 description: type: string nullable: true active: type: boolean required: - name ShippingTerm: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 100 description: type: string nullable: true active: type: boolean required: - name ShippingTermRequest: type: object properties: name: type: string minLength: 1 maxLength: 100 description: type: string nullable: true active: type: boolean required: - name SimpleAPVendor: type: object properties: id: type: integer readOnly: true name: type: string description: Name of the vendor maxLength: 150 required: - name SimpleBill: type: object properties: id: type: integer readOnly: true status: allOf: - $ref: '#/components/schemas/BillStatusEnum' minimum: 0 maximum: 4294967295 version: type: integer maximum: 4294967295 minimum: 0 format: int64 locked: type: boolean readOnly: true currency: $ref: '#/components/schemas/SimpleCurrency' uuid: type: string format: uuid items: type: array items: type: integer readOnly: true vendor: $ref: '#/components/schemas/SimpleAPVendor' due_date: type: string readOnly: true nullable: true total_cost_with_tax: type: number format: float readOnly: true invoice_date: type: string readOnly: true nullable: true next_approver_choices: type: array items: $ref: '#/components/schemas/ApproverRead' nullable: true readOnly: true last_export_user: allOf: - $ref: '#/components/schemas/SimpleUser' readOnly: true last_modified_datetime: type: string format: date-time readOnly: true title: Last Modified last_export_date: type: string format: date readOnly: true submitted_date: type: string format: date-time nullable: true gl_post_date: type: string readOnly: true nullable: true invoice_number: type: string maxLength: 50 group: type: integer readOnly: true nullable: true type: allOf: - $ref: '#/components/schemas/BillTypeEnum' minimum: 0 maximum: 4294967295 user: allOf: - $ref: '#/components/schemas/SimpleUser' description: Last modified by user. approver: allOf: - $ref: '#/components/schemas/BillListViewApproverUserDocs' nullable: true readOnly: true type: object past_due: type: boolean readOnly: true invoice_created: type: boolean readOnly: true invoice_uuid: type: string readOnly: true invoice_total: type: number format: double maximum: 10000000000000 minimum: -10000000000000 exclusiveMaximum: true exclusiveMinimum: true readOnly: true creator: allOf: - $ref: '#/components/schemas/SimpleUser' description: Creator of the bill. required: - creator - currency - user - uuid - vendor SimpleCurrency: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 10 rate: type: string format: decimal pattern: ^-?\d{0,9}(?:\.\d{0,6})?$ required: - name - rate SimpleDepartment: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 150 location: $ref: '#/components/schemas/SimpleLocation' required: - location - name SimpleExpenseReport: type: object properties: id: type: integer readOnly: true uuid: type: string format: uuid required: - uuid SimpleLocation: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 150 headquarter: type: boolean readOnly: true required: - name SimpleRoleRead: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 150 type: type: integer required: - name - type SimpleUser: type: object properties: id: type: integer readOnly: true firstName: type: string maxLength: 100 lastName: type: string maxLength: 100 email: type: string format: email maxLength: 254 profile_image: type: string nullable: true required: - email SimpleUserProfile: type: object properties: id: type: integer readOnly: true firstName: type: string maxLength: 100 lastName: type: string maxLength: 100 email: type: string format: email maxLength: 254 role: allOf: - $ref: '#/components/schemas/MinimalRoleRead' readOnly: true profile_image: type: string nullable: true required: - email SimpleUserSummary: type: object properties: id: type: integer readOnly: true firstName: type: string maxLength: 100 lastName: type: string maxLength: 100 email: type: string format: email maxLength: 254 position: type: string nullable: true maxLength: 100 profile_image: type: string nullable: true approval_delegatee: allOf: - $ref: '#/components/schemas/ApprovalDelegateeDocs' nullable: true readOnly: true type: object expected_return_date: type: string format: date readOnly: true required: - email SimpleVendor: type: object properties: id: type: integer readOnly: true name: type: string description: Name of the vendor maxLength: 150 active: type: boolean addressLineOne: type: string nullable: true title: Address line 1 description: First line of address maxLength: 300 addressLineTwo: type: string nullable: true title: Address line 2 description: Second line of address maxLength: 300 postalCode: type: string nullable: true title: Postal Code description: Postal or Zip code of the vendor maxLength: 20 city: type: string nullable: true description: City of the vendor maxLength: 50 state_province: type: string nullable: true title: State/Province description: State or Province of the vendor maxLength: 40 country: type: string nullable: true description: Country of the vendor maxLength: 80 overall_score: type: string format: decimal pattern: ^-?\d{0,2}(?:\.\d{0,3})?$ readOnly: true is_auto_email_po_enabled: type: boolean description: Represents whether the AutoEmail PO feature is turned on for this Vendor required: - name SingleBillMetadataDocs: type: object properties: permissions: $ref: '#/components/schemas/PermissionsEditDeleteApprove' summary: $ref: '#/components/schemas/BillSummaryDocs' required: - permissions - summary SpendAccountRead: type: object properties: id: type: integer readOnly: true account_code: $ref: '#/components/schemas/UnoptimizedAccountCodeserializer' department: $ref: '#/components/schemas/UnoptimizedDepartmentRead' active: type: boolean required: - account_code - department StatementItem: type: object properties: id: type: integer readOnly: true creditcard: type: integer title: Credit Card statement: type: integer nullable: true match: type: integer nullable: true date: type: string format: date description: type: string maxLength: 255 amount: type: string format: decimal pattern: ^-?\d{0,9}(?:\.\d{0,2})?$ duplicate_of: type: integer nullable: true required: - amount - creditcard TimezoneEnum: enum: - -11 - -10 - -9 - -8 - -7 - -6 - -5 - -4 - -3.5 - -3 - -2 - -1 - 0 - 1 - 2 - 3 - 3.5 - 4 - 4.5 - 5 - 5.5 - 5.75 - 6 - 7 - 8 - 9 - 9.5 - 10 - 11 - 12 type: number description: '* `-11.0` - (GMT -11:00) Midway Island, Samoa * `-10.0` - (GMT -10:00) Hawaii * `-9.0` - (GMT -9:00) Alaska * `-8.0` - (GMT -8:00) Pacific Time (US & Canada) * `-7.0` - (GMT -7:00) Mountain Time (US & Canada) * `-6.0` - (GMT -6:00) Central Time (US & Canada), Mexico City * `-5.0` - (GMT -5:00) Eastern Time (US & Canada), Bogota, Lima * `-4.0` - (GMT -4:00) Atlantic Time (Canada), Caracas, La Paz * `-3.5` - (GMT -3:30) Newfoundland * `-3.0` - (GMT -3:00) Brazil, Buenos Aires, Georgetown * `-2.0` - (GMT -2:00) Mid-Atlantic * `-1.0` - (GMT -1:00) Azores, Cape Verde Islands * `0.0` - (GMT) Western Europe Time, London, Lisbon, Casablanca * `1.0` - (GMT +1:00) Brussels, Copenhagen, Madrid, Paris * `2.0` - (GMT +2:00) Kaliningrad, South Africa * `3.0` - (GMT +3:00) Baghdad, Riyadh, Moscow, St. Petersburg * `3.5` - (GMT +3:30) Tehran * `4.0` - (GMT +4:00) Abu Dhabi, Muscat, Baku, Tbilisi * `4.5` - (GMT +4:30) Kabul * `5.0` - (GMT +5:00) Ekaterinburg, Islamabad, Karachi, Tashkent * `5.5` - (GMT +5:30) Bombay, Calcutta, Madras, New Delhi * `5.75` - (GMT +5:45) Kathmandu * `6.0` - (GMT +6:00) Almaty, Dhaka, Colombo * `7.0` - (GMT +7:00) Bangkok, Hanoi, Jakarta * `8.0` - (GMT +8:00) Beijing, Perth, Singapore, Hong Kong * `9.0` - (GMT +9:00) Tokyo, Seoul, Osaka, Sapporo, Yakutsk * `9.5` - (GMT +9:30) Adelaide, Darwin * `10.0` - (GMT +10:00) Eastern Australia, Guam, Vladivostok * `11.0` - (GMT +11:00) Magadan, Solomon Islands, New Caledonia * `12.0` - (GMT +12:00) Auckland, Wellington, Fiji, Kamchatka' Transaction: type: object properties: id: type: integer note: type: string description: User provided additional text about this transaction vendor: $ref: '#/components/schemas/TransactionVendor' currency: type: string description: The currency that this transaction was handled in amount: type: string readOnly: true description: The value in the base unit of currency that this transaction was charged at vendor_currency: type: string description: The currency this transaction was created vendor_amount: type: string nullable: true readOnly: true description: The value in the base unit of currency that this transaction was charged at by the vendor status: allOf: - $ref: '#/components/schemas/TransactionStatusEnum' nullable: true readOnly: true description: ' * capture: Deducting purchase amount from account balance * precapture: Funds reserved due to card usage * refund: Refunding the purchase amount back to account balance' type: object authorization_status: allOf: - $ref: '#/components/schemas/AuthorizationStatusEnum' nullable: true readOnly: true description: ' * reversed: Previously approved and held funds have been released * pending: Funds have been approved for a transaction and are currently held * closed: Look at `status` for more details, the authorization is no longer relevant' type: object authorization_datetime: type: string format: date-time description: The date that this transaction was initially authorized at transaction_datetime: type: string format: date-time description: The date that this transaction was captured allocation_datetime: type: string format: date-time description: The date that this transaction was allocated to a fund card: allOf: - $ref: '#/components/schemas/TransationCard' description: The card this transaction was created with receipt_attachments: type: array items: type: string readOnly: true description: User provided images of receipts about this transactions fund: allOf: - $ref: '#/components/schemas/TransactionFund' description: The fund this transaction is allocated to account: allOf: - $ref: '#/components/schemas/TransactionAccount' nullable: true description: The chart-of-accounts entry assigned to this transaction by the cardholder or reconciler/accountant. Null when no account has been assigned. type: object type: allOf: - $ref: '#/components/schemas/TransactionTypeEnum' readOnly: true description: ' * spend: A transaction that has occurred on the issuing network * credit: A transaction about allocating fund usage from selecting a fund in Procurify ' reconciliation_status: allOf: - $ref: '#/components/schemas/ReconciliationStatusEnum' readOnly: true description: ' * pending: Transaction has not yet been reconciled * reviewed: Transaction has been reviewed during reconciliation' cardholder: $ref: '#/components/schemas/TransactionCardholder' linked_authorization: type: string description: Any transactions which share the same linked_authorization value are part of the same lifecycle for a transaction custom_fields: type: array items: $ref: '#/components/schemas/TransactionCustomField' description: A list of any custom fields provided for this transaction required: - account - allocation_datetime - authorization_datetime - card - cardholder - currency - custom_fields - fund - id - linked_authorization - note - transaction_datetime - vendor - vendor_currency TransactionAccount: type: object properties: account_code: type: string account_code_description: type: string department: type: string department_branch: type: string required: - account_code - account_code_description - department - department_branch TransactionCardholder: type: object properties: uuid: type: string first_name: type: string last_name: type: string status: allOf: - $ref: '#/components/schemas/TransactionCardholderStatusEnum' readOnly: true description: ' * inactive: Cardholder is still awaiting activation * active: Cardholder is ready to use issuing * required_information: Cardholder must provide extra information * deleted: Cardholder has been deleted and can no longer use issuing * disabled: Cardholder has been disabled and can no longer use issuing' required: - first_name - last_name - uuid TransactionCardholderStatusEnum: enum: - inactive - active - requires_information - deleted - disabled type: string TransactionCustomField: type: object properties: name: type: string value: type: string type: allOf: - $ref: '#/components/schemas/TransactionCustomFieldTypeEnum' readOnly: true required: - name - value TransactionCustomFieldTypeEnum: enum: - text - text_field - integer - float - boolean - dropdown - date - datetime type: string TransactionFund: type: object properties: uuid: type: string title: type: string reason: type: string status: allOf: - $ref: '#/components/schemas/TransactionFundStatusEnum' readOnly: true description: ' * open: The fund is open and available for use * closed: The fund is closed and no longer available for use' date_created: type: string format: date-time amount: type: string readOnly: true account: $ref: '#/components/schemas/TransactionAccount' required: - account - date_created - reason - title - uuid TransactionFundStatusEnum: enum: - open - closed type: string TransactionStatusEnum: enum: - capture - precapture - refund type: string TransactionTypeEnum: enum: - spend - credit type: string TransactionVendor: type: object properties: name: type: string category: type: string city: type: string state: type: string country: type: string postal_code: type: string required: - category - city - country - name - postal_code - state TransationCard: type: object properties: uuid: type: string last_four_digits: type: string status: allOf: - $ref: '#/components/schemas/TransationCardStatusEnum' nullable: true readOnly: true description: ' * pending: Card has been created but is not yet active. It cannot authorize transactions * active: Card has been active and is ready for use * inactive: Card has been locked and can no longer authorize transactions * canceled: Card has been canceled and can no longer authorize transactions * lost: Card has been reported lost and can no longer authorize transactions * stolen: Card has been reported stolen and no longer authorize transactions' type: object required: - last_four_digits - uuid TransationCardStatusEnum: enum: - pending - active - inactive - canceled - lost - stolen type: string UnitCostDiffLogDocs: type: object properties: changed_by: type: string changed_date: type: string original_unit_cost: type: number format: double original_currency_label: type: string UnoptimizedAccountCodeserializer: type: object properties: id: type: integer readOnly: true code: type: string maxLength: 50 code_length: type: integer maximum: 2147483647 minimum: -2147483648 description: type: string maxLength: 200 account_type: allOf: - $ref: '#/components/schemas/AccountTypeEnum' minimum: -2147483648 maximum: 2147483647 active: type: boolean parent: allOf: - $ref: '#/components/schemas/Nested' readOnly: true required: - code - description UnoptimizedBranchRead: type: object properties: id: type: integer readOnly: true external_id: type: string nullable: true description: External id maxLength: 100 name: type: string maxLength: 150 url: type: string format: uri nullable: true maxLength: 200 logo: type: string language: allOf: - $ref: '#/components/schemas/LanguageEnum' minimum: -2147483648 maximum: 2147483647 multipleLocations: type: boolean locationTimezone: nullable: true oneOf: - $ref: '#/components/schemas/LocationTimezoneEnum' - $ref: '#/components/schemas/BlankEnum' - $ref: '#/components/schemas/NullEnum' type: integer userLimit: type: integer maximum: 4294967295 minimum: 0 format: int64 budgetOvertureToggle: type: boolean purchase_filtering: type: boolean catalog_permission: type: boolean separate_expense_approval: type: boolean standalone_travel_approval: type: boolean phoneOne: type: string maxLength: 20 phoneTwo: type: string nullable: true maxLength: 20 fax: type: string nullable: true maxLength: 20 email: type: string format: email nullable: true maxLength: 254 fiscalYearEndDay: type: integer maximum: 4294967295 minimum: 0 format: int64 nullable: true fiscalYearEndMonth: type: integer maximum: 4294967295 minimum: 0 format: int64 nullable: true timezone: allOf: - $ref: '#/components/schemas/TimezoneEnum' maximum: 10000 exclusiveMaximum: true minimum: -10000 exclusiveMinimum: true beginDate: type: string format: date-time readOnly: true nullable: true ported: type: boolean port_date: type: string format: date-time nullable: true active: type: boolean fields_cache: type: string nullable: true activated: type: boolean setup_stage: $ref: '#/components/schemas/SetupStageEnum' localCurrency: type: integer contactPerson: type: integer nullable: true buyerAddress: type: integer nullable: true shippingAddress: type: integer nullable: true required: - localCurrency - name - phoneOne UnoptimizedDepartmentRead: type: object properties: id: type: integer readOnly: true branch: $ref: '#/components/schemas/UnoptimizedBranchRead' external_id: type: string nullable: true description: External id maxLength: 100 name: type: string maxLength: 150 punchout_email: type: string format: email nullable: true description: PunchOut Email maxLength: 254 active: type: boolean required: - branch - name UserDocs: type: object properties: id: type: integer readOnly: true firstName: type: string maxLength: 100 lastName: type: string maxLength: 100 email: type: string format: email maxLength: 254 position: type: string nullable: true maxLength: 100 profile_image: type: string nullable: true approval_delegatee: type: integer nullable: true readOnly: true required: - email UserProfileMe: type: object properties: id: type: integer readOnly: true domains: allOf: - $ref: '#/components/schemas/DomainSwitching' readOnly: true headquarter_logo: type: string readOnly: true systemaccess_cache: {} approval_delegatee: allOf: - $ref: '#/components/schemas/ApprovalDelegateeDocs' nullable: true readOnly: true type: object is_approval_delegatee: type: boolean readOnly: true department: allOf: - $ref: '#/components/schemas/DepartmentLocationRead' readOnly: true created_at: type: string format: date-time readOnly: true updated_at: type: string format: date-time readOnly: true uuid: type: string format: uuid readOnly: true nullable: true firstName: type: string maxLength: 100 lastName: type: string maxLength: 100 email: type: string format: email maxLength: 254 position: type: string nullable: true maxLength: 100 phone: type: string nullable: true maxLength: 30 address: type: string nullable: true notifications: type: boolean is_active: type: boolean pending_invite: type: boolean role: nullable: true minimum: -2147483648 maximum: 2147483647 oneOf: - $ref: '#/components/schemas/RoleEnum' - $ref: '#/components/schemas/NullEnum' type: integer mobile: type: boolean profile_image: type: string nullable: true slack_user_id: type: string maxLength: 50 is_sso_enabled: type: boolean last_changed_by: type: integer nullable: true title: Last changed by user user: type: integer required: - email - systemaccess_cache - user UserProfileMeSerializerSingle: type: object properties: metadata: type: object additionalProperties: {} default: {} data: $ref: '#/components/schemas/UserProfileMe' required: - data UserProfileRead: type: object properties: id: type: integer readOnly: true firstName: type: string maxLength: 100 lastName: type: string maxLength: 100 email: type: string format: email maxLength: 254 department: allOf: - $ref: '#/components/schemas/SimpleDepartment' nullable: true type: object required: - department - email UserProfileUnoptimized: type: object properties: id: type: integer readOnly: true firstName: type: string maxLength: 100 lastName: type: string maxLength: 100 user: type: integer email: type: string format: email maxLength: 254 department: allOf: - $ref: '#/components/schemas/SimpleDepartment' nullable: true type: object location: allOf: - $ref: '#/components/schemas/SimpleLocation' readOnly: true profile_image: type: string nullable: true is_active: type: boolean phone: type: string nullable: true maxLength: 30 position: type: string nullable: true maxLength: 100 role: allOf: - $ref: '#/components/schemas/SimpleRoleRead' readOnly: true approval_delegatee: $ref: '#/components/schemas/SimpleUserProfile' pending_approvals_count: allOf: - $ref: '#/components/schemas/PendingApprovalsCountDocs' readOnly: true expected_return_date: type: string format: date readOnly: true required: - approval_delegatee - department - email - user UserProfileUnoptimizedSerializerList: type: object properties: metadata: type: object additionalProperties: {} default: {} data: type: array items: $ref: '#/components/schemas/UserProfileUnoptimized' required: - data UserProfileUnoptimizedSerializerSingle: type: object properties: metadata: type: object additionalProperties: {} default: {} data: $ref: '#/components/schemas/UserProfileUnoptimized' required: - data UserProfileUpsertRequest: type: object properties: id: type: integer user: type: integer email: type: string format: email minLength: 1 maxLength: 254 firstName: type: string minLength: 1 lastName: type: string minLength: 1 location: type: integer nullable: true department: type: integer nullable: true position: type: string default: '' phone: type: string default: '' profile_image: type: string nullable: true is_sso_enabled: type: boolean default: false mark_for_skip: type: boolean default: false mark_for_delete: type: boolean default: false required: - department - email - firstName - lastName - location UserSummary: type: object properties: id: type: integer readOnly: true department: $ref: '#/components/schemas/DepartmentSummary' created_at: type: string format: date-time readOnly: true updated_at: type: string format: date-time readOnly: true firstName: type: string maxLength: 100 lastName: type: string maxLength: 100 email: type: string format: email maxLength: 254 position: type: string nullable: true maxLength: 100 phone: type: string nullable: true maxLength: 30 address: type: string nullable: true notifications: type: boolean is_active: type: boolean mobile: type: boolean profile_image: type: string nullable: true slack_user_id: type: string maxLength: 50 is_sso_enabled: type: boolean last_changed_by: type: integer nullable: true title: Last changed by user user: type: integer approval_delegatee: allOf: - $ref: '#/components/schemas/ApprovalDelegateeDocs' nullable: true readOnly: true type: object expected_return_date: type: string format: date readOnly: true required: - department - email - user Vendor: type: object properties: id: type: integer readOnly: true name: type: string description: Name of the vendor maxLength: 150 active: type: boolean addressLineOne: type: string nullable: true title: Address line 1 description: First line of address maxLength: 300 addressLineTwo: type: string nullable: true title: Address line 2 description: Second line of address maxLength: 300 postalCode: type: string nullable: true title: Postal Code description: Postal or Zip code of the vendor maxLength: 20 city: type: string nullable: true description: City of the vendor maxLength: 50 state_province: type: string nullable: true title: State/Province description: State or Province of the vendor maxLength: 40 country: type: string nullable: true description: Country of the vendor maxLength: 80 phoneOne: type: string nullable: true description: Primary phone no. of the vendor maxLength: 20 phoneTwo: type: string nullable: true description: Secondary phone no. of the vendor maxLength: 20 fax: type: string nullable: true description: Fax no. of the vendor maxLength: 20 email: type: array items: type: string format: email comments: type: string nullable: true description: Notes about the vendor contact: type: string nullable: true description: Contact person of the vendor maxLength: 50 url: type: string nullable: true description: Website of the vendor maxLength: 200 external_id: type: string nullable: true description: External id of the vendor maxLength: 100 dateModified: type: string format: date-time readOnly: true currency: type: integer nullable: true payment_term_ref: type: integer nullable: true shipping_term_ref: type: integer nullable: true payment_method_ref: type: integer nullable: true shipping_method_ref: type: integer nullable: true payment_methods: type: array items: $ref: '#/components/schemas/PaymentMethodRead' readOnly: true tax: type: integer nullable: true type: $ref: '#/components/schemas/VendorTypeEnum' default_payment_method: type: integer nullable: true creditcards: type: array items: $ref: '#/components/schemas/CreditCard' readOnly: true is_1099_eligible: type: boolean nullable: true title: 1099 Eligible? overall_score: type: number format: double nullable: true readOnly: true is_auto_email_po_enabled: type: boolean po_pdf_labels: type: string description: Placeholder for a KVStore value maxLength: 200 email_configurations: type: object additionalProperties: $ref: '#/components/schemas/EmailConfiguration' required: - name - type VendorBreakdownDocs: type: object properties: speed: $ref: '#/components/schemas/BreakdownDocs' accuracy: $ref: '#/components/schemas/BreakdownDocs' quality: $ref: '#/components/schemas/BreakdownDocs' cost: $ref: '#/components/schemas/BreakdownDocs' required: - accuracy - cost - quality - speed VendorDetail: type: object properties: id: type: integer readOnly: true name: type: string description: Name of the vendor maxLength: 150 active: type: boolean addressLineOne: type: string nullable: true title: Address line 1 description: First line of address maxLength: 300 addressLineTwo: type: string nullable: true title: Address line 2 description: Second line of address maxLength: 300 postalCode: type: string nullable: true title: Postal Code description: Postal or Zip code of the vendor maxLength: 20 city: type: string nullable: true description: City of the vendor maxLength: 50 state_province: type: string nullable: true title: State/Province description: State or Province of the vendor maxLength: 40 country: type: string nullable: true description: Country of the vendor maxLength: 80 phoneOne: type: string nullable: true description: Primary phone no. of the vendor maxLength: 20 phoneTwo: type: string nullable: true description: Secondary phone no. of the vendor maxLength: 20 fax: type: string nullable: true description: Fax no. of the vendor maxLength: 20 email: type: array items: type: string description: 'Added to address a bug where vendors imported from Quickbooks (or at least that is the only known source) could have an invalid empty string as an email that frontend doesn''t process nicely. Should probably be removed at some point in the future.' readOnly: true comments: type: string nullable: true description: Notes about the vendor contact: type: string nullable: true description: Contact person of the vendor maxLength: 50 url: type: string nullable: true description: Website of the vendor maxLength: 200 external_id: type: string nullable: true description: External id of the vendor maxLength: 100 dateModified: type: string format: date-time readOnly: true currency: type: integer nullable: true payment_term_ref: allOf: - $ref: '#/components/schemas/PaymentTerm' nullable: true type: object shipping_term_ref: allOf: - $ref: '#/components/schemas/ShippingTerm' nullable: true type: object payment_method_ref: allOf: - $ref: '#/components/schemas/PaymentMethod' nullable: true type: object shipping_method_ref: allOf: - $ref: '#/components/schemas/ShippingMethod' nullable: true type: object payment_methods: type: array items: $ref: '#/components/schemas/PaymentMethodRead' readOnly: true tax: type: integer nullable: true type: $ref: '#/components/schemas/VendorTypeEnum' default_payment_method: type: integer nullable: true creditcards: type: array items: $ref: '#/components/schemas/CreditCard' readOnly: true is_1099_eligible: type: boolean nullable: true title: 1099 Eligible? overall_score: type: number format: double nullable: true readOnly: true is_auto_email_po_enabled: type: boolean po_pdf_labels: type: string description: Placeholder for a KVStore value maxLength: 200 email_configurations: type: object additionalProperties: $ref: '#/components/schemas/EmailConfiguration' performance: allOf: - $ref: '#/components/schemas/VendorPerformance' nullable: true readOnly: true type: object vendor_request: allOf: - $ref: '#/components/schemas/NestedVendorRequest' readOnly: true required: - name - type VendorDetailSerializerSingleCreate: type: object properties: metadata: type: object additionalProperties: {} default: {} data: $ref: '#/components/schemas/VendorDetail' required: - data VendorDetailSerializerSingleRetrieve: type: object properties: metadata: type: object additionalProperties: {} default: {} data: $ref: '#/components/schemas/VendorDetail' required: - data VendorDocs: type: object properties: id: type: integer readOnly: true name: type: string description: Name of the vendor maxLength: 150 required: - name VendorPaymentMethodFlightTime: type: object properties: min: type: integer minimum: 0 description: The minimum number of days for the payment to be in flight max: type: integer minimum: 0 description: The maximum number of days for the payment to be in flight required: - max - min VendorPaymentMethodRead: type: object properties: id: type: integer readOnly: true vendor: type: integer description: ID of the vendor this payment method is for name: type: string maxLength: 255 type: allOf: - $ref: '#/components/schemas/PaymentMethodTypeEnum' title: Payment Method minimum: 0 maximum: 4294967295 data: type: object additionalProperties: {} readOnly: true currency: $ref: '#/components/schemas/Currency' payment_rail: type: string readOnly: true bank_account_country_code: type: string nullable: true readOnly: true flight_time: allOf: - $ref: '#/components/schemas/VendorPaymentMethodFlightTime' readOnly: true transaction_fee: allOf: - $ref: '#/components/schemas/VendorPaymentMethodTransactionFee' readOnly: true required: - currency - vendor VendorPaymentMethodRequest: type: object properties: vendor: type: integer name: type: string maxLength: 255 type: allOf: - $ref: '#/components/schemas/PaymentMethodTypeEnum' title: Payment Method minimum: 0 maximum: 4294967295 data: {} currency: type: integer required: - data - vendor VendorPaymentMethodTransactionFee: type: object properties: type: oneOf: - enum: - percentage type: string - enum: - fixed type: string readOnly: true value: type: string format: decimal pattern: ^-?\d{0,19}(?:\.\d{0,2})?$ required: - value VendorPerformance: type: object properties: overall_score: type: number format: float readOnly: true average_delivery_time: type: string format: decimal pattern: ^-?\d{0,3}(?:\.\d{0,3})?$ nullable: true readOnly: true breakdown: allOf: - $ref: '#/components/schemas/VendorBreakdownDocs' readOnly: true VendorRead: type: object properties: id: type: integer readOnly: true name: type: string description: Name of the vendor maxLength: 150 active: type: boolean addressLineOne: type: string nullable: true title: Address line 1 description: First line of address maxLength: 300 addressLineTwo: type: string nullable: true title: Address line 2 description: Second line of address maxLength: 300 postalCode: type: string nullable: true title: Postal Code description: Postal or Zip code of the vendor maxLength: 20 city: type: string nullable: true description: City of the vendor maxLength: 50 state_province: type: string nullable: true title: State/Province description: State or Province of the vendor maxLength: 40 country: type: string nullable: true description: Country of the vendor maxLength: 80 phoneOne: type: string nullable: true description: Primary phone no. of the vendor maxLength: 20 phoneTwo: type: string nullable: true description: Secondary phone no. of the vendor maxLength: 20 fax: type: string nullable: true description: Fax no. of the vendor maxLength: 20 email: type: array items: type: string format: email comments: type: string nullable: true description: Notes about the vendor contact: type: string nullable: true description: Contact person of the vendor maxLength: 50 url: type: string nullable: true description: Website of the vendor maxLength: 200 external_id: type: string nullable: true description: External id of the vendor maxLength: 100 dateModified: type: string format: date-time readOnly: true currency: type: integer nullable: true payment_term_ref: allOf: - $ref: '#/components/schemas/PaymentTerm' nullable: true type: object shipping_term_ref: allOf: - $ref: '#/components/schemas/ShippingTerm' nullable: true type: object payment_method_ref: allOf: - $ref: '#/components/schemas/PaymentMethod' nullable: true type: object shipping_method_ref: allOf: - $ref: '#/components/schemas/ShippingMethod' nullable: true type: object payment_methods: type: array items: $ref: '#/components/schemas/PaymentMethodRead' readOnly: true tax: type: integer nullable: true type: $ref: '#/components/schemas/VendorTypeEnum' default_payment_method: type: integer nullable: true creditcards: type: array items: $ref: '#/components/schemas/CreditCard' readOnly: true is_1099_eligible: type: boolean nullable: true title: 1099 Eligible? overall_score: type: number format: double nullable: true readOnly: true is_auto_email_po_enabled: type: boolean po_pdf_labels: type: string description: Placeholder for a KVStore value maxLength: 200 email_configurations: type: object additionalProperties: $ref: '#/components/schemas/EmailConfiguration' required: - name - type VendorSerializerSingle: type: object properties: metadata: type: object additionalProperties: {} default: {} data: $ref: '#/components/schemas/Vendor' required: - data VendorTypeEnum: enum: - 2 - 3 - 4 - 6 - 7 type: integer description: '* `2` - amazon punchout * `3` - preferred * `4` - regular * `6` - credit card provider * `7` - checkout' VersionChoicesDocs: type: object properties: pk: type: integer version: type: integer securitySchemes: BasicAuthentication: type: http scheme: basic M2MAuthentication: type: http scheme: bearer bearerFormat: JWT RemoteAuthentication: type: oauth2 flows: authorizationCode: authorizationUrl: https://.procurify.com/oauth/authorize tokenUrl: https://.procurify.com/oauth/token scopes: {} cookieAuth: type: apiKey in: cookie name: sessionid