Skip to content
Download OpenAPI description
Languages
Servers
Production environment
https://api.dualentry.io/
Development environment (for testing)
https://api-dev.dualentry.io/

Health

Monitor API availability and service status. Use these endpoints to verify connectivity and check if the API is operational.

Operations

Accounts

Manage your chart of accounts. Create and maintain the accounts used to categorize financial transactions, including assets, liabilities, equity, revenue, and expenses.

Operations

Items

Manage products and services. Define items that appear on invoices and bills, including pricing, descriptions, and associated accounts for revenue or expense tracking.

Operations

Classifications

Manage custom classification dimensions. Create and maintain classification categories (e.g., departments, locations, projects) used to tag and analyze transactions across multiple dimensions.

Operations

Classifications Lines

Manage classification values. Define the specific values within each classification category that can be assigned to transaction line items for detailed reporting and analysis.

Operations

Companies

Access and manage company information. Retrieve details about your organization including legal name, tax identifiers, addresses, and accounting preferences.

Operations

Journal Entries

Create and manage manual journal entries. Record direct debits and credits to accounts for adjustments, accruals, reclassifications, and other accounting transactions.

Operations

Recurring Journal Entries

Automate recurring journal entries. Create templates for journal entries that occur regularly (e.g., monthly depreciation, amortization) to ensure consistent accounting treatment.

Operations

Invoices

Manage sales invoices. Create and track invoices sent to customers for goods or services rendered, including line items, taxes, discounts, and payment status.

Operations

Sales Orders

Create and manage sales orders. Track customer orders for goods or services before invoicing, including line items, quantities, fulfillment status, and invoicing progress.

Operations

Request

Retrieve a specific SalesOrder record by number with all related data.

Path
record_numberinteger(Record Number)required
Query
searchstring or null(Search)
company_idArray of integers or null(Company Id)
numberArray of integers or null(Number)
customer_idArray of integers or null(Customer Id)
start_datestring or null(date)(Start Date)
end_datestring or null(date)(End Date)
record_statusstring or null(RecordStatus)
Enum"draft""posted""archived"
invoiced_statusArray of strings or null(Invoiced Status)
Enum"invoiced""uninvoiced""partially_invoiced"
curl -i -X GET \
  'https://api.dualentry.io/public/v1/sales-orders/{record_number}/?search=string&company_id=0&number=0&customer_id=0&start_date=2019-08-24&end_date=2019-08-24&record_status=draft&invoiced_status=invoiced'

Responses

OK

Bodyapplication/json
created_atstring(date-time)(Created At)required

Date and time the record was created

updated_atstring(date-time)(Updated At)required

Date and time the record was last updated

custom_fieldsArray of objects(Custom Fields)
Default []
invoiced_statusstring(SalesOrderInvoicedStatus)required
Enum"invoiced""uninvoiced""partially_invoiced"
attachmentsArray of objects(Attachments)
Default []
term_idinteger or null(Term Id)required
term_namestring(Term Name)required
created_byobject or null(AuditActorSchemaOut)

Schema for audit actor information.

updated_byobject or null(AuditActorSchemaOut)

Schema for audit actor information.

internal_idinteger(Internal Id)required
numberinteger(Number)required
itemsArray of objects(Items)required
items[].​classificationsArray of objects(Classifications)
Default []
items[].​idinteger(Id)required
items[].​item_idinteger(Item Id)required
items[].​quantityQuantity (number) or Quantity (string)(Quantity)required
Any of:
number(Quantity)
items[].​rateRate (number) or Rate (string)(Rate)required
Any of:
number(Rate)
items[].​positioninteger(Position)required
items[].​memostring(Memo)required
items[].​quantity_invoicedQuantity Invoiced (number) or Quantity Invoiced (string)(Quantity Invoiced)required

Quantity of items that already have corresponding Invoice

Any of:

Quantity of items that already have corresponding Invoice

number(Quantity Invoiced)
items[].​quantity_dueQuantity Due (number) or Quantity Due (string)(Quantity Due)required

Quantity of items yet to be invoiced

Any of:

Quantity of items yet to be invoiced

