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

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

Operations

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

Operations

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

Operations

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

Operations

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

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

Operations

Manage approval workflows and policies. Define approval rules, steps, conditions, and approvers for different record types. Monitor workflow execution states and view approval history.

Operations

View pending approvals and approval status. Access transactions and records awaiting approval across the organization, including full approval workflow details, approvers, and action history.

Operations

Manage financial budgets. Create and track income statement and balance sheet budgets with monthly cell values, actuals comparison, and classification filtering.

Operations

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

Operations

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

Operations

Manage bank-to-bank transfers. Record and track transfers between bank and credit card accounts, including multi-currency transfers with exchange rate handling.

Operations

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

Operations

Manage revenue recognition contracts. Create and retrieve contracts with performance obligations, and manage obligation usage for usage-based obligations.

Operations

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

Operations

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

Operations

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

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

Operations

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

Operations

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

Operations

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

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

Operations

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

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

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

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

Operations

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

Operations

Request

Retrieve a paginated list of PurchaseOrder records with filtering and ordering options.

Query
searchstring or null(Search)
company_idArray of integers or null(Company Id)
numberArray of integers or null(Number)
vendor_idArray of integers or null(Vendor Id)
start_datestring or null(date)(Start Date)
end_datestring or null(date)(End Date)
record_statusstring or null(RecordStatus)
Enum"draft""posted""archived"
approval_statusArray of strings or null(Approval Status)
billedboolean or null(Billed)
unbilledboolean or null(Unbilled)
partially_billedboolean or null(Partially Billed)
billed_statusArray of strings(Billed Status)unique
Default []
Items Enum"billed""unbilled""partially_billed"
orderingstring or null(Ordering)
Default "id"
limitinteger(Limit)>= 1

Number of records to return per page (capped at 100)

Default 100
offsetinteger(Offset)>= 0

Number of records to skip before starting to return results

Default 0
curl -i -X GET \
  'https://api.dualentry.com/public/v1/purchase-orders/?search=string&company_id=0&number=0&vendor_id=0&start_date=2019-08-24&end_date=2019-08-24&record_status=draft&approval_status=string&billed=true&unbilled=true&partially_billed=true&ordering=id&limit=100&offset=0'

Responses

OK

Bodyapplication/json
itemsArray of objects(Items)required
items[].​attachmentsArray of objects(Attachments)
Default []
items[].​term_idinteger or null(Term Id)required
items[].​term_namestring(Term Name)required
items[].​created_byobject or null(AuditActorSchemaOut)

Schema for audit actor information.

items[].​updated_byobject or null(AuditActorSchemaOut)

Schema for audit actor information.

items[].​approval_statusstring or null(Approval Status)
items[].​next_approversArray of objects or null(Next Approvers)
items[].​rejected_byobject or null(RejectedBySchema)

Schema for rejector information including rejection reason.

items[].​internal_idinteger(Internal Id)required
items[].​numberinteger(Number)required
items[].​datestring(date)(Date)required
items[].​company_idinteger(Company Id)required
items[].​company_namestring(Company Name)required

Name of the company

items[].​company_currencystring(Company Currency)required
items[].​vendor_idinteger(Vendor Id)required
items[].​vendor_namestring(Vendor Name)required
items[].​currency_iso_4217_codestring(SystemCurrencies)required
Enum"AED""AFN""ALL""AMD""ANG""AOA""ARS""AUD""AWG""AZN"
items[].​exchange_ratestring(Exchange Rate)^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,16}0*$required
items[].​billed_totalstring(Billed Total)^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$required

Total quantity of items that were already billed

items[].​due_totalstring(Due Total)^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$required

Total quantity of items yet to be billed

items[].​amountstring(Amount)^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$required

Total amount of ordered items

items[].​memostring(Memo)required
items[].​itemsArray of objects(Items)required
items[].​items[].​classificationsArray of objects(Classifications)required

Classifications of the item

items[].​items[].​classifications[].​idinteger(Id)required
items[].​items[].​classifications[].​namestring(Name)required
items[].​items[].​classifications[].​line_idinteger(Line Id)required
items[].​items[].​classifications[].​line_namestring(Line Name)required
items[].​items[].​classifications[].​parent_classification_idinteger or null(Parent Classification Id)
items[].​items[].​classifications[].​parent_classification_line_idinteger or null(Parent Classification Line Id)
items[].​items[].​idinteger(Id)required

ID of the item

items[].​items[].​item_idinteger(Item Id)required

ID of the inventory item

items[].​items[].​positioninteger(Position)required

Position of the item in the purchase order

items[].​items[].​memostring(Memo)required

Memo of the item

items[].​items[].​quantitystring(Quantity)^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,6}0*$required

Quantity ordered

items[].​items[].​ratestring(Rate)^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,6}0*$required

Rate per unit

items[].​items[].​quantity_billedstring(Quantity Billed)^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,6}0*$required

Quantity of items that already have corresponding Bill

items[].​items[].​quantity_duestring(Quantity Due)^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,6}0*$required

Quantity of items yet to be billed

items[].​items[].​amountstring(Amount)^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$required

Total amount expected to be paid for this item

