# ERPNext integration

> Open-source ERP on the Frappe framework — REST access to every DocType (customers, suppliers, items, sales/purchase orders and invoices, stock, HR, projects) plus whitelisted server-side methods.

- Authentication: apiKey

## Tools (37)

- **Add a Comment (frappe.desk.form.utils.add_comment)**: Add a comment to a document's activity timeline.
- **Add a Tag (frappe.desk.doctype.tag.tag.add_tag)**: Add a tag label to a document for categorization.
- **Apply Workflow Action (frappe.model.workflow.apply_workflow)**: Transition a document through its configured workflow.
- **Call a Whitelisted Method (GET)**: Invoke any read-only @frappe.whitelist() server method by dotted path.
- **Call a Whitelisted Method (POST)**: Invoke a state-changing @frappe.whitelist() server method by dotted path.
- **Cancel a Document (frappe.client.cancel)**: Cancel a submitted document, moving docstatus 1 to 2.
- **Create Document**: Create a new document of a DocType from a JSON body.
- **Delete Document**: Permanently delete a document by DocType and name.
- **Download Document PDF (frappe.utils.print_format.download_pdf)**: Render a document as a PDF using a print format.
- **Get a List (frappe.client.get_list)**: List documents via frappe.client.get_list with dict or list filters.
- **Get Document**: Retrieve a single document (with child tables) by DocType and name.
- **Get Document Count (frappe.client.get_count)**: Count documents of a DocType matching filters.
- **Get Document with Metadata (frappe.desk.form.load.getdoc)**: Retrieve a document plus its docinfo (comments, attachments, versions).
- **Get Exchange Rate (erpnext.setup.utils.get_exchange_rate)**: Currency exchange rate between two currencies for a date.
- **Get Field Value (frappe.client.get_value)**: Fetch one or more field values from a single document.
- **Get Fiscal Year (erpnext.accounts.utils.get_fiscal_year)**: The fiscal year containing a date, with its start/end.
- **Get Item Details (erpnext.stock.get_item_details.get_item_details)**: Resolve item price, tax, UOM, and stock for a transaction line.
- **Get Logged User (frappe.auth.get_logged_user)**: Return the email/id the token authenticates as.
- **Get Party Details (erpnext.accounts.party.get_party_details)**: Fetch a customer's or supplier's transaction defaults.
- **Get Payment Entry (erpnext.accounts.doctype.payment_entry.payment_entry.get_payment_entry)**: Build a draft Payment Entry against an invoice or order.
- **Get Stock Balance (erpnext.stock.utils.get_stock_balance)**: On-hand quantity of an item in a warehouse, optionally as of a date.
- **Get Workflow Transitions (frappe.model.workflow.get_transitions)**: List the workflow actions available for a document's current state.
- **Insert a Document (frappe.client.insert)**: Insert a new document from a doc object carrying its doctype.
- **Insert Many Documents (frappe.client.insert_many)**: Insert multiple documents in a single call.
- **List Documents**: List documents of any DocType with filters, field selection, sorting, and pagination.
- **Make Delivery Note from Sales Order**: Map a submitted Sales Order into a draft Delivery Note.
- **Make Purchase Order from Material Request**: Map a submitted Material Request into a draft Purchase Order.
- **Make Sales Invoice from Sales Order**: Map a submitted Sales Order into a draft Sales Invoice.
- **Make Stock Entry**: Build a draft Stock Entry for a receipt, issue, or transfer.
- **Ping (frappe.handler.ping)**: Connectivity/health check.
- **Rename a Document (frappe.client.rename_doc)**: Change a document's unique id, optionally merging.
- **Save a Document (frappe.client.save)**: Insert or update a full document object.
- **Search Link Field (frappe.desk.search.search_link)**: Autocomplete search for documents of a DocType (Link-field lookup).
- **Set Field Value (frappe.client.set_value)**: Set a single field (or field map) on a document and save it.
- **Submit a Document (frappe.client.submit)**: Submit a draft document, moving docstatus 0 to 1.
- **Update Document**: Partially update an existing document's fields.
- **Upload File**: Upload a file and optionally attach it to a document (multipart).

Connect ERPNext in General Input: https://www.generalinput.com/apps/erpnext