number(Quantity Due)
company_idinteger(Company Id)required
company_namestring(Company Name)required
company_currencystring(Company Currency)required
customer_idinteger(Customer Id)required
customer_namestring(Customer Name)required
currency_iso_4217_codestring(SystemCurrencies)required
Enum"AED""AFN""ALL""AMD""ANG""AOA""ARS""AUD""AWG""AZN"
exchange_rateExchange Rate (number) or Exchange Rate (string)(Exchange Rate)required
Any of:
number(Exchange Rate)
amountAmount (number) or Amount (string)(Amount)required

Total amount of ordered items

Any of:

Total amount of ordered items

number(Amount)
invoiced_totalInvoiced Total (number) or Invoiced Total (string)(Invoiced Total)required

Total quantity of items that were already invoiced

Any of:

Total quantity of items that were already invoiced

number(Invoiced Total)
due_totalDue Total (number) or Due Total (string)(Due Total)required

Total quantity of items yet to be invoiced

Any of:

Total quantity of items yet to be invoiced

number(Due Total)
memostring(Memo)required
datestring(date)(Date)required
bill_to_addressstring(Bill To Address)required
ship_to_addressstring(Ship To Address)required
billing_addressobject or null(AddressSchemaIn)
shipping_addressobject or null(AddressSchemaIn)
record_statusstring(RecordStatus)required
Enum"draft""posted""archived"
recurring_record_numberinteger or null(Recurring Record Number)
reference_numberstring(Reference Number)required
Response
application/json
{ "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z", "custom_fields": [], "invoiced_status": "invoiced", "attachments": [], "term_id": 0, "term_name": "string", "created_by": { "actor_type": "string", "email": "string", "first_name": "string", "last_name": "string", "timestamp": "2019-08-24T14:15:22Z" }, "updated_by": { "actor_type": "string", "email": "string", "first_name": "string", "last_name": "string", "timestamp": "2019-08-24T14:15:22Z" }, "internal_id": 0, "number": 0, "items": [ { … } ], "company_id": 0, "company_name": "string", "company_currency": "string", "customer_id": 0, "customer_name": "string", "currency_iso_4217_code": "AED", "exchange_rate": 0, "amount": 0, "invoiced_total": 0, "due_total": 0, "memo": "string", "date": "2019-08-24", "bill_to_address": "string", "ship_to_address": "string", "billing_address": { "street": "string", "city": "string", "state": "string", "postal_code": "string", "country": "", "second_line": "" }, "shipping_address": { "street": "string", "city": "string", "state": "string", "postal_code": "string", "country": "", "second_line": "" }, "record_status": "draft", "recurring_record_number": 0, "reference_number": "string" }

Request

Update an existing SalesOrder record with the provided data. Validates all required fields and business rules.

Path
record_numberinteger(Record Number)required
Bodyapplication/jsonrequired
bill_to_addressstring or null(Bill To Address)
Default ""
ship_to_addressstring or null(Ship To Address)
Default ""
custom_fieldsArray of objects or null(Custom Fields)
itemsArray of objects(Items)required
items[].​idinteger or null(Id)
items[].​item_idinteger(Item Id)required
items[].​quantityQuantity (number) or Quantity (string)(Quantity)required
Any of:
number(Quantity)
items[].​rateRate (number) or Rate (string)(Rate)required
Any of:
number(Rate)
items[].​positioninteger(Position)required
items[].​memostring(Memo)required
items[].​classificationsArray of objects(Classifications)
Default []
items[].​taxobject or null(ItemTaxData)
memostring(Memo)required
datestring(date)(Date)required
company_idinteger(Company Id)required
customer_idinteger(Customer Id)required
currency_iso_4217_codestring(SystemCurrencies)required
Enum"AED""AFN""ALL""AMD""ANG""AOA""ARS""AUD""AWG""AZN"
billing_addressobject or null(AddressSchemaIn)
shipping_addressobject or null(AddressSchemaIn)
exchange_rateExchange Rate (number) or Exchange Rate (string)(Exchange Rate)required
Any of:
number(Exchange Rate)
record_statusstring(RecordStatus)
Default "posted"
Enum"draft""posted""archived"
attachmentsArray of objects(Attachments)
Default []
term_idinteger or null(Term Id)
reference_numberstring(Reference Number)
Default ""
curl -i -X PUT \
  'https://api.dualentry.io/public/v1/sales-orders/{record_number}/' \
  -H 'Content-Type: application/json' \
  -d '{
    "bill_to_address": "",
    "ship_to_address": "",
    "custom_fields": [
      {}
    ],
    "items": [
      {
        "id": 0,
        "item_id": 0,
        "quantity": 0,
        "rate": 0,
        "position": 0,
        "memo": "string",
        "classifications": [],
        "tax": {
          "code": "string",
          "rate": 0,
          "amount": 0,
          "is_taxable": true,
          "tax_exempt_amount": 0
        }
      }
    ],
    "memo": "string",
    "date": "2019-08-24",
    "company_id": 0,
    "customer_id": 0,
    "currency_iso_4217_code": "AED",
    "billing_address": {
      "street": "string",
      "city": "string",
      "state": "string",
      "postal_code": "string",
      "country": "",
      "second_line": ""
    },
    "shipping_address": {
      "street": "string",
      "city": "string",
      "state": "string",
      "postal_code": "string",
      "country": "",
      "second_line": ""
    },
    "exchange_rate": 0,
    "record_status": "posted",
    "attachments": [],
    "term_id": 0,
    "reference_number": ""
  }'