items[].​record_statusstring(RecordStatus)required
Enum"draft""posted""archived"
items[].​billed_statusstring(PurchaseOrderBilledStatus)required
Enum"billed""unbilled""partially_billed"
items[].​reference_numberstring(Reference Number)
Default ""
countinteger(Count)required
Response
application/json
{ "items": [ { … } ], "count": 0 }

Request

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

Bodyapplication/jsonrequired
datestring(date)(Date)required
company_idinteger(Company Id)required
vendor_idinteger(Vendor Id)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)
memostring(Memo)required
itemsArray of objects(Items)required
items[].​idinteger or null(Id)
items[].​positioninteger(Position)required

Position of the item in the purchase order

items[].​item_idinteger(Item Id)required

ID of the item

items[].​memostring(Memo)required

Memo of the item

items[].​quantityQuantity (number) or Quantity (string)(Quantity)required

Quantity of the item

Any of:

Quantity of the item

number(Quantity)
items[].​rateRate (number) or Rate (string)(Rate)required

Rate of the item

Any of:

Rate of the item

number(Rate)
items[].​classificationsArray of objects(Classifications)required

Classifications of the item

items[].​classifications[].​idinteger(Id)required
items[].​classifications[].​namestring(Name)required
items[].​classifications[].​line_idinteger(Line Id)required
items[].​classifications[].​line_namestring(Line Name)required
items[].​classifications[].​parent_classification_idinteger or null(Parent Classification Id)
items[].​classifications[].​parent_classification_line_idinteger or null(Parent Classification Line Id)
attachmentsArray of objects(Attachments)
Default []
record_statusstring(RecordStatus)
Default "posted"
Enum"draft""posted""archived"
term_idinteger or null(Term Id)
reference_numberstring(Reference Number)
Default ""
curl -i -X POST \
  https://api.dualentry.com/public/v1/purchase-orders/ \
  -H 'Content-Type: application/json' \
  -d '{
    "date": "2019-08-24",
    "company_id": 0,
    "vendor_id": 0,
    "currency_iso_4217_code": "AED",
    "exchange_rate": 0,
    "memo": "string",
    "items": [
      {
        "id": 0,
        "position": 0,
        "item_id": 0,
        "memo": "string",
        "quantity": 0,
        "rate": 0,
        "classifications": [
          {
            "id": 0,
            "name": "string",
            "line_id": 0,
            "line_name": "string",
            "parent_classification_id": 0,
            "parent_classification_line_id": 0
          }
        ]
      }
    ],
    "attachments": [],
    "record_status": "posted",
    "term_id": 0,
    "reference_number": ""
  }'

Responses

OK

Bodyapplication/json
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.

approval_statusstring or null(Approval Status)
next_approversArray of objects or null(Next Approvers)
rejected_byobject or null(RejectedBySchema)

Schema for rejector information including rejection reason.

internal_idinteger(Internal Id)required
numberinteger(Number)required
datestring(date)(Date)required
company_idinteger(Company Id)required
company_namestring(Company Name)required

Name of the company

company_currencystring(Company Currency)required
vendor_idinteger(Vendor Id)required
vendor_namestring(Vendor Name)required
currency_iso_4217_codestring(SystemCurrencies)required
Enum"AED""AFN""ALL""AMD""ANG""AOA""ARS""AUD""AWG""AZN"
exchange_ratestring(Exchange Rate)^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,16}0*$required
billed_totalstring(Billed Total)^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$required

Total quantity of items that were already billed

due_totalstring(Due Total)^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$required

Total quantity of items yet to be billed

amountstring(Amount)^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$required

Total amount of ordered items

memostring(Memo)required
itemsArray of objects(Items)required
items[].​classificationsArray of objects(Classifications)required

Classifications of the item

items[].​classifications[].​idinteger(Id)required
items[].​classifications[].​namestring(Name)required
items[].​classifications[].​line_idinteger(Line Id)required
items[].​classifications[].​line_namestring(Line Name)required
items[].​classifications[].​parent_classification_idinteger or null(Parent Classification Id)
items[].​classifications[].​parent_classification_line_idinteger or null(Parent Classification Line Id)
items[].​idinteger(Id)required

ID of the item

items[].​item_idinteger(Item Id)required

ID of the inventory item

items[].​positioninteger(Position)required

Position of the item in the purchase order

items[].​memostring(Memo)required

Memo of the item

items[].​quantitystring(Quantity)^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,6}0*$required

Quantity ordered

items[].​ratestring(Rate)^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,6}0*$required

Rate per unit

items[].​quantity_billedstring(Quantity Billed)^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,6}0*$required

Quantity of items that already have corresponding Bill

items[].​quantity_duestring(Quantity Due)^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,6}0*$required

Quantity of items yet to be billed

items[].​amountstring(Amount)^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$required

Total amount expected to be paid for this item

