### Install CLI via script Source: https://docs.dualentry.com/developers/guides/cli-quickstart Downloads and installs the CLI using the official shell script. Requires Python 3.11+ pre-installed. ```bash curl -fsSL https://raw.githubusercontent.com/dualentry/dualentry-cli/main/install.sh | sh ``` -------------------------------- ### Retrieve Account Details Source: https://docs.dualentry.com/developers/api/resources-v1/accounts/get-account Examples for making a GET request to the account endpoint using various programming languages. ```go package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api.dualentry.com/public/v1/accounts/{account_number}/" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("X-API-KEY", "") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(string(body)) } ``` ```java HttpResponse response = Unirest.get("https://api.dualentry.com/public/v1/accounts/{account_number}/") .header("X-API-KEY", "") .asString(); ``` ```ruby require 'uri' require 'net/http' url = URI("https://api.dualentry.com/public/v1/accounts/{account_number}/") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["X-API-KEY"] = '' response = http.request(request) puts response.read_body ``` -------------------------------- ### Retrieve Account Details via API Source: https://docs.dualentry.com/developers/api/resources-v2/accounts/get-account Examples for making a GET request to the account endpoint using Go, Java, and Ruby. ```go package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api.dualentry.com/public/v2/accounts/{account_number}/" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("X-API-KEY", "") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(string(body)) } ``` ```java HttpResponse response = Unirest.get("https://api.dualentry.com/public/v2/accounts/{account_number}/") .header("X-API-KEY", "") .asString(); ``` ```ruby require 'uri' require 'net/http' url = URI("https://api.dualentry.com/public/v2/accounts/{account_number}/") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["X-API-KEY"] = '' response = http.request(request) puts response.read_body ``` -------------------------------- ### Get Workflow by ID Request Examples Source: https://docs.dualentry.com/developers/api/resources-v2/approval-policies/get-workflow-by-id Examples of how to perform a GET request to retrieve workflow details using various programming languages. ```curl curl --request GET \ --url https://api.dualentry.com/public/v2/workflows/{workflow_id}/ \ --header 'X-API-KEY: ' ``` ```python import requests url = "https://api.dualentry.com/public/v2/workflows/{workflow_id}/" headers = {"X-API-KEY": ""} response = requests.get(url, headers=headers) print(response.text) ``` ```javascript const options = {method: 'GET', headers: {'X-API-KEY': ''}}; fetch('https://api.dualentry.com/public/v2/workflows/{workflow_id}/', options) .then(res => res.json()) .then(res => console.log(res)) .catch(err => console.error(err)); ``` ```php "https://api.dualentry.com/public/v2/workflows/{workflow_id}/", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "X-API-KEY: " ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } ``` ```go package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api.dualentry.com/public/v2/workflows/{workflow_id}/" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("X-API-KEY", "") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(string(body)) } ``` ```java HttpResponse response = Unirest.get("https://api.dualentry.com/public/v2/workflows/{workflow_id}/") .header("X-API-KEY", "") .asString(); ``` ```ruby require 'uri' require 'net/http' url = URI("https://api.dualentry.com/public/v2/workflows/{workflow_id}/") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["X-API-KEY"] = '' response = http.request(request) puts response.read_body ``` -------------------------------- ### GET /public/v2/vendor-prepayment-applications/ Source: https://docs.dualentry.com/developers/api/resources-v2/vendor-prepayment-applications/list-vendorprepaymentapplication-records Retrieves a paginated list of VendorPrepaymentApplication records. ```APIDOC ## GET /public/v2/vendor-prepayment-applications/ ### Description Retrieve a paginated list of VendorPrepaymentApplication records with filtering and ordering options. ### Method GET ### Endpoint /public/v2/vendor-prepayment-applications/ ``` -------------------------------- ### List various resources Source: https://docs.dualentry.com/developers/guides/cli-quickstart Explore different resource types available within the CLI. ```bash dualentry bills list dualentry customers list dualentry journal-entries list ``` -------------------------------- ### Install CLI via uv Source: https://docs.dualentry.com/developers/guides/cli-quickstart Use this method if you manage Python tooling with uv. Requires Python 3.11+ pre-installed. ```bash uv tool install git+https://github.com/dualentry/dualentry-cli.git ``` -------------------------------- ### Get Inbox Summary API Requests Source: https://docs.dualentry.com/developers/api/resources-v2/inbox/get-inbox-summary Examples of how to fetch the inbox summary using various programming languages and tools. ```curl curl --request GET \ --url https://api.dualentry.com/public/v2/inbox/ \ --header 'X-API-KEY: ' ``` ```python import requests url = "https://api.dualentry.com/public/v2/inbox/" headers = {"X-API-KEY": ""} response = requests.get(url, headers=headers) print(response.text) ``` ```javascript const options = {method: 'GET', headers: {'X-API-KEY': ''}}; fetch('https://api.dualentry.com/public/v2/inbox/', options) .then(res => res.json()) .then(res => console.log(res)) .catch(err => console.error(err)); ``` ```php "https://api.dualentry.com/public/v2/inbox/", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "X-API-KEY: " ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } ``` ```go package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api.dualentry.com/public/v2/inbox/" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("X-API-KEY", "") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(string(body)) } ``` ```java HttpResponse response = Unirest.get("https://api.dualentry.com/public/v2/inbox/") .header("X-API-KEY", "") .asString(); ``` ```ruby require 'uri' require 'net/http' url = URI("https://api.dualentry.com/public/v2/inbox/") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["X-API-KEY"] = '' response = http.request(request) puts response.read_body ``` -------------------------------- ### View top-level help Source: https://docs.dualentry.com/developers/guides/cli-quickstart Display all available commands at the root level of the CLI. ```bash dualentry --help ``` -------------------------------- ### Install CLI via Homebrew Source: https://docs.dualentry.com/developers/guides/cli-quickstart Recommended method for most users as it automatically manages the Python dependency. ```bash brew install dualentry/tap/dualentry ``` -------------------------------- ### List RecurringBill records API requests Source: https://docs.dualentry.com/developers/api/resources-v2/recurring-bills/list-recurringbill-records Examples of how to perform a GET request to the recurring bills endpoint across various programming languages. ```bash curl --request GET \ --url https://api.dualentry.com/public/v2/recurring/bills/ \ --header 'X-API-KEY: ' ``` ```python import requests url = "https://api.dualentry.com/public/v2/recurring/bills/" headers = {"X-API-KEY": ""} response = requests.get(url, headers=headers) print(response.text) ``` ```javascript const options = {method: 'GET', headers: {'X-API-KEY': ''}}; fetch('https://api.dualentry.com/public/v2/recurring/bills/', options) .then(res => res.json()) .then(res => console.log(res)) .catch(err => console.error(err)); ``` ```php "https://api.dualentry.com/public/v2/recurring/bills/", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "X-API-KEY: " ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } ``` ```go package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api.dualentry.com/public/v2/recurring/bills/" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("X-API-KEY", "") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(string(body)) } ``` ```java HttpResponse response = Unirest.get("https://api.dualentry.com/public/v2/recurring/bills/") .header("X-API-KEY", "") .asString(); ``` ```ruby require 'uri' require 'net/http' url = URI("https://api.dualentry.com/public/v2/recurring/bills/") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["X-API-KEY"] = '' response = http.request(request) puts response.read_body ``` -------------------------------- ### Create CustomerRefund via Go Source: https://docs.dualentry.com/developers/api/resources-v1/customer-refunds/create-customerrefund-record Use the net/http package to perform the POST request. ```go package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.dualentry.com/public/v1/customer-refunds/" payload := strings.NewReader("{\n \"date\": \"2023-12-25\",\n \"company_id\": 123,\n \"customer_id\": 123,\n \"account_number\": 123,\n \"exchange_rate\": 123,\n \"custom_fields\": [\n {}\n ],\n \"transaction_date\": \"2023-12-25\",\n \"check_number\": \"\",\n \"memo\": \"\",\n \"items\": [],\n \"attachments\": [],\n \"bank_or_credit_card_amount\": \"0.00\",\n \"payment_method_id\": 123,\n \"record_status\": \"posted\"\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("X-API-KEY", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(string(body)) } ``` -------------------------------- ### List Classification Lines API Request Source: https://docs.dualentry.com/developers/api/resources-v2/classifications-lines/list-classification-lines Examples of how to perform a GET request to the classification lines endpoint across multiple programming languages. ```curl curl --request GET \ --url https://api.dualentry.com/public/v2/classifications-lines/ \ --header 'X-API-KEY: ' ``` ```python import requests url = "https://api.dualentry.com/public/v2/classifications-lines/" headers = {"X-API-KEY": ""} response = requests.get(url, headers=headers) print(response.text) ``` ```javascript const options = {method: 'GET', headers: {'X-API-KEY': ''}}; fetch('https://api.dualentry.com/public/v2/classifications-lines/', options) .then(res => res.json()) .then(res => console.log(res)) .catch(err => console.error(err)); ``` ```php "https://api.dualentry.com/public/v2/classifications-lines/", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "X-API-KEY: " ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } ``` ```go package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api.dualentry.com/public/v2/classifications-lines/" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("X-API-KEY", "") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(string(body)) } ``` ```java HttpResponse response = Unirest.get("https://api.dualentry.com/public/v2/classifications-lines/") .header("X-API-KEY", "") .asString(); ``` ```ruby require 'uri' require 'net/http' url = URI("https://api.dualentry.com/public/v2/classifications-lines/") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["X-API-KEY"] = '' response = http.request(request) puts response.read_body ``` -------------------------------- ### Retrieve Fixed Asset by ID Source: https://docs.dualentry.com/developers/api/resources-v1/fixed-assets/get-fixed-asset Examples for performing a GET request to retrieve a fixed asset record using various programming languages. ```go package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api.dualentry.com/public/v1/fixed-assets/{record_number}/" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("X-API-KEY", "") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(string(body)) } ``` ```java HttpResponse response = Unirest.get("https://api.dualentry.com/public/v1/fixed-assets/{record_number}/") .header("X-API-KEY", "") .asString(); ``` ```ruby require 'uri' require 'net/http' url = URI("https://api.dualentry.com/public/v1/fixed-assets/{record_number}/") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["X-API-KEY"] = '' response = http.request(request) puts response.read_body ``` -------------------------------- ### List CustomerPrepayment records via API Source: https://docs.dualentry.com/developers/api/resources-v2/customer-prepayments/list-customerprepayment-records Examples of how to authenticate and fetch customer prepayment records using various programming languages. ```bash curl --request GET \ --url https://api.dualentry.com/public/v2/customer-prepayments/ \ --header 'X-API-KEY: ' ``` ```python import requests url = "https://api.dualentry.com/public/v2/customer-prepayments/" headers = {"X-API-KEY": ""} response = requests.get(url, headers=headers) print(response.text) ``` ```javascript const options = {method: 'GET', headers: {'X-API-KEY': ''}}; fetch('https://api.dualentry.com/public/v2/customer-prepayments/', options) .then(res => res.json()) .then(res => console.log(res)) .catch(err => console.error(err)); ``` ```php "https://api.dualentry.com/public/v2/customer-prepayments/", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "X-API-KEY: " ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } ``` ```go package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api.dualentry.com/public/v2/customer-prepayments/" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("X-API-KEY", "") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(string(body)) } ``` ```java HttpResponse response = Unirest.get("https://api.dualentry.com/public/v2/customer-prepayments/") .header("X-API-KEY", "") .asString(); ``` ```ruby require 'uri' require 'net/http' url = URI("https://api.dualentry.com/public/v2/customer-prepayments/") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["X-API-KEY"] = '' response = http.request(request) puts response.read_body ``` -------------------------------- ### Retrieve Fixed Asset via API Source: https://docs.dualentry.com/developers/api/resources-v1/fixed-assets/get-fixed-asset Examples of how to perform a GET request to retrieve fixed asset details using various programming languages. ```bash curl --request GET \ --url https://api.dualentry.com/public/v1/fixed-assets/{record_number}/ \ --header 'X-API-KEY: ' ``` ```python import requests url = "https://api.dualentry.com/public/v1/fixed-assets/{record_number}/" headers = {"X-API-KEY": ""} response = requests.get(url, headers=headers) print(response.text) ``` ```javascript const options = {method: 'GET', headers: {'X-API-KEY': ''}}; fetch('https://api.dualentry.com/public/v1/fixed-assets/{record_number}/', options) .then(res => res.json()) .then(res => console.log(res)) .catch(err => console.error(err)); ``` ```php "https://api.dualentry.com/public/v1/fixed-assets/{record_number}/", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "X-API-KEY: " ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } ``` ```go package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api.dualentry.com/public/v1/fixed-assets/{record_number}/" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("X-API-KEY", "") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(string(body)) } ``` ```java HttpResponse response = Unirest.get("https://api.dualentry.com/public/v1/fixed-assets/{record_number}/") .header("X-API-KEY", "") .asString(); ``` ```ruby require 'uri' require 'net/http' url = URI("https://api.dualentry.com/public/v1/fixed-assets/{record_number}/") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["X-API-KEY"] = '' response = http.request(request) puts response.read_body ``` -------------------------------- ### Access resource help Source: https://docs.dualentry.com/developers/guides/cli-quickstart View available flags and subcommands for specific resources. ```bash dualentry invoices --help dualentry journal-entries --help ``` -------------------------------- ### Response Schema Example Source: https://docs.dualentry.com/developers/api/resources-v2/bank-match/check-bank-match-pipeline-progress Example of the JSON response body returned by the endpoint. ```json { "unprocessed": 123, "deterministic_suggested": 123, "awaiting_ai": 123, "ai_in_progress": 123, "ai_suggested": 123, "ai_no_match": 123, "no_match": 123, "excluded": 123, "matched": 123 } ``` -------------------------------- ### POST /public/v2/customer-prepayment-applications/ Source: https://docs.dualentry.com/developers/api/resources-v2/customer-prepayment-applications/create-customerprepaymentapplication-record Create a new CustomerPrepaymentApplication record with the provided data. Validates all required fields and business rules. ```APIDOC ## POST /public/v2/customer-prepayment-applications/ ### Description Create a new CustomerPrepaymentApplication record with the provided data. Validates all required fields and business rules. ### Method POST ### Endpoint /public/v2/customer-prepayment-applications/ ### Request Body - **date** (string, date) - Required - The date of the application. - **company_id** (integer) - Required - The ID of the company. - **currency_iso_4217_code** (string) - Required - The ISO 4217 currency code. - **exchange_rate** (number/string) - Required - The exchange rate. - **custom_fields** (array) - Optional - Custom fields for the record. - **transaction_date** (string, date) - Optional - The transaction date. - **customer_prepayment_number** (integer) - Optional - The customer prepayment number. - **customer_credit_number** (integer) - Optional - The customer credit number. - **memo** (string) - Optional - A memo for the record. - **items** (array) - Optional - List of items associated with the application. - **attachments** (array) - Optional - List of attachments. - **record_status** (string) - Optional - The status of the record (default: posted). ### Response #### Success Response (200) - **attachments** (array) - List of attachments. - **classifications** (array) - List of record classifications. - **transaction_ids** (array) - List of transaction IDs. ``` -------------------------------- ### Retrieve Account Details Source: https://docs.dualentry.com/developers/api/resources-v1/accounts/get-account Use these examples to fetch account data by providing the account number and your API key. ```bash curl --request GET \ --url https://api.dualentry.com/public/v1/accounts/{account_number}/ \ --header 'X-API-KEY: ' ``` ```python import requests url = "https://api.dualentry.com/public/v1/accounts/{account_number}/" headers = {"X-API-KEY": ""} response = requests.get(url, headers=headers) print(response.text) ``` ```javascript const options = {method: 'GET', headers: {'X-API-KEY': ''}}; fetch('https://api.dualentry.com/public/v1/accounts/{account_number}/', options) .then(res => res.json()) .then(res => console.log(res)) .catch(err => console.error(err)); ``` ```php "https://api.dualentry.com/public/v1/accounts/{account_number}/", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "X-API-KEY: " ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } ``` -------------------------------- ### View CLI Configuration Source: https://docs.dualentry.com/developers/guides/cli-reference Displays the current API URL and authentication state. ```bash dualentry config show ``` -------------------------------- ### OpenAPI definition for Get execution state by ID Source: https://docs.dualentry.com/developers/api/resources-v1/approval-policies/get-execution-state-by-id The OpenAPI specification for the GET request to retrieve a workflow execution state by its unique identifier. ```yaml openapi: 3.1.0 info: title: DualEntry Public API version: 1.0.0 description: '' servers: - url: https://api.dualentry.com description: Production environment - url: https://api-dev.dualentry.com description: Development environment (for testing) security: [] tags: - name: Health description: >- Monitor API availability and service status. Use these endpoints to verify connectivity and check if the API is operational. - name: Webhooks description: >- Register webhook endpoints to receive real-time event notifications when records change in your organization. Manage subscriptions, view available topics, and inspect delivery history. - name: Accounts description: >- Manage your chart of accounts. Create and maintain the accounts used to categorize financial transactions, including assets, liabilities, equity, revenue, and expenses. - name: Budgets description: >- Manage financial budgets. Create and track income statement and balance sheet budgets with monthly cell values, actuals comparison, and classification filtering. - name: Companies description: >- Access and manage company information. Retrieve details about your organization including legal name, tax identifiers, addresses, and accounting preferences. - name: Customers description: >- Manage customer records. Create, update, and track customers who purchase goods or services from your organization, including contact information, billing addresses, and payment terms. - name: Contracts description: >- Manage revenue recognition contracts. Create and retrieve contracts with performance obligations, and manage obligation usage for usage-based obligations. - name: Items description: >- Manage products and services. Define items that appear on invoices and bills, including pricing, descriptions, and associated accounts for revenue or expense tracking. - name: Vendors description: >- Manage vendor and supplier records. Track businesses and individuals from whom you purchase goods or services, including contact details, payment terms, and tax information. - name: Journal Entries description: >- Create and manage manual journal entries. Record direct debits and credits to accounts for adjustments, accruals, reclassifications, and other accounting transactions. - name: Invoices description: >- Manage sales invoices. Create and track invoices sent to customers for goods or services rendered, including line items, taxes, discounts, and payment status. - name: Sales Orders description: >- Create and manage sales orders. Track customer orders for goods or services before invoicing, including line items, quantities, fulfillment status, and invoicing progress. - name: Bills description: >- 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. - name: Customer Prepayments description: >- Track advance payments from customers. Access prepayments received before goods or services are delivered, which can be applied to future invoices. - name: Customer Prepayment Applications description: >- Apply customer prepayments and credits to invoices. Record applications of prepayments or credit memos to reduce invoice balances. - name: Customer Deposits description: >- Manage customer deposit transactions. Record and track deposits received from customers as security or partial payment, held in liability accounts until earned or refunded. - name: Customer Refunds description: >- Process and track customer refunds. Record refunds issued to customers for overpayments, returns, or cancelled transactions. - name: Customer Credits description: >- 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. - name: Cash Sales description: >- Record immediate cash sales transactions. Track sales where payment is received at the time of sale, including point-of-sale transactions and cash receipts. - name: Customer Payments description: >- Record and manage customer payments. Track payments received from ``` -------------------------------- ### GET /public/v1/classifications/ Source: https://docs.dualentry.com/developers/api/resources-v1/classifications/list-classifications Retrieves a list of classifications. ```APIDOC ## GET /public/v1/classifications/ ### Description Retrieves a list of all classifications available in the system. ### Method GET ### Endpoint https://api.dualentry.com/public/v1/classifications/ ### Response #### Success Response (200) - **items** (PublicClassificationSchemaOut[]) - A list of classification objects. - **count** (integer) - The total number of classifications returned. #### Response Example { "items": [ { "id": 123, "selections": [ { "id": 123, "name": "", "is_active": true, "parent_id": 123, "parent_name": "" } ], "required_for_records": [], "parent_id": 123, "parent_name": "", "name": "", "created_by": { "actor_type": "", "email": "", "first_name": "", "last_name": "", "timestamp": "2023-11-07T05:31:56Z" }, "updated_by": { "actor_type": "", "email": "", "first_name": "", "last_name": "", "timestamp": "2023-11-07T05:31:56Z" }, "is_active": true } ], "count": 123 } ``` -------------------------------- ### POST /public/v2/items/ Source: https://docs.dualentry.com/developers/api/resources-v2/items/create-item Create an item (product or service) with pricing, description, and revenue or expense accounts. ```APIDOC ## POST /public/v2/items/ ### Description Create an item (product or service) with pricing, description, and revenue or expense accounts. ### Method POST ### Endpoint /public/v2/items/ ### Request Body - **name** (string) - Required - Name of the item (2-256 characters) - **is_active** (boolean) - Required - Whether the item is active - **sku** (string) - Required - SKU of the item (1-64 characters) - **description** (string) - Optional - Description of the item - **item_type** (ItemTypes) - Required - Type of the item - **record_status** (RecordStatus) - Optional - Status of the record - **product_tax_code_id** (integer/null) - Optional - ID for product tax code - **expense_account_id** (integer/null) - Optional - ID for expense account - **income_account_id** (integer/null) - Optional - ID for income account - **deferral_account_id** (integer/null) - Optional - ID for deferral account - **asset_account_id** (integer/null) - Optional - ID for asset account - **discount_account_id** (integer/null) - Optional - ID for discount account - **default_classification_line_ids** (array) - Optional - List of classification line IDs - **default_rev_rec_method** (RecognitionStrategy/null) - Optional - Revenue recognition method - **default_rev_rec_invoice_frequency** (BillingCadence/null) - Optional - Revenue recognition invoice frequency - **default_rev_rec_invoice_interval** (integer/null) - Optional - Revenue recognition invoice interval ### Response #### Success Response (201) - **id** (integer) - The ID of the created item - **name** (string) - The name of the created item - **sku** (string) - The SKU of the created item - **created_by** (AuditActorSchemaOut/null) - Audit information for creation - **updated_by** (AuditActorSchemaOut/null) - Audit information for update ``` -------------------------------- ### Not Found Error Response (404) Source: https://docs.dualentry.com/developers/guides/errors Example response when a requested resource does not exist. ```json { "success": false, "errors": { "__all__": ["Invoice matching query does not exist."] } } ``` -------------------------------- ### GET /public/v2/vendor-credits/ Source: https://docs.dualentry.com/developers/api/resources-v2/vendor-credits/list-vendorcredit-records Retrieves a list of VendorCredit records. ```APIDOC ## GET /public/v2/vendor-credits/ ### Description Retrieve a paginated list of VendorCredit records with filtering and ordering options. ### Method GET ### Endpoint /public/v2/vendor-credits/ ``` -------------------------------- ### GET /public/v2/classifications-lines/ Source: https://docs.dualentry.com/developers/api/resources-v2/classifications-lines/list-classification-lines Retrieves a list of all classification lines. ```APIDOC ## GET /public/v2/classifications-lines/ ### Description Retrieves a list of classification lines available in the system. ### Method GET ### Endpoint https://api.dualentry.com/public/v2/classifications-lines/ ### Response #### Success Response (200) - **items** (PublicClassificationLineSchemaOut[]) - A list of classification line objects. - **count** (integer) - The total number of items returned. #### Response Example { "items": [ { "id": 123, "name": "", "is_active": true, "classification_id": 123, "classification_name": "" } ], "count": 123 } ``` -------------------------------- ### POST /public/v1/items/ Source: https://docs.dualentry.com/developers/api/resources-v1/items/create-item Create an item (product or service) with pricing, description, and revenue or expense accounts. ```APIDOC ## POST /public/v1/items/ ### Description Create an item (product or service) with pricing, description, and revenue or expense accounts. ### Method POST ### Endpoint /public/v1/items/ ### Request Body - **name** (string) - Required - Name of the item (2-256 characters) - **is_active** (boolean) - Required - Whether the item is active - **sku** (string) - Required - SKU of the item (1-64 characters) - **item_type** (ItemTypes) - Required - Type of the item - **description** (string) - Optional - Description of the item (max 512 characters) - **record_status** (RecordStatus) - Optional - Status of the record (default: posted) - **product_tax_code_id** (integer/null) - Optional - ID of the product tax code - **expense_account_id** (integer/null) - Optional - ID of the expense account - **income_account_id** (integer/null) - Optional - ID of the income account - **deferral_account_id** (integer/null) - Optional - ID of the deferral account - **asset_account_id** (integer/null) - Optional - ID of the asset account - **discount_account_id** (integer/null) - Optional - ID of the discount account - **default_classification_line_ids** (array) - Optional - List of default classification line IDs - **default_rev_rec_method** (RecognitionStrategy/null) - Optional - Default revenue recognition method - **default_rev_rec_invoice_frequency** (BillingCadence/null) - Optional - Default revenue recognition invoice frequency - **default_rev_rec_invoice_interval** (integer/null) - Optional - Default revenue recognition invoice interval ### Response #### Success Response (201) - **id** (integer) - The ID of the created item - **name** (string) - The name of the created item - **sku** (string) - The SKU of the created item - **created_by** (AuditActorSchemaOut/null) - Audit information for creation - **updated_by** (AuditActorSchemaOut/null) - Audit information for last update ``` -------------------------------- ### GET /public/v2/budgets/ Source: https://docs.dualentry.com/developers/api/resources-v2/budgets/list-budgets Retrieve a paginated list of budgets. ```APIDOC ## GET /public/v2/budgets/ ### Description Retrieve a paginated list of budgets with filtering and search capabilities. ### Method GET ### Endpoint /public/v2/budgets/ ``` -------------------------------- ### GET /public/v2/bank-match/bank-transactions/ Source: https://docs.dualentry.com/developers/api/resources-v2/bank-match/list-bank-feed-transactions Retrieves a list of bank-feed transactions. ```APIDOC ## GET /public/v2/bank-match/bank-transactions/ ### Description Return bank-feed rows (one per debit/credit on a connected bank or credit-card). ### Method GET ### Endpoint /public/v2/bank-match/bank-transactions/ ``` -------------------------------- ### GET /public/v2/webhooks/ Source: https://docs.dualentry.com/developers/api/resources-v2/webhooks/list-webhooks Retrieve a paginated list of registered webhooks. ```APIDOC ## GET /public/v2/webhooks/ ### Description Retrieve a paginated list of registered webhooks. ### Method GET ### Endpoint /public/v2/webhooks/ ``` -------------------------------- ### GET /public/v2/customer-prepayment-applications/ Source: https://docs.dualentry.com/developers/api/resources-v2/customer-prepayment-applications/list-customerprepaymentapplication-records Retrieve a paginated list of CustomerPrepaymentApplication records with filtering and ordering options. ```APIDOC ## GET /public/v2/customer-prepayment-applications/ ### Description Retrieve a paginated list of CustomerPrepaymentApplication records with filtering and ordering options. ### Method GET ### Endpoint /public/v2/customer-prepayment-applications/ ### Parameters #### Query Parameters - **search** (string) - Optional - Search term - **company_id** (array) - Optional - Filter by company IDs - **number** (array) - Optional - Filter by numbers - **customer_id** (array) - Optional - Filter by customer IDs - **start_date** (string) - Optional - Filter by start date (format: date) - **end_date** (string) - Optional - Filter by end date (format: date) - **transaction_currency** (string) - Optional - Filter by transaction currency - **record_status** (array) - Optional - Filter by record status - **updated_after** (string) - Optional - Filter by updated after (format: date-time) - **updated_before** (string) - Optional - Filter by updated before (format: date-time) - **ordering** (string) - Optional - Ordering field - **limit** (integer) - Optional - Number of records to return per page (capped at 100) - **offset** (integer) - Optional - Number of records to skip before starting to return results ``` -------------------------------- ### GET /public/v1/customer-prepayment-applications/ Source: https://docs.dualentry.com/developers/api/resources-v1/customer-prepayment-applications/list-customerprepaymentapplication-records Retrieve a paginated list of CustomerPrepaymentApplication records with filtering and ordering options. ```APIDOC ## GET /public/v1/customer-prepayment-applications/ ### Description Retrieve a paginated list of CustomerPrepaymentApplication records with filtering and ordering options. ### Method GET ### Endpoint /public/v1/customer-prepayment-applications/ ``` -------------------------------- ### GET /public/v2/webhooks/topics/ Source: https://docs.dualentry.com/developers/api/resources-v2/webhooks/list-webhook-topics List all available topics a webhook can subscribe to. ```APIDOC ## GET /public/v2/webhooks/topics/ ### Description List all available topics a webhook can subscribe to. ### Method GET ### Endpoint /public/v2/webhooks/topics/ ### Response #### Success Response (200) - **name** (string) - The name of the webhook topic. #### Response Example [ { "name": "example_topic" } ] ``` -------------------------------- ### GET /public/v1/customer-prepayment-applications/ Source: https://docs.dualentry.com/developers/api/resources-v1/customer-prepayment-applications/list-customerprepaymentapplication-records Retrieve a paginated list of CustomerPrepaymentApplication records with filtering and ordering options. ```APIDOC ## GET /public/v1/customer-prepayment-applications/ ### Description Retrieve a paginated list of CustomerPrepaymentApplication records with filtering and ordering options. ### Method GET ### Endpoint /public/v1/customer-prepayment-applications/ ### Parameters #### Query Parameters - **search** (string) - Optional - Search term - **company_id** (array) - Optional - Filter by company IDs - **number** (array) - Optional - Filter by numbers - **customer_id** (array) - Optional - Filter by customer IDs - **start_date** (string) - Optional - Filter by start date (format: date) - **end_date** (string) - Optional - Filter by end date (format: date) - **transaction_currency** (string) - Optional - Filter by transaction currency - **record_status** (array) - Optional - Filter by record status - **updated_after** (string) - Optional - Filter by updated after (format: date-time) - **updated_before** (string) - Optional - Filter by updated before (format: date-time) - **ordering** (string) - Optional - Field to order by (default: id) - **limit** (integer) - Optional - Number of records to return per page (capped at 100, default: 100) - **offset** (integer) - Optional - Number of records to skip before starting to return results (default: 0) ``` -------------------------------- ### GET /public/v2/webhooks/{webhook_uuid}/ Source: https://docs.dualentry.com/developers/api/resources-v2/webhooks/get-webhook Retrieve a specific webhook by UUID. ```APIDOC ## GET /public/v2/webhooks/{webhook_uuid}/ ### Description Retrieve a specific webhook by UUID. ### Method GET ### Endpoint /public/v2/webhooks/{webhook_uuid}/ ### Parameters #### Path Parameters - **webhook_uuid** (string) - Required - The unique identifier of the webhook. ### Response #### Success Response (200) - **uuid** (string) - The unique identifier of the webhook. - **url** (string) - The destination URL for the webhook. - **topics** (array) - The list of topics the webhook is subscribed to. - **is_active** (boolean) - Indicates if the webhook is currently active. - **disabled_at** (string|null) - Timestamp when the webhook was disabled, if applicable. - **disabled_reason** (string) - Reason for the webhook being disabled. - **created_at** (string) - Timestamp of creation. - **last_modified_at** (string) - Timestamp of the last modification. #### Error Response (400/404) - **success** (boolean) - Indicates the request status. - **errors** (object) - A map of error messages. ```