POST public-api/customers/save
This method allows saving the customer details. This requires both the Create and Update Customer permission. It accepts a maximum of 500 records at a time. In case the customer does not exist, a new record is created and on creation, it returns the CustomerId. In the case of updating the existing record, then only the columns specified in the request model's "ApplicableFields" field are updated. If this field is null/empty then "all" fields are assumed to be updateable. To create/update addresses please use the API public-api/addresses/customer/save.
Request Information
URI Parameters
None.
Body Parameters
CustomerSaveRequest| Name | Description | Type | Additional information |
|---|---|---|---|
| ApplicableFields | Collection of string |
None. |
|
| Data | Collection of CustomerModelInfo |
None. |
Request Formats
application/json
Sample:
{
"ApplicableFields": [
"sample string 1",
"sample string 2"
],
"Data": [
{
"ImportRowNumber": 1,
"CustomerNumber": "sample string 2",
"CustomerFirstName": "sample string 3",
"CustomerLastName": "sample string 4",
"CustomerEmail": "sample string 5",
"CustomerDepartment": "sample string 6",
"CustomerCompanyName": "sample string 7",
"CustomerContactEmail": "sample string 8",
"CustomerWebsite": "sample string 9",
"CustomerContactFirstName": "sample string 10",
"CustomerContactLastName": "sample string 11",
"Addresses": [
{
"AddressLine1": "sample string 2",
"AddressLine2": "sample string 3",
"AddressLine3": "sample string 4",
"AddressLine4": "sample string 5",
"AddressCity": "sample string 6",
"AddressStateProvince": "sample string 7",
"AddressCountry": "sample string 8",
"AddressPostalCode": "sample string 9",
"AddressTypeName": "sample string 10",
"ContactPhone": "sample string 11",
"ContactEmail": "sample string 12"
},
{
"AddressLine1": "sample string 2",
"AddressLine2": "sample string 3",
"AddressLine3": "sample string 4",
"AddressLine4": "sample string 5",
"AddressCity": "sample string 6",
"AddressStateProvince": "sample string 7",
"AddressCountry": "sample string 8",
"AddressPostalCode": "sample string 9",
"AddressTypeName": "sample string 10",
"ContactPhone": "sample string 11",
"ContactEmail": "sample string 12"
}
],
"CustomerContactCellNumber": "sample string 12",
"CustomerBusinessPhoneNumber": "sample string 13",
"CustomerContactPhoneNumber": "sample string 14",
"CustomerBusinessFaxNumber": "sample string 15",
"CustomerContactFaxNumber": "sample string 16",
"CustomerContactCell": {
"PhoneNumber": "sample string 1",
"PhoneExtension": "sample string 2",
"PhoneTypeName": "sample string 3"
},
"CustomerBusinessPhone": {
"PhoneNumber": "sample string 1",
"PhoneExtension": "sample string 2",
"PhoneTypeName": "sample string 3"
},
"CustomerContactPhone": {
"PhoneNumber": "sample string 1",
"PhoneExtension": "sample string 2",
"PhoneTypeName": "sample string 3"
},
"CustomerBusinessFax": {
"PhoneNumber": "sample string 1",
"PhoneExtension": "sample string 2",
"PhoneTypeName": "sample string 3"
},
"CustomerContactFax": {
"PhoneNumber": "sample string 1",
"PhoneExtension": "sample string 2",
"PhoneTypeName": "sample string 3"
},
"CustomerNote": "sample string 17",
"CustomerNotes": [
{
"NoteText": "sample string 1",
"NoteDate": "2026-05-28T12:43:08.4068156+00:00",
"UserLogon": "sample string 2"
},
{
"NoteText": "sample string 1",
"NoteDate": "2026-05-28T12:43:08.4068156+00:00",
"UserLogon": "sample string 2"
}
],
"CustomFields": [
{
"ImportRowNumber": 1,
"DcfLabel": "sample string 2",
"DCFDataType": 1,
"DcfTextValue": "sample string 3",
"DcfNumberValue": 1.0,
"DcfDateValue": "2026-05-28T12:43:08.4068156+00:00",
"DcfValueRecordStatus": 0
},
{
"ImportRowNumber": 1,
"DcfLabel": "sample string 2",
"DCFDataType": 1,
"DcfTextValue": "sample string 3",
"DcfNumberValue": 1.0,
"DcfDateValue": "2026-05-28T12:43:08.4068156+00:00",
"DcfValueRecordStatus": 0
}
],
"HasAttachment": true,
"CustomerName": "sample string 19",
"IsAutogeneratedCustomerNumber": true,
"AttachmentsToAdd": [
"sample string 1",
"sample string 2"
],
"AttachmentsToDelete": [
"sample string 1",
"sample string 2"
],
"LastUpdated": "2026-05-28T12:43:08.4068156+00:00",
"AttachmentNames": [
{
"Key": "sample string 1",
"Value": "sample string 2"
},
{
"Key": "sample string 1",
"Value": "sample string 2"
}
]
},
{
"ImportRowNumber": 1,
"CustomerNumber": "sample string 2",
"CustomerFirstName": "sample string 3",
"CustomerLastName": "sample string 4",
"CustomerEmail": "sample string 5",
"CustomerDepartment": "sample string 6",
"CustomerCompanyName": "sample string 7",
"CustomerContactEmail": "sample string 8",
"CustomerWebsite": "sample string 9",
"CustomerContactFirstName": "sample string 10",
"CustomerContactLastName": "sample string 11",
"Addresses": [
{
"AddressLine1": "sample string 2",
"AddressLine2": "sample string 3",
"AddressLine3": "sample string 4",
"AddressLine4": "sample string 5",
"AddressCity": "sample string 6",
"AddressStateProvince": "sample string 7",
"AddressCountry": "sample string 8",
"AddressPostalCode": "sample string 9",
"AddressTypeName": "sample string 10",
"ContactPhone": "sample string 11",
"ContactEmail": "sample string 12"
},
{
"AddressLine1": "sample string 2",
"AddressLine2": "sample string 3",
"AddressLine3": "sample string 4",
"AddressLine4": "sample string 5",
"AddressCity": "sample string 6",
"AddressStateProvince": "sample string 7",
"AddressCountry": "sample string 8",
"AddressPostalCode": "sample string 9",
"AddressTypeName": "sample string 10",
"ContactPhone": "sample string 11",
"ContactEmail": "sample string 12"
}
],
"CustomerContactCellNumber": "sample string 12",
"CustomerBusinessPhoneNumber": "sample string 13",
"CustomerContactPhoneNumber": "sample string 14",
"CustomerBusinessFaxNumber": "sample string 15",
"CustomerContactFaxNumber": "sample string 16",
"CustomerContactCell": {
"PhoneNumber": "sample string 1",
"PhoneExtension": "sample string 2",
"PhoneTypeName": "sample string 3"
},
"CustomerBusinessPhone": {
"PhoneNumber": "sample string 1",
"PhoneExtension": "sample string 2",
"PhoneTypeName": "sample string 3"
},
"CustomerContactPhone": {
"PhoneNumber": "sample string 1",
"PhoneExtension": "sample string 2",
"PhoneTypeName": "sample string 3"
},
"CustomerBusinessFax": {
"PhoneNumber": "sample string 1",
"PhoneExtension": "sample string 2",
"PhoneTypeName": "sample string 3"
},
"CustomerContactFax": {
"PhoneNumber": "sample string 1",
"PhoneExtension": "sample string 2",
"PhoneTypeName": "sample string 3"
},
"CustomerNote": "sample string 17",
"CustomerNotes": [
{
"NoteText": "sample string 1",
"NoteDate": "2026-05-28T12:43:08.4068156+00:00",
"UserLogon": "sample string 2"
},
{
"NoteText": "sample string 1",
"NoteDate": "2026-05-28T12:43:08.4068156+00:00",
"UserLogon": "sample string 2"
}
],
"CustomFields": [
{
"ImportRowNumber": 1,
"DcfLabel": "sample string 2",
"DCFDataType": 1,
"DcfTextValue": "sample string 3",
"DcfNumberValue": 1.0,
"DcfDateValue": "2026-05-28T12:43:08.4068156+00:00",
"DcfValueRecordStatus": 0
},
{
"ImportRowNumber": 1,
"DcfLabel": "sample string 2",
"DCFDataType": 1,
"DcfTextValue": "sample string 3",
"DcfNumberValue": 1.0,
"DcfDateValue": "2026-05-28T12:43:08.4068156+00:00",
"DcfValueRecordStatus": 0
}
],
"HasAttachment": true,
"CustomerName": "sample string 19",
"IsAutogeneratedCustomerNumber": true,
"AttachmentsToAdd": [
"sample string 1",
"sample string 2"
],
"AttachmentsToDelete": [
"sample string 1",
"sample string 2"
],
"LastUpdated": "2026-05-28T12:43:08.4068156+00:00",
"AttachmentNames": [
{
"Key": "sample string 1",
"Value": "sample string 2"
},
{
"Key": "sample string 1",
"Value": "sample string 2"
}
]
}
]
}
Response Information
Resource Description
WaspResultOfResults| Name | Description | Type | Additional information |
|---|---|---|---|
| Data | Results |
None. |
|
| Messages | Collection of WtResult |
None. |
|
| BatchNumber | integer |
None. |
|
| HasError | boolean |
None. |
|
| HasHttpError | boolean |
None. |
|
| HasMessage | boolean |
None. |
|
| HasSuccessWithMoreDataRemaining | boolean |
None. |
|
| TotalRecordsLongCount | integer |
None. |
Response Formats
application/json
Sample:
{
"Data": {
"ResultList": [
{
"ResultCode": 0,
"Message": "sample string 1",
"HttpStatusCode": 200,
"FieldName": "sample string 2"
},
{
"ResultCode": 0,
"Message": "sample string 1",
"HttpStatusCode": 200,
"FieldName": "sample string 2"
}
],
"SuccessfullResults": 1,
"TotalResults": 2,
"ErrorCount": 0
},
"Messages": [
{
"ResultCode": 0,
"Message": "sample string 1",
"HttpStatusCode": 200,
"FieldName": "sample string 2"
},
{
"ResultCode": 0,
"Message": "sample string 1",
"HttpStatusCode": 200,
"FieldName": "sample string 2"
}
],
"BatchNumber": 1,
"HasError": false,
"HasHttpError": false,
"HasMessage": true,
"HasSuccessWithMoreDataRemaining": false,
"TotalRecordsLongCount": 1
}