Procurify ap API
The ap API from Procurify — 8 operation(s) for ap.
The ap API from Procurify — 8 operation(s) for ap.
openapi: 3.0.3
info:
title: Procurify API Documentation account-codes ap API
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: ap
paths:
/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": <string>}``` |
| CHECK/CHEQUE | ```{"payable_to": <string>}``` |
| ACH | ```{"routing_number": <string>, "account_number": <string>, "company_name": <string>}``` |
'
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": <string>}``` |
| CHECK/CHEQUE | ```{"payable_to": <string>}``` |
| ACH | ```{"routing_number": <string>, "account_number": <string>, "company_name": <string>}``` |
'
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": <string>}``` |
| CHECK/CHEQUE | ```{"payable_to": <string>}``` |
| ACH | ```{"routing_number": <string>, "account_number": <string>, "company_name": <string>}``` |
'
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": <string>}``` |
| CHECK/CHEQUE | ```{"payable_to": <string>}``` |
| ACH | ```{"routing_number": <string>, "account_number": <string>, "company_name": <string>}``` |
'
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/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:
- 3cd
# --- truncated at 32 KB (158 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/procurify/refs/heads/main/openapi/procurify-ap-api-openapi.yml