Netsuite
Initialize POST
The above command accepts a basic authentication header:
Authorization: Basic <base64 string>
base64 string is the base64-encoding of "username:password"
The above command returns a JSON structured like this:
{
"data": {
"auth_string": "auth_string"
},
"metadata": {}
}
The authentication string can then be used to do basic authentication in subsequent endpoint calls, so superuser credentials would not be needed.
Include basic authentication in subsequent request headers:
Authorization:Basic
aW50ZWdyYXRpb25zQHByb2N1c
This endpoint enables integration and get or create the integration user. It returns a basic authentication string of the integration user.
HTTP Request
https://example.procurify.com/api/v3/integrations/netsuite/initialize/
HTTP Response Status Code
201 Created
Get Accounts GET
The above command returns a JSON structured like this:
{
"data": [
{
"id": 1,
"code": "1000",
"description": "Supplies",
"parent": null,
"active": true,
"account_type": "Expense",
"external_id": "1234",
"custom_fields": {}
},
{
"id": 2,
"code": "2000",
"description": "Services",
"parent": null,
"active": true,
"account_type": "Expense",
"external_id": "4321",
"custom_fields": {}
}
],
"metadata": {
"pagination": {
"count": 2,
"next": null,
"previous": null,
"page_size": 10,
"num_pages": 1,
"current_page": 1
}
}
}
This endpoint retrieves a list of accounts with specific status.
HTTP Request
https://example.procurify.com/api/v3/integrations/netsuite/accounts/
URL Parameters
Parameter | Description | Example |
---|---|---|
STATUS | status can be pending , synced , or error |
?status=pending |
CODE | the alphanumeric account code, can be comma separated | ?code=ABC123,DEF456,999 |
HTTP Response Status Code
200 OK
Get Single Account Details GET
The above command returns a JSON structured like this:
{
"data": {
"id": 1,
"code": "1000",
"description": "Supplies",
"parent": null,
"active": true,
"account_type": "Expense",
"external_id": "1234",
"custom_fields": {}
},
"metadata": {}
}
}
This endpoint retrieves a list of accounts with specific status.
HTTP Request
https://example.procurify.com/api/v3/integrations/netsuite/accounts/<ACCOUNT_ID>/
HTTP Response Status Code
200 OK
Create Account POST
The above command accepts a body:
{
"code": 1234,
"description": "Test Account",
"account_type": 2,
"external_id": 4321,
"parent": null
}
The above command returns a JSON structured like this:
{
"data": {
"id": 24,
"code": "1234",
"description": "Test Account",
"parent": null,
"active": true,
"account_type": "2",
"external_id": "4321",
"custom_fields": {}
},
"metadata": {}
}
This endpoint creates an account.
HTTP Request
https://example.procurify.com/api/v3/integrations/netsuite/accounts/
HTTP Response Status Code
201 Created
Arguments
code
required
Account code.
description
Account code description.
account_type
required
Type of the account code.
Types | ID |
---|---|
ASSETS | 0 |
LIABILITY | 1 |
EXPENSE | 2 |
INCOME | 3 |
EQUITY | 4 |
OTHER | 5 |
external_id
required
ID of the integration object.
Update Account PUT
The above command accepts a body:
{
"code": 1234,
"description": "Test Account",
"account_type": 2,
"external_id": 4321,
"parent": null
}
The above command returns a JSON structured like this:
{
"data": {
"id": 1,
"code": "1234",
"description": "Test Account",
"parent": null,
"active": true,
"account_type": "2",
"external_id": "4321",
"custom_fields": {}
},
"metadata": {}
}
This endpoint updates a specific account.
HTTP Request
https://example.procurify.com/api/v3/integrations/netsuite/accounts/<ACCOUNT_ID>/
URL Parameters
Parameter | Description |
---|---|
ACCOUNT_ID | ID of the account being updated |
HTTP Response Status Code
200 OK
Arguments
code
required
Account code.
description
Account code description.
account_type
required
Type of the account code.
Types | ID |
---|---|
ASSETS | 0 |
LIABILITY | 1 |
EXPENSE | 2 |
INCOME | 3 |
EQUITY | 4 |
OTHER | 5 |
external_id
required
ID of the integration object.
Delete Account DELETE
This endpoint deletes a specific account.
HTTP Request
https://example.procurify.com/api/v3/integrations/netsuite/accounts/<ACCOUNT_ID>/
URL Parameters
Parameter | Description |
---|---|
ACCOUNT_ID | ID of the account being deleted |
HTTP Response Status Code
204 No Content
Get Payment Terms GET
The above command returns a JSON structured like this:
{
"data": [
{
"id": 13,
"name": "New term",
"description": "",
"external_id": "haha",
"custom_fields": {}
},
{
"id": 14,
"name": "New term 2",
"description": "",
"external_id": "haha 2",
"custom_fields": {}
}
],
"metadata": {
"pagination": {
"count": 1,
"next": null,
"previous": null,
"page_size": 10,
"num_pages": 1,
"current_page": 1
}
}
}
This endpoint retrieves a list of payment-terms with specific status.
HTTP Request
https://example.procurify.com/api/v3/integrations/netsuite/payment-terms/
URL Parameters
Parameter | Description | Example |
---|---|---|
STATUS | status can be pending , synced , or error |
?status=pending |
HTTP Response Status Code
200 OK
Get Single Payment Term Details GET
The above command returns a JSON structured like this:
{
"data": {
"id": 14,
"name": "New term 2",
"description": "",
"external_id": "haha 2",
"custom_fields": {}
},
"metadata": {}
}
}
This endpoint retrieves a list of payment-terms with specific status.
HTTP Request
https://example.procurify.com/api/v3/integrations/netsuite/payment-terms/<PAYMENT_TERM_ID>/
HTTP Response Status Code
200 OK
Create Payment Term POST
The above command accepts a body:
{
"name": "New term 2",
"description": "This describes me",
"external_id": "haha 2"
}
The above command returns a JSON structured like this:
{
"data": {
"id": 14,
"name": "New term 2",
"description": "",
"external_id": "haha 2",
"custom_fields": {}
},
"metadata": {}
}
}
This endpoint creates an account.
HTTP Request
https://example.procurify.com/api/v3/integrations/netsuite/payment-terms/
HTTP Response Status Code
201 Created
Arguments
name
required
Name of the payment term
description
Payment Term description.
external_id
required
ID of the integration object.
Update Payment Term PUT
The above command accepts a body:
{
"name": "New term 2",
"description": "This describes me",
"external_id": "haha 2"
}
The above command returns a JSON structured like this:
{
"data": {
"id": 14,
"name": "New term 2",
"description": "",
"external_id": "haha 2",
"custom_fields": {}
},
"metadata": {}
}
}
This endpoint updates a specific account.
HTTP Request
https://example.procurify.com/api/v3/integrations/netsuite/payment-terms/<PAYMENT_TERM_ID>/
URL Parameters
Parameter | Description |
---|---|
PAYMENT_TERM_ID | ID of the account being updated |
HTTP Response Status Code
200 OK
Arguments
name
required
Name of the payment term
description
Payment Term description.
external_id
required
ID of the integration object.
Delete Payment Term DELETE
This endpoint deletes a specific account.
HTTP Request
https://example.procurify.com/api/v3/integrations/netsuite/payment-terms/<PAYMENT_TERM_ID>/
URL Parameters
Parameter | Description |
---|---|
PAYMENT_TERM_ID | ID of the account being deleted |
HTTP Response Status Code
204 No Content
Get Content Types GET
The above command returns a JSON structured like this:
{
"data": [
{
"id": 180,
"app_label": "ap",
"model": "bill"
},
{
"id": 185,
"app_label": "ap",
"model": "item"
},
{
"id": 23,
"app_label": "procurify",
"model": "po"
},
{
"id": 280,
"app_label": "receipt",
"model": "item"
}
],
"metadata": {}
}
This endpoint retrieves a list content types.
HTTP Request
https://example.procurify.com/api/v3/integrations/netsuite/content-types/?model=<MODEL>
URL Parameters
Parameter | Description |
---|---|
MODEL | Filter Contenty Types by model name |
HTTP Response Status Code
200 OK
Get PO Custom Field GET
The above command returns a JSON structured like this:
{
"data": {
"id": 54,
"field_label": "Weight",
"field_required": false
},
"metadata": {}
}
This endpoint retrieves the Purchase Order custom fields.
HTTP Request
https://example.procurify.com/api/v3/integrations/netsuite/custom-fields/purchase-orders/
HTTP Response Status Code
200 OK
URL Parameters
Upsert PO Custom Field Value POST
The above command accepts a body:
{
"purchase_order_id": 1
"custom_field_id": 1
"custom_field_value": "Test"
}
The above command returns a JSON structured like this:
{
"data": {
"purchase_order_id": 1,
"custom_field_id": 1,
"custom_field_value": "Test"
},
"metadata": {}
}
This endpoint updates a PO custom field value.
HTTP Request
https://example.procurify.com/api/v3/integrations/netsuite/custom-fields/purchase-orders/
HTTP Response Status Code
201 Created
Arguments
purchase_order_id
required
Purchase order ID.
custom_field_id
required
PO custom field ID.
custom_field_value
required
Set custom field value for the purchase order.
Get Object Maps GET
The above command returns a JSON structured like this:
{
"data": [
{
"id": 1,
"object_id": 151,
"status": 1,
"content_type": 23,
"external_id": ""
},
{
"id": 2,
"object_id": 1,
"status": 1,
"content_type": 23,
"external_id": ""
}
],
"metadata": {
"pagination": {
"count": 2,
"next": null,
"previous": null,
"page_size": 10,
"num_pages": 1,
"current_page": 1
}
}
}
This endpoint retrieves a list of object maps with specific status.
HTTP Request
https://example.procurify.com/api/v3/integrations/netsuite/object-maps/?status=<STATUS>
URL Parameters
Parameter | Description |
---|---|
STATUS | status can be "pending", "synced", or "error" |
HTTP Response Status Code
200 OK
Upsert Object Map POST
The above command accepts a body:
{
"object_id": 151,
"content_type": 23,
"status": 1,
"external_id": "1234",
"message": "Error Message"
}
The above command returns a JSON structured like this:
{
"data": {
"id": 1,
"object_id": 151,
"status": 1,
"content_type": 23,
"external_id": "1234"
},
"metadata": {}
}
This endpoint upserts an object map.
HTTP Request
https://example.procurify.com/api/v3/integrations/netsuite/object-maps/
HTTP Response Status Code
200 OK
Arguments
object_id
required
ID of the Procurify object.
content_type
required
ID of Procurify content_type.
status
Object map status.
Status | ID |
---|---|
PENDING | 0 |
SYNCED | 1 |
ERROR | 2 |
name
Object map name.
external_id
required
ID of the integration object.
message
Optional message to save to integration logs.
Delete Object Map DELETE
This endpoint deletes a specific object map.
HTTP Request
https://example.procurify.com/api/v3/integrations/netsuite/catalog-items/<OBJECT_MAP_ID>/
URL Parameters
Parameter | Description |
---|---|
OBJECT_MAP_ID | ID of the object map being deleted |
HTTP Response Status Code
204 No Content
Get Purchase Orders GET
The above command returns a JSON structured like this:
{
"data": [
{
"id": 52,
"uuid": "8325e590-3b53-11e7-bfdd-021a9831e76d",
"purchase_order_no": "",
"transaction_date": "2017-05-17T15:52:33-07:00",
"due_date": "2017-05-16T23:00:00-07:00",
"total": "80.00",
"created_by": {
"id": 15,
"first_name": "Joe",
"last_name": "Smith",
"email": "joesmith@test.com"
},
"line_items": [
{
"id": 193,
"name": "Whiteout",
"quantity": "10.00000",
"unit_cost": "8.00",
"unit_type": "each",
"amount": "80.00",
"currency": {
"id": 3,
"name": "USD",
"rate": "1.000000",
"active": true,
"description": "",
"base": true,
"external_id": null,
"custom_fields": {}
},
"account": {
"id": 1,
"code": "1000",
"description": "Supplies",
"parent": null,
"active": true,
"account_type": "Expense",
"external_id": null,
"custom_fields": {}
},
"department": {
"id": 1,
"name": "Accounting",
"branch_id": 1,
"active": true,
"external_id": null,
"custom_fields": {}
},
"location": {
"id": 1,
"name": "Glenn Research Center",
"url": "www.nasa.gov/centers/glenn/home/",
"phone_one": "(216) 433-4000",
"fax": "",
"email": "",
"primary_billing_address": {
"id": 1,
"name": "Glenn Research Center",
"address_line_one": "21000 Brookpark Rd, Cleveland",
"city": "Cleveland",
"postal_code": "44135",
"state_province": "OH",
"country": "USA"
},
"primary_shipping_address": {
"id": 2,
"name": "Glenn Research Center",
"address_line_one": "21000 Brookpark Rd, Cleveland",
"city": "Cleveland",
"postal_code": "44135",
"state_province": "OH",
"country": "USA"
},
"language": 1,
"location_timezone": "America/Vancouver",
"active": true,
"external_id": null,
"custom_fields": {}
},
"catalog_item": {
"id": 4,
"name": "Whiteout",
"unit_type": "Dozen",
"vendor": 6,
"account_code": 1,
"internal_sku": "29382",
"active": true,
"description": "",
"product_url": null,
"currency": 1,
"cost": "8.00000000",
"external_id": null,
"custom_fields": {}
},
"memo": "",
"last_approver": {
"id": 15,
"first_name": "Kathryn",
"last_name": "Hire",
"email": "kathryn.hire@redshift7.com"
},
"requester": {
"id": 7,
"first_name": "Some",
"last_name": "Guy",
"email": "someguy@procurify.com"
},
"external_id": null,
"custom_fields": {},
"order_description": "Order with Procurify"
}
],
"vendor": {
"id": 6,
"name": "5 STAR",
"active": true,
"address_line_one": "55 West Hampton Ave",
"address_line_two": "",
"postal_code": "JKF 345",
"city": "Toronto",
"state_province": "Ontario",
"country": "Canada",
"email": "purchasing@fivestarcanada.com",
"alt_email": null,
"contact": "Ivan Improve",
"phone": "930-456-8700",
"alt_phone": "",
"fax": "",
"comments": "Notebooks and canvas supplier.",
"url": "http://fivestarbooks.com/",
"payment_term": "n 30",
"shipping_term": "FOB",
"external_id": null,
"custom_fields": {}
},
"shipping_address": {
"contact_name": "Neil Armstrong",
"address_line_one": "21000 Brookpark Rd, Cleveland",
"city": "Cleveland",
"state_province": "OH",
"country": "USA",
"postal_code": "44135"
},
"shipping_method": {
"id": 5,
"name": "FedEX",
"description": "FedEX",
"external_id": null,
"custom_fields": {}
},
"shipping_term": {
"id": 4,
"name": "FOB",
"description": "FOB",
"external_id": null,
"custom_fields": {}
},
"payment_term": {
"id": 11,
"name": "n 30",
"description": "n 30",
"external_id": null,
"custom_fields": {}
},
"subtotal": "80.00",
"freight": "0.00",
"other": "0.00",
"discount": "0.00",
"tax": "0.00",
"memo": "",
"external_id": "9999",
"custom_fields": {
"Weight": null,
"New Field": null
}
}
],
"metadata": {
"pagination": {
"count": 1,
"next": null,
"previous": null,
"page_size": 10,
"num_pages": 1,
"current_page": 1
}
}
}
This endpoint retrieves a list of purchase orders with specific status.
HTTP Request
https://example.procurify.com/api/v3/integrations/netsuite/purchase-orders/?status=pending,ignore&transaction_date=2020-01-02
URL Parameters
status
Use this field to get purchase orders of a certain status. Multiple statuses can be combined using comma-separation.
Value | Description |
---|---|
pending | Get all records that need to be processed in NS (a combination of new/updated/deleted) |
synced | Get all synced records previously successfully synced |
error | Get all records that encountered an error during its most recent sync |
ignore | Get all records that are not meant to sync over to NS. These are usually records that exist before initialization. |
id
Try it out! ?id=1234
will get you PO with id=1234
transaction_date
Try it out! ?transaction_date=2020-03-24
will get you PO's that were created after March 24th of 2020
HTTP Response Status Code
200 OK
Get Item Receipt Lines GET
The above command returns a JSON structured like this:
{
"data": [
{
"id": 24,
"name": "Whiteout",
"order_item_id": 193,
"purchased_quantity": "10.00",
"received_quantity": "5.00",
"receive_history": [
{
"received_quantity": "3.00",
"timestamp": "2019-11-28T12:31:57.735000-08:00"
},
{
"received_quantity": "2.00",
"timestamp": "2019-11-28T12:32:17.234000-08:00"
},
{
"received_quantity": "3.00",
"timestamp": "2019-11-28T12:32:38.206000-08:00"
},
{
"received_quantity": "2.00",
"timestamp": "2019-11-28T12:33:16.307000-08:00"
},
{
"received_quantity": "5.00",
"timestamp": "2019-11-28T12:49:25.943000-08:00"
}
],
"purchase_order": {
"id": 52,
"purchase_order_no": "",
"uuid": "8325e590-3b53-11e7-bfdd-021a9831e76d",
"external_id": "9999",
"custom_fields": {
"Weight": null,
"New Field": null
}
},
"created_at": "2019-11-28T12:31:57.735536-08:00",
"updated_at": "2019-11-28T12:49:25.943330-08:00",
"last_synced_info": {
"synced_at": "2019-11-28T12:49:10.912734-08:00",
"received_quantity": "2.00",
"delta": "3.00"
},
"external_id": "9999",
"custom_fields": {}
},
{
"id": 25,
"name": "Whiteout",
"order_item_id": 193,
"purchased_quantity": "10.00",
"received_quantity": "1.00",
"receive_history": [
{
"received_quantity": "3.00",
"timestamp": "2019-11-28T12:32:00.199000-08:00"
},
{
"received_quantity": "4.00",
"timestamp": "2019-11-28T12:32:20.390000-08:00"
},
{
"received_quantity": "3.00",
"timestamp": "2019-11-28T12:32:41.805000-08:00"
},
{
"received_quantity": "4.00",
"timestamp": "2019-11-28T12:33:18.868000-08:00"
},
{
"received_quantity": "1.00",
"timestamp": "2019-11-28T12:49:28.888000-08:00"
}
],
"purchase_order": {
"id": 52,
"purchase_order_no": "",
"uuid": "8325e590-3b53-11e7-bfdd-021a9831e76d",
"external_id": "9999",
"custom_fields": {
"Weight": null,
"New Field": null
}
},
"created_at": "2019-11-28T12:32:00.199650-08:00",
"updated_at": "2019-11-28T12:49:28.888547-08:00",
"last_synced_info": {
"synced_at": "2019-11-28T12:49:08.573131-08:00",
"received_quantity": "4.00",
"delta": "-3.00"
},
"external_id": "9999",
"custom_fields": {}
}
],
"metadata": {
"pagination": {
"count": 2,
"next": null,
"previous": null,
"page_size": 10,
"num_pages": 1,
"current_page": 1
}
}
}
This endpoint retrieves a list of item receipt lines with specific status.
HTTP Request
https://example.procurify.com/api/v3/integrations/netsuite/item-receipt-lines/?status=<STATUS>
URL Parameters
status
Value | Description |
---|---|
pending | Get all records that need to be processed in NS (a combination of new/updated/deleted) |
synced | Get all synced records previously successfully synced |
error | Get all records that encountered an error during its most recent sync |
id
Try it out! ?id=1234
will get you item receipt line with id=1234
HTTP Response Status Code
200 OK
Fun Facts
- New item receipt lines are guaranteed to have at least 1 item with quantity > 0
- Pending item receipt lines will only show up if PO has status
SYNCED
Get Vendors GET
The above command returns a JSON structured like this:
{
"data": [
{
"id": 2,
"name": "Staples",
"active": true,
"address_line_one": "1852 24th Ave",
"address_line_two": "Unit 123",
"postal_code": "72715",
"city": "New York",
"state_province": "NY",
"country": "US",
"email": "vendoremail@test.com",
"alt_email": "vendoraltemail@test.com",
"contact": "Joe Smith",
"phone": "479-195-8789",
"alt_phone": "479-696-4781",
"fax": "479-222-5688",
"comments": "Please call AR when placing PO to confirm receipt.",
"url": "http://www.staples.com/",
"payment_term": "Due on Receipt",
"shipping_term": "FOB",
"vendor_external_id": "VENDOR_EX_1",
"external_id": "EX_VENDOR_2",
"custom_field": {}
}
],
"metadata": {
"pagination": {
"count": 1,
"next": null,
"previous": null,
"page_size": 10,
"num_pages": 1,
"current_page": 1
}
}
}
This endpoint retrieves a list of vendors with specific status.
HTTP Request
https://example.procurify.com/api/v3/integrations/netsuite/vendors/?status=<STATUS>
URL Parameters
Parameter | Description | Example |
---|---|---|
STATUS | status can be "pending", "synced", or "error" | ?status=pending |
name | name of the vendor | ?name=BestBuy |
show_all | Can use this to show vendors that were never synced. Might be useful for catalog item creation. | ?show_all=true |
HTTP Response Status Code
200 OK
Get Single Vendor Details GET
The above command returns a JSON structured like this:
{
"data": {
"id": 2,
"name": "Staples",
"active": true,
"address_line_one": "1852 24th Ave",
"address_line_two": "Unit 123",
"postal_code": "72715",
"city": "New York",
"state_province": "NY",
"country": "US",
"email": "vendoremail@test.com",
"alt_email": "vendoraltemail@test.com",
"contact": "Joe Smith",
"phone": "479-195-8789",
"alt_phone": "479-696-4781",
"fax": "479-222-5688",
"comments": "Please call AR when placing PO to confirm receipt.",
"url": "http://www.staples.com/",
"payment_term": "Due on Receipt",
"shipping_term": "FOB",
"vendor_external_id": "VENDOR_EX_1",
"external_id": "EX_VENDOR_2",
"custom_field": {}
},
"metadata": {}
}
}
This endpoint retrieves a list of vendors with specific status.
HTTP Request
https://example.procurify.com/api/v3/integrations/netsuite/vendors/<VENDOR_ID>/
HTTP Response Status Code
200 OK
Create Vendor POST
The above command accepts a body:
{
"name": "Procurify",
"address_line_one": "455 Granville St",
"address_line_two": "300",
"postal_code": "V6C 1T1",
"city": "Vancouver",
"state_province": "British Columbia",
"country": "Canada",
"email": "vendoremail@test.com",
"alt_email": "vendoraltemail@test.com",
"contact": "Joe Smith",
"phone": "479-195-8789",
"alt_phone": "479-696-4781",
"fax": "479-222-5688",
"comments": "Please call AR when placing PO to confirm receipt.",
"url": "http://www.staples.com/",
"payment_term": "Due on Receipt",
"shipping_term": "FOB",
"vendor_external_id": "VENDOR_EX_1",
"external_id": "1234"
}
The above command returns a JSON structured like this:
{
"data": {
"id": 711,
"name": "Procurify,",
"active": true,
"address_line_one": "455 Granville St",
"address_line_two": "300",
"postal_code": "V6C 1T1",
"city": "Vancouver",
"state_province": "British Columbia",
"country": "Canada",
"email": "vendoremail@test.com",
"alt_email": "vendoraltemail@test.com",
"contact": "Joe Smith",
"phone": "479-195-8789",
"alt_phone": "479-696-4781",
"fax": "479-222-5688",
"comments": "Please call AR when placing PO to confirm receipt.",
"url": "http://www.staples.com/",
"payment_term": "Due on Receipt",
"shipping_term": "FOB",
"vendor_external_id": "VENDOR_EX_1",
"external_id": "1234",
"custom_fields": {}
},
"metadata": {}
}
This endpoint creates a vendor.
HTTP Request
https://example.procurify.com/api/v3/integrations/netsuite/vendors/
HTTP Response Status Code
201 Created
Arguments
name
required
Vendor name.
address_line_one
Vendor address line one.
address_line_two
Vendor address line two.
postal_code
Vendor postal code.
city
Vendor city.
state_province
Vendor state or province.
country
Vendor country.
email
Vendor email.
alt_email
Vendor alternate email.
contact
Vendor contact.
phone
Vendor phone number.
alt_phone
Vendor alternate phone number.
fax
Vendor fax number.
comments
Vendor comments.
url
Vendor URL.
payment_term
Vendor payment term.
shipping_term
Vendor shipping term.
vendor_external_id
Vendor external id.
external_id
required
ID of the integration object.
Update Vendor PUT
The above command accepts a body:
{
"name": "Procurify",
"address_line_one": "455 Granville St",
"address_line_two": "300",
"postal_code": "V6C 1T1",
"city": "Vancouver",
"state_province": "British Columbia",
"country": "Canada",
"email": "vendoremail@test.com",
"alt_email": "vendoraltemail@test.com",
"contact": "Joe Smith",
"phone": "479-195-8789",
"alt_phone": "479-696-4781",
"fax": "479-222-5688",
"comments": "Please call AR when placing PO to confirm receipt.",
"url": "http://www.staples.com/",
"payment_term": "Due on Receipt",
"shipping_term": "FOB",
"vendor_external_id": "VENDOR_EX_1",
"external_id": "1234"
}
The above command returns a JSON structured like this:
{
"data": {
"id": 711,
"name": "Procurify,",
"active": true,
"address_line_one": "455 Granville St",
"address_line_two": "300",
"postal_code": "V6C 1T1",
"city": "Vancouver",
"state_province": "British Columbia",
"country": "Canada",
"email": "vendoremail@test.com",
"alt_email": "vendoraltemail@test.com",
"contact": "Joe Smith",
"phone": "479-195-8789",
"alt_phone": "479-696-4781",
"fax": "479-222-5688",
"comments": "Please call AR when placing PO to confirm receipt.",
"url": "http://www.staples.com/",
"payment_term": "Due on Receipt",
"shipping_term": "FOB",
"vendor_external_id": "VENDOR_EX_1",
"external_id": "1234",
"custom_fields": {}
},
"metadata": {}
}
This endpoint updates a specific vendor.
HTTP Request
https://example.procurify.com/api/v3/integrations/netsuite/vendors/<VENDOR_ID>/
URL Parameters
Parameter | Description |
---|---|
VENDOR_ID | ID of the vendor being updated |
HTTP Response Status Code
200 OK
Arguments
name
required
Vendor name.
address_line_one
Vendor address line one.
address_line_two
Vendor address line two.
postal_code
Vendor postal code.
city
Vendor city.
state_province
Vendor state or province.
country
Vendor country.
email
Vendor email.
alt_email
Vendor alternate email.
contact
Vendor contact.
phone
Vendor phone number.
alt_phone
Vendor alternate phone number.
fax
Vendor fax number.
comments
Vendor comments.
url
Vendor URL.
payment_term
Vendor payment term.
shipping_term
Vendor shipping term.
vendor_external_id
Vendor external id.
external_id
required
ID of the integration object.
Delete Vendor DELETE
This endpoint deletes a specific vendor.
HTTP Request
https://example.procurify.com/api/v3/integrations/netsuite/vendors/<VENDOR_ID>/
URL Parameters
Parameter | Description |
---|---|
VENDOR_ID | ID of the vendor being deleted |
HTTP Response Status Code
204 No Content
Get Logs GET
HTTP Request
https://example.procurify.com/api/v3/integrations/netsuite/logs/
The above command returns a JSON structured like this:
{
"data": [
{
"id": 1,
"sync_status": "Info",
"is_incoming": false,
"object_details": {
"id": 10,
"content_type": 60,
"external_id": "external-account-code-10",
"uuid": "",
"identifiter": "account_code_1 - description",
"message": "Sync Complete"
},
"created_at": "2019-12-10T17:47:00.373867-08:00"
},
{
"id": 2,
"sync_status": "Info",
"is_incoming": false,
"object_details": {
"id": 20,
"content_type": 21,
"external_id": "external-vendor-20",
"uuid": "",
"identifiter": "Vendor 1",
"message": "Sync Complete"
},
"created_at": "2019-12-10T17:47:00.373867-08:00"
},
{
"id": 3,
"sync_status": "Error",
"is_incoming": false,
"object_details": {
"id": 30,
"content_type": 23,
"external_id": "external-po-30",
"uuid": "6bfcf0610fd211eaa1e506ca8f09037c",
"identifiter": "PF30",
"message": "You have entered an Invalid Field Value 2 for the following field: location."
},
"created_at": "2019-12-10T17:47:00.373867-08:00"
},
{
"id": 4,
"sync_status": "Error",
"is_incoming": false,
"object_details": {
"id": 40,
"content_type": 280,
"external_id": "external-reciept-item-40",
"uuid": "6bfcf0610fd211eaa1e506ca8f09037c",
"identifiter": "PF30",
"message": "You can not initialize itemreceipt: invalid reference 42111."
},
"created_at": "2019-12-10T17:47:00.373867-08:00"
}
],
"metadata": {
"pagination": {
"count": 5,
"next": null,
"previous": null,
"page_size": 10,
"num_pages": 1,
"current_page": 1
}
}
}
URL Parameters
Parameter | Values |
---|---|
status | success , error |
object_type | purchaseorder , receiptline , accountcode , vendor |
HTTP Response Status Code
200 OK
Batch Upsert Object Maps POST
HTTP Request
https://example.procurify.com/api/v3/integrations/object-maps/batch/
The above command accepts a body:
[
{
"object_id": 151,
"content_type": 23,
"status": 1,
"external_id": "1234",
"message": "Error Message"
},
{
"object_id": 121,
"content_type": 23,
"status": 1,
"external_id": "1244",
"message": "Error Message"
}
]
The above command returns a JSON structured like this:
{
"data": [
{
"id": 1,
"object_id": 151,
"status": 1,
"content_type": 23,
"external_id": "1234"
},
{
"id": 2,
"object_id": 121,
"status": 1,
"content_type": 23,
"external_id": "1244"
}
],
"metadata": {}
}
This endpoint batch upserts multiple object maps.
HTTP Response Status Code
201 CREATED
Arguments
object_id
required
ID of the Procurify object.
content_type
required
ID of Procurify content_type.
status
Object map status.
Status | ID |
---|---|
PENDING | 0 |
SYNCED | 1 |
ERROR | 2 |
name
Object map name.
external_id
required
ID of the integration object.
message
Optional message to save to integration logs.
Create Catalog Item POST
HTTP Request
https://example.procurify.com/api/v3/integrations/netsuite/catalog-items/
The above command accepts a body:
{
"name": "Some new item",
"unit_type": "each",
"vendor": 6,
"account_code": 1,
"internal_sku": "1234",
"description": "This is an item",
"product_url": "https://www.procurify.com",
"currency": 1,
"cost": "1.00000000",
"external_id": "1234",
"custom_fields": [
{
"custom_field_name": "An existing custom field",
"custom_field_value": "An appropriate value"
}
]
}
The above command returns a JSON structured like this:
{
"data": {
"id": 31,
"name": "Some new item",
"unit_type": "each",
"vendor": 6,
"account_code": 1,
"internal_sku": "1234",
"active": true,
"description": "This is an item",
"product_url": "https://www.procurify.com",
"currency": 1,
"cost": "1.00000000",
"external_id": "1234",
"custom_fields": {
"An existing custom field": "An appropriate value"
}
},
"metadata": {}
}
HTTP Response Status Code
201 CREATED
Arguments
name
required
Name of your item.
unit_type
Unit name of your item. (Ex: each, liters, feet, etc)
vendor
The primary key to a Procurify vendor. You will need to query the respective API for this.
account_code
The primary key to a Procurify account code (a.k.a. GL code). You will need to query the respective API for this.
internal_sku
A string representing some sort of serial/sku number.
currency
The primary key to a Procurify currency. You will need to query the respective API for this.
description
A more lengthy blob of text to describe your catalog item
product_url
An external link to your item (Ex: if it's from Amazon, maybe a link to the Amazon's page. Or if it's on wikipedia,
maybe a wiki link.)
cost
Amount for your item.
custom_fields[]
A list of custom fields to be assigned to your catalog item. Each custom field object in the list must have an appropriate value and matching name to one of your active custom fields in Procurify.
Update Catalog Item PUT
HTTP Request
https://example.procurify.com/api/v3/integrations/netsuite/catalog-items/1234/
The above command accepts a body:
{
"name": "Some new item",
"unit_type": "each",
"vendor": 6,
"account_code": 1,
"internal_sku": "1234",
"description": "This is an item",
"product_url": "https://www.procurify.com",
"currency": 1,
"cost": "1.00000000",
"external_id": "1234",
"custom_fields": [
{
"custom_field_name": "An existing custom field",
"custom_field_value": "An appropriate value"
}
]
}
The above command returns a JSON structured like this:
{
"data": {
"id": 31,
"name": "Some new item",
"unit_type": "each",
"vendor": 6,
"account_code": 1,
"internal_sku": "1234",
"active": true,
"description": "This is an item",
"product_url": "https://www.procurify.com",
"currency": 1,
"cost": "1.00000000",
"external_id": "1234",
"custom_fields": {
"An existing custom field": "An appropriate value"
}
},
"metadata": {}
}
HTTP Response Status Code
200 OK
Arguments
name
required
Name of your item.
unit_type
Unit name of your item. (Ex: each, liters, feet, etc)
vendor
The primary key to a Procurify vendor. You will need to query the respective API for this.
account_code
The primary key to a Procurify account code (a.k.a. GL code). You will need to query the respective API for this.
internal_sku
A string representing some sort of serial/sku number.
currency
The primary key to a Procurify currency. You will need to query the respective API for this.
description
A more lengthy blob of text to describe your catalog item
product_url
An external link to your item (Ex: if it's from Amazon, maybe a link to the Amazon's page. Or if it's on wikipedia,
maybe a wiki link.)
cost
Amount for your item.
custom_fields[]
A list of custom fields to be assigned to your catalog item. Each custom field object in the list must have an appropriate value and matching name to one of your active custom fields in Procurify.
Delete Catalog Item DELETE
HTTP Request
https://example.procurify.com/api/v3/integrations/netsuite/catalog-items/1234/
HTTP Response Status Code
204 No Content
Get Currencies GET
HTTP Request
https://example.procurify.com/api/v3/integrations/netsuite/currencies/
HTTP Response Status Code
200 OK
URL Parameters
Parameter | Description | Example |
---|---|---|
show_all | Due to currencies not synced between NS + PFY, please be sure to always pass this in | ?show_all=true |
name | name filter, useful to reduce the query speed + reduce response size | ?name=USD |
HTTP Response
The above command returns a JSON structured like this:
{
"data": [
{
"id": 1,
"name": "CAD",
"rate": "0.769231",
"active": true,
"description": "",
"base": false,
"external_id": null,
"custom_fields": {
}
},
{
"id": 3,
"name": "USD",
"rate": "1.000000",
"active": true,
"description": "",
"base": true,
"external_id": null,
"custom_fields": {
}
},
{
"id": 4,
"name": "EUR",
"rate": "0.769231",
"active": true,
"description": "",
"base": false,
"external_id": null,
"custom_fields": {
}
},
{
"id": 86,
"name": "KRW",
"rate": "1.538462",
"active": true,
"description": "",
"base": false,
"external_id": null,
"custom_fields": {
}
}
],
"metadata": {
"pagination": {
"count": 4,
"next": null,
"previous": null,
"page_size": 10,
"num_pages": 1,
"current_page": 1
}
}
}
Get Departments GET
HTTP Request
https://example.procurify.com/api/v3/integrations/netsuite/departments/
HTTP Response Status Code
200 OK
URL Parameters
Parameter | Description | Example |
---|---|---|
show_all | Due to departments not synced between NS + PFY, please be sure to always pass this in | ?show_all=true |
department_name | name filter, useful to reduce the query speed + reduce response size | ?department_name=Marketing |
location_name | Due to the fact department names can be repeated across multiple locations, one must also filter by location name to ensure you assign the department ID | ?location_name=Vancouver |
HTTP Response
The above command returns a JSON structured like this:
{
"data": [
{
"id": 1,
"name": "Accounting",
"branch_id": 1,
"active": true,
"external_id": null,
"custom_fields": {}
},
{
"id": 2,
"name": "Public Affairs",
"branch_id": 1,
"active": true,
"external_id": null,
"custom_fields": {}
},
{
"id": 3,
"name": "Computer Science",
"branch_id": 1,
"active": true,
"external_id": null,
"custom_fields": {}
},
{
"id": 4,
"name": "Mission Operations",
"branch_id": 1,
"active": true,
"external_id": null,
"custom_fields": {}
},
{
"id": 5,
"name": "Aerospace",
"branch_id": 1,
"active": true,
"external_id": null,
"custom_fields": {}
},
{
"id": 6,
"name": "Contracting",
"branch_id": 1,
"active": true,
"external_id": null,
"custom_fields": {}
},
{
"id": 7,
"name": "Shipping/Receiving",
"branch_id": 2,
"active": true,
"external_id": null,
"custom_fields": {}
},
{
"id": 8,
"name": "Spare Parts",
"branch_id": 2,
"active": true,
"external_id": null,
"custom_fields": {}
},
{
"id": 9,
"name": "Maintenance",
"branch_id": 2,
"active": true,
"external_id": null,
"custom_fields": {}
},
{
"id": 10,
"name": "Supplies",
"branch_id": 3,
"active": true,
"external_id": null,
"custom_fields": {}
}
],
"metadata": {
"pagination": {
"count": 30,
"next": "http://antonio.dev.procurify.xyz/api/v3/integrations/netsuite/departments/?page=2&show_all=True",
"previous": null,
"page_size": 10,
"num_pages": 3,
"current_page": 1
}
}
}