mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2026-03-03 02:47:02 +00:00
563 lines
18 KiB
YAML
563 lines
18 KiB
YAML
/api/v1/vendors:
|
|
get:
|
|
tags:
|
|
- vendors
|
|
summary: "List vendors"
|
|
description: "Lists vendors, search and filters allow fine grained lists to be generated.\n\n Query parameters can be added to performed more fine grained filtering of the vendors, these are handled by the VendorFilters class which defines the methods available"
|
|
operationId: getVendors
|
|
x-codeSamples:
|
|
- lang: php
|
|
label: php
|
|
source: |
|
|
$ninja = new InvoiceNinja("YOUR-TOKEN");
|
|
$vendors = $ninja->vendors->all([
|
|
'per_page' => 10,
|
|
'page' => 1
|
|
]);
|
|
- lang: curl
|
|
label: curl
|
|
source: |
|
|
curl -X GET https://demo.invoiceninja.com/api/v1/vendors \
|
|
-H "X-API-TOKEN: YOUR-TOKEN" \
|
|
-H "X-Requested-With: XMLHttpRequest"
|
|
parameters:
|
|
- $ref: "#/components/parameters/X-API-TOKEN"
|
|
- $ref: "#/components/parameters/X-Requested-With"
|
|
- $ref: "#/components/parameters/include"
|
|
- $ref: "#/components/parameters/index"
|
|
- $ref: "#/components/parameters/per_page_meta"
|
|
- $ref: "#/components/parameters/page_meta"
|
|
responses:
|
|
200:
|
|
description: "A list of vendors"
|
|
headers:
|
|
X-MINIMUM-CLIENT-VERSION:
|
|
$ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION"
|
|
X-RateLimit-Remaining:
|
|
$ref: "#/components/headers/X-RateLimit-Remaining"
|
|
X-RateLimit-Limit:
|
|
$ref: "#/components/headers/X-RateLimit-Limit"
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
data:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Vendor'
|
|
meta:
|
|
type: object
|
|
$ref: '#/components/schemas/Meta'
|
|
401:
|
|
$ref: "#/components/responses/401"
|
|
403:
|
|
$ref: "#/components/responses/403"
|
|
422:
|
|
$ref: '#/components/responses/422'
|
|
429:
|
|
$ref: '#/components/responses/429'
|
|
5XX:
|
|
description: 'Server error'
|
|
default:
|
|
$ref: "#/components/responses/default"
|
|
post:
|
|
tags:
|
|
- vendors
|
|
summary: "Create vendor"
|
|
description: "Adds a vendor to a company"
|
|
operationId: storeVendor
|
|
parameters:
|
|
- $ref: "#/components/parameters/X-API-TOKEN"
|
|
- $ref: "#/components/parameters/X-Requested-With"
|
|
- $ref: "#/components/parameters/include"
|
|
requestBody:
|
|
description: Vendor object that needs to be added to the company
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/VendorRequest'
|
|
x-codeSamples:
|
|
- lang: php
|
|
label: php
|
|
source: |
|
|
$ninja = new InvoiceNinja("YOUR-TOKEN");
|
|
|
|
$vendor = $ninja->vendors->create([
|
|
'name' => 'ABC Supply Company',
|
|
'address1' => '123 Main Street',
|
|
'address2' => 'Suite 100',
|
|
'city' => 'New York',
|
|
'state' => 'NY',
|
|
'postal_code' => '10001',
|
|
'country_id' => '1',
|
|
'phone' => '+1-555-123-4567',
|
|
'email' => 'contact@abcsupply.com',
|
|
'website' => 'https://www.abcsupply.com',
|
|
'contacts' => [
|
|
[
|
|
'first_name' => 'John',
|
|
'last_name' => 'Doe',
|
|
'email' => 'john.doe@abcsupply.com',
|
|
'phone' => '+1-555-123-4567',
|
|
'send_email' => true
|
|
]
|
|
]
|
|
]);
|
|
- lang: curl
|
|
label: curl
|
|
source: |
|
|
curl -X POST https://demo.invoiceninja.com/api/v1/vendors \
|
|
-H "X-API-TOKEN: YOUR-TOKEN" \
|
|
-H "Content-Type: application/json" \
|
|
-H "X-Requested-With: XMLHttpRequest" \
|
|
-d '{
|
|
"name": "ABC Supply Company",
|
|
"address1": "123 Main Street",
|
|
"address2": "Suite 100",
|
|
"city": "New York",
|
|
"state": "NY",
|
|
"postal_code": "10001",
|
|
"country_id": "1",
|
|
"phone": "+1-555-123-4567",
|
|
"email": "contact@abcsupply.com",
|
|
"website": "https://www.abcsupply.com",
|
|
"contacts": [
|
|
{
|
|
"first_name": "John",
|
|
"last_name": "Doe",
|
|
"email": "john.doe@abcsupply.com",
|
|
"phone": "+1-555-123-4567",
|
|
"send_email": true
|
|
}
|
|
]
|
|
}'
|
|
responses:
|
|
200:
|
|
description: "Returns the saved vendor object"
|
|
headers:
|
|
X-MINIMUM-CLIENT-VERSION:
|
|
$ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION"
|
|
X-RateLimit-Remaining:
|
|
$ref: "#/components/headers/X-RateLimit-Remaining"
|
|
X-RateLimit-Limit:
|
|
$ref: "#/components/headers/X-RateLimit-Limit"
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Vendor"
|
|
401:
|
|
$ref: "#/components/responses/401"
|
|
403:
|
|
$ref: "#/components/responses/403"
|
|
422:
|
|
$ref: '#/components/responses/422'
|
|
429:
|
|
$ref: '#/components/responses/429'
|
|
5XX:
|
|
description: 'Server error'
|
|
default:
|
|
$ref: "#/components/responses/default"
|
|
"/api/v1/vendors/{id}":
|
|
get:
|
|
tags:
|
|
- vendors
|
|
summary: "Show vendor"
|
|
description: "Displays a vendor by id"
|
|
operationId: showVendor
|
|
x-codeSamples:
|
|
- lang: php
|
|
label: php
|
|
source: |
|
|
$ninja = new InvoiceNinja("YOUR-TOKEN");
|
|
$vendor = $ninja->vendors->show("D2J234DFA");
|
|
- lang: curl
|
|
label: curl
|
|
source: |
|
|
curl -X GET https://demo.invoiceninja.com/api/v1/vendors/D2J234DFA \
|
|
-H "X-API-TOKEN: YOUR-TOKEN" \
|
|
-H "X-Requested-With: XMLHttpRequest"
|
|
parameters:
|
|
- $ref: "#/components/parameters/X-API-TOKEN"
|
|
- $ref: "#/components/parameters/X-Requested-With"
|
|
- $ref: "#/components/parameters/include"
|
|
- name: id
|
|
in: path
|
|
description: "The vendor Hashed ID"
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: string
|
|
example: D2J234DFA
|
|
responses:
|
|
200:
|
|
description: "Returns the vendor object"
|
|
headers:
|
|
X-MINIMUM-CLIENT-VERSION:
|
|
$ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION"
|
|
X-RateLimit-Remaining:
|
|
$ref: "#/components/headers/X-RateLimit-Remaining"
|
|
X-RateLimit-Limit:
|
|
$ref: "#/components/headers/X-RateLimit-Limit"
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Vendor"
|
|
401:
|
|
$ref: "#/components/responses/401"
|
|
403:
|
|
$ref: "#/components/responses/403"
|
|
422:
|
|
$ref: '#/components/responses/422'
|
|
429:
|
|
$ref: '#/components/responses/429'
|
|
5XX:
|
|
description: 'Server error'
|
|
default:
|
|
$ref: "#/components/responses/default"
|
|
put:
|
|
tags:
|
|
- vendors
|
|
summary: "Update vendor"
|
|
description: "Handles the updating of a vendor by id"
|
|
operationId: updateVendor
|
|
parameters:
|
|
- $ref: "#/components/parameters/X-API-TOKEN"
|
|
- $ref: "#/components/parameters/X-Requested-With"
|
|
- $ref: "#/components/parameters/include"
|
|
- name: id
|
|
in: path
|
|
description: "The Vendor Hashed ID"
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: string
|
|
example: D2J234DFA
|
|
requestBody:
|
|
description: Vendor object that needs to be updated
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/VendorRequest'
|
|
x-codeSamples:
|
|
- lang: php
|
|
label: php
|
|
source: |
|
|
$ninja = new InvoiceNinja("YOUR-TOKEN");
|
|
$vendor = $ninja->vendors->update("D2J234DFA", [
|
|
'name' => 'Updated Vendor Name',
|
|
'address1' => '456 New Street',
|
|
'city' => 'Los Angeles',
|
|
'state' => 'CA',
|
|
'postal_code' => '90210'
|
|
]);
|
|
- lang: curl
|
|
label: curl
|
|
source: |
|
|
curl -X PUT https://demo.invoiceninja.com/api/v1/vendors/D2J234DFA \
|
|
-H "X-API-TOKEN: YOUR-TOKEN" \
|
|
-H "Content-Type: application/json" \
|
|
-H "X-Requested-With: XMLHttpRequest" \
|
|
-d '{
|
|
"name": "Updated Vendor Name",
|
|
"address1": "456 New Street",
|
|
"city": "Los Angeles",
|
|
"state": "CA",
|
|
"postal_code": "90210"
|
|
}'
|
|
responses:
|
|
200:
|
|
description: "Returns the vendor object"
|
|
headers:
|
|
X-MINIMUM-CLIENT-VERSION:
|
|
$ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION"
|
|
X-RateLimit-Remaining:
|
|
$ref: "#/components/headers/X-RateLimit-Remaining"
|
|
X-RateLimit-Limit:
|
|
$ref: "#/components/headers/X-RateLimit-Limit"
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Vendor"
|
|
401:
|
|
$ref: "#/components/responses/401"
|
|
403:
|
|
$ref: "#/components/responses/403"
|
|
422:
|
|
$ref: '#/components/responses/422'
|
|
429:
|
|
$ref: '#/components/responses/429'
|
|
5XX:
|
|
description: 'Server error'
|
|
default:
|
|
$ref: "#/components/responses/default"
|
|
delete:
|
|
tags:
|
|
- vendors
|
|
summary: "Delete vendor"
|
|
description: "Handles the deletion of a vendor by id"
|
|
operationId: deleteVendor
|
|
x-codeSamples:
|
|
- lang: php
|
|
label: php
|
|
source: |
|
|
$ninja = new InvoiceNinja("YOUR-TOKEN");
|
|
$ninja->vendors->delete("D2J234DFA");
|
|
- lang: curl
|
|
label: curl
|
|
source: |
|
|
curl -X DELETE https://demo.invoiceninja.com/api/v1/vendors/D2J234DFA \
|
|
-H "X-API-TOKEN: YOUR-TOKEN" \
|
|
-H "X-Requested-With: XMLHttpRequest"
|
|
parameters:
|
|
- $ref: "#/components/parameters/X-API-TOKEN"
|
|
- $ref: "#/components/parameters/X-Requested-With"
|
|
- $ref: "#/components/parameters/include"
|
|
- name: id
|
|
in: path
|
|
description: "The Vendor Hashed ID"
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: string
|
|
example: D2J234DFA
|
|
responses:
|
|
200:
|
|
description: "Returns a HTTP status"
|
|
headers:
|
|
X-MINIMUM-CLIENT-VERSION:
|
|
$ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION"
|
|
X-RateLimit-Remaining:
|
|
$ref: "#/components/headers/X-RateLimit-Remaining"
|
|
X-RateLimit-Limit:
|
|
$ref: "#/components/headers/X-RateLimit-Limit"
|
|
401:
|
|
$ref: "#/components/responses/401"
|
|
403:
|
|
$ref: "#/components/responses/403"
|
|
422:
|
|
$ref: '#/components/responses/422'
|
|
429:
|
|
$ref: '#/components/responses/429'
|
|
5XX:
|
|
description: 'Server error'
|
|
default:
|
|
$ref: "#/components/responses/default"
|
|
"/api/v1/vendors/{id}/edit":
|
|
get:
|
|
tags:
|
|
- vendors
|
|
summary: "Edit vendor"
|
|
description: "Displays a vendor by id"
|
|
operationId: editVendor
|
|
x-codeSamples:
|
|
- lang: php
|
|
label: php
|
|
source: |
|
|
$ninja = new InvoiceNinja("YOUR-TOKEN");
|
|
$vendor = $ninja->vendors->show("D2J234DFA");
|
|
- lang: curl
|
|
label: curl
|
|
source: |
|
|
curl -X GET https://demo.invoiceninja.com/api/v1/vendors/D2J234DFA/edit \
|
|
-H "X-API-TOKEN: YOUR-TOKEN" \
|
|
-H "X-Requested-With: XMLHttpRequest"
|
|
parameters:
|
|
- $ref: "#/components/parameters/X-API-TOKEN"
|
|
- $ref: "#/components/parameters/X-Requested-With"
|
|
- $ref: "#/components/parameters/include"
|
|
- name: id
|
|
in: path
|
|
description: "The Vendor Hashed ID"
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: string
|
|
example: D2J234DFA
|
|
responses:
|
|
200:
|
|
description: "Returns the vendor object"
|
|
headers:
|
|
X-MINIMUM-CLIENT-VERSION:
|
|
$ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION"
|
|
X-RateLimit-Remaining:
|
|
$ref: "#/components/headers/X-RateLimit-Remaining"
|
|
X-RateLimit-Limit:
|
|
$ref: "#/components/headers/X-RateLimit-Limit"
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Vendor"
|
|
401:
|
|
$ref: "#/components/responses/401"
|
|
403:
|
|
$ref: "#/components/responses/403"
|
|
422:
|
|
$ref: '#/components/responses/422'
|
|
429:
|
|
$ref: '#/components/responses/429'
|
|
5XX:
|
|
description: 'Server error'
|
|
default:
|
|
$ref: "#/components/responses/default"
|
|
/api/v1/vendors/create:
|
|
get:
|
|
tags:
|
|
- vendors
|
|
summary: "Blank vendor"
|
|
description: "Returns a blank vendor with default values"
|
|
operationId: getVendorsCreate
|
|
x-codeSamples:
|
|
- lang: php
|
|
label: php
|
|
source: |
|
|
$ninja = new InvoiceNinja("YOUR-TOKEN");
|
|
$vendor = $ninja->vendors->model();
|
|
- lang: curl
|
|
label: curl
|
|
source: |
|
|
curl -X GET https://demo.invoiceninja.com/api/v1/vendors/create \
|
|
-H "X-API-TOKEN: YOUR-TOKEN" \
|
|
-H "X-Requested-With: XMLHttpRequest"
|
|
parameters:
|
|
- $ref: "#/components/parameters/X-API-TOKEN"
|
|
- $ref: "#/components/parameters/X-Requested-With"
|
|
- $ref: "#/components/parameters/include"
|
|
responses:
|
|
200:
|
|
description: "A blank vendor object"
|
|
headers:
|
|
X-MINIMUM-CLIENT-VERSION:
|
|
$ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION"
|
|
X-RateLimit-Remaining:
|
|
$ref: "#/components/headers/X-RateLimit-Remaining"
|
|
X-RateLimit-Limit:
|
|
$ref: "#/components/headers/X-RateLimit-Limit"
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Vendor"
|
|
401:
|
|
$ref: "#/components/responses/401"
|
|
403:
|
|
$ref: "#/components/responses/403"
|
|
422:
|
|
$ref: '#/components/responses/422'
|
|
429:
|
|
$ref: '#/components/responses/429'
|
|
5XX:
|
|
description: 'Server error'
|
|
default:
|
|
$ref: "#/components/responses/default"
|
|
/api/v1/vendors/bulk:
|
|
post:
|
|
tags:
|
|
- vendors
|
|
summary: "Bulk vendor actions"
|
|
description: ""
|
|
operationId: bulkVendors
|
|
parameters:
|
|
- $ref: "#/components/parameters/X-API-TOKEN"
|
|
- $ref: "#/components/parameters/X-Requested-With"
|
|
- $ref: "#/components/parameters/index"
|
|
requestBody:
|
|
description: "User credentials"
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
description: "Array of hashed IDs to be bulk 'actioned"
|
|
type: integer
|
|
example: "[0,1,2,3]"
|
|
responses:
|
|
200:
|
|
description: "The Vendor User response"
|
|
headers:
|
|
X-MINIMUM-CLIENT-VERSION:
|
|
$ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION"
|
|
X-RateLimit-Remaining:
|
|
$ref: "#/components/headers/X-RateLimit-Remaining"
|
|
X-RateLimit-Limit:
|
|
$ref: "#/components/headers/X-RateLimit-Limit"
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Vendor"
|
|
401:
|
|
$ref: "#/components/responses/401"
|
|
403:
|
|
$ref: "#/components/responses/403"
|
|
422:
|
|
$ref: '#/components/responses/422'
|
|
429:
|
|
$ref: '#/components/responses/429'
|
|
5XX:
|
|
description: 'Server error'
|
|
default:
|
|
$ref: "#/components/responses/default"
|
|
"/api/v1/vendors/{id}/upload":
|
|
post:
|
|
tags:
|
|
- vendors
|
|
summary: "Uploads a vendor document"
|
|
description: "Handles the uploading of a document to a vendor"
|
|
operationId: uploadVendor
|
|
parameters:
|
|
- $ref: "#/components/parameters/X-API-TOKEN"
|
|
- $ref: "#/components/parameters/X-Requested-With"
|
|
- $ref: "#/components/parameters/include"
|
|
- name: id
|
|
in: path
|
|
description: "The Vendor Hashed ID"
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: string
|
|
example: D2J234DFA
|
|
requestBody:
|
|
description: "File Upload Body"
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
_method:
|
|
type: string
|
|
example: PUT
|
|
documents:
|
|
type: array
|
|
items:
|
|
description: "Array of binary documents for upload"
|
|
type: string
|
|
format: binary
|
|
responses:
|
|
200:
|
|
description: "Returns the Vendor object"
|
|
headers:
|
|
X-MINIMUM-CLIENT-VERSION:
|
|
$ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION"
|
|
X-RateLimit-Remaining:
|
|
$ref: "#/components/headers/X-RateLimit-Remaining"
|
|
X-RateLimit-Limit:
|
|
$ref: "#/components/headers/X-RateLimit-Limit"
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Vendor"
|
|
401:
|
|
$ref: "#/components/responses/401"
|
|
403:
|
|
$ref: "#/components/responses/403"
|
|
422:
|
|
$ref: '#/components/responses/422'
|
|
429:
|
|
$ref: '#/components/responses/429'
|
|
5XX:
|
|
description: 'Server error'
|
|
default:
|
|
$ref: "#/components/responses/default" |