# DualEntry Public API Version: 1.0.0 ## Servers Production environment ``` https://api.dualentry.com ``` Development environment (for testing) ``` https://api-dev.dualentry.com ``` ## Download OpenAPI description [DualEntry Public API](https://docs.dualentry.com/_bundle/resources.yaml) ## Health Monitor API availability and service status. Use these endpoints to verify connectivity and check if the API is operational. ### API Health Check - [GET /public/health/](https://docs.dualentry.com/resources/health/core_api_public_public_router_health_check.md): Verify that the DualEntry Public API is operational and accepting requests. This endpoint provides a quick way to: - Confirm API connectivity - Validate that your API key is working correctly - Check service availability for monitoring and uptime tracking Response includes: - status: Current health status of the API - timestamp: Current server time in ISO 8601 format Note: This endpoint is rate-limited like all other API endpoints. For high-frequency monitoring, consider using a dedicated monitoring service or increasing your rate limit. ## Accounts Manage your chart of accounts. Create and maintain the accounts used to categorize financial transactions, including assets, liabilities, equity, revenue, and expenses. ### List accounts - [GET /public/v1/accounts/](https://docs.dualentry.com/resources/accounts/core_api_public_accounts_list_accounts.md): Retrieve a paginated list of chart of accounts with filtering and search capabilities. ### Get account - [GET /public/v1/accounts/{account_number}/](https://docs.dualentry.com/resources/accounts/core_api_public_accounts_get_account.md): Retrieve a specific account by number with all related data including company access. ## Items Manage products and services. Define items that appear on invoices and bills, including pricing, descriptions, and associated accounts for revenue or expense tracking. ### List Items - [GET /public/v1/items/](https://docs.dualentry.com/resources/items/core_api_public_items_list_items.md) ### Create Item - [POST /public/v1/items/](https://docs.dualentry.com/resources/items/core_api_public_items_create_item.md) ### Get Item - [GET /public/v1/items/{item_id}/](https://docs.dualentry.com/resources/items/core_api_public_items_get_item.md) ### Update Item - [PUT /public/v1/items/{item_id}/](https://docs.dualentry.com/resources/items/core_api_public_items_update_item.md) ### Delete Item - [DELETE /public/v1/items/{item_id}/](https://docs.dualentry.com/resources/items/core_api_public_items_delete_item.md) ## Classifications Manage custom classification dimensions. Create and maintain classification categories (e.g., departments, locations, projects) used to tag and analyze transactions across multiple dimensions. ### List Classifications - [GET /public/v1/classifications/](https://docs.dualentry.com/resources/classifications/core_api_public_classifications_list_classifications.md) ### Create Classification - [POST /public/v1/classifications/](https://docs.dualentry.com/resources/classifications/core_api_public_classifications_create_classification.md) ### Get Classification - [GET /public/v1/classifications/{classification_id}/](https://docs.dualentry.com/resources/classifications/core_api_public_classifications_get_classification.md) ### Update Classification - [PUT /public/v1/classifications/{classification_id}/](https://docs.dualentry.com/resources/classifications/core_api_public_classifications_update_classification.md) ### Delete Classification - [DELETE /public/v1/classifications/{classification_id}/](https://docs.dualentry.com/resources/classifications/core_api_public_classifications_delete_classification.md) ## 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. ### List Classification Lines - [GET /public/v1/classifications-lines/](https://docs.dualentry.com/resources/classifications-lines/core_api_public_classifications_list_classification_lines.md) ## Companies Access and manage company information. Retrieve details about your organization including legal name, tax identifiers, addresses, and accounting preferences. ### List companies - [GET /public/v1/companies/](https://docs.dualentry.com/resources/companies/core_api_public_companies_list_companies.md): Retrieve a paginated list of companies with filtering and search capabilities. ### Get company - [GET /public/v1/companies/{company_id}/](https://docs.dualentry.com/resources/companies/core_api_public_companies_get_company.md): Retrieve a specific company by ID with all related data including company access. ## Journal Entries Create and manage manual journal entries. Record direct debits and credits to accounts for adjustments, accruals, reclassifications, and other accounting transactions. ### List JournalEntry records - [GET /public/v1/journal-entries/](https://docs.dualentry.com/resources/journal-entries/list_journalentry_records.md): Retrieve a paginated list of JournalEntry records with filtering and ordering options. ### Create JournalEntry record - [POST /public/v1/journal-entries/](https://docs.dualentry.com/resources/journal-entries/create_journalentry_record.md): Create a new JournalEntry record with the provided data. Validates all required fields and business rules. ### Get JournalEntry record - [GET /public/v1/journal-entries/{record_number}/](https://docs.dualentry.com/resources/journal-entries/get_journalentry_record.md): Retrieve a specific JournalEntry record by number with all related data. ### Update JournalEntry record - [PUT /public/v1/journal-entries/{record_number}/](https://docs.dualentry.com/resources/journal-entries/update_journalentry_record.md): Update an existing JournalEntry record with the provided data. Validates all required fields and business rules. ### Create JournalEntry record attachments - [POST /public/v1/journal-entries/{record_number}/attachments/](https://docs.dualentry.com/resources/journal-entries/create_journalentry_record_attachments.md): Create a new JournalEntry record attachments with the provided data. Validates all required fields and business rules. ## 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. ### List RecurringJournalEntry records - [GET /public/v1/recurring/journal-entries/](https://docs.dualentry.com/resources/recurring-journal-entries/list_recurringjournalentry_records.md): Retrieve a paginated list of RecurringJournalEntry records with filtering and ordering options. ### Create RecurringJournalEntry record - [POST /public/v1/recurring/journal-entries/](https://docs.dualentry.com/resources/recurring-journal-entries/create_recurringjournalentry_record.md): Create a new Recurring record with the provided data. Validates all required fields and business rules. ### Get RecurringJournalEntry record - [GET /public/v1/recurring/journal-entries/{record_number}/](https://docs.dualentry.com/resources/recurring-journal-entries/get_recurringjournalentry_record.md): Retrieve a specific Recurring record by number with all related data. ### Update RecurringJournalEntry record - [PUT /public/v1/recurring/journal-entries/{record_number}/](https://docs.dualentry.com/resources/recurring-journal-entries/update_recurringjournalentry_record.md): Update an existing RecurringJournalEntry record with the provided data. Validates all required fields and business rules. ### Delete RecurringJournalEntry record - [DELETE /public/v1/recurring/journal-entries/{record_number}/](https://docs.dualentry.com/resources/recurring-journal-entries/delete_recurringjournalentry_record.md): Delete a RecurringJournalEntry record. ## Invoices Manage sales invoices. Create and track invoices sent to customers for goods or services rendered, including line items, taxes, discounts, and payment status. ### List Invoice records - [GET /public/v1/invoices/](https://docs.dualentry.com/resources/invoices/list_invoice_records.md): Retrieve a paginated list of Invoice records with filtering and ordering options. ### Create Invoice record - [POST /public/v1/invoices/](https://docs.dualentry.com/resources/invoices/create_invoice_record.md): Create a new Invoice record with the provided data. Validates all required fields and business rules. ### Get Invoice record - [GET /public/v1/invoices/{record_number}/](https://docs.dualentry.com/resources/invoices/get_invoice_record.md): Retrieve a specific Invoice record by number with all related data. ### Update Invoice record - [PUT /public/v1/invoices/{record_number}/](https://docs.dualentry.com/resources/invoices/update_invoice_record.md): Update an existing Invoice record with the provided data. Validates all required fields and business rules. ### Create Invoice record attachments - [POST /public/v1/invoices/{record_number}/attachments/](https://docs.dualentry.com/resources/invoices/create_invoice_record_attachments.md): Create a new Invoice record attachments with the provided data. Validates all required fields and business rules. ## 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. ### List SalesOrder records - [GET /public/v1/sales-orders/](https://docs.dualentry.com/resources/sales-orders/list_salesorder_records.md): Retrieve a paginated list of SalesOrder records with filtering and ordering options. ### Create SalesOrder record - [POST /public/v1/sales-orders/](https://docs.dualentry.com/resources/sales-orders/create_salesorder_record.md): Create a new SalesOrder record with the provided data. Validates all required fields and business rules. ### Get SalesOrder record - [GET /public/v1/sales-orders/{record_number}/](https://docs.dualentry.com/resources/sales-orders/get_salesorder_record.md): Retrieve a specific SalesOrder record by number with all related data. ### Update SalesOrder record - [PUT /public/v1/sales-orders/{record_number}/](https://docs.dualentry.com/resources/sales-orders/update_salesorder_record.md): Update an existing SalesOrder record with the provided data. Validates all required fields and business rules. ### Create SalesOrder record attachments - [POST /public/v1/sales-orders/{record_number}/attachments/](https://docs.dualentry.com/resources/sales-orders/create_salesorder_record_attachments.md): Create a new SalesOrder record attachments with the provided data. Validates all required fields and business rules. ## Recurring Invoices Automate recurring billing. Set up and manage templates for invoices that are automatically generated on a regular schedule (e.g., monthly subscriptions). ### List RecurringInvoice records - [GET /public/v1/recurring/invoices/](https://docs.dualentry.com/resources/recurring-invoices/list_recurringinvoice_records.md): Retrieve a paginated list of RecurringInvoice records with filtering and ordering options. ### Create RecurringInvoice record - [POST /public/v1/recurring/invoices/](https://docs.dualentry.com/resources/recurring-invoices/create_recurringinvoice_record.md): Create a new Recurring record with the provided data. Validates all required fields and business rules. ### Get RecurringInvoice record - [GET /public/v1/recurring/invoices/{record_number}/](https://docs.dualentry.com/resources/recurring-invoices/get_recurringinvoice_record.md): Retrieve a specific Recurring record by number with all related data. ### Update RecurringInvoice record - [PUT /public/v1/recurring/invoices/{record_number}/](https://docs.dualentry.com/resources/recurring-invoices/update_recurringinvoice_record.md): Update an existing RecurringInvoice record with the provided data. Validates all required fields and business rules. ### Delete RecurringInvoice record - [DELETE /public/v1/recurring/invoices/{record_number}/](https://docs.dualentry.com/resources/recurring-invoices/delete_recurringinvoice_record.md): Delete a RecurringInvoice record. ## 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. ### List Customers - [GET /public/v1/customers/](https://docs.dualentry.com/resources/customers/core_api_public_customers_list_customers.md) ### Create Customer - [POST /public/v1/customers/](https://docs.dualentry.com/resources/customers/core_api_public_customers_create_customer.md) ### Get Customer - [GET /public/v1/customers/{customer_id}/](https://docs.dualentry.com/resources/customers/core_api_public_customers_get_customer.md) ### Update Customer - [PUT /public/v1/customers/{customer_id}/](https://docs.dualentry.com/resources/customers/core_api_public_customers_update_customer.md) ### Delete Customer - [DELETE /public/v1/customers/{customer_id}/](https://docs.dualentry.com/resources/customers/core_api_public_customers_delete_customer.md) ## Customer Payments Record and manage customer payments. Track payments received from customers and apply them to outstanding invoices, including partial payments and overpayments. ### List CustomerPayment records - [GET /public/v1/customer-payments/](https://docs.dualentry.com/resources/customer-payments/list_customerpayment_records.md): Retrieve a paginated list of CustomerPayment records with filtering and ordering options. ### Create CustomerPayment record - [POST /public/v1/customer-payments/](https://docs.dualentry.com/resources/customer-payments/create_customerpayment_record.md): Create a new CustomerPayment record with the provided data. Validates all required fields and business rules. ### Get CustomerPayment record - [GET /public/v1/customer-payments/{record_number}/](https://docs.dualentry.com/resources/customer-payments/get_customerpayment_record.md): Retrieve a specific CustomerPayment record by number with all related data. ### Update CustomerPayment record - [PUT /public/v1/customer-payments/{record_number}/](https://docs.dualentry.com/resources/customer-payments/update_customerpayment_record.md): Update an existing CustomerPayment record with the provided data. Validates all required fields and business rules. ## Customer Prepayments Track advance payments from customers. Access prepayments received before goods or services are delivered, which can be applied to future invoices. ### List CustomerPrepayment records - [GET /public/v1/customer-prepayments/](https://docs.dualentry.com/resources/customer-prepayments/list_customerprepayment_records.md): Retrieve a paginated list of CustomerPrepayment records with filtering and ordering options. ### Create CustomerPrepayment record - [POST /public/v1/customer-prepayments/](https://docs.dualentry.com/resources/customer-prepayments/create_customerprepayment_record.md): Create a new CustomerPrepayment record with the provided data. Validates all required fields and business rules. ### Get CustomerPrepayment record - [GET /public/v1/customer-prepayments/{record_number}/](https://docs.dualentry.com/resources/customer-prepayments/get_customerprepayment_record.md): Retrieve a specific CustomerPrepayment record by number with all related data. ### Update CustomerPrepayment record - [PUT /public/v1/customer-prepayments/{record_number}/](https://docs.dualentry.com/resources/customer-prepayments/update_customerprepayment_record.md): Update an existing CustomerPrepayment record with the provided data. Validates all required fields and business rules. ### Create CustomerPrepayment record attachments - [POST /public/v1/customer-prepayments/{record_number}/attachments/](https://docs.dualentry.com/resources/customer-prepayments/create_customerprepayment_record_attachments.md): Create a new CustomerPrepayment record attachments with the provided data. Validates all required fields and business rules. ## Customer Prepayment Applications Apply customer prepayments and credits to invoices. Record applications of prepayments or credit memos to reduce invoice balances. ### List CustomerPrepaymentApplication records - [GET /public/v1/customer-prepayment-applications/](https://docs.dualentry.com/resources/customer-prepayment-applications/list_customerprepaymentapplication_records.md): Retrieve a paginated list of CustomerPrepaymentApplication records with filtering and ordering options. ### Create CustomerPrepaymentApplication record - [POST /public/v1/customer-prepayment-applications/](https://docs.dualentry.com/resources/customer-prepayment-applications/create_customerprepaymentapplication_record.md): Create a new CustomerPrepaymentApplication record with the provided data. Validates all required fields and business rules. ### Get CustomerPrepaymentApplication record - [GET /public/v1/customer-prepayment-applications/{record_number}/](https://docs.dualentry.com/resources/customer-prepayment-applications/get_customerprepaymentapplication_record.md): Retrieve a specific CustomerPrepaymentApplication record by number with all related data. ### Update CustomerPrepaymentApplication record - [PUT /public/v1/customer-prepayment-applications/{record_number}/](https://docs.dualentry.com/resources/customer-prepayment-applications/update_customerprepaymentapplication_record.md): Update an existing CustomerPrepaymentApplication record with the provided data. Validates all required fields and business rules. ### Create CustomerPrepaymentApplication record attachments - [POST /public/v1/customer-prepayment-applications/{record_number}/attachments/](https://docs.dualentry.com/resources/customer-prepayment-applications/create_customerprepaymentapplication_record_attachments.md): Create a new CustomerPrepaymentApplication record attachments with the provided data. Validates all required fields and business rules. ## 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. ### List CustomerDeposit records - [GET /public/v1/customer-deposits/](https://docs.dualentry.com/resources/customer-deposits/list_customerdeposit_records.md): Retrieve a paginated list of CustomerDeposit records with filtering and ordering options. ### Create CustomerDeposit record - [POST /public/v1/customer-deposits/](https://docs.dualentry.com/resources/customer-deposits/create_customerdeposit_record.md): Create a new CustomerDeposit record with the provided data. Validates all required fields and business rules. ### Get CustomerDeposit record - [GET /public/v1/customer-deposits/{record_number}/](https://docs.dualentry.com/resources/customer-deposits/get_customerdeposit_record.md): Retrieve a specific CustomerDeposit record by number with all related data. ### Update CustomerDeposit record - [PUT /public/v1/customer-deposits/{record_number}/](https://docs.dualentry.com/resources/customer-deposits/update_customerdeposit_record.md): Update an existing CustomerDeposit record with the provided data. Validates all required fields and business rules. ### Create CustomerDeposit record attachments - [POST /public/v1/customer-deposits/{record_number}/attachments/](https://docs.dualentry.com/resources/customer-deposits/create_customerdeposit_record_attachments.md): Create a new CustomerDeposit record attachments with the provided data. Validates all required fields and business rules. ## Customer Refunds Process and track customer refunds. Record refunds issued to customers for overpayments, returns, or cancelled transactions. ### List CustomerRefund records - [GET /public/v1/customer-refunds/](https://docs.dualentry.com/resources/customer-refunds/list_customerrefund_records.md): Retrieve a paginated list of CustomerRefund records with filtering and ordering options. ### Create CustomerRefund record - [POST /public/v1/customer-refunds/](https://docs.dualentry.com/resources/customer-refunds/create_customerrefund_record.md): Create a new CustomerRefund record with the provided data. Validates all required fields and business rules. ### Get CustomerRefund record - [GET /public/v1/customer-refunds/{record_number}/](https://docs.dualentry.com/resources/customer-refunds/get_customerrefund_record.md): Retrieve a specific CustomerRefund record by number with all related data. ### Update CustomerRefund record - [PUT /public/v1/customer-refunds/{record_number}/](https://docs.dualentry.com/resources/customer-refunds/update_customerrefund_record.md): Update an existing CustomerRefund record with the provided data. Validates all required fields and business rules. ### Create CustomerRefund record attachments - [POST /public/v1/customer-refunds/{record_number}/attachments/](https://docs.dualentry.com/resources/customer-refunds/create_customerrefund_record_attachments.md): Create a new CustomerRefund record attachments with the provided data. Validates all required fields and business rules. ## 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. ### List CustomerCredit records - [GET /public/v1/customer-credits/](https://docs.dualentry.com/resources/customer-credits/list_customercredit_records.md): Retrieve a paginated list of CustomerCredit records with filtering and ordering options. ### Create CustomerCredit record - [POST /public/v1/customer-credits/](https://docs.dualentry.com/resources/customer-credits/create_customercredit_record.md): Create a new CustomerCredit record with the provided data. Validates all required fields and business rules. ### Get CustomerCredit record - [GET /public/v1/customer-credits/{record_number}/](https://docs.dualentry.com/resources/customer-credits/get_customercredit_record.md): Retrieve a specific CustomerCredit record by number with all related data. ### Update CustomerCredit record - [PUT /public/v1/customer-credits/{record_number}/](https://docs.dualentry.com/resources/customer-credits/update_customercredit_record.md): Update an existing CustomerCredit record with the provided data. Validates all required fields and business rules. ## 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. ### List CashSale records - [GET /public/v1/cash-sales/](https://docs.dualentry.com/resources/cash-sales/list_cashsale_records.md): Retrieve a paginated list of CashSale records with filtering and ordering options. ### Create CashSale record - [POST /public/v1/cash-sales/](https://docs.dualentry.com/resources/cash-sales/create_cashsale_record.md): Create a new CashSale record with the provided data. Validates all required fields and business rules. ### Get CashSale record - [GET /public/v1/cash-sales/{record_number}/](https://docs.dualentry.com/resources/cash-sales/get_cashsale_record.md): Retrieve a specific CashSale record by number with all related data. ### Update CashSale record - [PUT /public/v1/cash-sales/{record_number}/](https://docs.dualentry.com/resources/cash-sales/update_cashsale_record.md): Update an existing CashSale record with the provided data. Validates all required fields and business rules. ### Create CashSale record attachments - [POST /public/v1/cash-sales/{record_number}/attachments/](https://docs.dualentry.com/resources/cash-sales/create_cashsale_record_attachments.md): Create a new CashSale record attachments with the provided data. Validates all required fields and business rules. ## 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. ### List Bill records - [GET /public/v1/bills/](https://docs.dualentry.com/resources/bills/list_bill_records.md): Retrieve a paginated list of Bill records with filtering and ordering options. ### Create Bill record - [POST /public/v1/bills/](https://docs.dualentry.com/resources/bills/create_bill_record.md): Create a new Bill record with the provided data. Validates all required fields and business rules. ### Get Bill record - [GET /public/v1/bills/{record_number}/](https://docs.dualentry.com/resources/bills/get_bill_record.md): Retrieve a specific Bill record by number with all related data. ### Update Bill record - [PUT /public/v1/bills/{record_number}/](https://docs.dualentry.com/resources/bills/update_bill_record.md): Update an existing Bill record with the provided data. Validates all required fields and business rules. ### Create Bill record attachments - [POST /public/v1/bills/{record_number}/attachments/](https://docs.dualentry.com/resources/bills/create_bill_record_attachments.md): Create a new Bill record attachments with the provided data. Validates all required fields and business rules. ## Recurring Bills Automate recurring expenses. Configure templates for bills that repeat on a regular basis (e.g., monthly rent, subscriptions) to streamline expense tracking. ### List RecurringBill records - [GET /public/v1/recurring/bills/](https://docs.dualentry.com/resources/recurring-bills/list_recurringbill_records.md): Retrieve a paginated list of RecurringBill records with filtering and ordering options. ### Create RecurringBill record - [POST /public/v1/recurring/bills/](https://docs.dualentry.com/resources/recurring-bills/create_recurringbill_record.md): Create a new Recurring record with the provided data. Validates all required fields and business rules. ### Get RecurringBill record - [GET /public/v1/recurring/bills/{record_number}/](https://docs.dualentry.com/resources/recurring-bills/get_recurringbill_record.md): Retrieve a specific Recurring record by number with all related data. ### Update RecurringBill record - [PUT /public/v1/recurring/bills/{record_number}/](https://docs.dualentry.com/resources/recurring-bills/update_recurringbill_record.md): Update an existing RecurringBill record with the provided data. Validates all required fields and business rules. ### Delete RecurringBill record - [DELETE /public/v1/recurring/bills/{record_number}/](https://docs.dualentry.com/resources/recurring-bills/delete_recurringbill_record.md): Delete a RecurringBill record. ## Purchase Orders Create and track purchase orders. Manage formal requests to vendors for goods or services, including approval workflows, receiving tracking, and bill matching. ### List PurchaseOrder records - [GET /public/v1/purchase-orders/](https://docs.dualentry.com/resources/purchase-orders/list_purchaseorder_records.md): Retrieve a paginated list of PurchaseOrder records with filtering and ordering options. ### Create PurchaseOrder record - [POST /public/v1/purchase-orders/](https://docs.dualentry.com/resources/purchase-orders/create_purchaseorder_record.md): Create a new PurchaseOrder record with the provided data. Validates all required fields and business rules. ### Get PurchaseOrder record - [GET /public/v1/purchase-orders/{record_number}/](https://docs.dualentry.com/resources/purchase-orders/get_purchaseorder_record.md): Retrieve a specific PurchaseOrder record by number with all related data. ### Update PurchaseOrder record - [PUT /public/v1/purchase-orders/{record_number}/](https://docs.dualentry.com/resources/purchase-orders/update_purchaseorder_record.md): Update an existing PurchaseOrder record with the provided data. Validates all required fields and business rules. ### Create PurchaseOrder record attachments - [POST /public/v1/purchase-orders/{record_number}/attachments/](https://docs.dualentry.com/resources/purchase-orders/create_purchaseorder_record_attachments.md): Create a new PurchaseOrder record attachments with the provided data. Validates all required fields and business rules. ## 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. ### List Vendors - [GET /public/v1/vendors/](https://docs.dualentry.com/resources/vendors/core_api_public_vendors_list_vendors.md) ### Create Vendor - [POST /public/v1/vendors/](https://docs.dualentry.com/resources/vendors/core_api_public_vendors_create_vendor.md) ### Get Vendor - [GET /public/v1/vendors/{vendor_id}/](https://docs.dualentry.com/resources/vendors/core_api_public_vendors_get_vendor.md) ### Update Vendor - [PUT /public/v1/vendors/{vendor_id}/](https://docs.dualentry.com/resources/vendors/core_api_public_vendors_update_vendor.md) ### Delete Vendor - [DELETE /public/v1/vendors/{vendor_id}/](https://docs.dualentry.com/resources/vendors/core_api_public_vendors_delete_vendor.md) ## 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. ### List VendorPayment records - [GET /public/v1/vendor-payments/](https://docs.dualentry.com/resources/vendor-payments/list_vendorpayment_records.md): Retrieve a paginated list of VendorPayment records with filtering and ordering options. ### Create VendorPayment record - [POST /public/v1/vendor-payments/](https://docs.dualentry.com/resources/vendor-payments/create_vendorpayment_record.md): Create a new VendorPayment record with the provided data. Validates all required fields and business rules. ### Get VendorPayment record - [GET /public/v1/vendor-payments/{record_number}/](https://docs.dualentry.com/resources/vendor-payments/get_vendorpayment_record.md): Retrieve a specific VendorPayment record by number with all related data. ### Update VendorPayment record - [PUT /public/v1/vendor-payments/{record_number}/](https://docs.dualentry.com/resources/vendor-payments/update_vendorpayment_record.md): Update an existing VendorPayment record with the provided data. Validates all required fields and business rules. ## 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. ### List VendorCredit records - [GET /public/v1/vendor-credits/](https://docs.dualentry.com/resources/vendor-credits/list_vendorcredit_records.md): Retrieve a paginated list of VendorCredit records with filtering and ordering options. ### Create VendorCredit record - [POST /public/v1/vendor-credits/](https://docs.dualentry.com/resources/vendor-credits/create_vendorcredit_record.md): Create a new VendorCredit record with the provided data. Validates all required fields and business rules. ### Get VendorCredit record - [GET /public/v1/vendor-credits/{record_number}/](https://docs.dualentry.com/resources/vendor-credits/get_vendorcredit_record.md): Retrieve a specific VendorCredit record by number with all related data. ### Update VendorCredit record - [PUT /public/v1/vendor-credits/{record_number}/](https://docs.dualentry.com/resources/vendor-credits/update_vendorcredit_record.md): Update an existing VendorCredit record with the provided data. Validates all required fields and business rules. ## Vendor Refunds Process and track vendor refunds. Record refunds received from vendors for overpayments, returns, or cancelled transactions. ### List VendorRefund records - [GET /public/v1/vendor-refunds/](https://docs.dualentry.com/resources/vendor-refunds/list_vendorrefund_records.md): Retrieve a paginated list of VendorRefund records with filtering and ordering options. ### Create VendorRefund record - [POST /public/v1/vendor-refunds/](https://docs.dualentry.com/resources/vendor-refunds/create_vendorrefund_record.md): Create a new VendorRefund record with the provided data. Validates all required fields and business rules. ### Get VendorRefund record - [GET /public/v1/vendor-refunds/{record_number}/](https://docs.dualentry.com/resources/vendor-refunds/get_vendorrefund_record.md): Retrieve a specific VendorRefund record by number with all related data. ### Update VendorRefund record - [PUT /public/v1/vendor-refunds/{record_number}/](https://docs.dualentry.com/resources/vendor-refunds/update_vendorrefund_record.md): Update an existing VendorRefund record with the provided data. Validates all required fields and business rules. ### Create VendorRefund record attachments - [POST /public/v1/vendor-refunds/{record_number}/attachments/](https://docs.dualentry.com/resources/vendor-refunds/create_vendorrefund_record_attachments.md): Create a new VendorRefund record attachments with the provided data. Validates all required fields and business rules. ## Paper Checks Manage paper check printing. Create, queue, and batch print paper checks for vendor payments, direct expenses, vendor prepayments, and customer refunds. ### List paper checks - [GET /public/v1/paper-checks/](https://docs.dualentry.com/resources/paper-checks/core_api_public_paper_checks_list_paper_checks.md): Retrieve a paginated list of paper checks with filtering options. Paper checks represent physical checks that can be printed for vendor payments, direct expenses, vendor prepayments, or customer refunds. Common use cases: - List all queued checks ready to print: ?record_status=not_printed - List checks for a specific vendor: ?vendor_id=123 - List checks within a date range: ?start_date=2024-01-01&end_date=2024-01-31 ### Print check immediately - [POST /public/v1/paper-checks/print-now/](https://docs.dualentry.com/resources/paper-checks/core_api_public_paper_checks_print_now.md): 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. ### Queue checks for later printing - [POST /public/v1/paper-checks/print-later/](https://docs.dualentry.com/resources/paper-checks/core_api_public_paper_checks_print_later.md): 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'. ### Batch print paper checks - [PUT /public/v1/paper-checks/print-batch/](https://docs.dualentry.com/resources/paper-checks/core_api_public_paper_checks_print_batch.md): 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 ### Get paper check - [GET /public/v1/paper-checks/{paper_check_id}/](https://docs.dualentry.com/resources/paper-checks/core_api_public_paper_checks_get_paper_check.md): Retrieve a specific paper check by ID. Returns the full details of a paper check including the associated transaction information, payee details, and current status. ### Archive paper check - [DELETE /public/v1/paper-checks/{paper_check_id}/](https://docs.dualentry.com/resources/paper-checks/core_api_public_paper_checks_delete_paper_check.md): Archive a paper check by setting its status to ARCHIVED. Archiving a paper check removes it from active workflows without deleting it. This allows you to: - Remove a check from the print queue - Create a new check for the same transaction - Maintain audit history Note: Archived checks can still be retrieved via the list and get endpoints by filtering with record_status=archived.