Create Customer
Sample Requests and Responses
The following is an example request which can be used while using ‘createCustomer’ action.
Request
// Create a Map to store all the data of a Customer
Map<String, Object> nsCustomer = new Map<String, Object>();
nsCustomer.put('companyName', 'Grand Hotels & Resorts Ltd');
nsCustomer.put('customForm', new Map<String, Object>{'internalId'=>'-2'});
nsCustomer.put('currencyRecord', new Map<String, Object>{'internalId'=>'1'});
nsCustomer.put('priceLevel', new Map<String, Object>{'internalId'=>'1'});
nsCustomer.put('receivablesAccount', new Map<String, Object>{'internalId'=>'122'});
nsCustomer.put('subsidiary', new Map<String, Object>{'internalId'=>'1'});
nsCustomer.put('startDate', DateTime.newInstance(2020, 12, 2).getTime()/1000);
nsCustomer.put('terms', new Map<String, Object>{'internalId'=>'5'});
nsCustomer.put('territory', new Map<String, Object>{'internalId'=>'-5'});
nsCustomer.put('url', 'https://www.grandhotel.com');
// Initializing the Customer Custom Fields
List<Object> custCustomFieldList = new List<Object>();
Map<String,Object> custCustomField1 = new Map<String,Object>();
custCustomField1.put('fieldType', 'select');
custCustomField1.put('scriptId', 'custentityrating');
custCustomField1.put('valueLookup', new Map<String,Object>{'internalId'=>'2'});
custCustomFieldList.add(custCustomField1);
Map<String,Object> custCustomField2 = new Map<String,Object>();
custCustomField2.put('fieldType', 'double');
custCustomField2.put('scriptId', 'custentity_decimal');
custCustomField2.put('value', '76.89');
custCustomFieldList.add(custCustomField2);
// Adding the Customer Custom Fields
nsCustomer.put('customFieldList', new Map<String,Object>{'customField'=>custCustomFieldList});
// Initializing the Customer Addresses
List<Object> addressBookList = new List<Object>();
Map<String,Object> addressBook = new Map<String,Object>();
Map<String,Object> addressbookAddress = new Map<String,Object>();
addressbookAddress.put('addr1','2334 N. Michigan Avenue, Suite 1500');
addressbookAddress.put('city','Chicago');
addressbookAddress.put('state','IL');
addressbookAddress.put('country','_unitedStates');
addressbookAddress.put('zip','60601');
addressBook.put('addressbookAddress',addressbookAddress);
addressBook.put('defaultBilling',true);
addressBook.put('defaultShipping',true);
addressBook.put('isResidential',true);
addressBookList.add(addressBook);
nsCustomer.put('addressbookList', new Map<String,Object>{'addressbook'=>addressBookList});
// Initializing the RequestJSON Data to be passed.
Map<String, Object> requestJSONMap = new Map<String, Object>();
requestJSONMap.put('customers', new List<Object>{nsCustomer});
String reqJSON = JSON.serialize(requestJSONMap);
Map<String, Object> reqObj = new Map<String, Object>();
reqObj.put('version', '1.0');
reqObj.put('action', 'createCustomer');
reqObj.put('requestJSON', reqJSON);
// Placing a request to Breadwinner Global API
Map<String, Object> resp = breadwinner_ns.BreadwinnerNetSuiteAPI.call(reqObj);
System.debug(resp);
Response
{
action=createCustomer,
timestamp=1606907168426,
validRequest=true,
version=1.0,
responseJSON={
"status": "200",
"errors": [],
"customers": [
{
"vatRegNumber": null,
"url": "https://www.grandhotel.com",
"title": null,
"territory": {
"type": null,
"name": "Default Round-Robin",
"internalId": "-5",
"externalId": null
},
"terms": {
"type": null,
"name": "1% 10 Net 30",
"internalId": "5",
"externalId": null
},
"taxItem": null,
"subsidiary": {
"type": null,
"name": "Parent Company",
"internalId": "1",
"externalId": null
},
"startDate": 1606847400,
"stage": "_customer",
"salutation": null,
"salesRep": null,
"salesforceID": "a012w00000XUP93AAH",
"resaleNumber": null,
"reminderDays": null,
"receivablesAccount": {
"type": null,
"name": "Accounts Receivable",
"internalId": "122",
"externalId": null
},
"priceLevel": {
"type": null,
"name": "Base Price",
"internalId": "1",
"externalId": null
},
"phone": null,
"parent": null,
"nullFieldList": null,
"middleName": null,
"lastName": null,
"lastModifiedDate": 1606907165,
"itemPricingList": null,
"isPerson": false,
"isInactive": false,
"internalId": "32342",
"firstName": null,
"fax": null,
"externalId": null,
"entityStatus": {
"type": null,
"name": "CUSTOMER-Closed Won",
"internalId": "13",
"externalId": null
},
"entityId": "CUST533AT Grand Hotels & Resorts Ltd",
"endDate": null,
"email": null,
"dateCreated": 1606907165,
"customForm": {
"type": null,
"name": "Standard Customer Form",
"internalId": "-2",
"externalId": null
},
"customFieldList": {
"customField": [
{
"valueLookup": null,
"value": "76.89",
"scriptId": "custentity_decimal",
"internalId": "435",
"fieldType": null
},
{
"valueLookup": {
"type": null,
"name": "Acquired",
"internalId": "2",
"externalId": null
},
"value": null,
"scriptId": "custentityrating",
"internalId": "42",
"fieldType": null
}
]
},
"currencyRecord": {
"type": null,
"name": "INR",
"internalId": "1",
"externalId": null
},
"currencyList": {
"currencyRecord": [
{
"currencyRecord": {
"type": null,
"name": "INR",
"internalId": "1",
"externalId": null
}
}
]
},
"creditLimit": null,
"creditHoldOverride": "_auto",
"companyName": "Grand Hotels & Resorts Ltd",
"category": null,
"addressbookList": {
"replaceAll": null,
"addressbook": [
{
"label": "2334 N. Michigan Avenue, Suite 1500",
"isResidential": true,
"internalId": "29188",
"defaultShipping": true,
"defaultBilling": true,
"addressbookAddress": {
"zip": "60601",
"state": "IL",
"internalId": null,
"country": "_unitedStates",
"city": "Chicago",
"attention": null,
"addrPhone": null,
"addressee": "Grand Hotels & Resorts Ltd",
"addr3": null,
"addr2": null,
"addr1": "2334 N. Michigan Avenue, Suite 1500"
}
}
]
},
"accountNumber": null
}
]
}
}