DataFlex / New FreshBooks / Single Invoice w/ Payment Gateway
Back to Collection Items
Use ChilkatAx-win32.pkg
Procedure Test
Handle hoHttp
Boolean iSuccess
Variant vJson
Handle hoJson
Variant vResp
Handle hoResp
Variant vSbResponseBody
Handle hoSbResponseBody
Handle hoJResp
Integer iRespStatusCode
Variant vDate_paid
Handle hoDate_paid
String sAccountid
String sAccounting_systemid
String sAddress
String sAmount
String sCode
Boolean iAuto_bill
String sAutobill_status
Integer iBasecampid
String sCity
String sInvoiceCode
String sCountry
String sCreate_date
String sCreated_at
String sCurrency_code
String sCurrent_organization
Integer iCustomerid
String sDeposit_amount
String sDeposit_percentage
String sDeposit_status
String sDescription
String sDiscount_description
String sDiscount_totalAmount
String sDiscount_totalCode
String sDiscount_value
String sDisplay_status
String sDispute_status
String sDue_date
Integer iDue_offset_days
Integer iEstimateid
Integer iExt_archive
String sFname
String sFulfillment_date
String sGeneration_date
Boolean iGmail
Integer iId
String sInvoice_number
Integer iInvoiceid
String sLanguage
String sLast_order_status
String sLname
String sNotes
String sOrganization
String sOutstandingAmount
String sOutstandingCode
Integer iOwnerid
String sPaidAmount
String sPaidCode
Integer iParent
String sPayment_details
String sPayment_status
String sPo_number
String sProvince
String sReturn_uri
Integer iSentid
Boolean iShow_attachments
Integer iStatus
String sStreet
String sStreet2
String sTemplate
String sTerms
String sUpdated
String sV3_status
String sVat_name
String sVat_number
Integer iVis_state
Integer i
Integer iCount_i
String sTemp1
Boolean bTemp1
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatHttp)) To hoHttp
If (Not(IsComObjectCreated(hoHttp))) Begin
Send CreateComObject of hoHttp
End
// Use this online tool to generate code from sample JSON: Generate Code to Create JSON
// The following JSON is sent in the request body.
// {
// "invoice": {
// "customerid": 123,
// "create_date": "2019-04-20",
// "lines": [
// {
// "type": 0,
// "description": "",
// "taxName1": "",
// "taxAmount1": 0,
// "name": "Climbing Helmet",
// "qty": 1,
// "taxName2": "",
// "taxAmount2": 0,
// "unit_cost": {
// "amount": "80.00",
// "code": "USD"
// }
// },
// {
// "type": 0,
// "description": "",
// "taxName1": "",
// "taxAmount1": 0,
// "name": "Belay Device",
// "qty": 1,
// "taxName2": "",
// "taxAmount2": 0,
// "unit_cost": {
// "amount": "100.00",
// "code": "USD"
// }
// }
// ],
// "presentation": {
// "image_logo_src": "{{image_logo_src}}",
// "theme_primary_color": "{{theme_primary_color}}"
// }
// }
// }
Get Create (RefClass(cComChilkatJsonObject)) To hoJson
If (Not(IsComObjectCreated(hoJson))) Begin
Send CreateComObject of hoJson
End
Get ComUpdateInt Of hoJson "invoice.customerid" 123 To iSuccess
Get ComUpdateString Of hoJson "invoice.create_date" "2019-04-20" To iSuccess
Get ComUpdateInt Of hoJson "invoice.lines[0].type" 0 To iSuccess
Get ComUpdateString Of hoJson "invoice.lines[0].description" "" To iSuccess
Get ComUpdateString Of hoJson "invoice.lines[0].taxName1" "" To iSuccess
Get ComUpdateInt Of hoJson "invoice.lines[0].taxAmount1" 0 To iSuccess
Get ComUpdateString Of hoJson "invoice.lines[0].name" "Climbing Helmet" To iSuccess
Get ComUpdateInt Of hoJson "invoice.lines[0].qty" 1 To iSuccess
Get ComUpdateString Of hoJson "invoice.lines[0].taxName2" "" To iSuccess
Get ComUpdateInt Of hoJson "invoice.lines[0].taxAmount2" 0 To iSuccess
Get ComUpdateString Of hoJson "invoice.lines[0].unit_cost.amount" "80.00" To iSuccess
Get ComUpdateString Of hoJson "invoice.lines[0].unit_cost.code" "USD" To iSuccess
Get ComUpdateInt Of hoJson "invoice.lines[1].type" 0 To iSuccess
Get ComUpdateString Of hoJson "invoice.lines[1].description" "" To iSuccess
Get ComUpdateString Of hoJson "invoice.lines[1].taxName1" "" To iSuccess
Get ComUpdateInt Of hoJson "invoice.lines[1].taxAmount1" 0 To iSuccess
Get ComUpdateString Of hoJson "invoice.lines[1].name" "Belay Device" To iSuccess
Get ComUpdateInt Of hoJson "invoice.lines[1].qty" 1 To iSuccess
Get ComUpdateString Of hoJson "invoice.lines[1].taxName2" "" To iSuccess
Get ComUpdateInt Of hoJson "invoice.lines[1].taxAmount2" 0 To iSuccess
Get ComUpdateString Of hoJson "invoice.lines[1].unit_cost.amount" "100.00" To iSuccess
Get ComUpdateString Of hoJson "invoice.lines[1].unit_cost.code" "USD" To iSuccess
Get ComUpdateString Of hoJson "invoice.presentation.image_logo_src" "{{image_logo_src}}" To iSuccess
Get ComUpdateString Of hoJson "invoice.presentation.theme_primary_color" "{{theme_primary_color}}" To iSuccess
// Adds the "Authorization: Bearer <access_token>" header.
Set ComAuthToken Of hoHttp To "<access_token>"
Send ComSetRequestHeader To hoHttp "Content-Type" "application/json"
Get pvComObject of hoJson to vJson
Get ComPostJson3 Of hoHttp "https://api.freshbooks.com/accounting/account/{{accountId}}/invoices/invoices/{{invoiceid}}?include%5B%5D=allowed_gateways" "application/json" vJson To vResp
If (IsComObject(vResp)) Begin
Get Create (RefClass(cComChilkatHttpResponse)) To hoResp
Set pvComObject Of hoResp To vResp
End
Get ComLastMethodSuccess Of hoHttp To bTemp1
If (bTemp1 = False) Begin
Get ComLastErrorText Of hoHttp To sTemp1
Showln sTemp1
Procedure_Return
End
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbResponseBody
If (Not(IsComObjectCreated(hoSbResponseBody))) Begin
Send CreateComObject of hoSbResponseBody
End
Get pvComObject of hoSbResponseBody to vSbResponseBody
Get ComGetBodySb Of hoResp vSbResponseBody To iSuccess
Get Create (RefClass(cComChilkatJsonObject)) To hoJResp
If (Not(IsComObjectCreated(hoJResp))) Begin
Send CreateComObject of hoJResp
End
Get pvComObject of hoSbResponseBody to vSbResponseBody
Get ComLoadSb Of hoJResp vSbResponseBody To iSuccess
Set ComEmitCompact Of hoJResp To False
Showln "Response Body:"
Get ComEmit Of hoJResp To sTemp1
Showln sTemp1
Get ComStatusCode Of hoResp To iRespStatusCode
Showln "Response Status Code = " iRespStatusCode
If (iRespStatusCode >= 400) Begin
Showln "Response Header:"
Get ComHeader Of hoResp To sTemp1
Showln sTemp1
Showln "Failed."
Send Destroy of hoResp
Procedure_Return
End
Send Destroy of hoResp
// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)
// {
// "response": {
// "result": {
// "invoice": {
// "accountid": "wkMd2g",
// "accounting_systemid": "wkMd2g",
// "address": "",
// "allowed_gateways": [
// ],
// "amount": {
// "amount": "180.00",
// "code": "USD"
// },
// "auto_bill": false,
// "autobill_status": null,
// "basecampid": 0,
// "city": "Toronto",
// "code": "M6P 3T1",
// "country": "",
// "create_date": "2019-04-20",
// "created_at": "2019-05-09 16:02:40",
// "currency_code": "USD",
// "current_organization": "Space Is Only Noise",
// "customerid": 92402,
// "date_paid": null,
// "deposit_amount": null,
// "deposit_percentage": null,
// "deposit_status": "none",
// "description": "",
// "discount_description": null,
// "discount_total": {
// "amount": "0.00",
// "code": "USD"
// },
// "discount_value": "0",
// "display_status": "draft",
// "dispute_status": null,
// "due_date": "2019-04-20",
// "due_offset_days": 0,
// "estimateid": 0,
// "ext_archive": 0,
// "fname": "Nicholas",
// "fulfillment_date": null,
// "generation_date": null,
// "gmail": false,
// "id": 74888,
// "invoice_number": "0000029",
// "invoiceid": 74888,
// "language": "en",
// "last_order_status": null,
// "lname": "Jaar",
// "notes": "",
// "organization": "Space Is Only Noise",
// "outstanding": {
// "amount": "180.00",
// "code": "USD"
// },
// "ownerid": 1,
// "paid": {
// "amount": "0.00",
// "code": "USD"
// },
// "parent": 0,
// "payment_details": "",
// "payment_status": "unpaid",
// "po_number": null,
// "province": "Ontario",
// "return_uri": null,
// "sentid": 1,
// "show_attachments": true,
// "status": 1,
// "street": "1655 Dupont St. W.",
// "street2": "",
// "template": "clean-grouped",
// "terms": "",
// "updated": "2019-05-09 16:02:41",
// "v3_status": "draft",
// "vat_name": "",
// "vat_number": "",
// "vis_state": 0
// }
// }
// }
// }
// Sample code for parsing the JSON response...
// Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code
Get Create (RefClass(cComChilkatDtObj)) To hoDate_paid
If (Not(IsComObjectCreated(hoDate_paid))) Begin
Send CreateComObject of hoDate_paid
End
Get ComStringOf Of hoJResp "response.result.invoice.accountid" To sAccountid
Get ComStringOf Of hoJResp "response.result.invoice.accounting_systemid" To sAccounting_systemid
Get ComStringOf Of hoJResp "response.result.invoice.address" To sAddress
Get ComStringOf Of hoJResp "response.result.invoice.amount.amount" To sAmount
Get ComStringOf Of hoJResp "response.result.invoice.amount.code" To sCode
Get ComBoolOf Of hoJResp "response.result.invoice.auto_bill" To iAuto_bill
Get ComStringOf Of hoJResp "response.result.invoice.autobill_status" To sAutobill_status
Get ComIntOf Of hoJResp "response.result.invoice.basecampid" To iBasecampid
Get ComStringOf Of hoJResp "response.result.invoice.city" To sCity
Get ComStringOf Of hoJResp "response.result.invoice.code" To sInvoiceCode
Get ComStringOf Of hoJResp "response.result.invoice.country" To sCountry
Get ComStringOf Of hoJResp "response.result.invoice.create_date" To sCreate_date
Get ComStringOf Of hoJResp "response.result.invoice.created_at" To sCreated_at
Get ComStringOf Of hoJResp "response.result.invoice.currency_code" To sCurrency_code
Get ComStringOf Of hoJResp "response.result.invoice.current_organization" To sCurrent_organization
Get ComIntOf Of hoJResp "response.result.invoice.customerid" To iCustomerid
Get pvComObject of hoDate_paid to vDate_paid
Get ComDtOf Of hoJResp "response.result.invoice.date_paid" False vDate_paid To iSuccess
Get ComStringOf Of hoJResp "response.result.invoice.deposit_amount" To sDeposit_amount
Get ComStringOf Of hoJResp "response.result.invoice.deposit_percentage" To sDeposit_percentage
Get ComStringOf Of hoJResp "response.result.invoice.deposit_status" To sDeposit_status
Get ComStringOf Of hoJResp "response.result.invoice.description" To sDescription
Get ComStringOf Of hoJResp "response.result.invoice.discount_description" To sDiscount_description
Get ComStringOf Of hoJResp "response.result.invoice.discount_total.amount" To sDiscount_totalAmount
Get ComStringOf Of hoJResp "response.result.invoice.discount_total.code" To sDiscount_totalCode
Get ComStringOf Of hoJResp "response.result.invoice.discount_value" To sDiscount_value
Get ComStringOf Of hoJResp "response.result.invoice.display_status" To sDisplay_status
Get ComStringOf Of hoJResp "response.result.invoice.dispute_status" To sDispute_status
Get ComStringOf Of hoJResp "response.result.invoice.due_date" To sDue_date
Get ComIntOf Of hoJResp "response.result.invoice.due_offset_days" To iDue_offset_days
Get ComIntOf Of hoJResp "response.result.invoice.estimateid" To iEstimateid
Get ComIntOf Of hoJResp "response.result.invoice.ext_archive" To iExt_archive
Get ComStringOf Of hoJResp "response.result.invoice.fname" To sFname
Get ComStringOf Of hoJResp "response.result.invoice.fulfillment_date" To sFulfillment_date
Get ComStringOf Of hoJResp "response.result.invoice.generation_date" To sGeneration_date
Get ComBoolOf Of hoJResp "response.result.invoice.gmail" To iGmail
Get ComIntOf Of hoJResp "response.result.invoice.id" To iId
Get ComStringOf Of hoJResp "response.result.invoice.invoice_number" To sInvoice_number
Get ComIntOf Of hoJResp "response.result.invoice.invoiceid" To iInvoiceid
Get ComStringOf Of hoJResp "response.result.invoice.language" To sLanguage
Get ComStringOf Of hoJResp "response.result.invoice.last_order_status" To sLast_order_status
Get ComStringOf Of hoJResp "response.result.invoice.lname" To sLname
Get ComStringOf Of hoJResp "response.result.invoice.notes" To sNotes
Get ComStringOf Of hoJResp "response.result.invoice.organization" To sOrganization
Get ComStringOf Of hoJResp "response.result.invoice.outstanding.amount" To sOutstandingAmount
Get ComStringOf Of hoJResp "response.result.invoice.outstanding.code" To sOutstandingCode
Get ComIntOf Of hoJResp "response.result.invoice.ownerid" To iOwnerid
Get ComStringOf Of hoJResp "response.result.invoice.paid.amount" To sPaidAmount
Get ComStringOf Of hoJResp "response.result.invoice.paid.code" To sPaidCode
Get ComIntOf Of hoJResp "response.result.invoice.parent" To iParent
Get ComStringOf Of hoJResp "response.result.invoice.payment_details" To sPayment_details
Get ComStringOf Of hoJResp "response.result.invoice.payment_status" To sPayment_status
Get ComStringOf Of hoJResp "response.result.invoice.po_number" To sPo_number
Get ComStringOf Of hoJResp "response.result.invoice.province" To sProvince
Get ComStringOf Of hoJResp "response.result.invoice.return_uri" To sReturn_uri
Get ComIntOf Of hoJResp "response.result.invoice.sentid" To iSentid
Get ComBoolOf Of hoJResp "response.result.invoice.show_attachments" To iShow_attachments
Get ComIntOf Of hoJResp "response.result.invoice.status" To iStatus
Get ComStringOf Of hoJResp "response.result.invoice.street" To sStreet
Get ComStringOf Of hoJResp "response.result.invoice.street2" To sStreet2
Get ComStringOf Of hoJResp "response.result.invoice.template" To sTemplate
Get ComStringOf Of hoJResp "response.result.invoice.terms" To sTerms
Get ComStringOf Of hoJResp "response.result.invoice.updated" To sUpdated
Get ComStringOf Of hoJResp "response.result.invoice.v3_status" To sV3_status
Get ComStringOf Of hoJResp "response.result.invoice.vat_name" To sVat_name
Get ComStringOf Of hoJResp "response.result.invoice.vat_number" To sVat_number
Get ComIntOf Of hoJResp "response.result.invoice.vis_state" To iVis_state
Move 0 To i
Get ComSizeOfArray Of hoJResp "response.result.invoice.allowed_gateways" To iCount_i
While (i < iCount_i)
Set ComI Of hoJResp To i
Move (i + 1) To i
Loop
End_Procedure
Curl Command
curl -X POST
-H "Authorization: Bearer <access_token>"
-H "Content-Type: application/json"
-d '{
"invoice": {
"customerid": {{customerId}},
"create_date": "2019-04-20",
"lines": [
{
"type": 0,
"description": "",
"taxName1": "",
"taxAmount1": 0,
"name": "Climbing Helmet",
"qty": 1,
"taxName2": "",
"taxAmount2": 0,
"unit_cost": {
"amount": "80.00",
"code": "USD"
}
},
{
"type": 0,
"description": "",
"taxName1": "",
"taxAmount1": 0,
"name": "Belay Device",
"qty": 1,
"taxName2": "",
"taxAmount2": 0,
"unit_cost": {
"amount": "100.00",
"code": "USD"
}
}
],
"presentation": {
"image_logo_src": {{imgSrc}},
"theme_primary_color": {{themeColor}}
}
}
}'
https://api.freshbooks.com/accounting/account/{{accountId}}/invoices/invoices/{{invoiceid}}?include%5B%5D=allowed_gateways
Postman Collection Item JSON
{
"name": "Single Invoice w/ Payment Gateway",
"event": [
{
"listen": "test",
"script": {
"exec": [
"let jsonData = JSON.parse(responseBody);",
"pm.environment.set(\"invoiceId\", jsonData.response.result.invoice.id)",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"type": "text",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n\t\"invoice\": {\n\t\t\"customerid\": {{customerId}},\n\t\t\"create_date\": \"2019-04-20\",\n\t\t\"lines\": [\n\t {\n\t \"type\": 0,\n\t \"description\": \"\",\n\t \"taxName1\": \"\",\n\t \"taxAmount1\": 0,\n\t \"name\": \"Climbing Helmet\",\n\t \"qty\": 1,\n\t \"taxName2\": \"\",\n\t \"taxAmount2\": 0,\n\t \"unit_cost\": {\n\t \"amount\": \"80.00\",\n\t \"code\": \"USD\"\n\t }\n\t },\n\t {\n\t \"type\": 0,\n\t \"description\": \"\",\n\t \"taxName1\": \"\",\n\t \"taxAmount1\": 0,\n\t \"name\": \"Belay Device\",\n\t \"qty\": 1,\n\t \"taxName2\": \"\",\n\t \"taxAmount2\": 0,\n\t \"unit_cost\": {\n\t \"amount\": \"100.00\",\n\t \"code\": \"USD\"\n\t }\n\t }\n\t ],\n\t\t\"presentation\": {\n\t\t\t\"image_logo_src\": {{imgSrc}},\n\t\t\t \"theme_primary_color\": {{themeColor}}\n\t\t}\n\t}\n}"
},
"url": {
"raw": "https://api.freshbooks.com/accounting/account/{{accountId}}/invoices/invoices/{{invoiceid}}?include%5B%5D=allowed_gateways",
"protocol": "https",
"host": [
"api",
"freshbooks",
"com"
],
"path": [
"accounting",
"account",
"{{accountId}}",
"invoices",
"invoices",
"{{invoiceid}}"
],
"query": [
{
"key": "include%5B%5D",
"value": "allowed_gateways"
}
]
},
"description": "Call an invoice and display the enabled gateway on that invoice.\n\nStripe = id: 26 |\nFBpay = id: 30 |\nPayPal = id: 7"
},
"response": [
{
"name": "Single Invoice w/ Payment Gateway",
"originalRequest": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"type": "text",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n\t\"invoice\": {\n\t\t\"customerid\": {{customerId}},\n\t\t\"create_date\": \"2019-04-20\",\n\t\t\"lines\": [\n\t {\n\t \"type\": 0,\n\t \"description\": \"\",\n\t \"taxName1\": \"\",\n\t \"taxAmount1\": 0,\n\t \"name\": \"Climbing Helmet\",\n\t \"qty\": 1,\n\t \"taxName2\": \"\",\n\t \"taxAmount2\": 0,\n\t \"unit_cost\": {\n\t \"amount\": \"80.00\",\n\t \"code\": \"USD\"\n\t }\n\t },\n\t {\n\t \"type\": 0,\n\t \"description\": \"\",\n\t \"taxName1\": \"\",\n\t \"taxAmount1\": 0,\n\t \"name\": \"Belay Device\",\n\t \"qty\": 1,\n\t \"taxName2\": \"\",\n\t \"taxAmount2\": 0,\n\t \"unit_cost\": {\n\t \"amount\": \"100.00\",\n\t \"code\": \"USD\"\n\t }\n\t }\n\t ],\n\t\t\"presentation\": {\n\t\t\t\"image_logo_src\": {{imgSrc}},\n\t\t\t \"theme_primary_color\": {{themeColor}}\n\t\t}\n\t}\n}"
},
"url": {
"raw": "https://api.freshbooks.com/accounting/account/{{accountId}}/invoices/invoices?include%5B%5D=allowed_gateways",
"protocol": "https",
"host": [
"api",
"freshbooks",
"com"
],
"path": [
"accounting",
"account",
"{{accountId}}",
"invoices",
"invoices"
],
"query": [
{
"key": "include%5B%5D",
"value": "allowed_gateways"
}
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Server",
"value": "nginx"
},
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "X-NewRelic-App-Data",
"value": "PxQBWV5TCBABVlVSAwEOVlcTGhE1AwE2QgNWEVlbQFtcCxYnRA9QFg1ZWU4DFVdfRgFPCkNFR0gNX0BcCwUGEQoLVhRXUVdXQEcVUR1RHVBWDgRRUVQKAAldWFIFAgNSSAAEBldKQVoHUApVDglQUwcGCVJXBAJASFBWDRUGZQ=="
},
{
"key": "X-RateLimit-Limit",
"value": "20"
},
{
"key": "X-RateLimit-Remaining",
"value": "0"
},
{
"key": "X-RateLimit-Reset",
"value": "1557432219"
},
{
"key": "Retry-After",
"value": "57"
},
{
"key": "Access-Control-Allow-Origin",
"value": "*"
},
{
"key": "Expires",
"value": "Wed, 09 May 2018 20:02:41 GMT"
},
{
"key": "Cache-Control",
"value": "no-cache"
},
{
"key": "Content-Encoding",
"value": "gzip"
},
{
"key": "Via",
"value": "1.1 google"
},
{
"key": "Via",
"value": "1.1 varnish"
},
{
"key": "Transfer-Encoding",
"value": "chunked"
},
{
"key": "Accept-Ranges",
"value": "bytes"
},
{
"key": "Date",
"value": "Thu, 09 May 2019 20:02:41 GMT"
},
{
"key": "Connection",
"value": "keep-alive"
},
{
"key": "X-Served-By",
"value": "cache-mdw17357-MDW"
},
{
"key": "X-Cache",
"value": "MISS"
},
{
"key": "X-Cache-Hits",
"value": "0"
},
{
"key": "Vary",
"value": "Accept-Encoding"
},
{
"key": "Country",
"value": "CA"
},
{
"key": "Strict-Transport-Security",
"value": "max-age=31536000; includeSubDomains; preload"
}
],
"cookie": [
],
"body": "{\n \"response\": {\n \"result\": {\n \"invoice\": {\n \"accountid\": \"wkMd2g\",\n \"accounting_systemid\": \"wkMd2g\",\n \"address\": \"\",\n \"allowed_gateways\": [],\n \"amount\": {\n \"amount\": \"180.00\",\n \"code\": \"USD\"\n },\n \"auto_bill\": false,\n \"autobill_status\": null,\n \"basecampid\": 0,\n \"city\": \"Toronto\",\n \"code\": \"M6P 3T1\",\n \"country\": \"\",\n \"create_date\": \"2019-04-20\",\n \"created_at\": \"2019-05-09 16:02:40\",\n \"currency_code\": \"USD\",\n \"current_organization\": \"Space Is Only Noise\",\n \"customerid\": 92402,\n \"date_paid\": null,\n \"deposit_amount\": null,\n \"deposit_percentage\": null,\n \"deposit_status\": \"none\",\n \"description\": \"\",\n \"discount_description\": null,\n \"discount_total\": {\n \"amount\": \"0.00\",\n \"code\": \"USD\"\n },\n \"discount_value\": \"0\",\n \"display_status\": \"draft\",\n \"dispute_status\": null,\n \"due_date\": \"2019-04-20\",\n \"due_offset_days\": 0,\n \"estimateid\": 0,\n \"ext_archive\": 0,\n \"fname\": \"Nicholas\",\n \"fulfillment_date\": null,\n \"generation_date\": null,\n \"gmail\": false,\n \"id\": 74888,\n \"invoice_number\": \"0000029\",\n \"invoiceid\": 74888,\n \"language\": \"en\",\n \"last_order_status\": null,\n \"lname\": \"Jaar\",\n \"notes\": \"\",\n \"organization\": \"Space Is Only Noise\",\n \"outstanding\": {\n \"amount\": \"180.00\",\n \"code\": \"USD\"\n },\n \"ownerid\": 1,\n \"paid\": {\n \"amount\": \"0.00\",\n \"code\": \"USD\"\n },\n \"parent\": 0,\n \"payment_details\": \"\",\n \"payment_status\": \"unpaid\",\n \"po_number\": null,\n \"province\": \"Ontario\",\n \"return_uri\": null,\n \"sentid\": 1,\n \"show_attachments\": true,\n \"status\": 1,\n \"street\": \"1655 Dupont St. W.\",\n \"street2\": \"\",\n \"template\": \"clean-grouped\",\n \"terms\": \"\",\n \"updated\": \"2019-05-09 16:02:41\",\n \"v3_status\": \"draft\",\n \"vat_name\": \"\",\n \"vat_number\": \"\",\n \"vis_state\": 0\n }\n }\n }\n}"
}
]
}