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

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

Request

Create and immediately print a paper check for a transaction.

This endpoint creates a paper check record and generates the PDF in a single operation. The check is immediately marked as PRINTED.

When to use:

  • When you need to print a single check right away
  • For on-demand check printing workflows

Alternative: Use POST /print-later/ to queue checks for batch printing.

Supported transaction types:

  • Direct expenses
  • Vendor payments
  • Vendor prepayments
  • Customer refunds

Returns: The created paper check details along with the PDF content encoded in base64.

Bodyapplication/jsonrequired
transaction_idinteger(Transaction Id)required

ID of the transaction to print a check for. Must be a printable transaction type (direct expense, vendor payment, vendor prepayment, or customer refund).

Example: 12345
template_idinteger or null(Template Id)

Optional ID of a PaperCheckTemplate to use for formatting. If not provided, the default template will be used.

Example: 1
curl -i -X POST \
  https://api.dualentry.io/public/v1/paper-checks/print-now/ \
  -H 'Content-Type: application/json' \
  -d '{
    "transaction_id": 12345,
    "template_id": 1
  }'

Responses

OK

Bodyapplication/json
paper_checkobject(PublicPaperCheckSchemaOut)required

The created paper check details

paper_check.​idinteger(Id)required

Unique identifier for the paper check

Example: 12345
paper_check.​created_atstring(date-time)(Created At)required

Date when the paper check was created (returned as date only)

Example: "2024-01-15"
paper_check.​transaction_datestring(date)(Transaction Date)required

Date of the underlying transaction

Example: "2024-01-15"
paper_check.​source_record_typestring(PaperCheckSourceRecordType)required

Type of the source record (e.g., 'direct_expense', 'vendor_payment', 'customer_refund')

Enum"direct_expense""vendor_payment""vendor_prepayment""customer_refund"
Example: "vendor_payment"
paper_check.​source_record_idinteger(Source Record Id)required

ID of the source record (e.g., the VendorPayment ID)

Example: 789
paper_check.​source_record_numberinteger(Source Record Number)required

Number of the source record (e.g., vendor payment number)

Example: 1001
paper_check.​check_numberstring(Check Number)required

The check number printed on the physical check

Example: "10542"
paper_check.​company_idinteger(Company Id)required

ID of the company issuing the check

Example: 456
paper_check.​company_namestring(Company Name)required

Name of the company issuing the check

Example: "Acme Corporation"
paper_check.​memostring(Memo)required

Memo or description for the check

Example: "Payment for Invoice #1234"
paper_check.​amountAmount (number) or Amount (string)(Amount)required

Amount of the check

Example: "1500.00"
Any of:

Amount of the check

number(Amount)
paper_check.​currency_iso_4217_codestring(SystemCurrencies)required

ISO 4217 currency code for the check amount

Enum"AED""AFN""ALL""AMD""ANG""AOA""ARS""AUD""AWG""AZN"
Example: "USD"
paper_check.​account_numberinteger(Account Number)required

Number of the bank account the check is drawn from

Example: 321
paper_check.​account_namestring(Account Name)required

Name of the bank account the check is drawn from

Example: "Operating Account"
paper_check.​payee_namestring or null(Payee Name)

Name of the payee (vendor or customer receiving the check)

Example: "ABC Suppliers Inc."
paper_check.​customer_idinteger or null(Customer Id)

ID of the customer if this is a customer refund check

Example: 567
paper_check.​customer_namestring or null(Customer Name)

Name of the customer if this is a customer refund check

Example: "John Smith"
paper_check.​vendor_idinteger or null(Vendor Id)

ID of the vendor if this is a vendor payment check

Example: 890
paper_check.​vendor_namestring or null(Vendor Name)

Name of the vendor if this is a vendor payment check

Example: "ABC Suppliers Inc."
paper_check.​record_statusstring(Record Status)required

Status of the paper check: 'not_printed' (queued), 'printed', or 'archived'

Enum"printed""not_printed""archived"
Example: "printed"
pdf_contentstring(Pdf Content)required

Base64-encoded PDF content of the printed check

Response
application/json
{ "paper_check": { "id": 12345, "created_at": "2024-01-15", "transaction_date": "2024-01-15", "source_record_type": "direct_expense", "source_record_id": 789, "source_record_number": 1001, "check_number": "10542", "company_id": 456, "company_name": "Acme Corporation", "memo": "Payment for Invoice #1234", "amount": "1500.00", "currency_iso_4217_code": "AED", "account_number": 321, "account_name": "Operating Account", "payee_name": "ABC Suppliers Inc.", "customer_id": 567, "customer_name": "John Smith", "vendor_id": 890, "vendor_name": "ABC Suppliers Inc.", "record_status": "printed" }, "pdf_content": "string" }

Request

Create paper checks for transactions that will be printed later in a batch.

This endpoint creates paper check records with status NOT_PRINTED. These checks can then be printed together using the PUT /print-batch/ endpoint.

When to use:

  • When you want to accumulate checks before printing
  • For batch check printing workflows
  • When check numbers need to be assigned in sequence

Alternative: Use POST /print-now/ to print a single check immediately.

Workflow:

  1. Queue checks: POST /print-later/ with transaction IDs
  2. Review queued checks: GET /paper-checks/?record_status=not_printed
  3. Print batch: PUT /print-batch/ with paper check IDs

Returns: List of created paper checks with status 'not_printed'.

Bodyapplication/jsonrequired
transaction_idsArray of integers(Transaction Ids)required

List of transaction IDs to create paper checks for. Each transaction must be a printable type and must not already have an active paper check.

