ARPilot API (1.0.0)

Download OpenAPI specification:

API for managing accounts receivable, customers, payments, and reconciliation

Invoices

List invoices

Returns a paginated list of invoices. Filter by status or customer.

query Parameters
page
integer
Default: 1

Page number

per_page
integer
Default: 25

Items per page (max 100)

status
string

Filter by status

customer_id
string <uuid>

Filter by customer UUID

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Create invoice

Creates a new invoice linked to an existing customer.

Request Body schema: application/json
required
invoice_number
required
string

Unique invoice number

customer_id
required
string <uuid>

UUID of an existing customer in your account

amount
required
number

Total invoice amount

due_date
required
string <date>

Payment due date

customer_name
string

Override customer name on this invoice

customer_address
string

Override address

amount_due
number

Remaining balance

issue_date
string <date>

Issue date (defaults to today)

status
string

Invoice status (defaults to pending)

notes
string

Internal notes

Responses

Request samples

Content type
application/json
{
  • "invoice_number": "string",
  • "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
  • "amount": 0,
  • "due_date": "2019-08-24",
  • "customer_name": "string",
  • "customer_address": "string",
  • "amount_due": 0,
  • "issue_date": "2019-08-24",
  • "status": "string",
  • "notes": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get invoice

Returns detailed information about a specific invoice.

path Parameters
id
required
string <uuid>

Invoice UUID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update invoice

Updates an existing invoice.

path Parameters
id
required
string <uuid>

Invoice UUID

Request Body schema: application/json
required
customer_name
string

Customer display name

customer_address
string

Customer billing address

amount
number

Total amount

amount_due
number

Remaining balance

due_date
string <date>

Due date

status
string

Invoice status

notes
string

Internal notes

external_payment_amount
number

Amount paid via external/offline methods

Responses

Request samples

Content type
application/json
{
  • "customer_name": "string",
  • "customer_address": "string",
  • "amount": 0,
  • "amount_due": 0,
  • "due_date": "2019-08-24",
  • "status": "string",
  • "notes": "string",
  • "external_payment_amount": 0
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Customers

List customers

Returns a paginated list of customers with tags.

query Parameters
page
integer
Default: 1

Page number

per_page
integer
Default: 25

Items per page (max 100)

search
string

Search company name or customer ID

tag_id
string <uuid>

Filter by tag UUID

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Create customer

Creates a new customer with at least one contact.

Request Body schema: application/json
required
company_name
required
string

Company display name

Array of objects (ContactInput)

At least one contact with contact_name and email or phone

customer_id
string

Your external customer ID

address
string

Mailing address

/tags
Array of strings

Array of tag names

Responses

Request samples

Content type
application/json
{
  • "company_name": "string",
  • "/contacts": [
    ],
  • "customer_id": "string",
  • "address": "string",
  • "/tags": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get customer

Returns customer details including all contacts.

path Parameters
id
required
string <uuid>

Customer UUID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update customer

Updates customer fields, tags, and/or contacts.

path Parameters
id
required
string <uuid>

Customer UUID

Request Body schema: application/json
required
company_name
string

Company name

address
string

Address

timezone
string

IANA timezone

/tags
Array of strings

Replace all tags

Array of objects (ContactUpdate)

Upsert contacts

delete_contact_ids
Array of strings <uuid> [ items <uuid > ]

UUIDs of contacts to delete

Responses

Request samples

Content type
application/json
{
  • "company_name": "string",
  • "address": "string",
  • "timezone": "string",
  • "/tags": [
    ],
  • "/contacts": [
    ],
  • "delete_contact_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete customer

Permanently deletes a customer and associated data.

path Parameters
id
required
string <uuid>

Customer UUID

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Contacts

List contacts

Returns a paginated list of contacts for a given customer.

query Parameters
customer_id
required
string <uuid>

Customer UUID

page
integer
Default: 1

Page number

per_page
integer
Default: 25

Items per page (max 100)

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Create contact

Adds a new contact to an existing customer.

Request Body schema: application/json
required
customer_id
required
string <uuid>

UUID of the parent customer

contact_name
required
string

Full name of the contact

email
required
string

Email address

phone
string

Primary phone number

phone_type
string

Phone type

phone_secondary
string

Secondary phone number

phone_type_secondary
string

Secondary phone type

is_primary
boolean

Mark as primary contact

escalation_level
integer

Escalation order

title
string

Job title

notes
string

Internal notes

Responses

Request samples

Content type
application/json
{
  • "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
  • "contact_name": "string",
  • "email": "string",
  • "phone": "string",
  • "phone_type": "string",
  • "phone_secondary": "string",
  • "phone_type_secondary": "string",
  • "is_primary": true,
  • "escalation_level": 0,
  • "title": "string",
  • "notes": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get contact

Returns a single contact by its UUID.

path Parameters
id
required
string <uuid>

Contact UUID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update contact

Updates contact fields.

path Parameters
id
required
string <uuid>

Contact UUID

Request Body schema: application/json
required
contact_name
string

Full name

email
string

Email address

phone
string

Primary phone number

phone_type
string

Phone type

phone_secondary
string

Secondary phone number

phone_type_secondary
string

Secondary phone type

is_primary
boolean

Set as primary contact

escalation_level
integer

Escalation order

title
string

Job title

notes
string

Internal notes

Responses

Request samples

Content type
application/json
{
  • "contact_name": "string",
  • "email": "string",
  • "phone": "string",
  • "phone_type": "string",
  • "phone_secondary": "string",
  • "phone_type_secondary": "string",
  • "is_primary": true,
  • "escalation_level": 0,
  • "title": "string",
  • "notes": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete contact

Permanently deletes a contact.

path Parameters
id
required
string <uuid>

Contact UUID

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Payments

List unmatched payments

Returns a paginated list of imported payments.

query Parameters
page
integer
Default: 1

Page number

per_page
integer
Default: 25

Items per page (max 100)

invoice_id
string <uuid>

Filter by matched invoice

reviewed
string

Filter by reviewed status

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Import payment

Imports a payment into the reconciliation queue.

Request Body schema: application/json
required
amount
required
number

Payment amount

payment_date
required
string <date>

Date of payment

payment_method
string

Payment method

payer_name
string

Name of the payer

payer_reference
string

External reference

external_payment_id
string

External payment ID

notes
string

Internal notes

Responses

Request samples

Content type
application/json
{
  • "amount": 0,
  • "payment_date": "2019-08-24",
  • "payment_method": "string",
  • "payer_name": "string",
  • "payer_reference": "string",
  • "external_payment_id": "string",
  • "notes": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get payment

Returns detailed payment information.

path Parameters
id
required
string <uuid>

Payment UUID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update / match payment

Updates metadata or manually links the payment to an invoice.

path Parameters
id
required
string <uuid>

Payment UUID

Request Body schema: application/json
required
invoice_id
string <uuid>

Match to invoice

payer_name
string

Payer name

payer_reference
string

External reference

reviewed
boolean

Mark as reviewed

notes
string

Notes

Responses

Request samples

Content type
application/json
{
  • "invoice_id": "f4c4edb8-11e0-4b33-bcc1-482dc59ebb32",
  • "payer_name": "string",
  • "payer_reference": "string",
  • "reviewed": true,
  • "notes": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Tags

List tags

Returns all tags with the number of customers assigned to each.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Create tag

Creates a new tag.

Request Body schema: application/json
required
name
required
string

Tag name

color
string

Hex color code

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "color": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get tag

Returns tag details including all assigned customer IDs.

path Parameters
id
required
string <uuid>

Tag UUID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update tag

Updates a tag name and/or color.

path Parameters
id
required
string <uuid>

Tag UUID

Request Body schema: application/json
required
name
string

New tag name

color
string

New hex color

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "color": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete tag

Permanently deletes a tag and removes all customer assignments.

path Parameters
id
required
string <uuid>

Tag UUID

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Assign tag to customers

Assigns this tag to one or more customers.

path Parameters
id
required
string <uuid>

Tag UUID

Request Body schema: application/json
required
customer_ids
required
Array of strings <uuid> [ items <uuid > ]

Array of customer UUIDs

Responses

Request samples

Content type
application/json
{
  • "customer_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "assigned": 0
}

Remove tag from customers

Removes this tag from one or more customers.

path Parameters
id
required
string <uuid>

Tag UUID

Request Body schema: application/json
required
customer_ids
required
Array of strings <uuid> [ items <uuid > ]

Array of customer UUIDs

Responses

Request samples

Content type
application/json
{
  • "customer_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "success": true
}

Bulk update tags

Add and/or remove tags across multiple customers.

Request Body schema: application/json
required
customer_ids
required
Array of strings <uuid> [ items <uuid > ]

Array of customer UUIDs

add_tag_ids
Array of strings <uuid> [ items <uuid > ]

Tag UUIDs to add

remove_tag_ids
Array of strings <uuid> [ items <uuid > ]

Tag UUIDs to remove

Responses

Request samples

Content type
application/json
{
  • "customer_ids": [
    ],
  • "add_tag_ids": [
    ],
  • "remove_tag_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "customers_updated": 0
}

Webhooks

List webhook endpoints

Returns all registered webhook endpoints.

query Parameters
page
integer
Default: 1

Page number

per_page
integer
Default: 25

Items per page (max 100)

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Register endpoint

Registers a new HTTPS endpoint.

Request Body schema: application/json
required
url
required
string

Destination URL

events
Array of strings

Event types to subscribe to

description
string

Internal label

Responses

Request samples

Content type
application/json
{
  • "url": "string",
  • "events": [
    ],
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update endpoint

Update URL, subscribed events, description, or active status.

path Parameters
id
required
string <uuid>

Endpoint UUID

Request Body schema: application/json
required
url
string

New destination URL

events
Array of strings

Replace subscribed event types

description
string

Internal label

is_active
boolean

Pause or resume delivery

Responses

Request samples

Content type
application/json
{
  • "url": "string",
  • "events": [
    ],
  • "description": "string",
  • "is_active": true
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete endpoint

Permanently deletes the endpoint and all delivery history.

path Parameters
id
required
string <uuid>

Endpoint UUID

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Send test event

Queues a webhook.test event to this endpoint.

path Parameters
id
required
string <uuid>

Endpoint UUID

Responses

Response samples

Content type
application/json
{
  • "queued": true
}

List deliveries

Returns paginated delivery attempts for this endpoint.

path Parameters
id
required
string <uuid>

Endpoint UUID

query Parameters
status
string

Filter by status

page
integer
Default: 1

Page number

per_page
integer
Default: 25

Items per page

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Reconciliation

List approved changes

Returns a paginated list of approved accounting changes.

query Parameters
page
integer
Default: 1

Page number

per_page
integer
Default: 25

Items per page (max 100)

change_type
string

Filter by change type

invoice_id
string <uuid>

Filter by invoice UUID

customer_id
string <uuid>

Filter by customer UUID

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Update sync status

Mark accounting changes as synced or failed.

Request Body schema: application/json
required
action
required
string

mark_synced or mark_failed

change_ids
required
Array of strings <uuid> [ items <uuid > ]

Array of accounting change UUIDs

error_message
string

Error description

Responses

Request samples

Content type
application/json
{
  • "action": "string",
  • "change_ids": [
    ],
  • "error_message": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get accounting change

Returns a single approved accounting change by its UUID.

path Parameters
id
required
string <uuid>

Accounting change UUID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}