Responses

OK

Bodyapplication/json
created_atstring(date-time)(Created At)required

Date and time the record was created

updated_atstring(date-time)(Updated At)required

Date and time the record was last updated

custom_fieldsArray of objects(Custom Fields)
Default []
invoiced_statusstring(SalesOrderInvoicedStatus)required
Enum"invoiced""uninvoiced""partially_invoiced"
attachmentsArray of objects(Attachments)
Default []
term_idinteger or null(Term Id)required
term_namestring(Term Name)required
created_byobject or null(AuditActorSchemaOut)

Schema for audit actor information.

updated_byobject or null(AuditActorSchemaOut)

Schema for audit actor information.

internal_idinteger(Internal Id)required
numberinteger(Number)required
itemsArray of objects(Items)required
items[].​classificationsArray of objects(Classifications)
Default []
items[].​idinteger(Id)required
items[].​item_idinteger(Item Id)required
items[].​quantityQuantity (number) or Quantity (string)(Quantity)required
Any of:
number(Quantity)
items[].​rateRate (number) or Rate (string)(Rate)required
Any of:
number(Rate)
items[].​positioninteger(Position)required
items[].​memostring(Memo)required
items[].​quantity_invoicedQuantity Invoiced (number) or Quantity Invoiced (string)(Quantity Invoiced)required

Quantity of items that already have corresponding Invoice

Any of:

Quantity of items that already have corresponding Invoice

number(Quantity Invoiced)
items[].​quantity_dueQuantity Due (number) or Quantity Due (string)(Quantity Due)required

Quantity of items yet to be invoiced

Any of:

Quantity of items yet to be invoiced

number(Quantity Due)
company_idinteger(Company Id)required
company_namestring(Company Name)required
company_currencystring(Company Currency)required
customer_idinteger(Customer Id)required
customer_namestring(Customer Name)required
currency_iso_4217_codestring(SystemCurrencies)required
Enum"AED""AFN""ALL""AMD""ANG""AOA""ARS""AUD""AWG""AZN"
exchange_rateExchange Rate (number) or Exchange Rate (string)(Exchange Rate)required
Any of:
number(Exchange Rate)
amountAmount (number) or Amount (string)(Amount)required

Total amount of ordered items

Any of:

Total amount of ordered items

number(Amount)
invoiced_totalInvoiced Total (number) or Invoiced Total (string)(Invoiced Total)required

Total quantity of items that were already invoiced

Any of:

Total quantity of items that were already invoiced

number(Invoiced Total)
due_totalDue Total (number) or Due Total (string)(Due Total)required

Total quantity of items yet to be invoiced

Any of:

Total quantity of items yet to be invoiced