record_statusstring(RecordStatus)required
Enum"draft""posted""archived"
billed_statusstring(PurchaseOrderBilledStatus)required
Enum"billed""unbilled""partially_billed"
reference_numberstring(Reference Number)
Default ""
Response
application/json
{ "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" }, "approval_status": "string", "next_approvers": [ { … } ], "rejected_by": { "id": 0, "first_name": "string", "last_name": "string", "email": "string", "full_name": "string", "rejection_reason": "string" }, "internal_id": 0, "number": 0, "date": "2019-08-24", "company_id": 0, "company_name": "string", "company_currency": "string", "vendor_id": 0, "vendor_name": "string", "currency_iso_4217_code": "AED", "exchange_rate": "string", "billed_total": "string", "due_total": "string", "amount": "string", "memo": "string", "items": [ { … } ], "record_status": "draft", "billed_status": "billed", "reference_number": "" }

Request

Retrieve a specific PurchaseOrder 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)
vendor_idArray of integers or null(Vendor Id)
start_datestring or null(date)(Start Date)
end_datestring or null(date)(End Date)
record_statusstring or null(RecordStatus)
Enum"draft""posted""archived"
approval_statusArray of strings or null(Approval Status)
billedboolean or null(Billed)
unbilledboolean or null(Unbilled)
partially_billedboolean or null(Partially Billed)
billed_statusArray of strings(Billed Status)unique
Default []
Items Enum"billed""unbilled""partially_billed"
curl -i -X GET \
  'https://api.dualentry.com/public/v1/purchase-orders/{record_number}/?search=string&company_id=0&number=0&vendor_id=0&start_date=2019-08-24&end_date=2019-08-24&record_status=draft&approval_status=string&billed=true&unbilled=true&partially_billed=true'

Responses

OK

Bodyapplication/json
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.

approval_statusstring or null(Approval Status)
next_approversArray of objects or null(Next Approvers)
rejected_byobject or null(RejectedBySchema)

Schema for rejector information including rejection reason.

internal_idinteger(Internal Id)required
numberinteger(Number)required
datestring(date)(Date)required
company_idinteger(Company Id)required
company_namestring(Company Name)required

Name of the company

company_currencystring(Company Currency)required
vendor_idinteger(Vendor Id)required
vendor_namestring(Vendor Name)required
currency_iso_4217_codestring(SystemCurrencies)required
Enum"AED""AFN""ALL""AMD""ANG""AOA""ARS""AUD""AWG""AZN"
exchange_ratestring(Exchange Rate)^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,16}0*$required
billed_totalstring(Billed Total)^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$required

Total quantity of items that were already billed

due_totalstring(Due Total)^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$required

Total quantity of items yet to be billed

amountstring(Amount)^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$required

Total amount of ordered items

memostring(Memo)required
itemsArray of objects(Items)required
items[].​classificationsArray of objects(Classifications)required

Classifications of the item

items[].​classifications[].​idinteger(Id)required
items[].​classifications[].​namestring(Name)required
items[].​classifications[].​line_idinteger(Line Id)required
items[].​classifications[].​line_namestring(Line Name)required
items[].​classifications[].​parent_classification_idinteger or null(Parent Classification Id)
items[].​classifications[].​parent_classification_line_idinteger or null(Parent Classification Line Id)
items[].​idinteger(Id)required

ID of the item

items[].​item_idinteger(Item Id)required

ID of the inventory item

items[].​positioninteger(Position)required

Position of the item in the purchase order

items[].​memostring(Memo)required

Memo of the item

items[].​quantitystring(Quantity)^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,6}0*$required

Quantity ordered

items[].​ratestring(Rate)^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,6}0*$required

Rate per unit

items[].​quantity_billedstring(Quantity Billed)^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,6}0*$required

Quantity of items that already have corresponding Bill

items[].​quantity_duestring(Quantity Due)^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,6}0*$required

Quantity of items yet to be billed

items[].​amountstring(Amount)^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$required

Total amount expected to be paid for this item

record_statusstring(RecordStatus)required
Enum"draft""posted""archived"
billed_statusstring(PurchaseOrderBilledStatus)required
Enum"billed""unbilled""partially_billed"
reference_numberstring(Reference Number)
Default ""
Response
application/json
{ "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" }, "approval_status": "string", "next_approvers": [ { … } ], "rejected_by": { "id": 0, "first_name": "string", "last_name": "string", "email": "string", "full_name": "string", "rejection_reason": "string" }, "internal_id": 0, "number": 0, "date": "2019-08-24", "company_id": 0, "company_name": "string", "company_currency": "string", "vendor_id": 0, "vendor_name": "string", "currency_iso_4217_code": "AED", "exchange_rate": "string", "billed_total": "string", "due_total": "string", "amount": "string", "memo": "string", "items": [ { … } ], "record_status": "draft", "billed_status": "billed", "reference_number": "" }

Record direct expense transactions. Track payments made directly from a bank or credit card account for expenses, without going through the accounts payable process.

Operations

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

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

Operations

Track advance payments to vendors. Record prepayments made before goods or services are received, which can be applied to future bills.

Operations

Apply vendor prepayments to bills. Record applications of prepayments to reduce bill balances and track amounts owed.

Operations

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

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

Operations

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

Operations

Manage fixed assets and capital equipment. Create, update, and track long-lived tangible assets including depreciation schedules, account assignments, and asset lifecycle management.

Operations