Customers
Endpoint: https://api.oneup.com/v1/customersJSON Format
Customers are represented as JSON objects which have the following keys:
| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| id | integer | no | yes | Automatically assigned when creating customers |
| type | integer | yes | no | The type of the customer
1: Company 2: Individual |
| status | integer | no | no | 1: Customer (default)
2: Lead |
| full_name | string | no | yes | The full name of this customer (automatically generated). |
| address | Address | no | no | The main address of the customer |
| shipping_address | Address | no | no | The shipping address of the customer |
| phone_number | string | no | no | The phone number of this customer. 64 characters max. |
| string | no | no | The Email address of this customer. 255 characters max. | |
| website | string | no | no | The URL of the customer's website. 255 characters max. |
| contacts | array[Contact] | no | no | An array containing the contacts of the customer |
| payment_terms | Payment Terms | no | no | The Payment terms object
by default, Due on receipt will be selected. |
| currency_iso_code | string | no | no | The ISO Code of one of your Currencies
by default, the domain currency will be selected. 4 characters max. |
| sales_tax | Tax | no | no | A Tax object |
| user_code | string | no | no | The number assigned to this customer (i.e. CUS-002). If you don't specify a customer number, it will be automatically generated. 64 characters max. |
| opt_in_email | boolean | no | no | Opt-in to Emails. Default: false |
| notes | string | no | no | A note about this customer |
| assigned_to | Object | no | no | The employee object. The authenticated user by default |
| employee_count | integer | no | no | The company's employee count |
| price_family | Object | no | no | The price family applied to this customer |
| taxpayer_id | string | no | no | The customer's taxpayer id |
| industry | string | no | no | The customer's industry |
| incorporation_status | string | no | no | The customer's incorporation status |
| rating | string | no | no | The lead's rating |
Company only
If your customer is a company, the JSON object will have the following keys:| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| company_name | string | yes | no | The name of the company. 255 characters max. |
Individual only
If your customer is an individual, the JSON object will have the following keys:| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| first_name | string | no | no | The First Name of the customer. 255 characters max. |
| last_name | string | yes | no | The Last Name of the customer. 255 characters max. |
| middle_name | string | no | no | The Middle Name of the customer. 255 characters max. |
JSON Example
{
"id": 146800,
"type": 1,
"status": 1,
"full_name": "OneUp",
"address": {
"street_line1": "567 Sutter St.",
"street_line2": "",
"street_line3": "",
"postal_code": "94102",
"city": "San Francisco",
"country": "United States",
"locality": "California",
"short_locality": "CA",
"full_address": "567 Sutter St. San Francisco CA 94102 United States"
},
"shipping_address": {
"street_line1": "567 Sutter St.",
"street_line2": "",
"street_line3": "",
"postal_code": "94102",
"city": "San Francisco",
"country": "United States",
"locality": "California",
"short_locality": "CA",
"full_address": "567 Sutter St. San Francisco CA 94102 United States"
},
"phone_number": "(415) 779-6536",
"email": "support@oneup.com",
"website": "www.oneup.com",
"payment_terms": {
"id": 1,
"name": "Due on receipt"
},
"currency_iso_code": "USD",
"sales_tax": {
"id": 1,
"name": "0.0% Example of Sales Tax (Collected)",
"rate": 0.0
},
"user_code": "CUS-018",
"opt_in_email": false,
"notes": "- OneUp -\nRun your business in the Cloud",
"assigned_to": {
"id": 2,
"first_name": "John",
"last_name": "Smith",
"user_code": "EMP-002"
},
"company_name": "OneUp",
"employee_count": 1,
"taxpayer_id": "123456789",
"price_family": {
"id": 1,
"name": "Price Family"
},
"industry": "Apparel",
"incorporation_status": "C-Corporation",
"rating": "Cold"
}Available Filter Fields
| Field Name | Description |
|---|---|
| assigned_to | Filter by employee id that is assigned to the customer (e.g. ?assigned_to=3). |
| created_at | Filter by the creation date. |
| status |
Filter by status among : - lead - customer (e.g. ?status=lead). |
Available Sorting Options
| Option Name | Description |
|---|---|
| id | Sorts by id field. |
| user_code | Sorts by user code field. |
| full_name | Sorts by full name field. |
| created_at | Sorts by the creation date field. |
| updated_at | Sorts by the update date field. |
Available Methods
| HTTP Verb | Action |
|---|---|
| GET | Retrieve a resource, you have to specify an id |
| PUT | Update a resource, you have to specify an id |
| DELETE | Delete a resource, you have to specify an id |
| POST | Create a resource |
| GET | Retrieve the list of resources |
Vendors
Endpoint: https://api.oneup.com/v1/vendorsJSON Format
Vendors are represented as JSON objects which have the following keys:
| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| id | integer | no | yes | Automatically assigned when creating customers |
| type | integer | yes | no | The type of the vendor
1: Company 2: Individual |
| full_name | string | no | yes | The full name of this customer (automatically generated) |
| address | Address | no | no | The main address of the vendor |
| phone_number | string | no | no | The phone number of this vendor. 64 characters max. |
| string | no | no | The Email address of this vendor. 255 characters max. | |
| website | string | no | no | The URL of the vendor's website. 255 characters max. |
| contacts | array[Contact] | no | no | An array containing the contacts of the vendor |
| payment_terms_id | integer | no | no | The ID of the Payment terms
by default, Due on receipt will be selected. |
| currency_iso_code | string | no | no | The ISO Code of one of your Currencies
by default, the domain currency will be selected. 4 characters max. |
| user_code | string | no | no | The number assigned to this vendor (i.e. SUP-002). If you don't specify a vendor number, it will be automatically generated. 64 characters max. |
| note | no | no | A note about this vendor | |
| taxpayer_id_number | string | no | no | The Taxpayer ID Number |
Company only
If your vendor is a company, the JSON object will have the following keys:| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| company_name | string | yes | no | The name of the company. 255 characters max. |
Individual only
If your vendor is an individual, the JSON object will have the following keys:| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| first_name | string | no | no | The First Name of the vendor. 255 characters max. |
| last_name | string | yes | no | The Last Name of the vendor. 255 characters max. |
| middle_name | string | no | no | The Middle Name of the vendor. 255 characters max. |
JSON Example
{
"id": 132,
"type": 1,
"full_name": "Regular Vendor",
"address": {
"street_line1": "Regular street",
"street_line2": "Block G",
"street_line3": "Floor 5",
"postal_code": "77 837",
"city": "San Francisco",
"country": "USA",
"locality": "California",
"short_locality": "CA",
"full_address": "Regular street Block G Floor 5 San Francisco CA 77 837 USA"
},
"phone_number": "555 7890 888",
"email": "regular.vendor@gmail.com",
"website": "regularvendor.com",
"contacts": [
{
"id": 65,
"first_name": "Regular",
"last_name": "Vendor",
"full_name": "Regular Vendor",
"cell_number": "",
"work_phone": "888 7654 333",
"home_phone": "",
"email": "r.vendor@mail.com",
"address": {
"street_line1": "",
"street_line2": "",
"street_line3": "",
"postal_code": "",
"city": "",
"country": "",
"locality": "N/A",
"short_locality": "N/A",
"full_address": ""
},
"note": "This contact is pretty regular."
}
],
"currency": "USD",
"payment_terms_id": 1,
"taxpayer_id_number": "SE OIU 90",
"user_code": "SUP-002",
"note": "This vendor is pretty regular.",
"company_name": "Regular Vendor"
}Available Filter Fields
| Field Name | Description |
|---|---|
| created_at | Filter by the creation date. |
Available Sorting Options
| Option Name | Description |
|---|---|
| id | Sorts by id field. |
| user_code | Sorts by user code field. |
| created_at | Sorts by the creation date field. |
| updated_at | Sorts by the update date field. |
| full_name | Sorts by full name field. |
Available Methods
| HTTP Verb | Action |
|---|---|
| GET | Retrieve a resource, you have to specify an id |
| PUT | Update a resource, you have to specify an id |
| DELETE | Delete a resource, you have to specify an id |
| POST | Create a resource |
| GET | Retrieve the list of resources |
Products and Services
Endpoint: https://api.oneup.com/v1/itemsJSON Format
Products and Services are represented as JSON objects which have the following keys:
| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| id | integer | no | yes | Automatically assigned when creating Transactions |
| type | integer | yes | no | The type
1: Service 2: Product |
| name | string | yes | no | The name. 255 characters max. |
| unit_id | integer | no | no | The ID of the Unit
Default: Service: Day Product: Piece |
| sales_price | double | no | no | The Sales Price, 0.0 by default |
| item_number | string | no | no | A unique user-facing id (i.e. ITM-012) If you don't specify a product number, it will be automatically generated. 64 characters max. |
| description | string | no | no | A description of the product or the service |
| family_id | integer | no | no | IDs from Item's Families
Miscellaneous, by default |
| private_note | string | no | no | A private note about the product or the service |
Products only
| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| purchase_price | double | no | no | The Purchase Price of the product. 0.0 by default |
| net_weight | double | no | no | The Net Weight of the product. 0.0 by default |
| width | double | no | no | The Width of the product. 0.0 by default |
| length | double | no | no | The Length of the product. 0.0 by default |
| height | double | no | no | The Height of the product. 0.0 by default |
| dimension_unit_id | integer | no | no | The id of the Dimension Unit of the product. Meter by default |
JSON Example
{
"id": 230071,
"type": 2,
"name": "Nintendo Wii",
"unit_id": 2,
"sales_price": 199.0,
"purchase_price": 159.0,
"item_number": "ITM-012",
"description": "A video game console.",
"family_id": 3,
"private_note": "I got one !",
"net_weight": 1.740,
"width": 0.157,
"length": 0.215,
"height": 0.440,
"dimension_unit_id": 3
}Available Sorting Options
| Option Name | Description |
|---|---|
| created_at | Sorts by the creation date field. |
| updated_at | Sorts by the update date field. |
Available Methods
| HTTP Verb | Action |
|---|---|
| GET | Retrieve a resource, you have to specify an id |
| PUT | Update a resource, you have to specify an id |
| DELETE | Delete a resource, you have to specify an id |
| POST | Create a resource |
| GET | Retrieve the list of resources |
Products and Services Families
Endpoint: https://api.oneup.com/v1/item_familiesJSON Format
Products and Services Families are represented as JSON objects which have the following keys:
| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| id | integer | no | yes | Automatically assigned when creating Families |
| name | string | yes | no | The Family Name. 64 characters max. |
| code | yes | no | The Short Code of the Family. Automatically generated. 64 characters max. |
JSON Example
{
"id": 4,
"name": "Video Game",
"code": "FAM-007"
}Available Methods
| HTTP Verb | Action |
|---|---|
| GET | Retrieve a resource, you have to specify an id |
| PUT | Update a resource, you have to specify an id |
| DELETE | Delete a resource, you have to specify an id |
| POST | Create a resource |
| GET | Retrieve the list of resources |
Projects
Endpoint: https://api.oneup.com/v1/projectsJSON Format
Projects are represented as JSON objects which have the following keys:
| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| id | integer | no | yes | Automatically assigned when creating projects |
| name | string | yes | no | The Project Name. 128 characters max. |
| description | string | no | no | The Project Description |
JSON Example
{
"id": 32,
"name": "Project X",
"description": "A wonderful project !\nLet's make money."
}Available Filter Fields
| Field Name | Description |
|---|---|
| created_at | Filter by the creation date. |
Available Sorting Options
| Option Name | Description |
|---|---|
| id | Sorts by id field. |
| name | Sorts by name field. |
| created_at | Sorts by the creation date field. |
| updated_at | Sorts by the update date field. |
Available Methods
| HTTP Verb | Action |
|---|---|
| GET | Retrieve a resource, you have to specify an id |
| PUT | Update a resource, you have to specify an id |
| DELETE | Delete a resource, you have to specify an id |
| POST | Create a resource |
| GET | Retrieve the list of resources |
Project Tasks
Endpoint: https://api.oneup.com/v1/project_tasksJSON Format
Project Tasks are represented as JSON objects which have the following keys:
| Field Name | Type | Description |
|---|---|---|
| id | integer | Automatically assigned when creating a task |
| name | string | The task name. |
| notes | string | The task notes. |
| status | string | "done" if the task is completed, "todo" otherwise. |
| due_date | date | Date on which this task is due, or null if the task has no due date. |
| done_date | date | Date on which this task was completed, or null if the task has no done date. |
| time_spent | double | The time spent to complete this task, or null if the task is not done yet. |
| assigned_to | object | Employee to which this task is assigned, or null if the task is unassigned. |
| customer | object | Compact representation of the customer linked to this task, or null if no customer linked. |
| contact | object | Compact representation of the contact linked to this task, or null if no contact linked. |
| project | object | Compact representation of the project linked to this task, or null if no project linked. |
| service_to_bill | object | Compact representation of the service to bill linked to this task, or null if no service linked. |
JSON Example
{
"id": 6,
"name": "Buy supplies",
"notes": "Let's buy the supplies.",
"status": "todo",
"due_date": "2016-03-17",
"done_date": null,
"time_spent": null,
"assigned_to": {
"id": 120,
"first_name": "John",
"last_name": "Doe",
"user_code": "EMP-005"
},
"customer": {
"id": 517001,
"name": "Smith Inc",
"user_code": "CUS-1108"
},
"contact": {
"id": 353659,
"name": "Jane Smith",
"user_code": "CCUS-1422"
},
"project": {
"id": 2,
"name": "Project 2"
},
"service_to_bill": {
"id": 6252,
"name": "Service",
"user_code": "PS-004"
}
} Available Sorting Options
| Option Name | Description |
|---|---|
| created_at | Sorts by the creation date field. |
| updated_at | Sorts by the update date field. |
Available Methods
| HTTP Verb | Action |
|---|---|
| GET | Retrieve a resource, you have to specify an id |
| GET | Retrieve the list of resources |
Opportunity Tasks
Endpoint: https://api.oneup.com/v1/opportunity_tasksJSON Format
Opportunity Tasks are represented as JSON objects which have the following keys:
| Field Name | Type | Description |
|---|---|---|
| id | integer | Automatically assigned when creating a task |
| name | string | The task name. |
| notes | string | The task notes. |
| status | string | "done" if the task is completed, "todo" otherwise. |
| due_date | date | Date on which this task is due, or null if the task has no due date. |
| done_date | date | Date on which this task was completed, or null if the task has no done date. |
| time_spent | double | The time spent to complete this task, or null if the task is not done yet. |
| assigned_to | object | Employee to which this task is assigned, or null if the task is unassigned. |
| customer | object | Compact representation of the customer linked to this task, or null if no customer linked. |
| contact | object | Compact representation of the contact linked to this task, or null if no contact linked. |
| opportunity | object | Compact representation of the opportunity linked to this task, or null if no opportunity linked. |
JSON Example
{
"id": 6,
"name": "Buy supplies",
"notes": "Let's buy the supplies.",
"status": "todo",
"due_date": "2016-03-17",
"done_date": null,
"time_spent": null,
"assigned_to": {
"id": 120,
"first_name": "John",
"last_name": "Doe",
"user_code": "EMP-005"
},
"customer": {
"id": 517001,
"name": "Smith Inc",
"user_code": "CUS-1108"
},
"contact": {
"id": 353659,
"name": "Jane Smith",
"user_code": "CCUS-1422"
},
"opportunity": {
"id": 2,
"name": "Opportunity 2"
}
} Available Sorting Options
| Option Name | Description |
|---|---|
| created_at | Sorts by the creation date field. |
| updated_at | Sorts by the update date field. |
Available Methods
| HTTP Verb | Action |
|---|---|
| GET | Retrieve a resource, you have to specify an id |
| GET | Retrieve the list of resources |
Sales Orders
Endpoint: https://api.oneup.com/v1/sales_ordersJSON Format
Sales orders are represented as JSON objects which have the following keys:
| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| id | integer | no | yes | Automatically assigned. |
| customer_id DEPRECATED | integer | yes | no | Id of the Customer. |
| customer | Snippet | yes | no |
The Snippet of the sales order Customer. Where : - id = customer.id - name = customer.full_name - user_code = customer.user_code |
| billing_contact_id | integer | no | no | Id of the Contact to bill. Should belong to that order's Customer. |
| billing_address | Address | no | yes | The billing address. The Contact address if any, the Customer one otherwise. |
| user_code | string | no | no | The number assigned to this sales order (i.e. SO-002). If you don't specify an order number, it will be automatically generated. 64 characters max. |
| po_number | string | no | no | The Customer own Order Reference. 64 characters max. |
| date | date | no | no | The date that will be printed. Format: yyyy-MM-dd (e.g. 2013-06-26) Default: date of the day. |
| tax_id | integer | no | no | US only. Id of the Tax to apply on that order. |
| currency_iso_code | string | no | no | The ISO code of the currency (ISO 4217). 4 characters max. That currency should have been previously added into your company settings. Default: your company's currency. |
| reduce_rate | double | no | no | The reduce rate (%) to apply. From 0 to 100. Default: 0.00 |
| order_lines | array[Order Line] | no | no | An array containing the order lines of the order. |
| public_note | string | no | no | Comment that will be printed on the final document. |
| shipping_date | date | no | no | The date before which the goods should be delivered, if any. Format: yyyy-MM-dd (e.g. 2013-06-26) |
| shipping_contact_id | integer | no | no | Id of the Contact the goods should be shipped to, if different than the Customer. Could be any Contact from any Customer. |
| shipping_address | Address | no | yes | The shipping address. The shpping Contact address if any, the Customer one otherwise. |
| payment_terms_id | integer | no | no | Id of the Payment Term to apply once that order will be billed. |
| project_id | integer | no | no | Id of the Project related to that order, if any. |
| employee_id | integer | no | no | Id of the Employee assigned to that order. Default: the authenticated user. |
| private_note | string | no | no | A private note that won't be printed. |
| subtotal | double | no | yes | Total before taxes and reduce. Based on the content of the order lines. |
| reduce_amount | double | no | yes | Amount of the reduce, based on the subtotal and reduce rate. |
| tax_amount | double | no | yes | Overall tax amount. Inludes all taxes, discounts and reduce. |
| total | double | no | yes | The final total the customer needs to pay. All include (taxes, discounts, reduce). |
| delivery_status | integer | no | yes | The delivery status, among : 1: Not Delivered (default) 2: Partially Delivered 3: Delivered |
| invoice_status | integer | no | yes | The invoice status, among : 1: Not invoiced (default) 2: Invoiced 3: Cancelled |
JSON Example
That example describe a US sales order.
{
"id": 8,
"customer_id": 2,
"billing_contact_id": 1,
"billing_address": {
"street_line1": "57 Benjamin Franklin Street",
"street_line2": "",
"street_line3": "",
"postal_code": "",
"city": "San Francisco",
"country": "USA",
"locality": "California",
"short_locality": "CA",
"full_address": "57 Benjamin Franklin Street San Francisco CA USA"
},
"user_code": "CORD-006",
"po_number": "WC-SO-32492-XCT",
"date": "2014-05-07",
"tax_id": 2,
"currency_iso_code": "USD",
"reduce_rate": 3.5,
"order_lines": [
{
"id": 66,
"item_id": 1,
"description": "",
"quantity": 50.0,
"unit_price_wt": 15.0,
"discount_rate": 0.0,
"tax_id": 2,
"is_taxable": true,
"total": 750.0
},
{
"id": 67,
"item_id": 3,
"description": "10 random stickers for WC2014 album.",
"quantity": 100.0,
"unit_price_wt": 1.5,
"discount_rate": 5.0,
"tax_id": 2,
"is_taxable": true,
"total": 142.5
},
{
"id": 68,
"item_id": 2,
"description": "A beautiful stickers album about Soccer.\n- Limited Edition -",
"quantity": 20.0,
"unit_price_wt": 9.99,
"discount_rate": 0.0,
"tax_id": 0,
"is_taxable": false,
"total": 199.8
}
],
"public_note": "All in one rhythm - Juntos num só ritmo",
"shipping_date": "2014-06-12",
"shipping_address": {
"street_line1": "Rue Henri Delaunay",
"street_line2": "",
"street_line3": "",
"postal_code": "93210",
"city": "Saint-Denis",
"country": "France",
"locality": "N/A",
"short_locality": "N/A",
"full_address": "Rue Henri Delaunay Saint-Denis 93210 France"
},
"payment_terms_id": 4,
"employee_id": 1,
"private_note": "Needs to be ready for the opening !",
"subtotal": 1092.3,
"reduce_amount": 38.23,
"tax_amount": 86.13,
"total": 1140.2,
"delivery_status": 1,
"invoice_status": 1
}Available Filter Fields
| Field Name | Description |
|---|---|
| customer_id | Filter by customer id. |
Available Sorting Options
| Option Name | Description |
|---|---|
| id | Sorts by id field. |
| date | Sorts by date field. |
| created_at | Sorts by the creation date field. |
| updated_at | Sorts by the update date field. |
| user_code | Sorts by the user_code field. |
Available Methods
| HTTP Verb | Action |
|---|---|
| GET | Retrieve a resource, you have to specify an id |
| PUT | Update a resource, you have to specify an id |
| DELETE | Delete a resource, you have to specify an id |
| POST | Create a resource |
| GET | Retrieve the list of resources |
Create a delivery note from a sales order
PUT https://api.oneup.com/v1/sales_orders/:id/deliverOn success, the sales order gets delivered and the resulting Delivery Note is returned.
Create an invoice from a sales order
PUT https://api.oneup.com/v1/sales_orders/:id/invoiceOn success, the sales order gets closed and the resulting Invoice is returned.
Purchase Orders
Endpoint: https://api.oneup.com/v1/purchase_ordersJSON Format
Purchase orders are represented as JSON objects which have the following keys:
| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| id | integer | no | yes | Automatically assigned. |
| vendor | Snippet | yes | no |
The Snippet of the purchase order's Vendor. Where : - id = vendor.id - name = vendor.full_name - user_code = vendor.user_code |
| user_code | string | no | no | The number assigned to this purchase order (i.e. SORD-002). If you don't specify an order number, it will be automatically generated. 64 characters max. |
| date | date | no | no | The date that will be printed. Format: yyyy-MM-dd (e.g. 2013-06-26) Default: date of the day. |
| currency_iso_code | string | no | no | The ISO code of the currency (ISO 4217). 4 characters max. That currency should have been previously added into your company settings. Default: your company's currency. |
| employee_id | integer | no | no | Id of the Employee assigned to that order. Default: the authenticated user. |
| private_note | string | no | no | A private note that won't be printed. |
| subtotal | double | no | yes | Total before taxes and reduce. Based on the content of the order lines. |
| reduce_amount | double | no | yes | Amount of the reduce, based on the subtotal and reduce rate. |
| tax_amount | double | no | yes | Overall tax amount. Inludes all taxes, discounts and reduce. |
| total | double | no | yes | The final total that gets billed by the vendor. All include (taxes, discounts, reduce). |
JSON Example
That example describe an UK Purchase order.
{
"id": 10001,
"uuid": "f67691ec-fa87-4971-b300-c0b0ca1d1015",
"vendor": {
"user_code": "SUP-001",
"id": 1,
"name": "Miscellaneous Supplier"
},
"user_code": "SORD-002",
"date": "2021-02-03",
"currency_iso_code": "GBP",
"employee_id": 10028,
"private_note": "",
"subtotal": 161336.0,
"reduce_amount": 37107.28,
"tax_amount": 24845.74,
"total": 149074.46,
"attachments": []
}Available Sorting Options
| Option Name | Description |
|---|---|
| created_at | Sorts by the creation date field. |
| updated_at | Sorts by the update date field. |
Available Methods
| HTTP Verb | Action |
|---|---|
| GET | Retrieve a resource, you have to specify an id |
| PUT | Update a resource, you have to specify an id |
| DELETE | Delete a resource, you have to specify an id |
| GET | Retrieve the list of resources |
Create a bill from a purchase order
PUT https://api.oneup.com/v1/purchase_orders/:id/billOn success, the purchase order gets billed and the resulting Bill is returned.
Quotes
Endpoint: https://api.oneup.com/v1/quotesJSON Format
Quotes are represented as JSON objects which have the following keys:
| Field Name | Type | Description |
|---|---|---|
| id | integer | Automatically assigned. |
| status | string | The status, among : "open" (default), "won", "lost" |
| delivery_status | integer | The delivery status, among : 1: Not Delivered (default) 2: Partially Delivered 3: Delivered |
| invoice_status | integer | The invoice status, among : 1: Not invoiced (default) 2: Invoiced 3: Cancelled |
| expiration_date | date | For open quotes, the day the quote will expire. Format: yyyy-MM-dd (e.g. 2013-06-26) |
| closing_date | date | For won quotes, the date the quote has been accepted. Format: yyyy-MM-dd (e.g. 2013-06-26) |
| losing_date | date | For lost quotes, the date the quote has been rejected. Format: yyyy-MM-dd (e.g. 2013-06-26) |
| customer_id DEPRECATED | integer | Id of the Customer. |
| customer | Snippet |
The Snippet of the quote Customer. Where : - id = customer.id - name = customer.full_name - user_code = customer.user_code |
| billing_contact_id | integer | Id of the Contact to bill. Should belong to that quote's Customer. |
| billing_address | Address | The billing address. The Contact address if any, the Customer one otherwise. |
| po_number | string | The Customer own Order Reference. 64 characters max. |
| tax_id | integer | US only. Id of the Tax to apply on that quote. |
| reduce_rate | double | The reduce rate (%) to apply. From 0 to 100. Default: 0.00 |
| order_lines | array[Order Line] | An array containing the order lines of the quote. |
| public_note | string | Comment that will be printed on the final document. |
| shipping_contact_id | integer | Id of the Contact the goods should be shipped to, if different than the Customer. Could be any Contact from any Customer. |
| shipping_address | Address | The shipping address. The shipping Contact address if any, the Customer one otherwise. |
| payment_terms_id | integer | Id of the Payment Term to apply on that quote. Will be used as a template to generate Settlements. |
| project_id | integer | Id of the Project related to that quote, if any. |
| user_code | string | The number assigned to that quote (i.e. QOT-001). |
| date | date | The date that will be printed. Format: yyyy-MM-dd (e.g. 2013-06-26) |
| currency_iso_code | string | The ISO code of the currency
(ISO 4217).
4 characters max. That currency should have been previously added into your company settings. Default: your company's currency. |
| employee_id | integer | Id of the Employee assigned to that order. |
| private_note | string | A private note that won't be printed. |
| subtotal | double | Total before taxes and reduce. Based on the content of the order lines. |
| reduce_amount | double | Amount of the reduce, based on the subtotal and reduce rate. |
| tax_amount | double | Overall tax amount. Includes all taxes, discounts and reduce. |
| total | double | The final total the customer will have to pay. All include (taxes, discounts, reduce). |
JSON Example
{
"id": 10005,
"status": "open",
"delivery_status": 1,
"invoice_status": 1,
"expiration_date": "2020-12-31",
"closing_date": null,
"losing_date": null,
"customer_id": 10001,
"billing_contact_id": 10001,
"billing_address": {
"street_line1": "1st Avenue",
"street_line2": "",
"street_line3": "",
"postal_code": "",
"city": "New York",
"country": "United States",
"country_iso_code": "US",
"locality": "New York",
"short_locality": "NY",
"full_address": "1st Avenue New York NY United States"
},
"tax_id": 1,
"reduce_rate": 9.0,
"order_lines": [
{
"id": 10006,
"item_id": 10001,
"description": "The service",
"quantity": 1.0,
"unit_price_wt": 1000.0,
"discount_rate": 0.0,
"tax_id": null,
"is_taxable": false,
"total": 1000.0
}
],
"public_note": "The document note",
"shipping_contact_id": 10001,
"shipping_address": {
"street_line1": "1st Avenue",
"street_line2": "",
"street_line3": "",
"postal_code": "",
"city": "New York",
"country": "United States",
"country_iso_code": "US",
"locality": "New York",
"short_locality": "NY",
"full_address": "1st Avenue New York NY United States"
},
"payment_terms_id": 1,
"project_id": 10001,
"uuid": "5370cd91-8cb2-4311-a90b-d9b3151f75e7",
"user_code": "QOT-001",
"date": "2020-07-03",
"currency_iso_code": "USD",
"employee_id": 10020,
"private_note": "Another private note",
"subtotal": 1000.0,
"reduce_amount": 90.0,
"tax_amount": 0.0,
"total": 910.0,
"attachments": []
}Available Filter Fields
| Field Name | Description |
|---|---|
| customer_id | Filter by customer id. |
Available Sorting Options
| Option Name | Description |
|---|---|
| id | Sorts by id field. |
| date | Sorts by date field. |
| created_at | Sorts by the creation date field. |
| updated_at | Sorts by the update date field. |
| user_code | Sorts by the user_code field. |
Available Methods
| HTTP Verb | Action |
|---|---|
| GET | Retrieve a resource, you have to specify an id |
| GET | Retrieve the list of resources |
Print a Quote as PDF
GET https://api.oneup.com/v1/quotes/:id/print[.pdf|.json]Response types
This endpoint supports two types of response JSON and PDF.Response type can be changed by adding .pdf or .json to the URL.
| Type | Content-Type | Response type |
|---|---|---|
| JSON
(Default) |
application/json |
URL to the PDF reprensentation of the document. The URL is valid for 5 minutes. Example: |
| application/pdf | The PDF reprensentation of the document. |
Create a invoice from a quote
PUT https://api.oneup.com/v1/quotes/:id/invoiceOn success, the quote gets invoiced and the resulting Invoice is returned.
Create a sales order from a quote
PUT https://api.oneup.com/v1/quotes/:id/orderOn success, the quote gets ordered and the resulting Sales Order is returned.
Invoices
Endpoint: https://api.oneup.com/v1/invoicesJSON Format
Invoices are represented as JSON objects which have the following keys:
| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| id | integer | no | yes | Automatically assigned. |
| locked | boolean | no | no | Indicates that the document can no longer be edited nor deleted. |
| sent | boolean | no | no | Has the document been finalized or sent to the Customer. |
| sent_at | date | no | no | The date the document has been finalized or sent to the Customer.
Format: yyyy-MM-dd (e.g. 2013-06-26) |
| customer_id DEPRECATED | integer | yes | no | Id of the Customer. |
| customer | Snippet | yes | no |
The Snippet of the invoice Customer. Where : - id = customer.id - name = customer.full_name - user_code = customer.user_code |
| billing_contact_id | integer | no | no | Id of the Contact to bill. Should belong to that invoice's Customer. |
| billing_address | Address | no | yes | The billing address. The Contact address if any, the Customer one otherwise. |
| user_code | string | no | no | The number assigned to that invoice (i.e. INV-002). If you don't specify an order number, it will be automatically generated. 64 characters max. |
| po_number | string | no | no | The Customer own Order Reference. 64 characters max. |
| date | date | no | no | The date that will be printed. Format: yyyy-MM-dd (e.g. 2013-06-26) Default: date of the day. |
| tax_id | integer | no | no | US only. Id of the Tax to apply on that invoice. |
| currency_iso_code | string | no | no | The ISO code of the currency (ISO 4217). 4 characters max. That currency should have been previously added into your company settings. Default: your company's currency. |
| reduce_rate | double | no | no | The reduce rate (%) to apply. From 0 to 100. Default: 0.00 |
| order_lines | array[Order Line] | no | no | An array containing the order lines of the invoice. |
| public_note | string | no | no | Comment that will be printed on the final document. |
| shipping_contact_id | integer | no | no | Id of the Contact the goods should be shipped to, if different than the Customer. Could be any Contact from any Customer. |
| shipping_address | Address | no | yes | The shipping address. The shipping Contact address if any, the Customer one otherwise. |
| payment_terms_id | integer | no | no | Id of the Payment Term to apply on that invoice. Will be used as a template to generate Settlements. |
| project_id | integer | no | no | Id of the Project related to that invoice, if any. |
| employee_id | integer | no | no | Id of the Employee assigned to that order. Default: the authenticated user. |
| private_note | string | no | no | A private note that won't be printed. |
| subtotal | double | no | yes | Total before taxes and reduce. Based on the content of the order lines. |
| reduce_amount | double | no | yes | Amount of the reduce, based on the subtotal and reduce rate. |
| tax_amount | double | no | yes | Overall tax amount. Includes all taxes, discounts and reduce. |
| total | double | no | yes | The final total the customer needs to pay. All include (taxes, discounts, reduce). |
| paid | double | no | yes | Total of the payments made on that invoice. |
| unpaid | double | no | yes | Remaining amount to be paid. |
| delivery_status | integer | no | yes | The delivery status, among : 1: Not Delivered (default) 2: Partially Delivered 3: Delivered |
| invoice_status | integer | no | yes | The invoice status, among : 2: Invoiced (default) 3: Cancelled |
| payments_id | array[integer] | no | yes | Array of Ids of Payments made on that invoice. |
JSON Example
That example describe a US invoice.
{
"id": 19,
"locked": true,
"sent": true,
"sent_at": "2014-07-15",
"customer_id": 2,
"billing_contact_id": 1,
"billing_address": {
"street_line1": "57 Benjamin Franklin Street",
"street_line2": "",
"street_line3": "",
"postal_code": "",
"city": "San Francisco",
"country": "USA",
"locality": "California",
"short_locality": "CA",
"full_address": "57 Benjamin Franklin Street San Francisco CA USA"
},
"user_code": "CINV-015",
"po_number": "WC-SO-32492-XCT",
"date": "2014-05-07",
"tax_id": 2,
"currency_iso_code": "USD",
"reduce_rate": 3.5,
"order_lines": [
{
"id": 69,
"item_id": 1,
"description": "",
"quantity": 50.0,
"unit_price_wt": 15.0,
"discount_rate": 0.0,
"tax_id": 2,
"is_taxable": true,
"total": 750.0
},
{
"id": 70,
"item_id": 3,
"description": "10 random stickers for WC2014 album.",
"quantity": 100.0,
"unit_price_wt": 1.5,
"discount_rate": 5.0,
"tax_id": 2,
"is_taxable": true,
"total": 142.5
},
{
"id": 71,
"item_id": 2,
"description": "A beautiful stickers album about Soccer.\n- Limited Edition -",
"quantity": 20.0,
"unit_price_wt": 9.99,
"discount_rate": 0.0,
"tax_id": 0,
"is_taxable": false,
"total": 199.8
}
],
"public_note": "All in one rhythm - Juntos num só ritmo",
"shipping_address": {
"street_line1": "Rue Henri Delaunay",
"street_line2": "",
"street_line3": "",
"postal_code": "93210",
"city": "Saint-Denis",
"country": "France",
"locality": "N/A",
"short_locality": "N/A",
"full_address": "Rue Henri Delaunay Saint-Denis 93210 France"
},
"payment_terms_id": 4,
"employee_id": 1,
"private_note": "Needs to be ready for the opening !",
"subtotal": 1092.3,
"reduce_amount": 38.23,
"tax_amount": 86.13,
"total": 1140.2,
"paid": 770.1,
"unpaid": 370.1,
"delivery_status": 1,
"invoice_status": 2,
"payments_id": [
32,
33
]
}Available Filter Fields
| Field Name | Description |
|---|---|
| customer_id | Filter by customer id. |
Available Sorting Options
| Option Name | Description |
|---|---|
| id | Sorts by id field. |
| date | Sorts by date field. |
| created_at | Sorts by the creation date field. |
| updated_at | Sorts by the update date field. |
| user_code | Sorts by the user_code field. |
Available Methods
| HTTP Verb | Action |
|---|---|
| GET | Retrieve a resource, you have to specify an id |
| PUT | Update a resource, you have to specify an id |
| DELETE | Delete a resource, you have to specify an id |
| POST | Create a resource |
| GET | Retrieve the list of resources |
Print an Invoice as PDF
GET https://api.oneup.com/v1/invoices/:id/print[.pdf|.json]Response types
This endpoint supports two types of response JSON and PDF.Response type can be changed by adding .pdf or .json to the URL.
| Type | Content-Type | Response type |
|---|---|---|
| JSON
(Default) |
application/json |
URL to the PDF reprensentation of the document. The URL is valid for 5 minutes. Example: |
| application/pdf | The PDF reprensentation of the document. |
Create a credit memo from an invoice
PUT https://api.oneup.com/v1/invoices/:id/cancelOn success, the invoice gets cancelled and the resulting Credit memo is returned.
Vendor bills
Endpoint: https://api.oneup.com/v1/vendor_billsJSON Format
Vendor bills are represented as JSON objects which have the following keys:
| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| id | integer | no | yes | Automatically assigned when creating customers |
| locked | boolean | no | no | Indicates that the document can no longer be edited nor deleted. |
| sent | boolean | no | no | Has the document been finalized or sent to the Customer. |
| sent_at | date | no | no | The date the document has been finalized or sent to the Customer.
Format: yyyy-MM-dd (e.g. 2013-06-26) |
| vendor | Snippet | no | no |
The Snippet of the bill Vendor. Where : - id = vendor.id - name = vendor.full_name - user_code = vendor.user_code |
| billing_address | Address | no | yes | The billing address. The Contact address if any, the Vendor one otherwise. |
| paid | double | no | yes | Total of the payments made on that bill. |
| unpaid | double | no | yes | Remaining amount to be paid. |
| user_code | string | no | no | The number assigned to this bill (i.e. VINV-002). If you don't specify a bill number, it will be automatically generated. 64 characters max. |
| ref_number | string | no | no | The vendor's own reference number for this bill (e.g. their invoice number). 255 characters max.
this field can be cleared with a blank or empty string only, not a null value |
| date | date | no | no | The date that will be printed. Format: yyyy-MM-dd (e.g. 2013-06-26) Default: date of the day. |
| currency_iso_code | string | no | no | The ISO Code of one of your Currencies
by default, the domain currency will be selected. 4 characters max. |
| employee_id | integer | no | no | Id of the Employee assigned to that bill. Default: the authenticated user. |
| order_lines | array[Order Line] | no | no | An array containing the order lines of the bill. |
| shipping_address | Address | no | yes | The shipping address. The shipping Contact address if any, the User's one otherwise. |
| payment_terms | object | no | no | Id of the Payment Term to apply on that bill. Will be used as a template to generate Settlements. |
| private_note | string | no | no | A private note that won't be printed. |
| subtotal | double | no | yes | Total before taxes and reduce. Based on the content of the order lines. |
| reduce_amount | double | no | yes | Amount of the reduce, based on the subtotal and reduce rate. |
| tax_amount | double | no | yes | Overall tax amount. Includes all taxes, discounts and reduce. |
| total | double | no | yes | The final total the user needs to pay to the vendor. All included (taxes, discounts, reduce). |
JSON Example
{
"locked": false,
"sent": false,
"sent_at": "2026-01-12",
"paid": 0.0,
"unpaid": 528.31,
"vendor": {
"user_code": "VEN-001",
"id": 1,
"name": "MISC VENDOR"
},
"id": 10002,
"user_code": "VINV-001",
"ref_number": "REF-1234",
"date": "2026-01-12",
"currency_iso_code": "GBP",
"reduce_rate": 10.0,
"order_lines": [
{
"id": 69,
"item_id": 1,
"description": "",
"quantity": 10.0,
"unit_price_wt": 45.0,
"discount_rate": 0.0,
"tax_id": 5,
"is_taxable": null,
"total": 450.0
},
{
"id" : 70,
"accounting_account_id": 586,
"description": "",
"quantity": 1.0,
"unit_price_wt": 45.0,
"discount_rate": 5.0,
"tax_id": 6,
"tax": {
"id": 6
},
"is_taxable": null,
"total": 42.75
},
{
"id" : 71,
"budget_category": {
"id": 102
},
"description": "",
"quantity": 1.0,
"unit_price_wt": 50.0,
"discount_rate": 0.0,
"tax_id": 6,
"tax": {
"id": 6
},
"is_taxable": null,
"total": 49.50
}
],
"employee_id": 10028,
"private_note": "A vendor bill",
"subtotal": 542.75,
"reduce_amount": 54.28,
"tax_amount": 89.34,
"total": 577.81,
"attachments": []
}Available Sorting Options
| Option Name | Description |
|---|---|
| created_at | Sorts by the creation date field. |
| updated_at | Sorts by the update date field. |
Available Methods
| HTTP Verb | Action |
|---|---|
| GET | Retrieve a resource, you have to specify an id |
| PUT | Update a resource, you have to specify an id |
| DELETE | Delete a resource, you have to specify an id |
| POST | Create a resource |
| GET | Retrieve the list of resources |
Create a vendor credit memo from a bill
PUT https://api.oneup.com/v1/vendor_bills/:id/cancelOn success, the bill gets cancelled and the resulting Vendor credit memo is returned.
Installments
Endpoint: https://api.oneup.com/v1/installmentsJSON Format
Installments are represented as JSON objects which have the following keys:
| Field Name | Type | Description |
|---|---|---|
| id | integer | Automatically assigned. |
| invoice_id | integer | Id of the related Invoice. |
| due_date | date | The expected payment date. Format: yyyy-MM-dd (e.g. 2013-06-26) |
| amount | double | The installment initial amount. |
| outstanding_amount | double |
Amount left to settle. An outstanding amount of 0.00 means that the Installment has been fully paid. |
| currency_iso_code | string | The ISO code of the currency (ISO 4217). |
| payment_request_id | integer | Id of the related PaymentRequest used with integrated payment solutions. |
JSON Example
{
"id": 10004,
"invoice_id": 10004,
"due_date": "2020-10-27",
"amount": 5859.22,
"outstanding_amount": 1251.49,
"currency_iso_code": "GBP",
"payment_request_id": 10001
}Available Methods
| HTTP Verb | Action |
|---|---|
| GET | Retrieve a resource, you have to specify an id |
| GET | Retrieve the list of resources |
Payments
Endpoint: https://api.oneup.com/v1/paymentsPayment creation is restraint to Invoice's payments into the API. You have to provide an invoice_id while performing a POST request.
That new payment will be applied on the first open settlement of that invoice. If all settlements are paid, an error message will be returned and the payment won't be created.
Also, that new payment currency will be determined by the invoice's one.
Unlike creation, GET requests are not restraint to invoice's payments only and returns any kind of payments.
JSON Format
Payments are represented as JSON objects which have the following keys:
| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| id | integer | no | yes | Automatically assigned when creating Payment |
| user_code | string | no | yes | The number that was automatically assigned to this payment (i.e. IPAY-002). |
| invoice_id | integer | yes | yes | Id of the Invoice that payment is about, if any. |
| date | date | no | yes | The date the payment has occured. Format: yyyy-MM-dd (e.g. 2013-06-26) Default: date of the day. |
| amount | double | yes | yes | Amount of the payment. Should not be 0.00 |
| currency_iso_code | string | no | yes | The ISO code of that payment currency (ISO 4217). |
| payment_method_id | integer | no | yes | Id of the Payment method. Default: the one of the settlement that payment has been applied. |
| bank_reference | string | no | yes | A bank reference label that can freely be assigned. Could be a bank statement reference, a PayPal ID, etc... |
| bank_id | integer | no | yes | Id of the bank account that payment was made on. That bank account currency should match the payment one. Default: no Bank. Use the application to perform the bank deposit later on. |
JSON Example
{
"id": 25,
"user_code": "IPAY-025",
"invoice_id": 14,
"date": "2014-07-25",
"amount": 330.0,
"currency_iso_code": "USD",
"payment_method_id": 1,
"bank_reference": "BK-XCT-094843904 PAY",
"bank_id": 5
}Available Filter Fields
| Field Name | Description |
|---|---|
| invoice_id | Filter by invoice ID. Only available for GET operation to retrieve the list of payments for specific invoice. |
Available Methods
| HTTP Verb | Action |
|---|---|
| GET | Retrieve a resource, you have to specify an id |
| DELETE | Delete a resource, you have to specify an id |
| POST | Create a resource Restraint to invoice's payments only |
| GET | Retrieve the list of resources |
Bill Payments
Endpoint: https://api.oneup.com/v1/bill_paymentsBill Payment creation is restrained to Vendor Bill payments into the API. You have to provide a vendor_bill_id while performing a POST request.
That new payment will be applied on the first open settlement of that vendor bill. If all settlements are paid, an error message will be returned and the payment won't be created.
Also, that new payment currency will be determined by the vendor bill's one.
Unlike invoice payments, bank_id is mandatory when creating a bill payment.
Unlike creation, GET requests are not restrained to vendor bill payments only and return any kind of bill payments.
JSON Format
Bill Payments are represented as JSON objects which have the following keys:
| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| id | integer | no | yes | Automatically assigned when creating a Bill Payment. |
| user_code | string | no | yes | The number that was automatically assigned to this bill payment (i.e. BPAY-002). |
| vendor_bill_id | integer | yes | yes | Id of the Vendor Bill that payment is about. |
| date | date | no | yes | The date the payment has occurred. Format: yyyy-MM-dd (e.g. 2013-06-26) Default: date of the day. |
| amount | double | no | yes | Amount of the payment. Default: remaining unpaid amount of the first open settlement. Should not be 0.00. |
| currency_iso_code | string | no | yes | The ISO code of that payment currency (ISO 4217). Derived from the vendor bill's currency. |
| payment_method_id | integer | no | yes | Id of the Payment method. Default: the one of the settlement that payment has been applied. |
| bank_reference | string | no | yes | A bank reference label that can freely be assigned. Could be a bank statement reference, a transfer ID, etc... |
| bank_id | integer | yes | yes | Id of the bank account that payment was made from. That bank account currency must match the vendor bill's currency. |
JSON Example
{
"id": 28,
"user_code": "BPAY-028",
"vendor_bill_id": 18,
"date": "2014-08-11",
"amount": 99.0,
"currency_iso_code": "USD",
"payment_method_id": 1,
"bank_reference": "BK-XCT-094843904 PAY",
"bank_id": 5
}Available Filter Fields
| Field Name | Description |
|---|---|
| vendor_bill_id | Filter by vendor bill ID. Only available for GET operation to retrieve the list of payments for a specific vendor bill. |
Available Methods
| HTTP Verb | Action |
|---|---|
| GET | Retrieve a resource, you have to specify an id |
| DELETE | Delete a resource, you have to specify an id |
| POST | Create a resource |
| GET | Retrieve the list of resources |
Credit memos
Endpoint: https://api.oneup.com/v1/credit_memosJSON Format
Credit memos are represented as JSON objects which have the following keys:
| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| id | integer | no | yes | Automatically assigned. |
| locked | boolean | no | no | Indicates that the document can no longer be edited nor deleted. |
| sent | boolean | no | no | Has the document been finalized or sent to the Customer. |
| sent_at | date | no | no | The date the document has been finalized or sent to the Customer.
Format: yyyy-MM-dd (e.g. 2013-06-26) |
| paid | double | no | yes | Total of the payments made on that credit memo. |
| unpaid | double | no | yes | Remaining amount to be paid. |
| customer_id DEPRECATED | integer | yes | no | Id of the Customer. |
| customer | Snippet | yes | no |
The Snippet of the credit memo Customer. Where : - id = customer.id - name = customer.full_name - user_code = customer.user_code |
| billing_contact_id | integer | no | no | Id of the Contact to bill. Should belong to that credit memo's Customer. |
| billing_address | Address | no | yes | The billing address. The Contact address if any, the Customer one otherwise. |
| tax_id | integer | no | no | US only. Id of the Tax to apply on that credit memo. |
| reduce_rate | double | no | no | The reduce rate (%) to apply. From 0 to 100. Default: 0.00 |
| order_lines | array[Order Line] | no | no | An array containing the order lines of the credit memo. |
| public_note | string | no | no | Comment that will be printed on the final document. |
| shipping_contact_id | integer | no | no | Id of the Contact the goods should be shipped to, if different than the Customer. Could be any Contact from any Customer. |
| shipping_address | Address | no | yes | The shipping address. The shipping Contact address if any, the Customer one otherwise. |
| payment_terms_id | integer | no | no | Id of the Payment Term to apply on that credit memo. Will be used as a template to generate Settlements. |
| project_id | integer | no | no | Id of the Project related to that credit memo, if any. |
| user_code | string | no | no | The number assigned to that credit memo (i.e. CCN-001). If you don't specify an order number, it will be automatically generated. 64 characters max. |
| date | date | no | no | The date that will be printed. Format: yyyy-MM-dd (e.g. 2013-06-26) Default: date of the day. |
| currency_iso_code | string | no | no | The ISO code of the currency (ISO 4217). 4 characters max. That currency should have been previously added into your company settings. Default: your company's currency. |
| employee_id | integer | no | no | Id of the Employee assigned to that order. Default: the authenticated user. |
| private_note | string | no | no | A private note that won't be printed. |
| subtotal | double | no | yes | Total before taxes and reduce. Based on the content of the order lines. |
| reduce_amount | double | no | yes | Amount of the reduce, based on the subtotal and reduce rate. |
| tax_amount | double | no | yes | Overall tax amount. Inludes all taxes, discounts and reduce. |
| total | double | no | yes | The final total the customer needs to pay. All include (taxes, discounts, reduce). |
JSON Example
{
"id": 10001,
"locked": true,
"sent": true,
"sent_at": "2020-07-08",
"paid": 0.0,
"unpaid": 998.0,
"customer_id": 10002,
"billing_contact_id": 10003,
"billing_address": {
"street_line1": "1600 Pennsylvania Avenue Northwest",
"street_line2": "",
"street_line3": "",
"postal_code": "20500",
"city": "Washington",
"country": "United States",
"country_iso_code": "US",
"locality": "District of Columbia",
"short_locality": "DC",
"full_address": "1600 Pennsylvania Avenue Northwest Washington DC 20500 United States"
},
"tax_id": 1,
"reduce_rate": 0.2,
"order_lines": [
{
"id": 10008,
"item_id": 10003,
"description": "It is a nice service",
"quantity": 1.0,
"unit_price_wt": 1000.0,
"discount_rate": 0.0,
"tax_id": null,
"is_taxable": false,
"total": 1000.0
}
],
"public_note": "This is a credit memo",
"shipping_contact_id": 10003,
"shipping_address": {
"street_line1": "1600 Pennsylvania Avenue Northwest",
"street_line2": "",
"street_line3": "",
"postal_code": "20500",
"city": "Washington",
"country": "United States",
"country_iso_code": "US",
"locality": "District of Columbia",
"short_locality": "DC",
"full_address": "1600 Pennsylvania Avenue Northwest Washington DC 20500 United States"
},
"payment_terms_id": 1,
"project_id": 10003,
"uuid": "a797b18e-2bd0-4fe0-85e9-289eda012fb5",
"user_code": "CCN-001",
"date": "2020-07-08",
"currency_iso_code": "USD",
"employee_id": 10024,
"private_note": "Private thoughts here",
"subtotal": 1000.0,
"reduce_amount": 2.0,
"tax_amount": 0.0,
"total": 998.0
}Available Filter Fields
| Field Name | Description |
|---|---|
| customer_id | Filter by customer id. |
Available Sorting Options
| Option Name | Description |
|---|---|
| id | Sorts by id field. |
| date | Sorts by date field. |
| created_at | Sorts by the creation date field. |
| updated_at | Sorts by the update date field. |
| user_code | Sorts by the user_code field. |
Available Methods
| HTTP Verb | Action |
|---|---|
| GET | Retrieve a resource, you have to specify an id |
| PUT | Update a resource, you have to specify an id |
| DELETE | Delete a resource, you have to specify an id |
| POST | Create a resource |
| GET | Retrieve the list of resources |
Print a Credit memo as PDF
GET https://api.oneup.com/v1/credit_memos/:id/print[.pdf|.json]Response types
This endpoint supports two types of response JSON and PDF.Response type can be changed by adding .pdf or .json to the URL.
| Type | Content-Type | Response type |
|---|---|---|
| JSON
(Default) |
application/json |
URL to the PDF reprensentation of the document. The URL is valid for 5 minutes. Example: |
| application/pdf | The PDF reprensentation of the document. |
Vendor credit memos
Endpoint: https://api.oneup.com/v1/vendor_credit_memosJSON Format
Vendor credit memos are represented as JSON objects which have the following keys:
| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| id | integer | no | yes | Automatically assigned. |
| locked | boolean | no | no | Indicates that the document can no longer be edited nor deleted. |
| sent | boolean | no | no | Has the document been finalized or sent to the Vendor. |
| sent_at | date | no | no | The date the document has been finalized or sent to the Vendor.
Format: yyyy-MM-dd (e.g. 2013-06-26) |
| paid | double | no | yes | Total of the payments made on that credit memo. |
| unpaid | double | no | yes | Remaining amount to be paid. |
| user_code | string | no | no | The number assigned to this bill (i.e. SCN-001). If you don't specify a a credit memo number, it will be automatically generated. 64 characters max. |
| ref_number | string | no | no | The vendor's own reference number for this credit memo. 64 characters max.
This field can be cleared with a blank or empty string only, not a null value |
| date | date | no | no | The date that will be printed. Format: yyyy-MM-dd (e.g. 2013-06-26) Default: date of the day. |
| currency_iso_code | string | no | no | The ISO Code of one of your Currencies
by default, the domain currency will be selected. 4 characters max. |
| employee_id | integer | no | no | Id of the Employee assigned to that bill. Default: the authenticated user. |
| private_note | string | no | no | A private note that won't be printed. |
| subtotal | double | no | yes | Total before taxes and reduce. Based on the content of the order lines. |
| reduce_amount | double | no | yes | Amount of the reduce, based on the subtotal and reduce rate. |
| tax_amount | double | no | yes | Overall tax amount. Includes all taxes, discounts and reduce. |
| total | double | no | yes | The final total due by the vendor. All include (taxes, discounts, reduce). |
JSON Example
{
"locked": true,
"sent": true,
"sent_at": "2021-02-03",
"paid": 2251.2,
"unpaid": 0.0,
"id": 10000,
"user_code": "SCN-001",
"ref_number": "REF-5678",
"date": "2020-10-06",
"currency_iso_code": "GBP",
"employee_id": 10028,
"private_note": "",
"subtotal": 1876.0,
"reduce_amount": 0.0,
"tax_amount": 375.2,
"total": 2251.2,
"attachments": []
}Available Sorting Options
| Option Name | Description |
|---|---|
| created_at | Sorts by the creation date field. |
| updated_at | Sorts by the update date field. |
Available Methods
| HTTP Verb | Action |
|---|---|
| GET | Retrieve a resource, you have to specify an id |
| PUT | Update a resource, you have to specify an id |
| DELETE | Delete a resource, you have to specify an id |
| POST | Create a resource |
| GET | Retrieve the list of resources |
Sales Receipts
Endpoint: https://api.oneup.com/v1/sales_receiptsA Sales Receipt represents a categorized income collected directly from a customer, vendor, employee, or any other payee — without going through an invoice.
It is made up of one or more Category Lines that split the total amount across accounting accounts and budget categories.
Setting a payment_date (or a bank_account) marks the document as deposited. Clearing them reverts it to unpaid.
A POST /v1/sales_receipts/search endpoint is also available for advanced filtering.
JSON Format
Sales Receipts are represented as JSON objects which have the following keys:
| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| id | integer | no | yes | Automatically assigned when creating a Sales Receipt. |
| user_code | string | no | yes | The number automatically assigned to this Sales Receipt (e.g. REC-012). 64 characters max. |
| status | string | no | yes | Payment status of the document. deposited when a payment_date is set, not_deposited otherwise. |
| type | string | no | no | Whether the document has a single line or multiple lines. Values: simple, multi-line. |
| payee_type | string | no | no | Type of the payee. Values: CUSTOMER, VENDOR, EMPLOYEE, BANK_ACCOUNT, NO_PAYEE. |
| payee | Snippet | no | no | The payee of this Sales Receipt. Must belong to the type specified by payee_type. |
| date | date | no | no | The date of the Sales Receipt. Format: yyyy-MM-dd (e.g. 2013-06-26) Default: date of the day. |
| due_date | date | no | no | The due date for payment (for unpaid documents). Format: yyyy-MM-dd (e.g. 2013-06-26) |
| payment_date | date | no | no | The date the payment was deposited to the bank account. Setting this field marks the document as deposited.Format: yyyy-MM-dd (e.g. 2013-06-26) |
| payment_method | string | no | no | The payment method used (e.g. CHECK, WIRE_TRANSFER, CREDIT_CARD). |
| bank_account | object | no | no | The bank account the amount was deposited into. Contains id and name. |
| transaction_id | string | no | no | A free reference label (e.g. a bank statement reference). 255 characters max. |
| notes | string | no | no | Free notes attached to this Sales Receipt. 255 characters max. |
| currency_iso_code | string | no | no | The ISO code of the currency (ISO 4217). Default: your company's currency. |
| total_amount | double | no | yes | Total amount including taxes. Computed from the sum of all category lines. |
| assigned_to | object | no | no | The employee assigned to this document. Contains id, first_name, last_name. Default: the authenticated user. |
| project | object | no | no | The project this Sales Receipt is linked to, if any. Contains id and name. |
| locked | boolean | no | yes | Indicates that the document can no longer be edited nor deleted (e.g. due to a locked accounting period or VAT reconciliation). |
| bank_reconciled | boolean | no | yes | Indicates whether this Sales Receipt has been matched against a bank entry. |
| lines | array[Category Line] | no | no | The category lines of this Sales Receipt. Adding, updating or removing a line updates total_amount accordingly. |
| metadata | object | no | yes | Extended status information. Contains document_status and payment_status keys. |
JSON Example
{
"id": 12,
"user_code": "REC-012",
"status": "deposited",
"type": "multi-line",
"payee_type": "CUSTOMER",
"payee": { "id": 5, "name": "ACME Corp", "user_code": "CLI-005" },
"date": "2024-03-15",
"payment_date": "2024-03-20",
"payment_method": "CHECK",
"bank_account": { "id": 1, "name": "Main Checking" },
"transaction_id": null,
"notes": null,
"currency_iso_code": "EUR",
"total_amount": 120.00,
"assigned_to": { "id": 1, "first_name": "Jane", "last_name": "Doe" },
"project": null,
"locked": false,
"bank_reconciled": false,
"lines": [
{
"id": 1,
"total_amount": 120.00,
"sub_total_amount": 100.00,
"tax_amount": 20.00,
"price_mode": "withTaxes",
"tax": { "id": 1, "name": "TVA 20%", "rate": 20.0 },
"accounting_account": { "id": 2, "name": "Sales revenue", "number": "706000" },
"budget_category": { "id": 1, "name": "Services" },
"notes": "Q1 consulting services"
}
],
"metadata": {
"document_status": "SALES_RECEIPT_OPEN",
"payment_status": "SALES_RECEIPT_PAID"
}
}Available Filter Fields
| Field Name | Description |
|---|---|
| date | Filter by document date. Supports range queries. |
| payee_type | Filter by payee type (CUSTOMER, VENDOR, EMPLOYEE, BANK_ACCOUNT, NO_PAYEE). |
| status | Filter by payment status: deposited or not_deposited. |
Available Sorting Options
| Option Name | Description |
|---|---|
| id | Sorts by id field. |
| date | Sorts by date field. |
| created_at | Sorts by the creation date field. |
| updated_at | Sorts by the update date field. |
| user_code | Sorts by the user_code field. |
Available Methods
| HTTP Verb | Action |
|---|---|
| GET | Retrieve a resource, you have to specify an id |
| PUT | Update a resource, you have to specify an id |
| DELETE | Delete a resource, you have to specify an id |
| POST | Create a resource |
| GET | Retrieve the list of resources |
Expenses
Endpoint: https://api.oneup.com/v1/expensesAn Expense represents a categorized outgoing payment made to a vendor, employee, or any other payee — without going through a vendor bill.
It is made up of one or more Category Lines that split the total amount across accounting accounts and budget categories.
Setting a payment_date (or a bank_account) marks the document as paid. Clearing them reverts it to unpaid.
Expenses share the same structure as Sales Receipts, with the distinction that expense lines use deductible taxes instead of collected taxes.
A POST /v1/expenses/search endpoint is also available for advanced filtering.
JSON Format
Expenses are represented as JSON objects which have the following keys:
| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| id | integer | no | yes | Automatically assigned when creating an Expense. |
| user_code | string | no | yes | The number automatically assigned to this Expense (e.g. EXP-008). 64 characters max. |
| status | string | no | yes | Payment status of the document. paid when a payment_date is set, not_paid otherwise. |
| type | string | no | no | Whether the document has a single line or multiple lines. Values: simple, multi-line. |
| payee_type | string | no | no | Type of the payee. Values: CUSTOMER, VENDOR, EMPLOYEE, BANK_ACCOUNT, NO_PAYEE. |
| payee | Snippet | no | no | The payee of this Expense. Must belong to the type specified by payee_type. |
| date | date | no | no | The date of the Expense. Format: yyyy-MM-dd (e.g. 2013-06-26) Default: date of the day. |
| due_date | date | no | no | The due date for payment (for unpaid documents). Format: yyyy-MM-dd (e.g. 2013-06-26) |
| payment_date | date | no | no | The date the payment was debited from the bank account. Setting this field marks the document as paid.Format: yyyy-MM-dd (e.g. 2013-06-26) |
| payment_method | string | no | no | The payment method used (e.g. CHECK, WIRE_TRANSFER, CREDIT_CARD). |
| bank_account | object | no | no | The bank account the amount was debited from. Contains id and name. |
| transaction_id | string | no | no | A free reference label (e.g. a bank statement reference). 255 characters max. |
| notes | string | no | no | Free notes attached to this Expense. 255 characters max. |
| currency_iso_code | string | no | no | The ISO code of the currency (ISO 4217). Default: your company's currency. |
| total_amount | double | no | yes | Total amount including taxes. Computed from the sum of all category lines. |
| assigned_to | object | no | no | The employee assigned to this document. Contains id, first_name, last_name. Default: the authenticated user. |
| project | object | no | no | The project this Expense is linked to, if any. Contains id and name. |
| locked | boolean | no | yes | Indicates that the document can no longer be edited nor deleted (e.g. due to a locked accounting period or VAT reconciliation). |
| bank_reconciled | boolean | no | yes | Indicates whether this Expense has been matched against a bank entry. |
| lines | array[Category Line] | no | no | The category lines of this Expense. Adding, updating or removing a line updates total_amount accordingly. |
| metadata | object | no | yes | Extended status information. Contains document_status and payment_status keys. |
JSON Example
{
"id": 8,
"user_code": "EXP-008",
"status": "paid",
"type": "multi-line",
"payee_type": "VENDOR",
"payee": { "id": 3, "name": "Office Supplies Co.", "user_code": "FOU-003" },
"date": "2024-03-10",
"payment_date": "2024-03-10",
"payment_method": "CREDIT_CARD",
"bank_account": { "id": 2, "name": "Corporate Card" },
"transaction_id": "TXN-20240310-004",
"notes": null,
"currency_iso_code": "EUR",
"total_amount": 59.99,
"assigned_to": { "id": 1, "first_name": "Jane", "last_name": "Doe" },
"project": null,
"locked": false,
"bank_reconciled": false,
"lines": [
{
"id": 1,
"total_amount": 59.99,
"sub_total_amount": 49.99,
"tax_amount": 10.00,
"price_mode": "withTaxes",
"tax": { "id": 2, "name": "TVA 20%", "rate": 20.0 },
"accounting_account": { "id": 7, "name": "Office supplies", "number": "606300" },
"budget_category": { "id": 5, "name": "Office supplies" },
"notes": "Printer paper and pens"
}
],
"metadata": {
"document_status": "EXPENSE_OPEN",
"payment_status": "EXPENSE_PAID"
}
}Available Filter Fields
| Field Name | Description |
|---|---|
| date | Filter by document date. Supports range queries. |
| payee_type | Filter by payee type (CUSTOMER, VENDOR, EMPLOYEE, BANK_ACCOUNT, NO_PAYEE). |
| status | Filter by payment status: paid or not_paid. |
Available Sorting Options
| Option Name | Description |
|---|---|
| id | Sorts by id field. |
| date | Sorts by date field. |
| created_at | Sorts by the creation date field. |
| updated_at | Sorts by the update date field. |
| user_code | Sorts by the user_code field. |
Available Methods
| HTTP Verb | Action |
|---|---|
| GET | Retrieve a resource, you have to specify an id |
| PUT | Update a resource, you have to specify an id |
| DELETE | Delete a resource, you have to specify an id |
| POST | Create a resource |
| GET | Retrieve the list of resources |
Accounting Transactions
Endpoint: https://api.oneup.com/v1/transactionsAccounting Transactions that have been generated by the system are only editable to some extends.
Only few fields, like external_id or lettering remain editable. Also, you cannot add or remove entries, edit amounts or change the date or piece_number. In order to do that, you have to edit the document that have generated the transaction.
Still, you can lock any entries to ensure that it won't be modified at all, but be carefull: once locked, an entry cannot be unlocked.
JSON Format
Accounting Transactions are represented as JSON objects which have the following keys:
| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| id | integer | no | yes | Automatically assigned when creating Transactions. |
| external_id | string | no | no | Use primilary for Sync. |
| transaction_code | integer | no | no | Automatically generated |
| status UPDATED: 2018-03-14 | string | no | yes | The status of the transaction, among "realized", "forecast", "closed" and "draft".
It's a read only field, transaction created through the API are "realized" only. |
| date | date | no | no | Today by default.
Format: yyyy-MM-dd (e.g. 2013-06-26) Not editable on transactions that have been generated by the system. |
| journal_id DEPRECATED | integer | no | no | Deprecated. See journal. |
| journal | Journal | no | no | The recording journal
5: Miscellaneous Operations is selected by default. Not editable on transactions that have been generated by the system. |
| piece_number | string | yes | no | A unique user-facing id of the document linked to this transaction. 64 characters max.
Not editable on transactions that have been generated by the system. |
| currency_iso_code | string | no | yes | The ISO code of the currency (ISO 4217). 4 characters max.
Default: your company's currency. Not editable on transactions that have been generated by the system. When creating new transactions, only default currency is allowed. |
| entries | array[Entry] | yes | no | The list of the transaction's entries. The entries must be balanced.
You cannot add or remove entries on transactions that have been generated by the system. |
Transaction Entry Format
JSON Example
{
"id": 509878,
"external_id": "EXT-API-079",
"transaction_code": 1639,
"status": "realized",
"date": "2014-01-31",
"journal": {
"id": 32,
"name": "Journal name",
"code": "JN"
},
"piece_number": "CINV-237",
"currency_ico_code": "USD",
"entries": [
{
"id": 1187484,
"label": "Invoice Payment",
"amount": 17578.65,
"way": "DEBIT",
"account": {
"id": 21,
"number": "11100",
"name": "Accounts Receivable - Trade",
"is_family": false,
"family_id": 6
},
"lettering": "CINV-237",
"locked": false
},
{
"id": 1187485,
"label": "Invoice Payment - Before taxes",
"amount": 16238.92,
"way": "CREDIT",
"account": {
"id": 21,
"number": "11100",
"name": "Accounts Receivable - Trade",
"is_family": false,
"family_id": 6
},
"lettering": null,
"locked": false
},
{
"id": 1187486,
"label": "Invoice Payment - Taxes",
"amount": 1339.73,
"way": "CREDIT",
"account": {
"id": 57,
"number": "21100",
"name": "Sales Tax Payable",
"is_family": false,
"family_id": 9
},
"lettering": null,
"locked": false
}
]
}Available Filter Fields
| Field Name | Description |
|---|---|
| date | Filter by date. |
| journal_id | Filter by journal_id. |
| status |
Filter by status among : - forecast - realized - closed - draft (e.g. ?status=realized). |
Available Sorting Options
| Option Name | Description |
|---|---|
| id | Sorts by id field. |
| transaction_code | Sorts by transaction code field. |
| date | Sorts by date field. |
| created_at | Sorts by the creation date field. |
| updated_at | Sorts by the update date field. |
Available Methods
| HTTP Verb | Action |
|---|---|
| GET | Retrieve a resource, you have to specify an id |
| PUT | Update a resource, you have to specify an id |
| DELETE | Delete a resource, you have to specify an id |
| POST | Create a resource |
| GET | Retrieve the list of resources |
Accounting journals
Endpoint: https://api.oneup.com/v1/journalsJSON Format
Journals are represented as JSON objects which have the following keys:
| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| id | integer | no | yes | Automatically assigned when creating journals |
| name | string | yes | no | The journal name. 64 characters max. |
| code | string | yes | no | The journal name's abbreviation. 64 characters max. |
JSON Example
{
"id": 32,
"name": "Journal name",
"code": "JN"
}Available Methods
| HTTP Verb | Action |
|---|---|
| GET | Retrieve a resource, you have to specify an id |
| PUT | Update a resource, you have to specify an id |
| DELETE | Delete a resource, you have to specify an id |
| POST | Create a resource |
| GET | Retrieve the list of resources |
Accounts
Endpoint: https://api.oneup.com/v1/accountsJSON Format
Accounts are represented as JSON objects which have the following keys:
| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| id | integer | no | yes | Automatically assigned |
| number | string | yes | no | The Number of this account. 64 characters max. |
| name | string | yes | no | The Name of this account. 128 characters max. |
| is_family | boolean | yes | yes | Is this account a family account. |
| family_id | integer | yes | no | Code of this account's family |
JSON Example
{
"id": 100,
"number": "56100",
"name": "Freight Charges",
"is_family": false,
"family_id": 13
}Available Methods
| HTTP Verb | Action |
|---|---|
| GET | Retrieve a resource, you have to specify an id |
| PUT | Update a resource, you have to specify an id |
| DELETE | Delete a resource, you have to specify an id |
| POST | Create a resource |
| GET | Retrieve the list of resources |
Bank
Endpoint: https://api.oneup.com/v1/bank_accountsJSON Format
Bank accounts are represented as JSON objects which have the following keys:
| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| id | integer | no | yes | Automatically assigned. |
| account_number | string | no | no | The account number of the bank account. |
| name | string | yes | no | The way that bank account will appear in OneUp. |
| currency | string | no | no | The ISO Code of one of your Currencies
by default, the domain currency will be selected. 4 characters max. |
| linked_to_provider | boolean | no | no | Does this account come from an external provider. |
| bank_balance | double | no | no | The current balance of your bank account. |
| accounting_bank_balance | double | no | no | The current balance of your bank account, according to the OneUp accounting. |
| bank_balance_date | date | no | no | The date the bank balance has been recorded. Format: yyyy-MM-dd (e.g. 2013-06-26) |
JSON Example
{
"id": 2769,
"account_number": "748-94288-928",
"name": "Bank of the West",
"currency": "USD",
"linked_to_provider": false,
"bank_balance": 32487.09,
"accounting_bank_balance": 59573.90,
"bank_balance_date": "2015-02-20"
}Available Sorting Options
| Option Name | Description |
|---|---|
| name | Sorts by account name field. |
| created_at | Sorts by the creation date field. |
| updated_at | Sorts by the update date field. |
Available Methods
| HTTP Verb | Action |
|---|---|
| GET | Retrieve a resource, you have to specify an id |
| PUT | Update a resource, you have to specify an id |
| DELETE | Delete a resource, you have to specify an id |
| POST | Create a resource |
| GET | Retrieve the list of resources |
Bank Entries
Endpoint: https://api.oneup.com/v1/bank_entriesJSON Format
Bank entries are represented as JSON objects which have the following keys:
| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| id | integer | no | yes | Automatically assigned. |
| external_id | string | no | yes | Used primilary for sync purposes. |
| bank_account | object | yes | yes | Code of the Bank Account that entry belongs to. |
| posted_date | date | yes | yes | The date that entry was posted. Format: yyyy-MM-dd (e.g. 2013-06-26) |
| transaction_date | date | yes | yes | The date the bank transaction was actually performed. Format: yyyy-MM-dd (e.g. 2013-06-26) |
| amount | double | yes | yes | Amount of the bank transaction. Use negative amount for debit. Should not be 0.00 |
| currency_iso_code | string | no | yes | The ISO Code of the bank account. |
| description | string | yes | yes | Short description. |
| payment_method | object | no | yes | Code of the payment method. Default: 1 (check) |
| provider_name | string | no | no | The source of the bank entry. Values are: NONE, YODLEE or LINXO |
| provider_category_id | integer | no | no | The category id from the source provider (YODLEE, LINXO). |
| status | string | no | yes | The status of the bank entry. |
| reconciled_documents | array[object] | no | yes | The list of documents reconciled to this entry. |
JSON Example
{
"id": 353,
"external_id": "EXT-API-093",
"bank_account": {
"id": 4,
"name": "HSBC"
},
"posted_date": "2014-05-05",
"transaction_date": "2014-06-12",
"amount": -133.94,
"currency_iso_code": "USD",
"description": "Walmart - Credit card payment",
"payment_method": {
"id": 7,
"name": "Other"
},
"provider_name": "NONE",
"provider_category_id": null,
"status": "reconciled",
"reconciled_documents": [
{
"id": 848,
"type": "bank_payment",
"name": "Walmart expense - OPAY-106",
"auto_reconciled": false,
"reconciled_amount": 133.94,
"accounting_entry_code": 26243
}
]
}Available Filter Field
| Field Name | Description |
|---|---|
| id | Filter by one or multiple ids (e.g. ?id=1,2,3). |
| external_id | Filter by one or multiple external ids (e.g. ?external_id=1,2,3). |
| bank_account | Filter by one or multiple bank_account ids (e.g. ?bank_account=1,2,3). |
| posted_date | Filter by posted_date. |
| transaction_date | Filter by transaction_date. |
| status |
Filter by one or multiple status among : - unprocessed - unreconciled - partially_reconciled - to_review - reconciled - closed (e.g. ?status=partially_reconciled,reconciled). |
Available Sorting Options
| Option Name | Description |
|---|---|
| id | Sorts by id field. |
| date | Sorts by posted date field. |
| name | Sorts by label field. |
| absolute_amount | Sorts by the absolute value of the amount field. |
| created_at | Sorts by the creation date field. |
| updated_at | Sorts by the update date field. |
Available Methods
| HTTP Verb | Action |
|---|---|
| GET | Retrieve a resource, you have to specify an id |
| DELETE | Delete a resource, you have to specify an id |
| POST | Create a resource |
| GET | Retrieve the list of resources |
Bank Transfers
Endpoint: https://api.oneup.com/v1/bank_transfersA Bank Transfer records a movement of money between two bank accounts.
You can specify both the source (from) and destination (to) accounts, or only one of the two — for example, if you are only the receiving party and do not manage the sending account in OneUp, or vice versa.
Multi-currency transfers are supported: if from and to use different currencies, exchange rates are computed automatically.
JSON Format
Bank Transfers are represented as JSON objects which have the following keys:
| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| id | integer | no | yes | Automatically assigned when creating a Bank Transfer. |
| user_code | string | no | yes | The number automatically assigned to this Bank Transfer (e.g. BTRF-007). |
| date | date | no | no | The date of the transfer. Format: yyyy-MM-dd (e.g. 2013-06-26) Default: date of the day. |
| notes | string | no | no | A description of the transfer purpose. 255 characters max. |
| from | object | no | no | The debit side of the transfer. See Transfer Direction table below. Can be omitted if you are only the receiving party. |
| to | object | no | no | The credit side of the transfer. See Transfer Direction table below. Can be omitted if you are only the sending party. |
| budget_category | object | no | no | The budget category associated with this transfer. Contains id and name. |
Transfer Direction (from / to)
Both from and to share the same structure:
| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| bank_account | object | no | no | The bank account on this side of the transfer. Contains id and name. from.bank_account and to.bank_account must be different when both are provided. |
| amount | double | yes | no | The transfer amount on this side. Must be greater than 0. |
| currency_iso_code | string | no | yes | The ISO code of the currency (ISO 4217). Derived from the bank account's currency. |
JSON Example
{
"id": 7,
"user_code": "BTRF-007",
"date": "2024-03-15",
"notes": "Monthly reserve top-up",
"from": {
"bank_account": { "id": 1, "name": "Main Checking" },
"amount": 5000.00,
"currency_iso_code": "EUR"
},
"to": {
"bank_account": { "id": 2, "name": "Savings Reserve" },
"amount": 5000.00,
"currency_iso_code": "EUR"
},
"budget_category": { "id": 3, "name": "Internal transfer" }
}Available Methods
| HTTP Verb | Action |
|---|---|
| GET | Retrieve a resource, you have to specify an id |
| PUT | Update a resource, you have to specify an id |
| DELETE | Delete a resource, you have to specify an id |
| POST | Create a resource |
| GET | Retrieve the list of resources |
Reconciliations
Endpoint: https://api.oneup.com/v1/reconciliationsReconciliations link a Bank Entry to an accounting document, confirming that the bank transaction and the document represent the same financial event.
You must provide a bank_entry id and a budget_category id when creating a reconciliation. Providing a document_type is obligatory for matching an existing document, optional otherwise: if omitted, the type is inferred automatically from the bank entry amount and budget category type (see Auto-detection below).
Deleting a reconciliation unreconciles the document from the bank entry and updates the bank entry status accordingly.
JSON Format
Reconciliations are represented as JSON objects which have the following keys:
| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| id | integer | no | yes | Automatically assigned when creating a Reconciliation. |
| bank_entry | object | yes | yes | The Bank Entry being reconciled. Contains id and label. |
| document_type | string | no | yes |
Type of the document being reconciled. Obligatory when matching an existing document, because several documents can have the same document_id, a distinction to identify them is necessary. If omitted, inferred automatically (see Auto-detection). Accepted values: - bank_payment - bank_deposit - bank_transfer - sales_receipt - accounting_receipt - customer_invoice - customer_payment - credit_memo - vendor_bill - vendor_payment - vendor_credit_memo - accounting_entry - fixed_asset - cash_drawer_closing |
| document | object | no | yes | The reconciled document. Its structure depends on document_type — either a full embedded document object (for types that support inline creation) or a simple {id, user_code} reference. See per-type sections below. |
| document_date | date | no | no | Date of the reconciled document. Format: yyyy-MM-dd (e.g. 2013-06-26) |
| user_code | string | no | no | User code of the reconciled document (e.g. IPAY-025, EXP-008). Automatically derived. |
| amount | double | yes | yes | Amount matched between the bank entry and the document. Must not be 0.00. |
| budget_category | object | yes | yes | The primary budget category applied to this reconciliation. Contains id and name. Its type (EXPENSE, INCOME, TRANSFER) drives auto-detection of document_type when not provided. |
| secondary_budget_categories | array[object] | no | yes | Additional budget categories applied to this reconciliation. |
| tax | object | no | yes | Primary tax applied to the reconciliation. Contains id and name. |
| secondary_taxes | array[object] | no | yes | Additional taxes applied to the reconciliation. |
| payee_type | string | no | yes | Type of the payee. Values: CUSTOMER, VENDOR, EMPLOYEE, BANK_ACCOUNT, NO_PAYEE. |
| payee | object | no | yes | The payee of this reconciliation. Contains id, name, and type. Must match payee_type. |
| locked | boolean | no | no | Indicates whether the reconciliation is locked and can no longer be modified. |
| auto_reconciled | boolean | no | no | Indicates whether this reconciliation was created automatically by the system. |
| delete_on_unmatch | boolean | no | no | When true, deleting this reconciliation also deletes the linked document. |
| bank_entry_reconciled | boolean | no | yes | Whether the associated bank entry is fully reconciled after this operation. |
| document_status | string | no | no | Status of the reconciled document (e.g. EXPENSE_PAID, SALES_RECEIPT_OPEN). Returned for applicable types. Read-only. |
| cash_flow_status | string | no | no | Cash flow classification of the reconciled document. Returned for applicable types. Read-only. |
JSON Example
{
"id": 156,
"bank_entry": { "id": 353, "label": "Walmart - Credit card payment" },
"document_type": "bank_payment",
"document": { "id": 8, "user_code": "EXP-008" },
"document_date": "2024-03-10",
"user_code": "EXP-008",
"amount": 59.99,
"budget_category": { "id": 5, "name": "Office supplies" },
"secondary_budget_categories": [],
"tax": { "id": 2, "name": "TVA 20%" },
"secondary_taxes": [],
"payee_type": "VENDOR",
"payee": { "id": 3, "name": "Office Supplies Co.", "type": "VENDOR" },
"locked": false,
"auto_reconciled": false,
"delete_on_unmatch": false,
"bank_entry_reconciled": true,
"document_status": "EXPENSE_PAID",
"cash_flow_status": "OPERATING"
}Auto-detection of Document Type
When document_type is omitted from a POST request, the type is inferred automatically from the bank entry amount and budget category type:
| Bank Entry Amount | Budget Category Type | Inferred Type |
|---|---|---|
| Negative (debit) | EXPENSE, INCOME, or UNCATEGORIZED | vendor_bill — creates a Vendor Bill |
| Positive (credit) | EXPENSE, INCOME, or UNCATEGORIZED | sales_receipt — creates a Sales Receipt |
| Any non-zero | TRANSFER | bank_transfer — creates a Bank Transfer |
To reconcile with any other document type, document_type must be provided explicitly.
Reconcilable Document Types
The document_type determines which resource the document references and what specific fields are available. The document field contains either a full embedded object (for types that support inline creation) or a simple {id, user_code} reference to an existing document.
bank_payment
Reconciles a debit bank entry with an Expense (user_code: EXP-xxx). The expense can be an existing one (provide document.id) or created inline (provide a full Expense object in document).
Bank entry direction: negative (debit).
| Field | Value |
|---|---|
| document_type | bank_payment |
| document | Full Expense object (inline creation) or {id, user_code} to reference an existing one. |
| document_status | ExpenseStatus of the linked expense. |
| cash_flow_status | Cash flow classification of the expense. |
{
"id": 156,
"bank_entry": { "id": 353, "label": "Walmart - Credit card payment" },
"document_type": "bank_payment",
"document": { "id": 8, "user_code": "EXP-008" },
"document_date": "2024-03-10",
"user_code": "EXP-008",
"amount": 59.99,
"budget_category": { "id": 5, "name": "Office supplies" },
"secondary_budget_categories": [],
"tax": { "id": 2, "name": "TVA 20%" },
"secondary_taxes": [],
"payee_type": "VENDOR",
"payee": { "id": 3, "name": "Office Supplies Co.", "type": "VENDOR" },
"locked": false,
"auto_reconciled": false,
"delete_on_unmatch": false,
"bank_entry_reconciled": true,
"document_status": "EXPENSE_PAID",
"cash_flow_status": "OPERATING"
}sales_receipt
Reconciles a credit bank entry with a Sales Receipt (user_code: REC-xxx). The sales receipt can be an existing one or created inline via the document field.
Bank entry direction: positive (credit).
Once reconciled, the sales receipt's bank_reconciled field is set to true.
| Field | Value |
|---|---|
| document_type | sales_receipt |
| document | Full Sales Receipt object (inline creation) or {id, user_code} to reference an existing one. |
| document_status | SalesReceiptStatus of the linked sales receipt. |
| cash_flow_status | Cash flow classification of the sales receipt. |
{
"id": 157,
"bank_entry": { "id": 355, "label": "ACME Corp - deposit" },
"document_type": "sales_receipt",
"document": { "id": 12, "user_code": "REC-012" },
"document_date": "2024-03-15",
"user_code": "REC-012",
"amount": 120.00,
"budget_category": { "id": 1, "name": "Services" },
"secondary_budget_categories": [],
"tax": { "id": 1, "name": "TVA 20%" },
"secondary_taxes": [],
"payee_type": "CUSTOMER",
"payee": { "id": 5, "name": "ACME Corp", "type": "CUSTOMER" },
"locked": false,
"auto_reconciled": false,
"delete_on_unmatch": false,
"bank_entry_reconciled": true,
"document_status": "SALES_RECEIPT_PAID",
"cash_flow_status": "OPERATING"
}bank_transfer
Reconciles a bank entry with a Bank Transfer (user_code: BTRF-xxx). The transfer can be an existing one or created inline via the document field.
Bank entry direction: positive or negative depending on which side of the transfer is being reconciled.
The payee field is automatically set to the counterpart bank account of the transfer.
| Field | Value |
|---|---|
| document_type | bank_transfer |
| document | Full Bank Transfer object (inline creation) or {id, user_code} to reference an existing one. |
| payee | The counterpart bank account. Contains id, name, and type (BANK_ACCOUNT). |
{
"id": 158,
"bank_entry": { "id": 357, "label": "Monthly reserve top-up" },
"document_type": "bank_transfer",
"document": { "id": 7, "user_code": "BTRF-007" },
"document_date": "2024-03-15",
"user_code": "BTRF-007",
"amount": 5000.00,
"budget_category": { "id": 3, "name": "Internal transfer" },
"secondary_budget_categories": [],
"tax": null,
"secondary_taxes": [],
"payee_type": "BANK_ACCOUNT",
"payee": { "id": 2, "name": "Savings Reserve", "type": "BANK_ACCOUNT" },
"locked": false,
"auto_reconciled": false,
"delete_on_unmatch": false,
"bank_entry_reconciled": true
}customer_payment
Reconciles a credit bank entry with a Payment on a customer invoice (user_code: IPAY-xxx). Reference an existing payment by document.id.
Bank entry direction: positive (credit).
| Field | Value |
|---|---|
| document_type | customer_payment |
| document | {id, user_code} — id of the Payment to reconcile. |
| document_status | Invoice status of the payment's invoice. |
| cash_flow_status | Cash flow classification. |
| document_private_note | Optional private note written back to the linked invoice. 10 000 characters max. |
{
"id": 159,
"bank_entry": { "id": 353, "label": "Invoice payment from ACME" },
"document_type": "customer_payment",
"document": { "id": 25, "user_code": "IPAY-025" },
"document_date": "2014-07-25",
"user_code": "IPAY-025",
"amount": 330.00,
"budget_category": { "id": 10, "name": "Invoice payments" },
"secondary_budget_categories": [],
"tax": null,
"secondary_taxes": [],
"payee_type": "CUSTOMER",
"payee": { "id": 14, "name": "ACME Corp", "type": "CUSTOMER" },
"locked": false,
"auto_reconciled": false,
"delete_on_unmatch": false,
"bank_entry_reconciled": true,
"document_status": "INVOICE_PAID",
"cash_flow_status": "OPERATING"
}vendor_payment
Reconciles a debit bank entry with a Bill Payment on a vendor bill (user_code: BPAY-xxx). Reference an existing bill payment by document.id.
Bank entry direction: negative (debit).
| Field | Value |
|---|---|
| document_type | vendor_payment |
| document | {id, user_code} — id of the Bill Payment to reconcile. |
| document_status | Status of the vendor bill payment. |
| cash_flow_status | Cash flow classification. |
| document_private_note | Optional private note written back to the linked vendor bill. 10 000 characters max. |
{
"id": 160,
"bank_entry": { "id": 354, "label": "Walmart supplier payment" },
"document_type": "vendor_payment",
"document": { "id": 28, "user_code": "BPAY-028" },
"document_date": "2014-08-11",
"user_code": "BPAY-028",
"amount": 99.00,
"budget_category": { "id": 11, "name": "Bill payments" },
"secondary_budget_categories": [],
"tax": null,
"secondary_taxes": [],
"payee_type": "VENDOR",
"payee": { "id": 18, "name": "Walmart", "type": "VENDOR" },
"locked": false,
"auto_reconciled": false,
"delete_on_unmatch": false,
"bank_entry_reconciled": true,
"document_status": "VENDOR_BILL_PAID",
"cash_flow_status": "OPERATING"
}vendor_bill
Reconciles a debit bank entry with a Vendor Bill (user_code: VINV-xxx).
Bank entry direction: negative (debit).
Inline creation: omit document.id and provide a full Vendor Bill object in the document field. The vendor bill is created as part of the reconciliation and its source_type is automatically set to bank_entry.
Reference an existing vendor bill: provide {id, user_code} in the document field.
| Field | Value |
|---|---|
| document_type | vendor_bill |
| document | Full Vendor Bill object (inline creation) or {id, user_code} to reference an existing one. |
| document.source_type | Set automatically to bank_entry on inline creation. Read-only once set. |
| document_status | Status of the vendor bill (e.g. VENDOR_BILL_PAID_IN_FULL). |
| cash_flow_status | Cash flow classification of the vendor bill. |
Example — inline creation (a new vendor bill with source_type: bank_entry is created and returned in the response):
{
"id": 161,
"bank_entry": { "id": 358, "label": "Office supply invoice" },
"document_type": "vendor_bill",
"document": {
"id": 18,
"user_code": "VINV-018",
"source_type": "bank_entry",
"vendor": { "id": 3, "name": "Office Supplies Co." },
"date": "2024-03-01",
"total_amount": 250.00,
"category_lines": [
{ "budget_category": { "id": 5, "name": "Office supplies" }, "amount": 250.00 }
]
},
"document_date": "2024-03-01",
"user_code": "VINV-018",
"amount": 250.00,
"budget_category": { "id": 5, "name": "Office supplies" },
"secondary_budget_categories": [],
"tax": { "id": 2, "name": "TVA 20%" },
"secondary_taxes": [],
"payee_type": "VENDOR",
"payee": { "id": 3, "name": "Office Supplies Co.", "type": "VENDOR" },
"locked": false,
"auto_reconciled": false,
"delete_on_unmatch": false,
"bank_entry_reconciled": true,
"document_status": "VENDOR_BILL_PAID_IN_FULL",
"cash_flow_status": "PAID"
}customer_invoice
Reconciles a credit bank entry directly with an Invoice. Reference an existing invoice by document.id.
Bank entry direction: positive (credit).
| Field | Value |
|---|---|
| document_type | customer_invoice |
| document | {id, user_code} — id of the Invoice to reconcile. |
{
"id": 162,
"bank_entry": { "id": 359, "label": "Customer invoice payment" },
"document_type": "customer_invoice",
"document": { "id": 14, "user_code": "INV-014" },
"document_date": "2024-02-28",
"user_code": "INV-014",
"amount": 500.00,
"budget_category": { "id": 10, "name": "Invoice payments" },
"secondary_budget_categories": [],
"tax": null,
"secondary_taxes": [],
"payee_type": "CUSTOMER",
"payee": { "id": 5, "name": "ACME Corp", "type": "CUSTOMER" },
"locked": false,
"auto_reconciled": false,
"delete_on_unmatch": false,
"bank_entry_reconciled": true
}credit_memo
Reconciles a debit bank entry with a Credit Memo (refund issued to a customer). Reference an existing credit memo by document.id.
Bank entry direction: negative (debit).
| Field | Value |
|---|---|
| document_type | credit_memo |
| document | {id, user_code} — id of the Credit Memo to reconcile. |
| document_status | Status of the linked credit memo. |
| cash_flow_status | Cash flow classification. |
| document_private_note | Optional private note written back to the linked credit memo. 10 000 characters max. |
{
"id": 163,
"bank_entry": { "id": 360, "label": "Refund to customer" },
"document_type": "credit_memo",
"document": { "id": 10001, "user_code": "CN-10001" },
"document_date": "2024-03-05",
"user_code": "CN-10001",
"amount": 99.00,
"budget_category": { "id": 1, "name": "Services" },
"secondary_budget_categories": [],
"tax": null,
"secondary_taxes": [],
"payee_type": "CUSTOMER",
"payee": { "id": 5, "name": "ACME Corp", "type": "CUSTOMER" },
"locked": false,
"auto_reconciled": false,
"delete_on_unmatch": false,
"bank_entry_reconciled": true,
"document_status": "CREDIT_MEMO_PAID",
"cash_flow_status": "OPERATING"
}vendor_credit_memo
Reconciles a credit bank entry with a Vendor Credit Memo (refund received from a vendor). Reference an existing vendor credit memo by document.id.
Bank entry direction: positive (credit).
| Field | Value |
|---|---|
| document_type | vendor_credit_memo |
| document | {id, user_code} — id of the Vendor Credit Memo to reconcile. |
{
"id": 164,
"bank_entry": { "id": 361, "label": "Vendor refund" },
"document_type": "vendor_credit_memo",
"document": { "id": 10000, "user_code": "SCN-10000" },
"document_date": "2024-03-12",
"user_code": "SCN-10000",
"amount": 2251.20,
"budget_category": { "id": 11, "name": "Bill payments" },
"secondary_budget_categories": [],
"tax": null,
"secondary_taxes": [],
"payee_type": "VENDOR",
"payee": { "id": 3, "name": "Office Supplies Co.", "type": "VENDOR" },
"locked": false,
"auto_reconciled": false,
"delete_on_unmatch": false,
"bank_entry_reconciled": true
}bank_deposit
Reconciles a credit bank entry with a bank deposit. Reference an existing deposit by document.id.
Bank entry direction: positive (credit).
| Field | Value |
|---|---|
| document_type | bank_deposit |
| document | {id, user_code} — id of the deposit to reconcile. |
accounting_receipt
Reconciles a credit bank entry with an accounting receipt. Reference an existing accounting receipt by document.id.
Bank entry direction: positive (credit).
| Field | Value |
|---|---|
| document_type | accounting_receipt |
| document | {id, user_code} — id of the accounting receipt to reconcile. |
accounting_entry
Reconciles a bank entry with an Accounting Transaction entry. Reference an existing entry by document.id.
| Field | Value |
|---|---|
| document_type | accounting_entry |
| document | {id, user_code} — id of the Accounting Transaction entry. |
fixed_asset
Reconciles a debit bank entry with a fixed asset acquisition. Reference an existing fixed asset by document.id.
Bank entry direction: negative (debit).
| Field | Value |
|---|---|
| document_type | fixed_asset |
| document | {id, user_code} — id of the fixed asset to reconcile. |
cash_drawer_closing
Reconciles a bank entry with a cash drawer closing (cash deposit to bank account). Reference an existing cash drawer closing by document.id.
| Field | Value |
|---|---|
| document_type | cash_drawer_closing |
| document | {id, user_code} — id of the cash drawer closing to reconcile. |
Available Filter Fields
| Field Name | Description |
|---|---|
| id | Filter by one or multiple ids (e.g. ?id=1,2,3). |
| bank_entry_id | Filter by one or multiple bank entry ids (e.g. ?bank_entry_id=1,2,3). |
| document_id | Filter by one or multiple document ids (e.g. ?document_id=1,2,3). |
| document_type | Filter by one or multiple document types (e.g. ?document_type=bank_payment,sales_receipt). |
Available Methods
| HTTP Verb | Action |
|---|---|
| GET | Retrieve a resource, you have to specify an id |
| DELETE | Delete a resource, you have to specify an id |
| POST | Create a resource |
| GET | Retrieve the list of resources |
Payment Terms
Endpoint: https://api.oneup.com/v1/payment_termsJSON Format
Payment Terms are represented as JSON objects which have the following keys:
Updating the installments
On a PUT request, lines is optional and behaves as follows:
- Leave
linesout and the schedule is left untouched, so you can rename a Payment Term on its own. - Send
linesand it becomes the whole schedule. An installment sent with itsidis updated, one sent without anidis created, and any installment of the Payment Term missing from the array is removed.
An id sent in lines has to be the id of an installment of that very Payment Term.
JSON Example
{
"id": 4,
"name": "In two installments",
"lines": [
{
"id": 11,
"percentage": 50.0,
"days": 0,
"x_day": 0,
"precision": "due_on_receipt",
"payment_method": "wire_transfer"
},
{
"id": 12,
"percentage": 50.0,
"days": 30,
"x_day": 0,
"precision": "due_on_receipt",
"payment_method": "check"
}
]
}Available Methods
| HTTP Verb | Action |
|---|---|
| GET | Retrieve a resource, you have to specify an id |
| PUT | Update a resource, you have to specify an id |
| POST | Create a resource |
| GET | Retrieve the list of resources |
Taxes
Endpoint: https://api.oneup.com/v1/taxesJSON Format
Taxes are represented as JSON objects which have the following keys:
| Field Name | Type | Description |
|---|---|---|
| id | integer | Automatically assigned |
| name | string | The Tax Name. 128 characters max. |
| rate | double | The Tax Rate |
JSON Example
{
"id": 5,
"name": "10% Federal Tax",
"rate": 10.00
}Available Methods
| HTTP Verb | Action |
|---|---|
| GET | Retrieve a resource, you have to specify an id |
| GET | Retrieve the list of resources |
Currencies
Endpoint: https://api.oneup.com/v1/currenciesJSON Format
Currencies are represented as JSON objects which have the following keys:
| Field Name | Type | Description |
|---|---|---|
| id | integer | Automatically assigned |
| iso_code | string | The ISO code of the currency (ISO 4217). 4 characters max. |
| name | string | The Currency Name. 64 characters max. |
| is_main_currency | boolean | Is this currency the main accounting for this domain |
JSON Example
{
"id": 133,
"iso_code": "USD",
"name": "U.S. Dollar",
"is_main_currency": true
}Available Methods
| HTTP Verb | Action |
|---|---|
| GET | Retrieve a resource, you have to specify an id |
| GET | Retrieve the list of resources |
Units
Endpoint: https://api.oneup.com/v1/unitsJSON Format
Units are represented as JSON objects which have the following keys:
| Field Name | Type | Description |
|---|---|---|
| id | integer | Automatically assigned |
| name | string | The Unit Name. 64 characters max. |
| type | integer | Describe the kind of unit
1: Piece 2: Weight 3: Dimension 4: Surface 5: Volume 6: Time |
JSON Example
{
"id": 8,
"name": "Day",
"type": 6
}Available Methods
| HTTP Verb | Action |
|---|---|
| GET | Retrieve a resource, you have to specify an id |
| GET | Retrieve the list of resources |
Address
In OneUp, addresses are used at several places. Accounts, Suppliers, Contacts... So, in the API, addresses are embeded into their own JSON format, and follow the same rules everywhere.
JSON Format
Addresses are represented as JSON objects which have the following keys:
| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| street_line1 | string | no | no | First line of the address. 255 characters max. |
| street_line2 | string | no | no | Second line of the address. 255 characters max. |
| street_line3 | string | no | no | Third line of the address. 255 characters max. |
| postal_code | string | no | no | The zip code of the address. 128 characters max. |
| city | string | no | no | The city of the address. 128 characters max. |
| country | string | no | no | The country of the address. 128 characters max. |
| locality | string | no | no | The localisaton of the address (limited to the one from the country selected). 255 characters max. |
| short_locality | string | no | yes | The short code for the Country. 10 characters max. |
| full_address | string | no | yes | The full formated adress as it should appears on documents |
JSON Example
{
"street_line1": "567 Sutter St.",
"street_line2": "",
"street_line3": "",
"postal_code": "94102",
"city": "San Francisco",
"country": "United States",
"locality": "California",
"short_locality": "CA",
"full_address": "567 Sutter St. San Francisco CA 94102 United States"
}Contact
JSON Format
Contacts are represented as JSON objects which have the following keys:
JSON Example
{
"id": 48,
"first_name": "François",
"last_name": "Nadal",
"full_name": "François Nadal",
"cell_phone": "(415) 555-1234",
"work_phone": "(415) 555-5678",
"home_phone": "(415) 555-0000",
"email": "francois.nadal@oneup.com",
"address": {
"street_line1": "21 Backer street",
"street_line2": "Building D",
"street_line3": "Fifth Floor",
"postal_code": "94109",
"city": "San Francisco",
"country": "USA",
"locality": "California",
"short_locality": "CA",
"full_address": "21 Backer street Building D Fifth Floor San Francisco CA 94109 USA"
},
"note": "A contact that worth to know.\nLike to surf."
}Order Line
Order lines are product or service lines that are embeded within sales or purchases documents. They contain infos like price, quantity, description, etc...
While adding, removing or updating an order line, related values (such as total, tax amount...) on the contextual document will be updated accordingly.
JSON Format
Order lines are represented as JSON objects which have the following keys:
| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| id | integer | no | yes | Automatically assigned |
| item_id DEPRECATED | integer | yes for sales documents, no for purchase documents | no | Deprecated. See item. Id of the ordered Product or Service. |
| item | object | yes for sales documents, no for purchase documents | no | The ordered Product or Service. Send at least its id to set it; the full object is returned when reading. For purchase documents, at least one of item, accounting_account or budget_category is required. Not editable once the line has been created. |
| accounting_account_id | integer | no | no | Only for purchase documents. Id of the ordered Accounting Account. Alternative to accounting_account. |
| accounting_account | Account | no | no | Only for purchase documents. The ordered Accounting Account. Send at least its id to set it; the full object is returned when reading. Alternative to accounting_account_id. For purchase documents, at least one of item, accounting_account or budget_category is required. Not editable once the line has been created. |
| budget_category | object | no | no | Only for purchase documents. The ordered Budget Category. Contains id and name. Send at least its id to set it. For purchase documents, at least one of item, accounting_account or budget_category is required. Not editable once the line has been created. |
| description | string | no | no | A description of the ordered Product or Service. Default: The Product or Service default description |
| quantity | double | no | no | The ordered quantity. Default: 1.00 |
| unit_price_wt | double | no | no | Unit Price before Taxes Default: The Product or Service default sales price |
| discount_rate | double | no | no | Discount rate for this line. Default: 0.00 |
| tax_id DEPRECATED | integer | no | no | Deprecated. See tax. Not available for US purchase documents. Id of the Tax to apply. |
| tax | Tax | no | no | Not available for US purchase documents. The Tax to apply. Send at least its id to set it; the full object (id, name, rate, enabled, exempted) is returned when reading. Alternative to tax_id. |
| is_taxable | boolean | no | no | US sales documents only. Shall the tax be applied ? |
| subtotal | double | no | yes | Total before taxes, after discount. |
| discount_amount | double | no | yes | The amount deducted by the discount. |
| tax_amount | double | no | yes | The tax amount applied to this line. |
| total | double | no | yes | Total including taxes. |
JSON Example
{
"id": 56,
"item_id": 130,
"item": {
"id": 130,
"type": 2,
"name": "Red Wine - high quality",
"unit_id": 2,
"sales_price": 49.99
},
"description": "Red Wine - high quality",
"quantity": 12.0,
"unit_price_wt": 49.99,
"discount_rate": 5.0,
"tax_id": 2,
"tax": {
"id": 2,
"name": "VAT",
"rate": 10.0,
"enabled": true,
"exempted": false
},
"is_taxable": true,
"subtotal": 569.89,
"discount_amount": 29.99,
"tax_amount": 56.99,
"total": 626.88
}Payment Term Line
Payment term lines are the installments of a Payment Term: which share of a document is due, and when. A Payment Term needs at least one of them, and their percentages must add up to 100.
JSON Format
Payment term lines are represented as JSON objects which have the following keys:
| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| id | integer | no | no | Automatically assigned. Send it back to update an existing installment, leave it out to create a new one. |
| percentage | double | yes | no | The share (%) of the document due on that installment. Greater than 0 and up to 100. |
| days | integer | no | no | The number of days between the document and that installment. Default: 0 |
| precision | string | no | no | How the due date is worked out, once the days above have been counted:
due_on_receipt: that very day x_days_before_end_of_month: x days before the end of that month x_days_after_start_of_month: x days after the start of that month x_days_before_end_of_next_month: x days before the end of the following month x_days_after_start_of_next_month: x days after the start of the following month Default: due_on_receipt |
| x_day | integer | no | no | The x of the precision above. Ignored when the precision is due_on_receipt. Default: 0 |
| payment_method | string | no | no | How that installment is expected to be paid:
check, debit_credit_card, cash, direct_debit_ach, wire_transfer, gift_certificate, credit_note, other France only: tip, traite, meal_ticket, change_letter, billet_ordre Default: check |
JSON Example
{
"id": 12,
"percentage": 50.0,
"days": 30,
"x_day": 0,
"precision": "due_on_receipt",
"payment_method": "check"
}Category Line
Category lines are embedded within Sales Receipts and Expenses. They split the total amount of a document across accounting accounts and budget categories, each optionally carrying a tax.
While adding, removing or updating a category line, the parent document's total_amount is updated accordingly.
JSON Format
Category lines are represented as JSON objects which have the following keys:
| Field Name | Type | Mandatory | Read-only | Description |
|---|---|---|---|---|
| id | integer | no | yes | Automatically assigned. |
| total_amount | double | yes | no | Line total including tax. The sum of all lines must be strictly positive. |
| sub_total_amount | double | no | no | Line total excluding tax. |
| tax_amount | double | no | no | Tax amount for this line. |
| price_mode | string | no | no | Determines which amount field is authoritative when computing the tax breakdown. Values: withTaxes (uses total_amount), withoutTaxes (uses sub_total_amount). |
| tax | object | no | no | The Tax to apply on this line. Contains id, name, and rate. |
| accounting_account | object | no | no | The Accounting Account to assign this line to. Contains id, name, and number. |
| budget_category | object | no | no | The budget category to assign this line to. Contains id and name. |
| notes | string | no | no | A description for this line. 255 characters max. |
Snippet
A Snippet is a generic type that encapsulates an object and aggregates common information.
JSON Format
Snippets are represented as JSON objects which have the following keys:
| Field Name | Type | Description |
|---|---|---|
| id | integer | The id of the encapsulated object |
| name | string | The name of the encapsulated object |
| user_code | string | The user_code of the encapsulated object |
JSON Example
{
"id": 10001,
"name": "Employee David",
"user_code": "EMP-001"
}Domain
Endpoint: https://api.oneup.com/v1/domainsThis endpoint will delete your account and cancel your subscription.
Options as body json
The following options are available for that endpoint:
| Option Name | Type | Description |
|---|---|---|
| provider | string | The provider associated with the account to delete (mandatory). |
| account_id | integer | Id of the account that will be deleted (mandatory). |
| reason | string | The reason why the domain is deleted (mandatory). |
| additionalInfo | string | More information about the reason of the deletion. |
JSON Example
This enpoint will return the domain unique id after a successful deletion:
{
"id": 17
}Available Methods
| HTTP Verb | Action |
|---|---|
| DELETE | Delete a resource |