number(Due Total)
memostring(Memo)required
datestring(date)(Date)required
bill_to_addressstring(Bill To Address)required
ship_to_addressstring(Ship To Address)required
billing_addressobject or null(AddressSchemaIn)
shipping_addressobject or null(AddressSchemaIn)
record_statusstring(RecordStatus)required
Enum"draft""posted""archived"
recurring_record_numberinteger or null(Recurring Record Number)
reference_numberstring(Reference Number)required
Response
application/json
{ "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z", "custom_fields": [], "invoiced_status": "invoiced", "attachments": [], "term_id": 0, "term_name": "string", "created_by": { "actor_type": "string", "email": "string", "first_name": "string", "last_name": "string", "timestamp": "2019-08-24T14:15:22Z" }, "updated_by": { "actor_type": "string", "email": "string", "first_name": "string", "last_name": "string", "timestamp": "2019-08-24T14:15:22Z" }, "internal_id": 0, "number": 0, "items": [ { … } ], "company_id": 0, "company_name": "string", "company_currency": "string", "customer_id": 0, "customer_name": "string", "currency_iso_4217_code": "AED", "exchange_rate": 0, "amount": 0, "invoiced_total": 0, "due_total": 0, "memo": "string", "date": "2019-08-24", "bill_to_address": "string", "ship_to_address": "string", "billing_address": { "street": "string", "city": "string", "state": "string", "postal_code": "string", "country": "", "second_line": "" }, "shipping_address": { "street": "string", "city": "string", "state": "string", "postal_code": "string", "country": "", "second_line": "" }, "record_status": "draft", "recurring_record_number": 0, "reference_number": "string" }

Create SalesOrder record attachments

Request

Create a new SalesOrder record attachments with the provided data. Validates all required fields and business rules.

Path
record_numberinteger(Record Number)required
Bodymultipart/form-datarequired
filesArray of strings(binary)(Files)required
curl -i -X POST \
  'https://api.dualentry.io/public/v1/sales-orders/{record_number}/attachments/' \
  -H 'Content-Type: multipart/form-data' \
  -F files=string

Responses

OK

Bodyapplication/json
created_atstring(date-time)(Created At)required

Date and time the record was created

updated_atstring(date-time)(Updated At)required

Date and time the record was last updated

custom_fieldsArray of objects(Custom Fields)
Default []
invoiced_statusstring(SalesOrderInvoicedStatus)required
Enum"invoiced""uninvoiced""partially_invoiced"
attachmentsArray of objects(Attachments)
Default []
term_idinteger or null(Term Id)required
term_namestring(Term Name)required
created_byobject or null(AuditActorSchemaOut)

Schema for audit actor information.

updated_byobject or null(AuditActorSchemaOut)

Schema for audit actor information.

internal_idinteger(Internal Id)required
numberinteger(Number)required
itemsArray of objects(Items)required
items[].​classificationsArray of objects(Classifications)
Default []
items[].​idinteger(Id)required
items[].​item_idinteger(Item Id)required
items[].​quantityQuantity (number) or Quantity (string)(Quantity)required
Any of:
number(Quantity)
items[].​rateRate (number) or Rate (string)(Rate)required
Any of:
number(Rate)
items[].​positioninteger(Position)required
items[].​memostring(Memo)required
items[].​quantity_invoicedQuantity Invoiced (number) or Quantity Invoiced (string)(Quantity Invoiced)required

Quantity of items that already have corresponding Invoice

Any of:

Quantity of items that already have corresponding Invoice

number(Quantity Invoiced)
items[].​quantity_dueQuantity Due (number) or Quantity Due (string)(Quantity Due)required

Quantity of items yet to be invoiced

Any of:

Quantity of items yet to be invoiced

number(Quantity Due)
company_idinteger(Company Id)required
company_namestring(Company Name)required
company_currencystring(Company Currency)required
customer_idinteger(Customer Id)required
customer_namestring(Customer Name)required
currency_iso_4217_codestring(SystemCurrencies)required
Enum"AED""AFN""ALL""AMD""ANG""AOA""ARS""AUD""AWG""AZN"
exchange_rateExchange Rate (number) or Exchange Rate (string)(Exchange Rate)required
Any of:
number(Exchange Rate)
amountAmount (number) or Amount (string)(Amount)required

Total amount of ordered items

Any of:

Total amount of ordered items

number(Amount)
invoiced_totalInvoiced Total (number) or Invoiced Total (string)(Invoiced Total)required

Total quantity of items that were already invoiced

Any of:

Total quantity of items that were already invoiced

number(Invoiced Total)
due_totalDue Total (number) or Due Total (string)(Due Total)required

