API reference
Vendor
Someone the business buys from. Bills and expenses can name a vendor.
The vendor object
- object string
- string
- Always "vendor".
- id id
- id
- The vendor's id (a UUID). Use it to fetch it, or to refer to it from other things.
- name string
- string
- The display name: what invoices, bills and lists show.
- company_name string or null
- string or null
- The company's name, when different.
- title string or null
- string or null
- Mr., Ms., Dr.…
- first_name string or null
- string or null
- First name of the person to deal with.
- middle_name string or null
- string or null
- Middle name.
- last_name string or null
- string or null
- Last name.
- suffix string or null
- string or null
- Jr., Sr.…
- email string or null
- string or null
- Email address (where invoices or remittances go).
- cc string or null
- string or null
- More addresses copied on emails, separated by commas.
- bcc string or null
- string or null
- Addresses blind-copied on emails.
- phone string or null
- string or null
- Phone.
- mobile string or null
- string or null
- Mobile.
- fax string or null
- string or null
- Fax.
- website string or null
- string or null
- Website.
- address string or null
- string or null
- Billing address; lines separated by \n.
- terms string or null
- string or null
- Usual payment terms: due_on_receipt, net_7, net_15, net_30 or net_60.
- notes string or null
- string or null
- Private notes.
- active boolean
- boolean
- False once it's made inactive in TallyPip (it's kept, with its history, but left out of pickers).
- created_at timestamp
- timestamp
- When it was added, in UTC.
- currency string or null
- string or null
- Their currency when it isn't the business's (Multicurrency, like EUR): their bills are in it. Null otherwise.
- print_on_check_name string or null
- string or null
- The name printed on checks, if different.
- account_number string or null
- string or null
- The business's account number with this vendor.
- track_1099 boolean
- boolean
- True if payments to them are tracked for 1099s (US contractors). Their tax ID is never sent through the API.
- default_expense_account_id id or null
- id or null
- The expense category TallyPip suggests for their bills and expenses (an account).
Example
{
"object": "vendor",
"id": "3f6c1e2a-8b4d-4c1e-9a7b-2d5e6f708102",
"name": "Hillside Supply Co.",
"company_name": "Hillside Supply Co.",
"title": null,
"first_name": null,
"middle_name": null,
"last_name": null,
"suffix": null,
"email": "billing@hillside.example",
"cc": null,
"bcc": null,
"phone": null,
"mobile": null,
"fax": null,
"website": null,
"address": null,
"terms": "net_15",
"notes": null,
"active": true,
"created_at": "2026-10-06T14:30:00.000Z",
"currency": null,
"print_on_check_name": null,
"account_number": "C-4471",
"track_1099": false,
"default_expense_account_id": "3f6c1e2a-8b4d-4c1e-9a7b-2d5e6f708130"
}List vendors
GET /api/v1/vendors
Vendors, newest first.
Key: any (Read only works).
Query
- limit integer
- integer
- How many, 1 to 100 (default 25).
- starting_after id
- id
- The last id of the page before, for the next page (when has_more is true).
- filters
- email, name (exact, ignoring capitals)
Newest first. Answers a list: { object: "list", url, has_more, data }.
Request
curl https://tallypip.com/api/v1/vendors?limit=3 \ -H "Authorization: Bearer tpk_your_key"
Answer: 200
{
"object": "list",
"url": "/api/v1/vendors",
"has_more": false,
"data": [
{
"object": "vendor",
"id": "3f6c1e2a-8b4d-4c1e-9a7b-2d5e6f708102",
"name": "Hillside Supply Co.",
"company_name": "Hillside Supply Co.",
"title": null,
"first_name": null,
"middle_name": null,
"last_name": null,
"suffix": null,
"email": "billing@hillside.example",
"cc": null,
"bcc": null,
"phone": null,
"mobile": null,
"fax": null,
"website": null,
"address": null,
"terms": "net_15",
"notes": null,
"active": true,
"created_at": "2026-10-06T14:30:00.000Z",
"currency": null,
"print_on_check_name": null,
"account_number": "C-4471",
"track_1099": false,
"default_expense_account_id": "3f6c1e2a-8b4d-4c1e-9a7b-2d5e6f708130"
}
]
}Try it
With your own key (Settings › Connected apps). It stays in this page only, and reading can't change anything.
Create a vendor
POST /api/v1/vendors
Add a vendor.
Key: Read and change.
Body (JSON)
- name string
- string
- Required.
- email, phone, address, … (as customers) string
- string
- Optional.
- print_on_check_name, account_number string
- string
- Optional.
- track_1099 boolean
- boolean
- Optional (US contractors).
- default_expense_account_id id
- id
- Optional. An expense account from /accounts.
Answers 201 with the new vendor. Refused with 400 and the reason (nothing is saved); send an Idempotency-Key so a retry can't make it twice.
Request
curl https://tallypip.com/api/v1/vendors \
-H "Authorization: Bearer tpk_your_key" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: <a new id for each change>" \
-d '{
"name": "Hillside Supply Co.",
"email": "billing@hillside.example",
"terms": "net_15",
"default_expense_account_id": "3f6c1e2a-8b4d-4c1e-9a7b-2d5e6f708130"
}'Answer: 201
{
"object": "vendor",
"id": "3f6c1e2a-8b4d-4c1e-9a7b-2d5e6f708102",
"name": "Hillside Supply Co.",
"company_name": "Hillside Supply Co.",
"title": null,
"first_name": null,
"middle_name": null,
"last_name": null,
"suffix": null,
"email": "billing@hillside.example",
"cc": null,
"bcc": null,
"phone": null,
"mobile": null,
"fax": null,
"website": null,
"address": null,
"terms": "net_15",
"notes": null,
"active": true,
"created_at": "2026-10-06T14:30:00.000Z",
"currency": null,
"print_on_check_name": null,
"account_number": "C-4471",
"track_1099": false,
"default_expense_account_id": "3f6c1e2a-8b4d-4c1e-9a7b-2d5e6f708130"
}Retrieve a vendor
GET /api/v1/vendors/{id}
One vendor.
Key: any (Read only works).
Request
curl https://tallypip.com/api/v1/vendors/3f6c1e2a-8b4d-4c1e-9a7b-2d5e6f708102 \ -H "Authorization: Bearer tpk_your_key"
Answer: 200
{
"object": "vendor",
"id": "3f6c1e2a-8b4d-4c1e-9a7b-2d5e6f708102",
"name": "Hillside Supply Co.",
"company_name": "Hillside Supply Co.",
"title": null,
"first_name": null,
"middle_name": null,
"last_name": null,
"suffix": null,
"email": "billing@hillside.example",
"cc": null,
"bcc": null,
"phone": null,
"mobile": null,
"fax": null,
"website": null,
"address": null,
"terms": "net_15",
"notes": null,
"active": true,
"created_at": "2026-10-06T14:30:00.000Z",
"currency": null,
"print_on_check_name": null,
"account_number": "C-4471",
"track_1099": false,
"default_expense_account_id": "3f6c1e2a-8b4d-4c1e-9a7b-2d5e6f708130"
}Try it
With your own key (Settings › Connected apps). It stays in this page only, and reading can't change anything.