CReME™Create Customer Integration with Netsuite

Version History
Version Number Date Description Changes
2.00 22-Mar-2024 Additional fields for SST The additional fields required for SST are shown in section B1. The payload structure has been updated in section C1. The process for updating a customer has been added to Section A
0.48 17-Apr-2023 Netsuite Responses Rida emailed details of the Netsuite response. Section C has been updated.
0.47 22-Mar-2023 Netsuite Customer Id no longer mandatory Change requested by AJ in his email on 22-Mar-2023 affects the description of Netsuite Customer Id in the Section B1 (Data Description - Customer Data).
0.46 22-Mar-2023 Change of workflow Change requested by AJ in his email on 22-Mar-2023 affects the flowchart in the Introductory section.
0.45 9-Mar-2023 Payload changed from a single object to an array of objects. Change requested by AJ in his email on 8-Mar-2023 affects Section C (Technical Aspects) example message body.
0.44 2-Mar-2023 Netsuite will respond to CReME™ in real time Change requested by AJ in his email on 22-Feb-2023. Please refer to Netsuite receives Customer Data
0.43 2-Mar-2023 New field: Netsuite Payment Terms Internal Id Change requested by AJ in his email on 22-Feb-2023. CreditTermsInDays is removed.
0.42 22-Feb-2023 Netsuite provides NetsuiteCustomerId in response to CReME sending Customer information This change affects the Introduction, Section A (Process Description), Section B (Data Description) and Section C (Technical Aspects).
0.41 22-Feb-2023 AJ requested the addition of DocumentType DocumentType has been added to Section B (Data Description) and Section C (Technical Aspects).
0.4 17-Feb-2023 Addition of 3rd section "Technical Aspects" Configuration of the API
0.3 4-Jan-2023 Revision following discussion on 27-Dec-2022 with Mr. Khoo of Giga. Previously cash sales was to be carried out without a customer Id. Now it will have one.
0.2 8-Dec-2022 Revision following discussion on 6-Dec with Point Star Kuga, Rida and AJ. 1) The CremeCustomerNumericId has been renamed to CremeCustomerId 2) The common identifier of the customer record between Netsuite and CReME will be the CReMECustomerId 3) The CremeCustomerAlphanumericId has been dropped as agreed to by Mr. Khoo during the Dec 6 meeting. 4) A new section has been added to discuss cash sales
0.1 20-May-2022 Draft following discussion between Mr. Khoo and Lyndon
Introduction

This document describes the integration of the Create Customer use case between CReME™ and Netsuite. It is divided into two parts. Part A describes the process. Part B the structure of the data shared from CReME™ to Netsuite.

A) Process Description for Create/Update Customer
Create Customer Overview

This section describes the process for Create Customer (steps 1 to 9) and Update Customer (steps 6 to 9).

1) Create Customer

Using CReME™, one of the staff at the Operations Office creates a customer.

2) Send email

CReME™ sends an email to all email addresses on the "Create Customer Mailing List". It contains customer information and a link. This link will be described later on.

3) Check Netsuite Customer List

The recipient checks for the existence of the same customer record in Netsuite.

4) Input Creme Customer Id into Netsuite

If the customer exists in Netsuite, the recipient inputs the Creme Customer Id into Netsuite. If the customer does not exist in Netsuite, this step is skipped.

5) Click on email link

The recipient clicks on the link in the email.

6) CReME™ sends customer data

CReME™ sends customer data to Netsuite.

7) Netsuite receives Customer Data

Netsuite receives the customer data from CReME™

8) Netsuite responds with Netsuite Customer Id

Netsuite responds in the following format:

​{
  "status": "201",
  "name": "RECORD_CREATED",
  "message": "Customer created.",
  "CremeID": 2840734,
  "NetsuiteID": 98946
}​

B) Data Description
1) Customer Data

This section describes the structure of Customer data that will be transmitted to Netsuite from CReME™.