Total quantity of items yet to be invoiced

Any of:

Total quantity of items yet to be invoiced

number(Due Total)
memostring(Memo)required
datestring(date)(Date)required
bill_to_addressstring(Bill To Address)required
ship_to_addressstring(Ship To Address)required
billing_addressobject or null(AddressSchemaIn)
shipping_addressobject or null(AddressSchemaIn)
record_statusstring(RecordStatus)required
Enum"draft""posted""archived"
recurring_record_numberinteger or null(Recurring Record Number)
reference_numberstring(Reference Number)required
Response
application/json
{ "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z", "custom_fields": [], "invoiced_status": "invoiced", "attachments": [], "term_id": 0, "term_name": "string", "created_by": { "actor_type": "string", "email": "string", "first_name": "string", "last_name": "string", "timestamp": "2019-08-24T14:15:22Z" }, "updated_by": { "actor_type": "string", "email": "string", "first_name": "string", "last_name": "string", "timestamp": "2019-08-24T14:15:22Z" }, "internal_id": 0, "number": 0, "items": [ { … } ], "company_id": 0, "company_name": "string", "company_currency": "string", "customer_id": 0, "customer_name": "string", "currency_iso_4217_code": "AED", "exchange_rate": 0, "amount": 0, "invoiced_total": 0, "due_total": 0, "memo": "string", "date": "2019-08-24", "bill_to_address": "string", "ship_to_address": "string", "billing_address": { "street": "string", "city": "string", "state": "string", "postal_code": "string", "country": "", "second_line": "" }, "shipping_address": { "street": "string", "city": "string", "state": "string", "postal_code": "string", "country": "", "second_line": "" }, "record_status": "draft", "recurring_record_number": 0, "reference_number": "string" }

Recurring Invoices

Automate recurring billing. Set up and manage templates for invoices that are automatically generated on a regular schedule (e.g., monthly subscriptions).

Operations

Customers

Manage customer records. Create, update, and track customers who purchase goods or services from your organization, including contact information, billing addresses, and payment terms.

Operations

Customer Payments

Record and manage customer payments. Track payments received from customers and apply them to outstanding invoices, including partial payments and overpayments.

Operations

Customer Prepayments

Track advance payments from customers. Access prepayments received before goods or services are delivered, which can be applied to future invoices.

Operations

Customer Prepayment Applications

Apply customer prepayments and credits to invoices. Record applications of prepayments or credit memos to reduce invoice balances.

Operations

Customer Deposits

Manage customer deposit transactions. Record and track deposits received from customers as security or partial payment, held in liability accounts until earned or refunded.

Operations

Customer Refunds

Process and track customer refunds. Record refunds issued to customers for overpayments, returns, or cancelled transactions.

Operations

Customer Credits

Manage credit memos for customers. Issue credits for returned goods, billing adjustments, or discounts that reduce customer balances or can be applied to future invoices.

Operations

Cash Sales

Record immediate cash sales transactions. Track sales where payment is received at the time of sale, including point-of-sale transactions and cash receipts.

Operations

Bills

Manage vendor bills and payables. Record and track bills received from vendors for goods or services purchased, including line items, due dates, and payment tracking.

Operations

Recurring Bills

Automate recurring expenses. Configure templates for bills that repeat on a regular basis (e.g., monthly rent, subscriptions) to streamline expense tracking.

Operations

Purchase Orders

Create and track purchase orders. Manage formal requests to vendors for goods or services, including approval workflows, receiving tracking, and bill matching.

Operations

Vendors

Manage vendor and supplier records. Track businesses and individuals from whom you purchase goods or services, including contact details, payment terms, and tax information.

Operations

Vendor Payments

Record and manage vendor payments. Track payments made to vendors and apply them to outstanding bills and credits, including partial payments and overpayments.

Operations

Vendor Credits

Manage vendor credit memos. Record credits from vendors for returned goods, billing adjustments, or discounts that reduce amounts owed or can be applied to future bills.

Operations

Vendor Refunds

Process and track vendor refunds. Record refunds received from vendors for overpayments, returns, or cancelled transactions.

Operations

Paper Checks

Manage paper check printing. Create, queue, and batch print paper checks for vendor payments, direct expenses, vendor prepayments, and customer refunds.

Operations