Quickbooks

This page contains importable postman collection files which are ready to import into Postman for instant testing. This is in JSON format, please copy and save the text in JSON format before importing in Postman.

You'll need to provide the following variables in your postman collection:

VariableDescriptionExample
API_VERSIONRepresents the version of the Alloy Unified API you intend to make calls to. API versions are dated and new versions are released quarterly (in March, June, September, and December).2023-12
connectionIdThe Id of the connection. Call the GET List Connections endpoint to find a connectionId.
apiKeyYour API key. Never share this with anyone.

{
	"info": {
		"_postman_id": "79b977b6-c7f7-4500-9baa-3f7b378aa5ae",
		"name": "Quickbooks – Alloy UAPI",
		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
		"_exporter_id": "10048813",
		"_collection_link": ""
	},
	"item": [
		{
			"name": "List Company Info",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] companyInfo are listed correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('companyInfo');",
							"    pm.expect(jsonData.companyInfo[0]).to.not.be.null;",
							"    pm.expect(jsonData.companyInfo[0]).to.have.property('remoteId');",
							"    pm.expect(jsonData.companyInfo[0]).to.have.property('companyName');",
							"    pm.expect(jsonData.companyInfo[0]).to.have.property('companyLegalName');",
							"    pm.expect(jsonData.companyInfo[0]).to.have.property('taxNumber');",
							"    pm.expect(jsonData.companyInfo[0]).to.have.property('fiscalYearEndMonth');",
							"    pm.expect(jsonData.companyInfo[0]).to.have.property('fiscalYearEndDay');",
							"    pm.expect(jsonData.companyInfo[0]).to.have.property('currency');",
							"    pm.expect(jsonData.companyInfo[0]).to.have.property('companyUrls');",
							"    pm.expect(jsonData.companyInfo[0].companyUrls).to.be.an('array');",
							"    pm.expect(jsonData.companyInfo[0]).to.have.property('companyAddresses');",
							"    pm.expect(jsonData.companyInfo[0].companyAddresses).to.be.an('array');",
							"    pm.expect(jsonData.companyInfo[0]).to.have.property('companyPhoneNumbers');",
							"    pm.expect(jsonData.companyInfo[0].companyPhoneNumbers).to.be.an('array');",
							"    if(jsonData.companyInfo[0].companyAddresses.length > 0) {",
							"        pm.expect(jsonData.companyInfo[0].companyAddresses[0]).to.have.property('zipCode');",
							"        pm.expect(jsonData.companyInfo[0].companyAddresses[0]).to.have.property('city');",
							"        pm.expect(jsonData.companyInfo[0].companyAddresses[0]).to.have.property('addressType');",
							"        pm.expect(jsonData.companyInfo[0].companyAddresses[0]).to.have.property('street1');",
							"        pm.expect(jsonData.companyInfo[0].companyAddresses[0]).to.have.property('state');",
							"        pm.expect(jsonData.companyInfo[0].companyAddresses[0]).to.have.property('countrySubdivision');",
							"    }",
							"    pm.expect(jsonData.companyInfo[0]).to.have.property('id');",
							"});",
							"",
							"var jsonData = pm.response.json();",
							"let companyInfoId = jsonData.companyInfo[0].id;",
							"postman.setEnvironmentVariable(\"companyInfoId\", companyInfoId);",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/company-info?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"company-info"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Get Company Info Count",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] companyInfo count is displayed correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('count');",
							"});"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/company-info/count?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"company-info",
						"count"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Retrieve Company Info",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] companyInfo is retrieved correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('companyInfo');",
							"    pm.expect(jsonData.companyInfo).to.not.be.null;",
							"    pm.expect(jsonData.companyInfo).to.have.property('remoteId');",
							"    pm.expect(jsonData.companyInfo).to.have.property('companyName');",
							"    pm.expect(jsonData.companyInfo).to.have.property('companyLegalName');",
							"    pm.expect(jsonData.companyInfo).to.have.property('taxNumber');",
							"    pm.expect(jsonData.companyInfo).to.have.property('fiscalYearEndMonth');",
							"    pm.expect(jsonData.companyInfo).to.have.property('fiscalYearEndDay');",
							"    pm.expect(jsonData.companyInfo).to.have.property('currency');",
							"    pm.expect(jsonData.companyInfo).to.have.property('companyUrls');",
							"    pm.expect(jsonData.companyInfo.companyUrls).to.be.an('array');",
							"    pm.expect(jsonData.companyInfo).to.have.property('companyAddresses');",
							"    pm.expect(jsonData.companyInfo.companyAddresses).to.be.an('array');",
							"    pm.expect(jsonData.companyInfo).to.have.property('companyPhoneNumbers');",
							"    pm.expect(jsonData.companyInfo.companyPhoneNumbers).to.be.an('array');",
							"    if(jsonData.companyInfo.companyAddresses.length > 0) {",
							"        pm.expect(jsonData.companyInfo.companyAddresses[0]).to.have.property('zipCode');",
							"        pm.expect(jsonData.companyInfo.companyAddresses[0]).to.have.property('city');",
							"        pm.expect(jsonData.companyInfo.companyAddresses[0]).to.have.property('addressType');",
							"        pm.expect(jsonData.companyInfo.companyAddresses[0]).to.have.property('street1');",
							"        pm.expect(jsonData.companyInfo.companyAddresses[0]).to.have.property('state');",
							"        pm.expect(jsonData.companyInfo.companyAddresses[0]).to.have.property('countrySubdivision');",
							"    }",
							"    pm.expect(jsonData.companyInfo).to.have.property('id');",
							"});"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/company-info/{{companyInfoId}}?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"company-info",
						"{{companyInfoId}}"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Create Account",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] account is retrieved correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData.account).to.not.be.null;",
							"    pm.expect(jsonData.account).to.have.property('remoteId');",
							"    pm.expect(jsonData.account).to.have.property('accountName');",
							"    pm.expect(jsonData.account).to.have.property('accountDescription');",
							"    pm.expect(jsonData.account).to.have.property('classification');",
							"    pm.expect(jsonData.account).to.have.property('accountType');",
							"    pm.expect(jsonData.account).to.have.property('accountStatus');",
							"    pm.expect(jsonData.account).to.have.property('currentBalance');",
							"    pm.expect(jsonData.account).to.have.property('currency');",
							"    pm.expect(jsonData.account).to.have.property('accountNumber');",
							"    pm.expect(jsonData.account).to.have.property('parentAccountId');",
							"    pm.expect(jsonData.account).to.have.property('companyId');",
							"    pm.expect(jsonData.account).to.have.property('id');",
							"    pm.expect(jsonData.account.classification).to.equal('ASSET');",
							"    pm.expect(jsonData.account.accountType).to.equal('OTHER_ASSET');",
							"    pm.expect(jsonData.account.currency).to.equal('USD');",
							"});",
							"",
							"var jsonData = pm.response.json();",
							"let accountId = jsonData.account.id;",
							"postman.setEnvironmentVariable(\"accountId\", accountId);"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				}
			},
			"request": {
				"method": "POST",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\n    \"accountName\": \"FrancisChild+{{$randomUUID}}\",\n    \"accountType\": \"OTHER_ASSET\",\n    \"currency\": \"USD\"\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/accounts?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"accounts"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "List Accounts",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] accounts are listed correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('accounts');",
							"    pm.expect(jsonData.accounts[0]).to.not.be.null;",
							"    pm.expect(jsonData.accounts[0]).to.have.property('remoteId');",
							"    pm.expect(jsonData.accounts[0]).to.have.property('accountName');",
							"    pm.expect(jsonData.accounts[0]).to.have.property('accountDescription');",
							"    pm.expect(jsonData.accounts[0]).to.have.property('classification');",
							"    pm.expect(jsonData.accounts[0]).to.have.property('accountType');",
							"    pm.expect(jsonData.accounts[0]).to.have.property('accountStatus');",
							"    pm.expect(jsonData.accounts[0]).to.have.property('currentBalance');",
							"    pm.expect(jsonData.accounts[0]).to.have.property('currency');",
							"    pm.expect(jsonData.accounts[0]).to.have.property('accountNumber');",
							"    pm.expect(jsonData.accounts[0]).to.have.property('parentAccountId');",
							"    pm.expect(jsonData.accounts[0]).to.have.property('companyId');",
							"    pm.expect(jsonData.accounts[0]).to.have.property('id');",
							"});",
							"",
							"var jsonData = pm.response.json();",
							"let accountId = jsonData.accounts[0].id;",
							"postman.setEnvironmentVariable(\"accountId\", accountId);",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "urlencoded",
					"urlencoded": []
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/accounts?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"accounts"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Get Account Count",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] Account count is displayed correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('count');",
							"});"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/accounts/count?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"accounts",
						"count"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Retrieve Account",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] account is retrieved correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData.account).to.not.be.null;",
							"    pm.expect(jsonData.account).to.have.property('remoteId');",
							"    pm.expect(jsonData.account).to.have.property('accountName');",
							"    pm.expect(jsonData.account).to.have.property('accountDescription');",
							"    pm.expect(jsonData.account).to.have.property('classification');",
							"    pm.expect(jsonData.account).to.have.property('accountType');",
							"    pm.expect(jsonData.account).to.have.property('accountStatus');",
							"    pm.expect(jsonData.account).to.have.property('currentBalance');",
							"    pm.expect(jsonData.account).to.have.property('currency');",
							"    pm.expect(jsonData.account).to.have.property('accountNumber');",
							"    pm.expect(jsonData.account).to.have.property('parentAccountId');",
							"    pm.expect(jsonData.account).to.have.property('companyId');",
							"    pm.expect(jsonData.account).to.have.property('id');",
							"});"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/accounts/{{accountId}}?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"accounts",
						"{{accountId}}"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Update Account",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"account is retrieved correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData.account).to.not.be.null;",
							"    pm.expect(jsonData.account).to.have.property('remoteId');",
							"    pm.expect(jsonData.account).to.have.property('accountName');",
							"    pm.expect(jsonData.account).to.have.property('accountDescription');",
							"    pm.expect(jsonData.account).to.have.property('classification');",
							"    pm.expect(jsonData.account).to.have.property('accountType');",
							"    pm.expect(jsonData.account).to.have.property('accountStatus');",
							"    pm.expect(jsonData.account).to.have.property('currentBalance');",
							"    pm.expect(jsonData.account).to.have.property('currency');",
							"    pm.expect(jsonData.account).to.have.property('accountNumber');",
							"    pm.expect(jsonData.account).to.have.property('parentAccountId');",
							"    pm.expect(jsonData.account).to.have.property('companyId');",
							"    pm.expect(jsonData.account).to.have.property('id');",
							"});"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				}
			},
			"request": {
				"method": "PUT",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\n    \"accountName\": \"CachoChildren+{{$randomUUID}}\"\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/accounts/{{accountId}}?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"accounts",
						"{{accountId}}"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Delete Account",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 422\"] = responseCode.code === 422;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"Status code is 422\", function () {",
							"    pm.response.to.have.status(422);",
							"});",
							"",
							"pm.test(\"Body has code and message\", function () {",
							"    let jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('code');",
							"    pm.expect(jsonData).to.have.property('message');",
							"});",
							"",
							"pm.test(\"Code is OPERATION_NOT_SUPPORTED\", function () {",
							"    let jsonData = pm.response.json();",
							"    pm.expect(jsonData.code).to.eql(\"OPERATION_NOT_SUPPORTED\");",
							"});"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				}
			},
			"request": {
				"method": "DELETE",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/accounts/{{accountId}}?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"accounts",
						"{{accountId}}"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "List Customers",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] customers are listed correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('customers');",
							"    pm.expect(jsonData.customers[0]).to.not.be.null;",
							"    pm.expect(jsonData.customers[0]).to.have.property('remoteId');",
							"    pm.expect(jsonData.customers[0]).to.have.property('customerName');",
							"    pm.expect(jsonData.customers[0]).to.have.property('email');",
							"    pm.expect(jsonData.customers[0]).to.have.property('taxNumber');",
							"    pm.expect(jsonData.customers[0]).to.have.property('customerStatus');",
							"    pm.expect(jsonData.customers[0]).to.have.property('currency');",
							"    pm.expect(jsonData.customers[0]).to.have.property('companyId');",
							"    pm.expect(jsonData.customers[0]).to.have.property('addresses');",
							"    pm.expect(jsonData.customers[0].addresses).to.be.an('array');",
							"    if(jsonData.customers[0].addresses.length > 0) {",
							"        pm.expect(jsonData.customers[0].addresses[0]).to.have.property('addressType');",
							"        pm.expect(jsonData.customers[0].addresses[0]).to.have.property('street1');",
							"    }",
							"    pm.expect(jsonData.customers[0]).to.have.property('phoneNumbers');",
							"    pm.expect(jsonData.customers[0].phoneNumbers).to.be.an('array');",
							"    if(jsonData.customers[0].phoneNumbers.length > 0) {",
							"        pm.expect(jsonData.customers[0].phoneNumbers[0]).to.have.property('phoneNumberType');",
							"        pm.expect(jsonData.customers[0].phoneNumbers[0]).to.have.property('phoneNumber');",
							"    }",
							"    pm.expect(jsonData.customers[0]).to.have.property('createdTimestamp');",
							"    pm.expect(jsonData.customers[0]).to.have.property('updatedTimestamp');",
							"    pm.expect(jsonData.customers[0]).to.have.property('id');",
							"});",
							"",
							"var jsonData = pm.response.json();",
							"let customerId = jsonData.customers[0].id;",
							"postman.setEnvironmentVariable(\"customerId\", customerId);",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/customers?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"customers"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Get Customers Count",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] customer count is displayed correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('count');",
							"});"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/customers/count?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"customers",
						"count"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Create Customer",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] customer is retrieved correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('customer');",
							"    pm.expect(jsonData.customer).to.not.be.null;",
							"    pm.expect(jsonData.customer).to.have.property('remoteId');",
							"    pm.expect(jsonData.customer).to.have.property('customerName');",
							"    pm.expect(jsonData.customer).to.have.property('email');",
							"    pm.expect(jsonData.customer).to.have.property('taxNumber');",
							"    pm.expect(jsonData.customer).to.have.property('customerStatus');",
							"    pm.expect(jsonData.customer).to.have.property('currency');",
							"    pm.expect(jsonData.customer).to.have.property('companyId');",
							"    pm.expect(jsonData.customer).to.have.property('addresses');",
							"    pm.expect(jsonData.customer.addresses).to.be.an('array').that.is.not.empty;",
							"    pm.expect(jsonData.customer.addresses[0]).to.have.property('addressType');",
							"    pm.expect(jsonData.customer.addresses[0]).to.have.property('street1');",
							"    pm.expect(jsonData.customer).to.have.property('phoneNumbers');",
							"    pm.expect(jsonData.customer.phoneNumbers).to.be.an('array').that.is.not.empty;",
							"    pm.expect(jsonData.customer.phoneNumbers[0]).to.have.property('phoneNumberType');",
							"    pm.expect(jsonData.customer.phoneNumbers[0]).to.have.property('phoneNumber');",
							"    pm.expect(jsonData.customer).to.have.property('addresses');",
							"    pm.expect(jsonData.customer).to.have.property('createdTimestamp');",
							"    pm.expect(jsonData.customer).to.have.property('updatedTimestamp');",
							"    pm.expect(jsonData.customer).to.have.property('id');",
							"    pm.expect(jsonData.customer.addresses[0].addressType).to.equal('BILLING');",
							"    pm.expect(jsonData.customer.addresses[0].street1).to.equal('Beverly Hills');",
							"    pm.expect(jsonData.customer.addresses[0].zipCode).to.equal('90210');",
							"    pm.expect(jsonData.customer.addresses[0].country).to.equal('US');",
							"    pm.expect(jsonData.customer.phoneNumbers[0].phoneNumber).to.equal('09173210215');",
							"    pm.expect(jsonData.customer.phoneNumbers[0].phoneNumberType).to.equal('MOBILE');",
							"});",
							"",
							"var jsonData = pm.response.json();",
							"let customerId = jsonData.customer.id;",
							"postman.setEnvironmentVariable(\"customerId\", customerId);"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				}
			},
			"request": {
				"method": "POST",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\n    \"customerName\": \"Alloy+{{$randomUUID}}\",\n    \"addresses\": [\n        {   \n            \"addressType\": \"BILLING\",\n            \"street1\": \"Beverly Hills\",\n            \"zipCode\": \"90210\",\n            \"country\": \"US\"\n        }\n    ],\n    \"phoneNumbers\": [\n        {\n            \"phoneNumberType\": \"MOBILE\",\n            \"phoneNumber\": \"09173210215\"\n        }\n    ]\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/customers?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"customers"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Retrieve Customer",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"customer is retrieved correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('customer');",
							"    pm.expect(jsonData.customer).to.not.be.null;",
							"    pm.expect(jsonData.customer).to.have.property('remoteId');",
							"    pm.expect(jsonData.customer).to.have.property('customerName');",
							"    pm.expect(jsonData.customer).to.have.property('email');",
							"    pm.expect(jsonData.customer).to.have.property('taxNumber');",
							"    pm.expect(jsonData.customer).to.have.property('customerStatus');",
							"    pm.expect(jsonData.customer).to.have.property('currency');",
							"    pm.expect(jsonData.customer).to.have.property('companyId');",
							"    pm.expect(jsonData.customer).to.have.property('addresses');",
							"    pm.expect(jsonData.customer).to.have.property('createdTimestamp');",
							"    pm.expect(jsonData.customer).to.have.property('updatedTimestamp');",
							"    pm.expect(jsonData.customer).to.have.property('id');",
							"});"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/customers/{{customerId}}?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"customers",
						"{{customerId}}"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Update Customer",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"customer is retrieved correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('customer');",
							"    pm.expect(jsonData.customer).to.not.be.null;",
							"    pm.expect(jsonData.customer).to.have.property('remoteId');",
							"    pm.expect(jsonData.customer).to.have.property('customerName');",
							"    pm.expect(jsonData.customer).to.have.property('email');",
							"    pm.expect(jsonData.customer).to.have.property('taxNumber');",
							"    pm.expect(jsonData.customer).to.have.property('customerStatus');",
							"    pm.expect(jsonData.customer).to.have.property('currency');",
							"    pm.expect(jsonData.customer).to.have.property('companyId');",
							"    pm.expect(jsonData.customer).to.have.property('addresses');",
							"    pm.expect(jsonData.customer).to.have.property('createdTimestamp');",
							"    pm.expect(jsonData.customer).to.have.property('updatedTimestamp');",
							"    pm.expect(jsonData.customer).to.have.property('id');",
							"    pm.expect(jsonData.customer.customerName).to.include(\"AlloyUpdate\");",
							"    pm.expect(jsonData.customer.addresses).to.be.an('array').that.is.not.empty;",
							"    pm.expect(jsonData.customer.addresses[0].street1).to.include(\"Lombard\");",
							"    pm.expect(jsonData.customer.addresses[0].zipCode).to.include(\"94012\");",
							"});",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				}
			},
			"request": {
				"method": "PUT",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\n    \"customerName\": \"AlloyUpdate+{{$randomUUID}}\",\n    \"addresses\": [\n        {   \n            \"addressType\": \"BILLING\",\n            \"street1\": \"Lombard\",\n            \"zipCode\": \"94012\",\n            \"country\": \"US\"\n        }\n    ],\n    \"phoneNumbers\": [\n        {\n            \"phoneNumberType\": \"MOBILE\",\n            \"phoneNumber\": \"09173210215\"\n        }\n    ]\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/customers/{{customerId}}?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"customers",
						"{{customerId}}"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Delete Customer",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 422\"] = responseCode.code === 422;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"Status code is 422\", function () {",
							"    pm.response.to.have.status(422);",
							"});",
							"",
							"pm.test(\"Body has code and message\", function () {",
							"    let jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('code');",
							"    pm.expect(jsonData).to.have.property('message');",
							"});",
							"",
							"pm.test(\"Code is OPERATION_NOT_SUPPORTED\", function () {",
							"    let jsonData = pm.response.json();",
							"    pm.expect(jsonData.code).to.eql(\"OPERATION_NOT_SUPPORTED\");",
							"});"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				}
			},
			"request": {
				"method": "DELETE",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/customers/{{customerId}}?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"customers",
						"{{customerId}}"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Create Vendor",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"vendor is retrieved correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('vendor');",
							"    pm.expect(jsonData.vendor).to.not.be.null;",
							"    pm.expect(jsonData.vendor).to.have.property('remoteId');",
							"    pm.expect(jsonData.vendor).to.have.property('vendorName');",
							"    pm.expect(jsonData.vendor).to.have.property('email');",
							"    pm.expect(jsonData.vendor).to.have.property('taxNumber');",
							"    pm.expect(jsonData.vendor).to.have.property('vendorStatus');",
							"    pm.expect(jsonData.vendor).to.have.property('currency');",
							"    pm.expect(jsonData.vendor).to.have.property('companyId');",
							"    pm.expect(jsonData.vendor).to.have.property('addresses');",
							"    pm.expect(jsonData.vendor.addresses).to.be.an('array').that.is.not.empty;",
							"    pm.expect(jsonData.vendor).to.have.property('phoneNumbers');",
							"    pm.expect(jsonData.vendor).to.have.property('createdTimestamp');",
							"    pm.expect(jsonData.vendor).to.have.property('updatedTimestamp');",
							"    pm.expect(jsonData.vendor).to.have.property('id');",
							"    pm.expect(jsonData.vendor.addresses[0]).to.have.property('addressType');",
							"    pm.expect(jsonData.vendor.addresses[0]).to.have.property('street1');",
							"    pm.expect(jsonData.vendor.addresses[0]).to.have.property('street2');",
							"    pm.expect(jsonData.vendor.addresses[0]).to.have.property('city');",
							"    pm.expect(jsonData.vendor.addresses[0]).to.have.property('state');",
							"    pm.expect(jsonData.vendor.addresses[0]).to.have.property('country');",
							"    pm.expect(jsonData.vendor.addresses[0]).to.have.property('countrySubdivision');",
							"    pm.expect(jsonData.vendor.addresses[0]).to.have.property('country');",
							"    pm.expect(jsonData.vendor.addresses[0]).to.have.property('zipCode');",
							"    pm.expect(jsonData.vendor.addresses[0].street1).to.equal('Avenue of the Americas');",
							"    pm.expect(jsonData.vendor.addresses[0].zipCode).to.equal('90210');",
							"",
							"});",
							"",
							"var jsonData = pm.response.json();",
							"let vendorId = jsonData.vendor.id;",
							"postman.setEnvironmentVariable(\"vendorId\", vendorId);"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				}
			},
			"request": {
				"method": "POST",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\n    \"vendorName\": \"Alloy+{{$randomUUID}}\",\n    \"vendorStatus\": \"ACTIVE\",\n    \"addresses\": [\n        {   \n            \"addressType\": \"BILLING\",\n            \"street1\": \"Avenue of the Americas\",\n            \"zipCode\": \"90210\",\n            \"country\": \"US\"\n        }\n    ],\n    \"phoneNumbers\": [\n        {\n            \"phoneNumberType\": \"MOBILE\",\n            \"phoneNumber\": \"09173210215\"\n        }\n    ]\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/vendors?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"vendors"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "List Vendors",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] vendors are listed correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('vendors');",
							"    pm.expect(jsonData.vendors[0]).to.not.be.null;",
							"    pm.expect(jsonData.vendors[0]).to.have.property('remoteId');",
							"    pm.expect(jsonData.vendors[0]).to.have.property('vendorName');",
							"    pm.expect(jsonData.vendors[0]).to.have.property('email');",
							"    pm.expect(jsonData.vendors[0]).to.have.property('taxNumber');",
							"    pm.expect(jsonData.vendors[0]).to.have.property('vendorStatus');",
							"    pm.expect(jsonData.vendors[0]).to.have.property('currency');",
							"    pm.expect(jsonData.vendors[0]).to.have.property('companyId');",
							"    pm.expect(jsonData.vendors[0]).to.have.property('addresses');",
							"    pm.expect(jsonData.vendors[0]).to.have.property('phoneNumbers');",
							"    pm.expect(jsonData.vendors[0]).to.have.property('createdTimestamp');",
							"    pm.expect(jsonData.vendors[0]).to.have.property('updatedTimestamp');",
							"    pm.expect(jsonData.vendors[0]).to.have.property('id');",
							"",
							"    pm.expect(jsonData.vendors[0]).to.have.property('addresses');",
							"    pm.expect(jsonData.vendors[0].addresses[0]).to.have.property('street1');",
							"    pm.expect(jsonData.vendors[0].addresses[0]).to.have.property('addressType');",
							"    pm.expect(jsonData.vendors[0].addresses[0]).to.have.property('street2');",
							"    pm.expect(jsonData.vendors[0].addresses[0]).to.have.property('city');",
							"    pm.expect(jsonData.vendors[0].addresses[0]).to.have.property('state');",
							"    pm.expect(jsonData.vendors[0].addresses[0]).to.have.property('countrySubdivision');",
							"    pm.expect(jsonData.vendors[0].addresses[0]).to.have.property('country');",
							"    pm.expect(jsonData.vendors[0].addresses[0]).to.have.property('zipCode');",
							"",
							"    if (jsonData.vendors[0].phoneNumbers.length > 0){",
							"        pm.expect(jsonData.vendors[0].phoneNumbers[0]).to.have.property('phoneNumberType');",
							"        pm.expect(jsonData.vendors[0].phoneNumbers[0]).to.have.property('phoneNumber');",
							"    }",
							"   ",
							"});",
							"",
							"var jsonData = pm.response.json();",
							"let vendorId = jsonData.vendors[0].id;",
							"postman.setEnvironmentVariable(\"vendorId\", vendorId);",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/vendors?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"vendors"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Get Vendor Count",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] vendor count is displayed correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('count');",
							"});"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/vendors/count?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"vendors",
						"count"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Retrieve Vendor",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] vendor is retrieved correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('vendor');",
							"    pm.expect(jsonData.vendor).to.not.be.null;",
							"    pm.expect(jsonData.vendor).to.have.property('remoteId');",
							"    pm.expect(jsonData.vendor).to.have.property('vendorName');",
							"    pm.expect(jsonData.vendor).to.have.property('email');",
							"    pm.expect(jsonData.vendor).to.have.property('taxNumber');",
							"    pm.expect(jsonData.vendor).to.have.property('vendorStatus');",
							"    pm.expect(jsonData.vendor).to.have.property('currency');",
							"    pm.expect(jsonData.vendor).to.have.property('companyId');",
							"    pm.expect(jsonData.vendor).to.have.property('addresses');",
							"    pm.expect(jsonData.vendor.addresses).to.be.an('array');",
							"    pm.expect(jsonData.vendor).to.have.property('phoneNumbers');",
							"    pm.expect(jsonData.vendor).to.have.property('createdTimestamp');",
							"    pm.expect(jsonData.vendor).to.have.property('updatedTimestamp');",
							"    pm.expect(jsonData.vendor).to.have.property('id');",
							"    if(jsonData.vendor.addresses.length > 0) {",
							"        pm.expect(jsonData.vendor.addresses[0]).to.have.property('addressType');",
							"        pm.expect(jsonData.vendor.addresses[0]).to.have.property('street1');",
							"        pm.expect(jsonData.vendor.addresses[0]).to.have.property('street2');",
							"        pm.expect(jsonData.vendor.addresses[0]).to.have.property('city');",
							"        pm.expect(jsonData.vendor.addresses[0]).to.have.property('state');",
							"        pm.expect(jsonData.vendor.addresses[0]).to.have.property('country');",
							"        pm.expect(jsonData.vendor.addresses[0]).to.have.property('countrySubdivision');",
							"        pm.expect(jsonData.vendor.addresses[0]).to.have.property('country');",
							"        pm.expect(jsonData.vendor.addresses[0]).to.have.property('zipCode');",
							"    }",
							"});",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/vendors/{{vendorId}}?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"vendors",
						"{{vendorId}}"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Update Vendor",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"vendor is retrieved correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('vendor');",
							"    pm.expect(jsonData.vendor).to.not.be.null;",
							"    pm.expect(jsonData.vendor).to.have.property('remoteId');",
							"    pm.expect(jsonData.vendor).to.have.property('vendorName');",
							"    pm.expect(jsonData.vendor).to.have.property('email');",
							"    pm.expect(jsonData.vendor).to.have.property('taxNumber');",
							"    pm.expect(jsonData.vendor).to.have.property('vendorStatus');",
							"    pm.expect(jsonData.vendor).to.have.property('currency');",
							"    pm.expect(jsonData.vendor).to.have.property('companyId');",
							"    pm.expect(jsonData.vendor).to.have.property('addresses');",
							"    pm.expect(jsonData.vendor.addresses).to.be.an('array').that.is.not.empty;",
							"    pm.expect(jsonData.vendor).to.have.property('phoneNumbers');",
							"    pm.expect(jsonData.vendor).to.have.property('createdTimestamp');",
							"    pm.expect(jsonData.vendor).to.have.property('updatedTimestamp');",
							"    pm.expect(jsonData.vendor).to.have.property('id');",
							"    pm.expect(jsonData.vendor.addresses[0]).to.have.property('addressType');",
							"    pm.expect(jsonData.vendor.addresses[0]).to.have.property('street1');",
							"    pm.expect(jsonData.vendor.addresses[0]).to.have.property('street2');",
							"    pm.expect(jsonData.vendor.addresses[0]).to.have.property('city');",
							"    pm.expect(jsonData.vendor.addresses[0]).to.have.property('state');",
							"    pm.expect(jsonData.vendor.addresses[0]).to.have.property('country');",
							"    pm.expect(jsonData.vendor.addresses[0]).to.have.property('countrySubdivision');",
							"    pm.expect(jsonData.vendor.addresses[0]).to.have.property('country');",
							"    pm.expect(jsonData.vendor.addresses[0]).to.have.property('zipCode');",
							"    pm.expect(jsonData.vendor.addresses[0].street1).to.equal('Dan Troy');",
							"    pm.expect(jsonData.vendor.addresses[0].zipCode).to.equal('14221');",
							"    pm.expect(jsonData.vendor.vendorName).to.include(\"AlloyUpdate\");",
							"});",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				}
			},
			"request": {
				"method": "PUT",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\n    \"vendorName\": \"AlloyUpdate+{{$randomUUID}}\",\n    \"vendorStatus\": \"ACTIVE\",\n    \"addresses\": [\n        {   \n            \"addressType\": \"BILLING\",\n            \"street1\": \"Dan Troy\",\n            \"zipCode\": \"14221\",\n            \"country\": \"US\"\n        }\n    ],\n    \"phoneNumbers\": [\n        {\n            \"phoneNumberType\": \"MOBILE\",\n            \"phoneNumber\": \"09173210215\"\n        }\n    ]\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/vendors/{{vendorId}}?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"vendors",
						"{{vendorId}}"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Delete Vendor",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 422\"] = responseCode.code === 422;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"Status code is 422\", function () {",
							"    pm.response.to.have.status(422);",
							"});",
							"",
							"pm.test(\"Body has code and message\", function () {",
							"    let jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('code');",
							"    pm.expect(jsonData).to.have.property('message');",
							"});",
							"",
							"pm.test(\"Code is OPERATION_NOT_SUPPORTED\", function () {",
							"    let jsonData = pm.response.json();",
							"    pm.expect(jsonData.code).to.eql(\"OPERATION_NOT_SUPPORTED\");",
							"});"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				}
			},
			"request": {
				"method": "DELETE",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/vendors/{{vendorId}}?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"vendors",
						"{{vendorId}}"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "List Tax Rates",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] taxRates are listed correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('taxRates');",
							"    pm.expect(jsonData.taxRates[0]).to.not.be.null;",
							"    pm.expect(jsonData.taxRates[0]).to.have.property('remoteId');",
							"    pm.expect(jsonData.taxRates[0]).to.have.property('description');",
							"    pm.expect(jsonData.taxRates[0]).to.have.property('totalTaxRate');",
							"    pm.expect(jsonData.taxRates[0]).to.have.property('effectiveTaxRate');",
							"    pm.expect(jsonData.taxRates[0]).to.have.property('companyId');",
							"    pm.expect(jsonData.taxRates[0]).to.have.property('id');",
							"});",
							"",
							"var jsonData = pm.response.json();",
							"let taxRateId = jsonData.taxRates[0].id;",
							"postman.setEnvironmentVariable(\"taxRateId\", taxRateId);",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/tax-rates?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"tax-rates"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Get Tax Rate Count",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"tax rate count is displayed correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('count');",
							"});"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/tax-rates/count?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"tax-rates",
						"count"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Retrieve Tax Rate",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] taxRate is retrieved correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('taxRate');",
							"    pm.expect(jsonData.taxRate).to.have.property('remoteId');",
							"    pm.expect(jsonData.taxRate).to.have.property('description');",
							"    pm.expect(jsonData.taxRate).to.have.property('totalTaxRate');",
							"    pm.expect(jsonData.taxRate).to.have.property('effectiveTaxRate');",
							"    pm.expect(jsonData.taxRate).to.have.property('companyId');",
							"    pm.expect(jsonData.taxRate).to.have.property('id');",
							"    ",
							"    pm.expect(jsonData.taxRate.totalTaxRate).to.be.a(\"number\");",
							"    pm.expect(jsonData.taxRate.remoteId).to.be.a(\"string\");",
							"",
							"});",
							"",
							"var jsonData = pm.response.json();",
							"let taxRateId = jsonData.taxRate.id;",
							"postman.setEnvironmentVariable(\"taxRateId\", taxRateId);",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/tax-rates/{{taxRateId}}?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"tax-rates",
						"{{taxRateId}}"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "List Tracking Categories",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] trackingCategories are listed correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('trackingCategories');",
							"    pm.expect(jsonData.trackingCategories[0]).to.not.be.null;",
							"    pm.expect(jsonData.trackingCategories[0]).to.have.property('remoteId');",
							"    pm.expect(jsonData.trackingCategories[0]).to.have.property('trackingCategoryName');",
							"    pm.expect(jsonData.trackingCategories[0]).to.have.property('trackingCategoryStatus');",
							"    pm.expect(jsonData.trackingCategories[0]).to.have.property('trackingCategoryType');",
							"    pm.expect(jsonData.trackingCategories[0]).to.have.property('parentCategoryId');",
							"    pm.expect(jsonData.trackingCategories[0]).to.have.property('companyId');",
							"    pm.expect(jsonData.trackingCategories[0]).to.have.property('id');",
							"});",
							"",
							"var jsonData = pm.response.json();",
							"let trackingCategoryId = jsonData.trackingCategories[0].id;",
							"postman.setEnvironmentVariable(\"trackingCategoryId\", trackingCategoryId);",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/tracking-categories?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"tracking-categories"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Get Tracking Category Count",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"tracking category count is displayed correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('count');",
							"});"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/tracking-categories/count?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"tracking-categories",
						"count"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Retrieve Tracking Category",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] tracking category is retrieved correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('trackingCategory');",
							"    pm.expect(jsonData.trackingCategory).to.not.be.null;",
							"    pm.expect(jsonData.trackingCategory).to.have.property('remoteId');",
							"    pm.expect(jsonData.trackingCategory).to.have.property('trackingCategoryName');",
							"    pm.expect(jsonData.trackingCategory).to.have.property('trackingCategoryStatus');",
							"    pm.expect(jsonData.trackingCategory).to.have.property('trackingCategoryType');",
							"    pm.expect(jsonData.trackingCategory).to.have.property('parentCategoryId');",
							"    pm.expect(jsonData.trackingCategory).to.have.property('companyId');",
							"    pm.expect(jsonData.trackingCategory).to.have.property('id');",
							"});",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/tracking-categories/{{trackingCategoryId}}?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"tracking-categories",
						"{{trackingCategoryId}}"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Create Account for Item",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] account is retrieved correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData.account).to.not.be.null;",
							"    pm.expect(jsonData.account).to.have.property('remoteId');",
							"    pm.expect(jsonData.account).to.have.property('accountName');",
							"    pm.expect(jsonData.account).to.have.property('accountDescription');",
							"    pm.expect(jsonData.account).to.have.property('classification');",
							"    pm.expect(jsonData.account).to.have.property('accountType');",
							"    pm.expect(jsonData.account).to.have.property('accountStatus');",
							"    pm.expect(jsonData.account).to.have.property('currentBalance');",
							"    pm.expect(jsonData.account).to.have.property('currency');",
							"    pm.expect(jsonData.account).to.have.property('accountNumber');",
							"    pm.expect(jsonData.account).to.have.property('parentAccountId');",
							"    pm.expect(jsonData.account).to.have.property('companyId');",
							"    pm.expect(jsonData.account).to.have.property('id');",
							"    pm.expect(jsonData.account.classification).to.equal('ASSET');",
							"    pm.expect(jsonData.account.accountType).to.equal('OTHER_ASSET');",
							"    pm.expect(jsonData.account.currency).to.equal('USD');",
							"});",
							"",
							"var jsonData = pm.response.json();",
							"let accountId = jsonData.account.id;",
							"postman.setEnvironmentVariable(\"accountId\", accountId);"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				}
			},
			"request": {
				"method": "POST",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\n    \"accountName\": \"FrancisChild+{{$randomUUID}}\",\n    \"accountType\": \"OTHER_ASSET\",\n    \"currency\": \"USD\"\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/accounts?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"accounts"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Create Item",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] item is retrieved correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('item');",
							"    pm.expect(jsonData.item).to.not.be.null;",
							"    pm.expect(jsonData.item).to.have.property('remoteId');",
							"    pm.expect(jsonData.item).to.have.property('itemName');",
							"    pm.expect(jsonData.item).to.have.property('itemStatus');",
							"    pm.expect(jsonData.item).to.have.property('itemType');",
							"    pm.expect(jsonData.item).to.have.property('unitPrice');",
							"    pm.expect(jsonData.item).to.have.property('purchasePrice');",
							"    pm.expect(jsonData.item).to.have.property('qtyOnHand');",
							"    pm.expect(jsonData.item).to.have.property('billAccountId');",
							"    pm.expect(jsonData.item).to.have.property('invoiceAccountId');",
							"    pm.expect(jsonData.item).to.have.property('assetAccountId');",
							"    pm.expect(jsonData.item).to.have.property('companyId');",
							"    pm.expect(jsonData.item).to.have.property('createdTimestamp');",
							"    pm.expect(jsonData.item).to.have.property('updatedTimestamp');",
							"    pm.expect(jsonData.item).to.have.property('id');",
							"    pm.expect(jsonData.item.itemType).to.equal(\"SERVICE\");",
							"    pm.expect(jsonData.item.itemName).to.contain(\"Item\");",
							"",
							"",
							"});",
							"",
							"var jsonData = pm.response.json();",
							"let itemId = jsonData.item.id;",
							"postman.setEnvironmentVariable(\"itemId\", itemId);"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				}
			},
			"request": {
				"method": "POST",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\n    \"itemName\": \"{{$randomAdjective}} {{$randomNoun}} Item\",\n    \"itemType\": \"SERVICE\",\n    \"billAccountId\": \"{{accountId}}\"\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/items?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"items"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "List Items",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] items are listed correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('items');",
							"    pm.expect(jsonData.items[0]).to.not.be.null;",
							"    pm.expect(jsonData.items[0]).to.have.property('remoteId');",
							"    pm.expect(jsonData.items[0]).to.have.property('itemName');",
							"    pm.expect(jsonData.items[0]).to.have.property('itemStatus');",
							"    pm.expect(jsonData.items[0]).to.have.property('itemType');",
							"    pm.expect(jsonData.items[0]).to.have.property('unitPrice');",
							"    pm.expect(jsonData.items[0]).to.have.property('purchasePrice');",
							"    pm.expect(jsonData.items[0]).to.have.property('qtyOnHand');",
							"    pm.expect(jsonData.items[0]).to.have.property('billAccountId');",
							"    pm.expect(jsonData.items[0]).to.have.property('invoiceAccountId');",
							"    pm.expect(jsonData.items[0]).to.have.property('assetAccountId');",
							"    pm.expect(jsonData.items[0]).to.have.property('companyId');",
							"    pm.expect(jsonData.items[0]).to.have.property('createdTimestamp');",
							"    pm.expect(jsonData.items[0]).to.have.property('updatedTimestamp');",
							"    pm.expect(jsonData.items[0]).to.have.property('id');",
							"});",
							"",
							"var jsonData = pm.response.json();",
							"let itemId = jsonData.items[0].id;",
							"postman.setEnvironmentVariable(\"itemId\", itemId);",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/items?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"items"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Get Item Count",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] item count is displayed correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('count');",
							"});"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/items/count?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"items",
						"count"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Retrieve Item",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] item is retrieved correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('item');",
							"    pm.expect(jsonData.item).to.not.be.null;",
							"    pm.expect(jsonData.item).to.have.property('remoteId');",
							"    pm.expect(jsonData.item).to.have.property('itemName');",
							"    pm.expect(jsonData.item).to.have.property('itemStatus');",
							"    pm.expect(jsonData.item).to.have.property('itemType');",
							"    pm.expect(jsonData.item).to.have.property('unitPrice');",
							"    pm.expect(jsonData.item).to.have.property('purchasePrice');",
							"    pm.expect(jsonData.item).to.have.property('qtyOnHand');",
							"    pm.expect(jsonData.item).to.have.property('billAccountId');",
							"    pm.expect(jsonData.item).to.have.property('invoiceAccountId');",
							"    pm.expect(jsonData.item).to.have.property('assetAccountId');",
							"    pm.expect(jsonData.item).to.have.property('companyId');",
							"    pm.expect(jsonData.item).to.have.property('createdTimestamp');",
							"    pm.expect(jsonData.item).to.have.property('updatedTimestamp');",
							"    pm.expect(jsonData.item).to.have.property('id');",
							"});",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/items/{{itemId}}?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"items",
						"{{itemId}}"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Get Item with itemType INVENTORY for Update Item unitPrice",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] items are listed correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('items');",
							"    pm.expect(jsonData.items[0]).to.not.be.null;",
							"    pm.expect(jsonData.items[0]).to.have.property('remoteId');",
							"    pm.expect(jsonData.items[0]).to.have.property('itemName');",
							"    pm.expect(jsonData.items[0]).to.have.property('itemStatus');",
							"    pm.expect(jsonData.items[0]).to.have.property('itemType');",
							"    pm.expect(jsonData.items[0]).to.have.property('unitPrice');",
							"    pm.expect(jsonData.items[0]).to.have.property('purchasePrice');",
							"    pm.expect(jsonData.items[0]).to.have.property('qtyOnHand');",
							"    pm.expect(jsonData.items[0]).to.have.property('billAccountId');",
							"    pm.expect(jsonData.items[0]).to.have.property('invoiceAccountId');",
							"    pm.expect(jsonData.items[0]).to.have.property('assetAccountId');",
							"    pm.expect(jsonData.items[0]).to.have.property('companyId');",
							"    pm.expect(jsonData.items[0]).to.have.property('createdTimestamp');",
							"    pm.expect(jsonData.items[0]).to.have.property('updatedTimestamp');",
							"    pm.expect(jsonData.items[0]).to.have.property('id');",
							"});",
							"",
							"var jsonData = pm.response.json();",
							"let itemId = jsonData.items[0].id;",
							"postman.setEnvironmentVariable(\"itemId\", itemId);",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/items?connectionId={{connectionId}}&itemType=INVENTORY",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"items"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						},
						{
							"key": "itemType",
							"value": "INVENTORY"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Update Item",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] item is retrieved correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('item');",
							"    pm.expect(jsonData.item).to.not.be.null;",
							"    pm.expect(jsonData.item).to.have.property('remoteId');",
							"    pm.expect(jsonData.item).to.have.property('itemName');",
							"    pm.expect(jsonData.item).to.have.property('itemStatus');",
							"    pm.expect(jsonData.item).to.have.property('itemType');",
							"    pm.expect(jsonData.item).to.have.property('unitPrice');",
							"    pm.expect(jsonData.item).to.have.property('purchasePrice');",
							"    pm.expect(jsonData.item).to.have.property('qtyOnHand');",
							"    pm.expect(jsonData.item).to.have.property('billAccountId');",
							"    pm.expect(jsonData.item).to.have.property('invoiceAccountId');",
							"    pm.expect(jsonData.item).to.have.property('assetAccountId');",
							"    pm.expect(jsonData.item).to.have.property('companyId');",
							"    pm.expect(jsonData.item).to.have.property('createdTimestamp');",
							"    pm.expect(jsonData.item).to.have.property('updatedTimestamp');",
							"    pm.expect(jsonData.item).to.have.property('id');",
							"    pm.expect(jsonData.item.itemType).to.equal(\"INVENTORY\");",
							"    pm.expect(jsonData.item.itemStatus).to.equal(\"ACTIVE\");",
							"});",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				}
			},
			"request": {
				"method": "PUT",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\n    \"itemStatus\": \"ACTIVE\"\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/items/{{itemId}}?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"items",
						"{{itemId}}"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Delete Item",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 422\"] = responseCode.code === 422;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"Status code is 422\", function () {",
							"    pm.response.to.have.status(422);",
							"});",
							"",
							"pm.test(\"Body has code and message\", function () {",
							"    let jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('code');",
							"    pm.expect(jsonData).to.have.property('message');",
							"});",
							"",
							"pm.test(\"Code is OPERATION_NOT_SUPPORTED\", function () {",
							"    let jsonData = pm.response.json();",
							"    pm.expect(jsonData.code).to.eql(\"OPERATION_NOT_SUPPORTED\");",
							"});"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				}
			},
			"request": {
				"method": "DELETE",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/items/{{itemId}}?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"items",
						"{{itemId}}"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Get Account For Create PO",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"accounts are listed correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('accounts');",
							"    pm.expect(jsonData.accounts[0]).to.not.be.null;",
							"    pm.expect(jsonData.accounts[0]).to.have.property('remoteId');",
							"    pm.expect(jsonData.accounts[0]).to.have.property('accountName');",
							"    pm.expect(jsonData.accounts[0]).to.have.property('accountDescription');",
							"    pm.expect(jsonData.accounts[0]).to.have.property('classification');",
							"    pm.expect(jsonData.accounts[0]).to.have.property('accountType');",
							"    pm.expect(jsonData.accounts[0]).to.have.property('accountStatus');",
							"    pm.expect(jsonData.accounts[0]).to.have.property('currentBalance');",
							"    pm.expect(jsonData.accounts[0]).to.have.property('currency');",
							"    pm.expect(jsonData.accounts[0]).to.have.property('accountNumber');",
							"    pm.expect(jsonData.accounts[0]).to.have.property('parentAccountId');",
							"    pm.expect(jsonData.accounts[0]).to.have.property('companyId');",
							"    pm.expect(jsonData.accounts[0]).to.have.property('id');",
							"});",
							"",
							"var jsonData = pm.response.json();",
							"let accountId = jsonData.accounts[0].id;",
							"postman.setEnvironmentVariable(\"accountIdForCreatePO\", accountId);",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "urlencoded",
					"urlencoded": []
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/accounts?connectionId={{connectionId}}&classification=LIABILITY&accountType=ACCOUNTS_PAYABLE",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"accounts"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						},
						{
							"key": "classification",
							"value": "LIABILITY"
						},
						{
							"key": "accountType",
							"value": "ACCOUNTS_PAYABLE"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Get Item with itemType SERVICE for Create PO",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] items are listed correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('items');",
							"    pm.expect(jsonData.items[0]).to.not.be.null;",
							"    pm.expect(jsonData.items[0]).to.have.property('remoteId');",
							"    pm.expect(jsonData.items[0]).to.have.property('itemName');",
							"    pm.expect(jsonData.items[0]).to.have.property('itemStatus');",
							"    pm.expect(jsonData.items[0]).to.have.property('itemType');",
							"    pm.expect(jsonData.items[0]).to.have.property('unitPrice');",
							"    pm.expect(jsonData.items[0]).to.have.property('purchasePrice');",
							"    pm.expect(jsonData.items[0]).to.have.property('qtyOnHand');",
							"    pm.expect(jsonData.items[0]).to.have.property('billAccountId');",
							"    pm.expect(jsonData.items[0]).to.have.property('invoiceAccountId');",
							"    pm.expect(jsonData.items[0]).to.have.property('assetAccountId');",
							"    pm.expect(jsonData.items[0]).to.have.property('companyId');",
							"    pm.expect(jsonData.items[0]).to.have.property('createdTimestamp');",
							"    pm.expect(jsonData.items[0]).to.have.property('updatedTimestamp');",
							"    pm.expect(jsonData.items[0]).to.have.property('id');",
							"});",
							"",
							"var jsonData = pm.response.json();",
							"let itemIdForCreatePO = jsonData.items[0].id;",
							"postman.setEnvironmentVariable(\"itemIdForCreatePO\", itemIdForCreatePO);",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/items?connectionId={{connectionId}}&itemType=SERVICE&itemName=Commission",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"items"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						},
						{
							"key": "itemType",
							"value": "SERVICE"
						},
						{
							"key": "itemName",
							"value": "Commission"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Create Purchase Order",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] purchase order is retrieved correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('purchaseOrder');",
							"    pm.expect(jsonData.purchaseOrder).to.not.be.null;",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('remoteId');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('poStatus');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('issueDate');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('poNumber');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('deliveryDate');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('deliveryAddress');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('vendorId');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('accountId');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('memo');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('companyId');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('totalAmount');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('currency');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('exchangeRate');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('lineItems');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('trackingCategoryIds');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('createdTimestamp');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('updatedTimestamp');",
							"",
							"    pm.expect(jsonData.purchaseOrder.lineItems[0]).to.have.property('id');",
							"    pm.expect(jsonData.purchaseOrder.lineItems[0]).to.have.property('remoteId');",
							"    pm.expect(jsonData.purchaseOrder.lineItems[0]).to.have.property('description');",
							"    pm.expect(jsonData.purchaseOrder.lineItems[0]).to.have.property('unitPrice');",
							"    pm.expect(jsonData.purchaseOrder.lineItems[0]).to.have.property('quantity');",
							"    pm.expect(jsonData.purchaseOrder.lineItems[0]).to.have.property('accountingItemId');",
							"    pm.expect(jsonData.purchaseOrder.lineItems[0]).to.have.property('accountId');",
							"    pm.expect(jsonData.purchaseOrder.lineItems[0]).to.have.property('trackingCategoryId');",
							"    pm.expect(jsonData.purchaseOrder.lineItems[0]).to.have.property('taxAmount');",
							"    pm.expect(jsonData.purchaseOrder.lineItems[0]).to.have.property('totalLineAmount');",
							"    pm.expect(jsonData.purchaseOrder.lineItems[0]).to.have.property('currency');",
							"    pm.expect(jsonData.purchaseOrder.lineItems[0]).to.have.property('trackingCategoryIds');",
							"});",
							"",
							"var jsonData = pm.response.json();",
							"let purchaseOrderId = jsonData.purchaseOrder.id;",
							"postman.setEnvironmentVariable(\"purchaseOrderId\", purchaseOrderId);"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				}
			},
			"request": {
				"method": "POST",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\n    \"vendorId\": \"{{vendorId}}\",\n    \"accountId\": \"{{accountIdForCreatePO}}\",\n    \"lineItems\": [{\n        \"description\": \"Line Item 1\",\n        \"accountingItemId\": \"{{itemIdForCreatePO}}\",\n        \"totalLineAmount\": 100\n    }]\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/purchase-orders?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"purchase-orders"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "List Purchase Orders",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] purchase orders are listed correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('purchaseOrders');",
							"    pm.expect(jsonData.purchaseOrders[0]).to.not.be.null;",
							"    pm.expect(jsonData.purchaseOrders[0]).to.have.property('remoteId');",
							"    pm.expect(jsonData.purchaseOrders[0]).to.have.property('poStatus');",
							"    pm.expect(jsonData.purchaseOrders[0]).to.have.property('issueDate');",
							"    pm.expect(jsonData.purchaseOrders[0]).to.have.property('poNumber');",
							"    pm.expect(jsonData.purchaseOrders[0]).to.have.property('deliveryDate');",
							"    pm.expect(jsonData.purchaseOrders[0]).to.have.property('deliveryAddress');",
							"    pm.expect(jsonData.purchaseOrders[0]).to.have.property('vendorId');",
							"    pm.expect(jsonData.purchaseOrders[0]).to.have.property('accountId');",
							"    pm.expect(jsonData.purchaseOrders[0]).to.have.property('memo');",
							"    pm.expect(jsonData.purchaseOrders[0]).to.have.property('companyId');",
							"    pm.expect(jsonData.purchaseOrders[0]).to.have.property('totalAmount');",
							"    pm.expect(jsonData.purchaseOrders[0]).to.have.property('currency');",
							"    pm.expect(jsonData.purchaseOrders[0]).to.have.property('exchangeRate');",
							"    pm.expect(jsonData.purchaseOrders[0]).to.have.property('lineItems');",
							"    pm.expect(jsonData.purchaseOrders[0]).to.have.property('trackingCategoryIds');",
							"    pm.expect(jsonData.purchaseOrders[0]).to.have.property('createdTimestamp');",
							"    pm.expect(jsonData.purchaseOrders[0]).to.have.property('updatedTimestamp');",
							"    pm.expect(jsonData.purchaseOrders[0]).to.have.property('id');",
							"    pm.expect(jsonData.purchaseOrders[0].lineItems[0]).to.have.property('id');",
							"    pm.expect(jsonData.purchaseOrders[0].lineItems[0]).to.have.property('remoteId');",
							"    pm.expect(jsonData.purchaseOrders[0].lineItems[0]).to.have.property('description');",
							"    pm.expect(jsonData.purchaseOrders[0].lineItems[0]).to.have.property('unitPrice');",
							"    pm.expect(jsonData.purchaseOrders[0].lineItems[0]).to.have.property('quantity');",
							"    pm.expect(jsonData.purchaseOrders[0].lineItems[0]).to.have.property('accountingItemId');",
							"    pm.expect(jsonData.purchaseOrders[0].lineItems[0]).to.have.property('accountId');",
							"    pm.expect(jsonData.purchaseOrders[0].lineItems[0]).to.have.property('trackingCategoryId');",
							"    pm.expect(jsonData.purchaseOrders[0].lineItems[0]).to.have.property('taxAmount');",
							"    pm.expect(jsonData.purchaseOrders[0].lineItems[0]).to.have.property('totalLineAmount');",
							"    pm.expect(jsonData.purchaseOrders[0].lineItems[0]).to.have.property('currency');",
							"    pm.expect(jsonData.purchaseOrders[0].lineItems[0]).to.have.property('trackingCategoryIds');",
							"});",
							"",
							"var jsonData = pm.response.json();",
							"let purchaseOrderId = jsonData.purchaseOrders[0].id;",
							"postman.setEnvironmentVariable(\"purchaseOrderId\", purchaseOrderId);",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/purchase-orders?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"purchase-orders"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Get Purchase Order Count",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"purchase order count is displayed correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('count');",
							"});"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/purchase-orders/count?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"purchase-orders",
						"count"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Retrieve Purchase Order",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"purchase order is retrieved correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('purchaseOrder');",
							"    pm.expect(jsonData.purchaseOrder).to.not.be.null;",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('remoteId');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('poStatus');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('issueDate');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('poNumber');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('deliveryDate');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('deliveryAddress');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('vendorId');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('accountId');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('memo');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('companyId');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('totalAmount');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('currency');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('exchangeRate');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('lineItems');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('trackingCategoryIds');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('createdTimestamp');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('updatedTimestamp');",
							"    pm.expect(jsonData.purchaseOrder).to.have.property('id');",
							"});",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/purchase-orders/{{purchaseOrderId}}?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"purchase-orders",
						"{{purchaseOrderId}}"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Delete Purchase Order",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 422\"] = responseCode.code === 422;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"Status code is 422\", function () {",
							"    pm.response.to.have.status(422);",
							"});",
							"",
							"pm.test(\"Body has code and message\", function () {",
							"    let jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('code');",
							"    pm.expect(jsonData).to.have.property('message');",
							"});",
							"",
							"pm.test(\"Code is OPERATION_NOT_SUPPORTED\", function () {",
							"    let jsonData = pm.response.json();",
							"    pm.expect(jsonData.code).to.eql(\"OPERATION_NOT_SUPPORTED\");",
							"});"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				}
			},
			"request": {
				"method": "DELETE",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/purchase-orders/{{purchaseOrderId}}?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"purchase-orders",
						"{{purchaseOrderId}}"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "List Bills",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] bills are listed correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('bills');",
							"    pm.expect(jsonData.bills[0]).to.not.be.null;",
							"    pm.expect(jsonData.bills[0]).to.have.property('remoteId');",
							"    pm.expect(jsonData.bills[0]).to.have.property('vendorId');",
							"    pm.expect(jsonData.bills[0]).to.have.property('billNumber');",
							"    pm.expect(jsonData.bills[0]).to.have.property('issueDate');",
							"    pm.expect(jsonData.bills[0]).to.have.property('dueDate');",
							"    pm.expect(jsonData.bills[0]).to.have.property('paidOnDate');",
							"    pm.expect(jsonData.bills[0]).to.have.property('memo');",
							"    pm.expect(jsonData.bills[0]).to.have.property('companyId');",
							"    pm.expect(jsonData.bills[0]).to.have.property('currency');",
							"    pm.expect(jsonData.bills[0]).to.have.property('exchangeRate');",
							"    pm.expect(jsonData.bills[0]).to.have.property('totalDiscount');",
							"    pm.expect(jsonData.bills[0]).to.have.property('subTotal');",
							"    pm.expect(jsonData.bills[0]).to.have.property('billStatus');",
							"    pm.expect(jsonData.bills[0]).to.have.property('totalTaxAmount');",
							"    pm.expect(jsonData.bills[0]).to.have.property('totalAmount');",
							"    pm.expect(jsonData.bills[0]).to.have.property('balance');",
							"    pm.expect(jsonData.bills[0]).to.have.property('trackingCategories');",
							"    pm.expect(jsonData.bills[0]).to.have.property('lineItems');",
							"    pm.expect(jsonData.bills[0]).to.have.property('purchaseOrders');",
							"    pm.expect(jsonData.bills[0]).to.have.property('createdTimestamp');",
							"    pm.expect(jsonData.bills[0]).to.have.property('updatedTimestamp');",
							"    pm.expect(jsonData.bills[0]).to.have.property('id');",
							"    pm.expect(jsonData.bills[0].lineItems[0]).to.have.property('id');",
							"    pm.expect(jsonData.bills[0].lineItems[0]).to.have.property('remoteId');",
							"    pm.expect(jsonData.bills[0].lineItems[0]).to.have.property('description');",
							"    pm.expect(jsonData.bills[0].lineItems[0]).to.have.property('unitPrice');",
							"    pm.expect(jsonData.bills[0].lineItems[0]).to.have.property('quantity');",
							"    pm.expect(jsonData.bills[0].lineItems[0]).to.have.property('totalAmount');",
							"    pm.expect(jsonData.bills[0].lineItems[0]).to.have.property('currency');",
							"    pm.expect(jsonData.bills[0].lineItems[0]).to.have.property('exchangeRate');",
							"    pm.expect(jsonData.bills[0].lineItems[0]).to.have.property('accountingItemId');",
							"    pm.expect(jsonData.bills[0].lineItems[0]).to.have.property('accountId');",
							"    pm.expect(jsonData.bills[0].lineItems[0]).to.have.property('trackingCategoryId');",
							"    pm.expect(jsonData.bills[0].lineItems[0]).to.have.property('trackingCategoryIds');",
							"    pm.expect(jsonData.bills[0].lineItems[0]).to.have.property('companyId');",
							"});",
							"",
							"var jsonData = pm.response.json();",
							"let billId = jsonData.bills[0].id;",
							"postman.setEnvironmentVariable(\"billId\", billId);",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/bills?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"bills"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Get Bill Count",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] bill count is displayed correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('count');",
							"});"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/bills/count?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"bills",
						"count"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Create Bill",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"bill is retrieved correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('bill');",
							"    pm.expect(jsonData.bill).to.not.be.null;",
							"    pm.expect(jsonData.bill).to.have.property('remoteId');",
							"    pm.expect(jsonData.bill).to.have.property('vendorId');",
							"    pm.expect(jsonData.bill).to.have.property('billNumber');",
							"    pm.expect(jsonData.bill).to.have.property('issueDate');",
							"    pm.expect(jsonData.bill).to.have.property('dueDate');",
							"    pm.expect(jsonData.bill).to.have.property('paidOnDate');",
							"    pm.expect(jsonData.bill).to.have.property('memo');",
							"    pm.expect(jsonData.bill).to.have.property('companyId');",
							"    pm.expect(jsonData.bill).to.have.property('currency');",
							"    pm.expect(jsonData.bill).to.have.property('exchangeRate');",
							"    pm.expect(jsonData.bill).to.have.property('totalDiscount');",
							"    pm.expect(jsonData.bill).to.have.property('subTotal');",
							"    pm.expect(jsonData.bill).to.have.property('billStatus');",
							"    pm.expect(jsonData.bill).to.have.property('totalTaxAmount');",
							"    pm.expect(jsonData.bill).to.have.property('totalAmount');",
							"    pm.expect(jsonData.bill).to.have.property('balance');",
							"    pm.expect(jsonData.bill).to.have.property('trackingCategories');",
							"    pm.expect(jsonData.bill).to.have.property('lineItems');",
							"    pm.expect(jsonData.bill).to.have.property('purchaseOrders');",
							"    pm.expect(jsonData.bill).to.have.property('createdTimestamp');",
							"    pm.expect(jsonData.bill).to.have.property('updatedTimestamp');",
							"    pm.expect(jsonData.bill).to.have.property('id');",
							"    pm.expect(jsonData.bill.billNumber).to.equal('PLDT-001');",
							"    pm.expect(jsonData.bill.lineItems[0].description).to.equal('Line Item 1');",
							"    pm.expect(jsonData.bill.lineItems[0].totalAmount).to.equal(100);",
							"});",
							"",
							"var jsonData = pm.response.json();",
							"let billId = jsonData.bill.id;",
							"postman.setEnvironmentVariable(\"billId\", billId);"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				}
			},
			"request": {
				"method": "POST",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\n    \"vendorId\": \"{{vendorId}}\",\n    \"billNumber\": \"PLDT-001\",\n    \"lineItems\": [\n        {\n            \"description\": \"Line Item 1\",\n            \"totalAmount\": 100,\n            \"accountId\": \"{{accountId}}\"\n        }\n    ]\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/bills?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"bills"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Retrieve Bill",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] bill is retrieved correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('bill');",
							"    pm.expect(jsonData.bill).to.not.be.null;",
							"    pm.expect(jsonData.bill).to.have.property('remoteId');",
							"    pm.expect(jsonData.bill).to.have.property('vendorId');",
							"    pm.expect(jsonData.bill).to.have.property('billNumber');",
							"    pm.expect(jsonData.bill).to.have.property('issueDate');",
							"    pm.expect(jsonData.bill).to.have.property('dueDate');",
							"    pm.expect(jsonData.bill).to.have.property('paidOnDate');",
							"    pm.expect(jsonData.bill).to.have.property('memo');",
							"    pm.expect(jsonData.bill).to.have.property('companyId');",
							"    pm.expect(jsonData.bill).to.have.property('currency');",
							"    pm.expect(jsonData.bill).to.have.property('exchangeRate');",
							"    pm.expect(jsonData.bill).to.have.property('totalDiscount');",
							"    pm.expect(jsonData.bill).to.have.property('subTotal');",
							"    pm.expect(jsonData.bill).to.have.property('billStatus');",
							"    pm.expect(jsonData.bill).to.have.property('totalTaxAmount');",
							"    pm.expect(jsonData.bill).to.have.property('totalAmount');",
							"    pm.expect(jsonData.bill).to.have.property('balance');",
							"    pm.expect(jsonData.bill).to.have.property('trackingCategories');",
							"    pm.expect(jsonData.bill).to.have.property('lineItems');",
							"    pm.expect(jsonData.bill).to.have.property('purchaseOrders');",
							"    pm.expect(jsonData.bill).to.have.property('createdTimestamp');",
							"    pm.expect(jsonData.bill).to.have.property('updatedTimestamp');",
							"    pm.expect(jsonData.bill).to.have.property('id');",
							"    pm.expect(jsonData.bill.lineItems[0]).to.have.property('id');",
							"    pm.expect(jsonData.bill.lineItems[0]).to.have.property('remoteId');",
							"    pm.expect(jsonData.bill.lineItems[0]).to.have.property('description');",
							"    pm.expect(jsonData.bill.lineItems[0]).to.have.property('unitPrice');",
							"    pm.expect(jsonData.bill.lineItems[0]).to.have.property('quantity');",
							"    pm.expect(jsonData.bill.lineItems[0]).to.have.property('totalAmount');",
							"    pm.expect(jsonData.bill.lineItems[0]).to.have.property('currency');",
							"    pm.expect(jsonData.bill.lineItems[0]).to.have.property('exchangeRate');",
							"    pm.expect(jsonData.bill.lineItems[0]).to.have.property('accountingItemId');",
							"    pm.expect(jsonData.bill.lineItems[0]).to.have.property('accountId');",
							"    pm.expect(jsonData.bill.lineItems[0]).to.have.property('trackingCategoryId');",
							"    pm.expect(jsonData.bill.lineItems[0]).to.have.property('trackingCategoryIds');",
							"    pm.expect(jsonData.bill.lineItems[0]).to.have.property('companyId');",
							"});",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/bills/{{billId}}?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"bills",
						"{{billId}}"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Delete Bill",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 422\"] = responseCode.code === 422;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"Status code is 422\", function () {",
							"    pm.response.to.have.status(422);",
							"});",
							"",
							"pm.test(\"Body has code and message\", function () {",
							"    let jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('code');",
							"    pm.expect(jsonData).to.have.property('message');",
							"});",
							"",
							"pm.test(\"Code is OPERATION_NOT_SUPPORTED\", function () {",
							"    let jsonData = pm.response.json();",
							"    pm.expect(jsonData.code).to.eql(\"OPERATION_NOT_SUPPORTED\");",
							"});"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				}
			},
			"request": {
				"method": "DELETE",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/bills/{{billId}}?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"bills",
						"{{billId}}"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "List Invoices",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] invoices are listed correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('invoices');",
							"    pm.expect(jsonData.invoices[0]).to.not.be.null;",
							"    pm.expect(jsonData.invoices[0]).to.have.property('remoteId');",
							"    pm.expect(jsonData.invoices[0]).to.have.property('customerId');",
							"    pm.expect(jsonData.invoices[0]).to.have.property('invoiceNumber');",
							"    pm.expect(jsonData.invoices[0]).to.have.property('issueDate');",
							"    pm.expect(jsonData.invoices[0]).to.have.property('dueDate');",
							"    pm.expect(jsonData.invoices[0]).to.have.property('paidOnDate');",
							"    pm.expect(jsonData.invoices[0]).to.have.property('memo');",
							"    pm.expect(jsonData.invoices[0]).to.have.property('companyId');",
							"    pm.expect(jsonData.invoices[0]).to.have.property('currency');",
							"    pm.expect(jsonData.invoices[0]).to.have.property('exchangeRate');",
							"    pm.expect(jsonData.invoices[0]).to.have.property('totalDiscount');",
							"    pm.expect(jsonData.invoices[0]).to.have.property('subTotal');",
							"    pm.expect(jsonData.invoices[0]).to.have.property('invoiceStatus');",
							"    pm.expect(jsonData.invoices[0]).to.have.property('totalTaxAmount');",
							"    pm.expect(jsonData.invoices[0]).to.have.property('totalAmount');",
							"    pm.expect(jsonData.invoices[0]).to.have.property('balance');",
							"    pm.expect(jsonData.invoices[0]).to.have.property('trackingCategories');",
							"    pm.expect(jsonData.invoices[0]).to.have.property('lineItems');",
							"    pm.expect(jsonData.invoices[0]).to.have.property('purchaseOrders');",
							"    pm.expect(jsonData.invoices[0]).to.have.property('createdTimestamp');",
							"    pm.expect(jsonData.invoices[0]).to.have.property('updatedTimestamp');",
							"    pm.expect(jsonData.invoices[0]).to.have.property('id');",
							"    pm.expect(jsonData.invoices[0].lineItems[0]).to.have.property('id');",
							"    pm.expect(jsonData.invoices[0].lineItems[0]).to.have.property('remoteId');",
							"    pm.expect(jsonData.invoices[0].lineItems[0]).to.have.property('description');",
							"    pm.expect(jsonData.invoices[0].lineItems[0]).to.have.property('unitPrice');",
							"    pm.expect(jsonData.invoices[0].lineItems[0]).to.have.property('quantity');",
							"    pm.expect(jsonData.invoices[0].lineItems[0]).to.have.property('totalAmount');",
							"    pm.expect(jsonData.invoices[0].lineItems[0]).to.have.property('currency');",
							"    pm.expect(jsonData.invoices[0].lineItems[0]).to.have.property('exchangeRate');",
							"    pm.expect(jsonData.invoices[0].lineItems[0]).to.have.property('accountingItemId');",
							"    pm.expect(jsonData.invoices[0].lineItems[0]).to.have.property('accountId');",
							"    pm.expect(jsonData.invoices[0].lineItems[0]).to.have.property('trackingCategoryId');",
							"    pm.expect(jsonData.invoices[0].lineItems[0]).to.have.property('trackingCategoryIds');",
							"    pm.expect(jsonData.invoices[0].lineItems[0]).to.have.property('companyId');",
							"});",
							"",
							"var jsonData = pm.response.json();",
							"let invoiceId = jsonData.invoices[0].id;",
							"postman.setEnvironmentVariable(\"invoiceId\", invoiceId);",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/invoices?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"invoices"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Get Invoice Count",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] invoice count is displayed correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('count');",
							"});"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/invoices/count?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"invoices",
						"count"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Get Item From Create Invoice",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] items are listed correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('items');",
							"    pm.expect(jsonData.items[0]).to.not.be.null;",
							"    pm.expect(jsonData.items[0]).to.have.property('remoteId');",
							"    pm.expect(jsonData.items[0]).to.have.property('itemName');",
							"    pm.expect(jsonData.items[0]).to.have.property('itemStatus');",
							"    pm.expect(jsonData.items[0]).to.have.property('itemType');",
							"    pm.expect(jsonData.items[0]).to.have.property('unitPrice');",
							"    pm.expect(jsonData.items[0]).to.have.property('purchasePrice');",
							"    pm.expect(jsonData.items[0]).to.have.property('qtyOnHand');",
							"    pm.expect(jsonData.items[0]).to.have.property('billAccountId');",
							"    pm.expect(jsonData.items[0]).to.have.property('invoiceAccountId');",
							"    pm.expect(jsonData.items[0]).to.have.property('assetAccountId');",
							"    pm.expect(jsonData.items[0]).to.have.property('companyId');",
							"    pm.expect(jsonData.items[0]).to.have.property('createdTimestamp');",
							"    pm.expect(jsonData.items[0]).to.have.property('updatedTimestamp');",
							"    pm.expect(jsonData.items[0]).to.have.property('id');",
							"});",
							"",
							"var jsonData = pm.response.json();",
							"let itemId = jsonData.items[0].id;",
							"postman.setEnvironmentVariable(\"itemIdForCreateInvoice\", itemId);",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/items?connectionId={{connectionId}}&itemName=Commission",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"items"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						},
						{
							"key": "itemName",
							"value": "Commission"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Create Invoice",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] invoice is retrieved correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('invoice');",
							"    pm.expect(jsonData.invoice).to.not.be.null;",
							"    pm.expect(jsonData.invoice).to.have.property('remoteId');",
							"    pm.expect(jsonData.invoice).to.have.property('customerId');",
							"    pm.expect(jsonData.invoice).to.have.property('invoiceNumber');",
							"    pm.expect(jsonData.invoice).to.have.property('issueDate');",
							"    pm.expect(jsonData.invoice).to.have.property('dueDate');",
							"    pm.expect(jsonData.invoice).to.have.property('paidOnDate');",
							"    pm.expect(jsonData.invoice).to.have.property('memo');",
							"    pm.expect(jsonData.invoice).to.have.property('companyId');",
							"    pm.expect(jsonData.invoice).to.have.property('currency');",
							"    pm.expect(jsonData.invoice).to.have.property('exchangeRate');",
							"    pm.expect(jsonData.invoice).to.have.property('totalDiscount');",
							"    pm.expect(jsonData.invoice).to.have.property('subTotal');",
							"    pm.expect(jsonData.invoice).to.have.property('invoiceStatus');",
							"    pm.expect(jsonData.invoice).to.have.property('totalTaxAmount');",
							"    pm.expect(jsonData.invoice).to.have.property('totalAmount');",
							"    pm.expect(jsonData.invoice).to.have.property('balance');",
							"    pm.expect(jsonData.invoice).to.have.property('trackingCategories');",
							"    pm.expect(jsonData.invoice).to.have.property('lineItems');",
							"    pm.expect(jsonData.invoice).to.have.property('purchaseOrders');",
							"    pm.expect(jsonData.invoice).to.have.property('createdTimestamp');",
							"    pm.expect(jsonData.invoice).to.have.property('updatedTimestamp');",
							"    pm.expect(jsonData.invoice).to.have.property('id');",
							"    pm.expect(jsonData.invoice.lineItems[0]).to.have.property('id');",
							"    pm.expect(jsonData.invoice.lineItems[0]).to.have.property('remoteId');",
							"    pm.expect(jsonData.invoice.lineItems[0]).to.have.property('description');",
							"    pm.expect(jsonData.invoice.lineItems[0]).to.have.property('unitPrice');",
							"    pm.expect(jsonData.invoice.lineItems[0]).to.have.property('quantity');",
							"    pm.expect(jsonData.invoice.lineItems[0]).to.have.property('totalAmount');",
							"    pm.expect(jsonData.invoice.lineItems[0]).to.have.property('currency');",
							"    pm.expect(jsonData.invoice.lineItems[0]).to.have.property('exchangeRate');",
							"    pm.expect(jsonData.invoice.lineItems[0]).to.have.property('accountingItemId');",
							"    pm.expect(jsonData.invoice.lineItems[0]).to.have.property('accountId');",
							"    pm.expect(jsonData.invoice.lineItems[0]).to.have.property('trackingCategoryId');",
							"    pm.expect(jsonData.invoice.lineItems[0]).to.have.property('trackingCategoryIds');",
							"    pm.expect(jsonData.invoice.lineItems[0]).to.have.property('companyId');",
							"});",
							"",
							"var jsonData = pm.response.json();",
							"let invoiceId = jsonData.invoice.id;",
							"postman.setEnvironmentVariable(\"invoiceId\", invoiceId);"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				}
			},
			"request": {
				"method": "POST",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\n    \"customerId\": \"{{customerId}}\",\n    \"invoiceNumber\": \"ALY-001\",\n    \"lineItems\": [\n        {\n            \"description\": \"Francis Menguito - Developer\",\n            \"totalAmount\": 10000,\n            \"accountingItemId\": \"{{itemIdForCreateInvoice}}\"\n        }\n    ]\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/invoices?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"invoices"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Retrieve Invoice",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"invoice is retrieved correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('invoice');",
							"    pm.expect(jsonData.invoice).to.not.be.null;",
							"    pm.expect(jsonData.invoice).to.have.property('remoteId');",
							"    pm.expect(jsonData.invoice).to.have.property('customerId');",
							"    pm.expect(jsonData.invoice).to.have.property('invoiceNumber');",
							"    pm.expect(jsonData.invoice).to.have.property('issueDate');",
							"    pm.expect(jsonData.invoice).to.have.property('dueDate');",
							"    pm.expect(jsonData.invoice).to.have.property('paidOnDate');",
							"    pm.expect(jsonData.invoice).to.have.property('memo');",
							"    pm.expect(jsonData.invoice).to.have.property('companyId');",
							"    pm.expect(jsonData.invoice).to.have.property('currency');",
							"    pm.expect(jsonData.invoice).to.have.property('exchangeRate');",
							"    pm.expect(jsonData.invoice).to.have.property('totalDiscount');",
							"    pm.expect(jsonData.invoice).to.have.property('subTotal');",
							"    pm.expect(jsonData.invoice).to.have.property('invoiceStatus');",
							"    pm.expect(jsonData.invoice).to.have.property('totalTaxAmount');",
							"    pm.expect(jsonData.invoice).to.have.property('totalAmount');",
							"    pm.expect(jsonData.invoice).to.have.property('balance');",
							"    pm.expect(jsonData.invoice).to.have.property('trackingCategories');",
							"    pm.expect(jsonData.invoice).to.have.property('lineItems');",
							"    pm.expect(jsonData.invoice).to.have.property('purchaseOrders');",
							"    pm.expect(jsonData.invoice).to.have.property('createdTimestamp');",
							"    pm.expect(jsonData.invoice).to.have.property('updatedTimestamp');",
							"    pm.expect(jsonData.invoice).to.have.property('id');",
							"    pm.expect(jsonData.invoice.lineItems[0]).to.have.property('id');",
							"    pm.expect(jsonData.invoice.lineItems[0]).to.have.property('remoteId');",
							"    pm.expect(jsonData.invoice.lineItems[0]).to.have.property('description');",
							"    pm.expect(jsonData.invoice.lineItems[0]).to.have.property('unitPrice');",
							"    pm.expect(jsonData.invoice.lineItems[0]).to.have.property('quantity');",
							"    pm.expect(jsonData.invoice.lineItems[0]).to.have.property('totalAmount');",
							"    pm.expect(jsonData.invoice.lineItems[0]).to.have.property('currency');",
							"    pm.expect(jsonData.invoice.lineItems[0]).to.have.property('exchangeRate');",
							"    pm.expect(jsonData.invoice.lineItems[0]).to.have.property('accountingItemId');",
							"    pm.expect(jsonData.invoice.lineItems[0]).to.have.property('accountId');",
							"    pm.expect(jsonData.invoice.lineItems[0]).to.have.property('trackingCategoryId');",
							"    pm.expect(jsonData.invoice.lineItems[0]).to.have.property('trackingCategoryIds');",
							"    pm.expect(jsonData.invoice.lineItems[0]).to.have.property('companyId');",
							"});",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/invoices/{{invoiceId}}?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"invoices",
						"{{invoiceId}}"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Delete Invoice",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 422\"] = responseCode.code === 422;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"Status code is 422\", function () {",
							"    pm.response.to.have.status(422);",
							"});",
							"",
							"pm.test(\"Body has code and message\", function () {",
							"    let jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('code');",
							"    pm.expect(jsonData).to.have.property('message');",
							"});",
							"",
							"pm.test(\"Code is OPERATION_NOT_SUPPORTED\", function () {",
							"    let jsonData = pm.response.json();",
							"    pm.expect(jsonData.code).to.eql(\"OPERATION_NOT_SUPPORTED\");",
							"});"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				}
			},
			"request": {
				"method": "DELETE",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/invoices/{{invoiceId}}?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"invoices",
						"{{invoiceId}}"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "List Payments",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] payments are listed correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('payments');",
							"    pm.expect(jsonData.payments[0]).to.not.be.null;",
							"    pm.expect(jsonData.payments[0]).to.have.property('remoteId');",
							"    pm.expect(jsonData.payments[0]).to.have.property('transactionDate');",
							"    pm.expect(jsonData.payments[0]).to.have.property('customerId');",
							"    pm.expect(jsonData.payments[0]).to.have.property('vendorId');",
							"    pm.expect(jsonData.payments[0]).to.have.property('accountId');",
							"    pm.expect(jsonData.payments[0]).to.have.property('currency');",
							"    pm.expect(jsonData.payments[0]).to.have.property('exchangeRate');",
							"    pm.expect(jsonData.payments[0]).to.have.property('companyId');",
							"    pm.expect(jsonData.payments[0]).to.have.property('totalAmount');",
							"    pm.expect(jsonData.payments[0]).to.have.property('trackingCategoryIds');",
							"    pm.expect(jsonData.payments[0]).to.have.property('createdTimestamp');",
							"    pm.expect(jsonData.payments[0]).to.have.property('updatedTimestamp');",
							"    pm.expect(jsonData.payments[0]).to.have.property('id');",
							"});",
							"",
							"var jsonData = pm.response.json();",
							"let paymentId = jsonData.payments[0].id;",
							"postman.setEnvironmentVariable(\"paymentId\", paymentId);",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/payments?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"payments"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Get Payment Count",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] payment count is displayed correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('count');",
							"});"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/payments/count?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"payments",
						"count"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Create Payment",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] payment is created correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('payment');",
							"    pm.expect(jsonData.payment).to.not.be.null;",
							"    pm.expect(jsonData.payment).to.have.property('remoteId');",
							"    pm.expect(jsonData.payment).to.have.property('transactionDate');",
							"    pm.expect(jsonData.payment).to.have.property('customerId');",
							"    pm.expect(jsonData.payment).to.have.property('vendorId');",
							"    pm.expect(jsonData.payment).to.have.property('accountId');",
							"    pm.expect(jsonData.payment).to.have.property('currency');",
							"    pm.expect(jsonData.payment).to.have.property('exchangeRate');",
							"    pm.expect(jsonData.payment).to.have.property('companyId');",
							"    pm.expect(jsonData.payment).to.have.property('totalAmount');",
							"    pm.expect(jsonData.payment).to.have.property('trackingCategoryIds');",
							"    pm.expect(jsonData.payment).to.have.property('createdTimestamp');",
							"    pm.expect(jsonData.payment).to.have.property('updatedTimestamp');",
							"    pm.expect(jsonData.payment).to.have.property('id');",
							"    pm.expect(jsonData.payment.totalAmount).to.equal(10);",
							"});",
							"",
							"var jsonData = pm.response.json();",
							"let paymentId = jsonData.payment.id;",
							"postman.setEnvironmentVariable(\"paymentId\", paymentId);",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				}
			},
			"request": {
				"method": "POST",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\n    \"customerId\": \"{{customerId}}\",\n    \"totalAmount\": 10\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/payments?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"payments"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Retrieve Payment",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"response should be okay to process\", function () {",
							"    pm.response.to.have.status(200);",
							"    pm.response.to.not.be.error;",
							"    pm.response.to.not.have.jsonBody(\"error\");",
							"});",
							"",
							"pm.test(\"[qbo] payment is retrieved correctly\", function () {",
							"    var jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('payment');",
							"    pm.expect(jsonData.payment).to.not.be.null;",
							"    pm.expect(jsonData.payment).to.have.property('remoteId');",
							"    pm.expect(jsonData.payment).to.have.property('transactionDate');",
							"    pm.expect(jsonData.payment).to.have.property('customerId');",
							"    pm.expect(jsonData.payment).to.have.property('vendorId');",
							"    pm.expect(jsonData.payment).to.have.property('accountId');",
							"    pm.expect(jsonData.payment).to.have.property('currency');",
							"    pm.expect(jsonData.payment).to.have.property('exchangeRate');",
							"    pm.expect(jsonData.payment).to.have.property('companyId');",
							"    pm.expect(jsonData.payment).to.have.property('totalAmount');",
							"    pm.expect(jsonData.payment).to.have.property('trackingCategoryIds');",
							"    pm.expect(jsonData.payment).to.have.property('createdTimestamp');",
							"    pm.expect(jsonData.payment).to.have.property('updatedTimestamp');",
							"    pm.expect(jsonData.payment).to.have.property('id');",
							"});",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				},
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/payments/{{paymentId}}?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"payments",
						"{{paymentId}}"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Delete Payment",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"tests[\"Status code is 422\"] = responseCode.code === 422;",
							"",
							"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
							"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
							" ",
							"if (contentTypeHeaderExists) {",
							"    tests[\"Content-Type is application/json\"] = ",
							"      responseHeaders[\"Content-Type\"].has(\"application/json\");",
							"}",
							"",
							"pm.test(\"Status code is 422\", function () {",
							"    pm.response.to.have.status(422);",
							"});",
							"",
							"pm.test(\"Body has code and message\", function () {",
							"    let jsonData = pm.response.json();",
							"    pm.expect(jsonData).to.have.property('code');",
							"    pm.expect(jsonData).to.have.property('message');",
							"});",
							"",
							"pm.test(\"Code is OPERATION_NOT_SUPPORTED\", function () {",
							"    let jsonData = pm.response.json();",
							"    pm.expect(jsonData.code).to.eql(\"OPERATION_NOT_SUPPORTED\");",
							"});"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {
					"accept": true
				}
			},
			"request": {
				"method": "DELETE",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{apiKey}}",
						"type": "text"
					},
					{
						"key": "Accept",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://embedded.runalloy.com/{{API_VERSION}}/one/accounting/payments/{{paymentId}}?connectionId={{connectionId}}",
					"protocol": "https",
					"host": [
						"embedded",
						"runalloy",
						"com"
					],
					"path": [
						"{{API_VERSION}}",
						"one",
						"accounting",
						"payments",
						"{{paymentId}}"
					],
					"query": [
						{
							"key": "connectionId",
							"value": "{{connectionId}}"
						}
					]
				}
			},
			"response": []
		}
	],
	"auth": {
		"type": "bearer",
		"bearer": [
			{
				"key": "token",
				"value": "",
				"type": "string"
			}
		]
	},
	"event": [
		{
			"listen": "prerequest",
			"script": {
				"type": "text/javascript",
				"exec": [
					""
				]
			}
		},
		{
			"listen": "test",
			"script": {
				"type": "text/javascript",
				"exec": [
					""
				]
			}
		}
	]
}