Example: [12345,12346,12347]
curl -i -X POST \
  https://api.dualentry.io/public/v1/paper-checks/print-later/ \
  -H 'Content-Type: application/json' \
  -d '{
    "transaction_ids": [
      12345,
      12346,
      12347
    ]
  }'

Responses

OK

Bodyapplication/jsonArray [
idinteger(Id)required

Unique identifier for the paper check

Example: 12345
created_atstring(date-time)(Created At)required

Date when the paper check was created (returned as date only)

Example: "2024-01-15"
transaction_datestring(date)(Transaction Date)required

Date of the underlying transaction

Example: "2024-01-15"
source_record_typestring(PaperCheckSourceRecordType)required

Type of the source record (e.g., 'direct_expense', 'vendor_payment', 'customer_refund')

Enum"direct_expense""vendor_payment""vendor_prepayment""customer_refund"
Example: "vendor_payment"
source_record_idinteger(Source Record Id)required

ID of the source record (e.g., the VendorPayment ID)

Example: 789
source_record_numberinteger(Source Record Number)required

Number of the source record (e.g., vendor payment number)

Example: 1001
check_numberstring(Check Number)required

The check number printed on the physical check

Example: "10542"
company_idinteger(Company Id)required

ID of the company issuing the check

Example: 456
company_namestring(Company Name)required

Name of the company issuing the check

Example: "Acme Corporation"
memostring(Memo)required

Memo or description for the check

Example: "Payment for Invoice #1234"
amountAmount (number) or Amount (string)(Amount)required

Amount of the check

Example: "1500.00"
Any of:

Amount of the check

number(Amount)
currency_iso_4217_codestring(SystemCurrencies)required

ISO 4217 currency code for the check amount

Enum"AED""AFN""ALL""AMD""ANG""AOA""ARS""AUD""AWG""AZN"
Example: "USD"
account_numberinteger(Account Number)required

Number of the bank account the check is drawn from

Example: 321
account_namestring(Account Name)required

Name of the bank account the check is drawn from

Example: "Operating Account"
payee_namestring or null(Payee Name)

Name of the payee (vendor or customer receiving the check)

Example: "ABC Suppliers Inc."
customer_idinteger or null(Customer Id)

ID of the customer if this is a customer refund check

Example: 567
customer_namestring or null(Customer Name)

Name of the customer if this is a customer refund check

Example: "John Smith"
vendor_idinteger or null(Vendor Id)

ID of the vendor if this is a vendor payment check

Example: 890
vendor_namestring or null(Vendor Name)

Name of the vendor if this is a vendor payment check

Example: "ABC Suppliers Inc."
record_statusstring(Record Status)required

Status of the paper check: 'not_printed' (queued), 'printed', or 'archived'

Enum"printed""not_printed""archived"
Example: "printed"
]
Response
application/json
[ { "id": 12345, "created_at": "2024-01-15", "transaction_date": "2024-01-15", "source_record_type": "direct_expense", "source_record_id": 789, "source_record_number": 1001, "check_number": "10542", "company_id": 456, "company_name": "Acme Corporation", "memo": "Payment for Invoice #1234", "amount": "1500.00", "currency_iso_4217_code": "AED", "account_number": 321, "account_name": "Operating Account", "payee_name": "ABC Suppliers Inc.", "customer_id": 567, "customer_name": "John Smith", "vendor_id": 890, "vendor_name": "ABC Suppliers Inc.", "record_status": "printed" } ]

Request

Print multiple queued paper checks in a batch.

This endpoint prints all specified checks, assigns sequential check numbers, and returns a merged PDF containing all checks.

Prerequisites:

  • All specified checks must have status 'not_printed'
  • Use POST /print-later/ to queue checks first

Check number assignment: Check numbers are assigned sequentially starting from first_check_number. The order of paper_check_ids in the request determines:

  1. The order of checks in the PDF
  2. The order of check number assignment

Example: If first_check_number=1001 and you print 3 checks, they will be numbered 1001, 1002, 1003.

Returns:

  • pdf_content: Base64-encoded PDF with all checks
  • printed_checks: List showing each check ID and its assigned check number
  • total_printed: Count of checks printed
Bodyapplication/jsonrequired
paper_check_idsArray of integers(Paper Check Ids)required

List of paper check IDs to print. Checks must have status 'not_printed'. The order of IDs determines the order of checks in the PDF and check number assignment.

Example: [101,102,103]
first_check_numberinteger(First Check Number)>= 1

Starting check number for this batch. Subsequent checks will be numbered sequentially.

Default 1
Example: 10001
template_idinteger or null(Template Id)

Optional ID of a PaperCheckTemplate to use for formatting. If not provided, the default template will be used.

Example: 1
curl -i -X PUT \
  https://api.dualentry.io/public/v1/paper-checks/print-batch/ \
  -H 'Content-Type: application/json' \
  -d '{
    "paper_check_ids": [
      101,
      102,
      103
    ],
    "first_check_number": 10001,
    "template_id": 1
  }'

Responses

OK

Bodyapplication/json
pdf_contentstring(Pdf Content)required

Base64-encoded PDF content containing all printed checks

printed_checksArray of objects(Printed Checks)required

List of checks that were printed with their assigned check numbers

printed_checks[].​paper_check_idinteger(Paper Check Id)required

ID of the paper check that was printed

Example: 12345
printed_checks[].​check_numberstring(Check Number)required

The check number assigned to this check

Example: "10542"
total_printedinteger(Total Printed)required

Total number of checks printed in this batch

Example: 5
Response
application/json
{ "pdf_content": "string", "printed_checks": [ {} ], "total_printed": 5 }