# Customer Management Endpoint
## Flow
## ServiceURL and Payload
### Create Customer
#### Method: POST
#### Endpoint: /api/CustomerManagement/createcustomer
#### Payload:
```
{
"tenantID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"customerTypeID": 0,
"businessName": "string",
"vatNumber": "string",
"referenceIDNumber": "string",
"website": "string",
"currencyID": 0,
"paymentTermsCount": 0,
"paymentTermsRange": "string",
"firstName": "string",
"lastName": "string",
"position": "string",
"isDefault": true,
"contactNumber": "string",
"phoneTypeID": 0,
"emailAddress": "string",
"emailTypeID": 0,
"address1": "string",
"address2": "string",
"addressCity": "string",
"stateCode": "string",
"countryCode": "string",
"zipcode": "string",
"addressTypeID": 0,
"creator": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
```
### Update Customer
#### Method: POST
#### Endpoint: /api/CustomerManagement/updatecustomer
#### Payload:
```
{
"mainChanged": true,
"customerID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"customerTypeID": 0,
"businessName": "string",
"vatNumber": "string",
"referenceIDNumber": "string",
"website": "string",
"currencyID": 0,
"paymentTermsCount": 0,
"paymentTermsRange": "string",
"phoneChanged": true,
"phoneID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"contactNumber": "string",
"phoneNameID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"phoneTypeID": 0,
"isDefaultPhone": true,
"updaterPhone": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"noteChanged": true,
"noteID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"noteContent": "string",
"noteTypeID": 0,
"isNoteDisplayed": true,
"nameChanged": true,
"nameID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"firstName": "string",
"lastName": "string",
"position": "string",
"nameDefault": true,
"nameUpdater": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"emailChanged": true,
"emailID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"emailAddress": "string",
"emailTypeID": 0,
"emailNameID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"isEmailDefault": true,
"addressChanged": true,
"addressID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"address1": "string",
"address2": "string",
"addressCity": "string",
"stateCode": "string",
"countryCode": "string",
"zipCode": "string",
"addressTypeID": 0,
"nameAddressID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"addressDefault": true,
"addressUpdater": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
```
### Get List (by TenantID)
#### Method: GET
#### Endpoint: /api/CustomerManagement/getcustomerdetail
#### Payload:
```
ID uniqueidentifier : TenantID
```
### Customer Selection (for Dropdown)
#### Method: POST
#### Endpoint: /api/CustomerManagement/customerselection
#### Payload:
```
TenantID uniqueidentifier : Required. Will cause error if not filled in
SearchParams string : can be empty or null. This will search through customer name, email, and contact number.
```
##### Sample:
###### With searchParams
```
{
"tenantID": "778df26c-1aab-4f5e-93fd-e4cae2c1bc39",
"searchParams": "j"
}
```
###### Without searchParams
```
{
"tenantID": "778df26c-1aab-4f5e-93fd-e4cae2c1bc39"
```
##### Results:
```
[
{
"customerID": "33a71cd9-ba9c-42eb-bd2c-58204fe36466",
"customerName": "Eleanor Horton",
"emailAddress": "ehorton@magichorton.com",
"contactNumber": "6235128450"
}
]
```
---
### Customer Profile
#### Method: POST
#### Endpoint: /api/CustomerManagement/getcustomerdetail
#### Payload:
```
{
"tenantID": "778DF26C-1AAB-4F5E-93FD-E4CAE2C1BC39",
"customerID": "86626425-7B55-4B70-A91E-097770094E42",
"interval": 0
}
```
#### Results:
```
[
{
"tenantID": "778df26c-1aab-4f5e-93fd-e4cae2c1bc39",
"customerID": "86626425-7b55-4b70-a91e-097770094e42",
"customerName": "Dorothy Harper",
"customerTypeID": 1,
"customerType": "Individual",
"created": "05/15/2024 08:48:00",
"paidTotal": 0,
"balance": 0,
"customerContacts": "string", --JSON
"customerAddress": "string", --JSON
"customerLedger": "string" --JSON
}
]
```
---
### Delete Profile
#### Method: POST
#### Endpoint: /api/CustomerManagement/deletecustomer
#### Payload:
```
{
"customerID": "86626425-7b55-4b70-a91e-097770094e42",
"tenantID": "778df26c-1aab-4f5e-93fd-e4cae2c1bc39",
"updater": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
```
---
## Customer Update Sections
### Main Information
#### Method: POST
#### Endpoint: /api/CustomerManagement/updatecustomermain
#### Payload:
```
{
"customerID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"customerTypeID": 0,
"businessName": "string",
"vatNumber": "string",
"referenceIDNumber": "string",
"website": "string",
"currencyID": 0,
"paymentTermsCount": 0,
"paymentTermsRange": "string",
"updater": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
```
---
### Customer Name (For Point of Contact if Type is Business)
#### Method: POST
#### Endpoint: /api/CustomerManagement/updatecustomername
#### Payload:
```
{
"customerID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"nameID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"firstName": "string",
"lastName": "string",
"position": "string",
"isDefault": true,
"updater": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
```
---
### Customer Phone
#### Method: POST
#### Endpoint: /api/CustomerManagement/updatecustomerphone
#### Payload:
```
{
"customerID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"phoneID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"contactNumber": "string",
"nameID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"phoneTypeID": 0,
"isDefault": true,
"updater": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
```
---
### Customer Email
#### Method: POST
#### Endpoint: /api/CustomerManagement/updatecustomeremail
#### Payload:
```
{
"customerID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"emailID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"emailAddress": "string",
"emailTypeID": 0,
"nameID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"isDefault": true,
"updater": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
```
---
### Customer Address
#### Method: POST
#### Endpoint: /api/CustomerManagement/updatecustomeraddress
#### Payload:
```
{
"customerID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"addressID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"address1": "string",
"address2": "string",
"addressCity": "string",
"stateCode": "string",
"countryCode": "string",
"zipCode": "string",
"addressTypeID": 0,
"nameID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"isDefault": true,
"updater": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
```