> >
Human-Friendly Name Machine-Friendly Name Format Description Mandatory
Document TypeDocumentType 50 characters long Always "Customer" Yes
Netsuite Customer IdNetsuiteCustomerId integer eg 100450, 4 or more digits This field is empty when customer data is first sent because the value is not yet known to CReME™. After receiving the value from Netsuite, it will be populated No
CReME Customer Id CremeCustomerId integer eg 2749611, 7 or more digits For use within CReME™. The common identifier between Netsuite & CReME™ Yes
MaslogID MaslogID C0000, the first alphabet is "C" followed by a running number Discontinued Obsolete
Customer Name CustomerName 50 characters long Maps to Netsuite "companyname" Yes
Contact Name CustomerContactPersonName 50 characters long Maps to Netsuite "attention" No
Address 1 AddressLine1 50 characters long Maps to Netsuite "addr1" No
Address 2 AddressLine2 50 characters long Maps to Netsuite "addr2" No
Postcode Postcode up to 10 characters long No
City City up to 50 characters long No
State State up to 50 characteres long No
Country Country up to 50 characters long No
Telephone Telephone minimum 9 characters long No
Fax Fax optional No
Email EmailAddress up to 100 characters long No
Netsuite Payment Terms Internal Id CustomerTermsInternalId Netsuite Internal Id for payment terms Yes
Tax Registration Number TaxRegistrationNo up to 50 characters long Yes
Tax Exemption Number TaxExemptionNo up to 50 characters long Yes
Netsuite Tax Code NetsuiteTaxCode integer Yes
2) Cash Customer

This section describes how cash customers will be managed.

Cash sales are transactions from customers who rarely do business with GCT. It would be a waste of time to create a customer for each transaction with full customer details because the data would not be reused. Instead, all cash sales will be assigned to a single customer Id.

The CremeCustomerId will be automatically generated by CReME™. Invoices transmitted to Netsuite will bear this customer Id.

Credit Terms for cash customers are fixed at 0 (zero) days.

The customer's proper name (Ali, Ah Kau, Mutu etc.) will not be saved in CReME.

C) Technical Aspects
1) Structure of request

This section describes the technical aspects of transmitting Create Customer information from CReME™ to Netsuite.

{
"DocumentType": "Customer",
"Payload": [
{
"CremeCustomerId": 2344700,
"CustomerName": "BESDAYA SDN BHD",
"CustomerContactPersonName": "MS TAN",
"AddressLine1": "NO14,GROUND FLOOR,",
"AddressLine2": "LORONG BERANGAN,",
"Postcode": "99999",
"City": "not specified",
"State": "Wilayah Persekutuan",
"NetsuiteCountryCode": "MY",
"NetsuiteCustomerId": "142073",
"Telephone": "03-31684107/4260",
"Fax": "03-33333333",
"EmailAddress": "uji@besdaya.com",
"NetsuitePaymentTermsInternalId": 12,
"TaxRegistrationNo": "12125H",
"TaxExemptionNo": "997EFF",
"NetsuiteTaxCode": 308
}
]
}

2) Structure of response

This section describes the structure of the response from Netsuite after CReME™ has transmitted the customer information. This information was emailed by Rida on 17-Apr-2023.

Status Name Transaction Details
200 RECORD_UPDATED Customer The existing customer record has been updated.
201 RECORD_CREATED Customer, Invoice, Credit Note, Debit Note The new record has been created.
204 NO_CONTENT - The document type is not defined correctly.
400 BAD_REQUEST Customer, Invoice,
Credit Note, Debit Note
Action is not performed.
404 NOT_FOUND Invoice,
Credit Note, Debit Note
1. Customer in the payload of the invoice not found.
2. Invoice in the payload of Credit/Debit Note not found.
409 RECORD_ALREADY_EXISTS Invoice,
Credit Note, Debit Note
The record already exists.