---
# System prepended metadata

title: Custos Enterprise API - API-P01 Sending transaction data back to Custos from contracted vendors
tags: [合作店家]

---

# Sending transaction data back to Custos from contracted vendors
Custos-Enterprise API-P01
V1.0
	
When the employees from our enterprise customers go to our contracted vendors to buy/rent/repair something, the transaction details will be sent back to our database to accumulate the leaves and carbons. Our contracted vendors will call this API after the transaction has completed.

[toc]
## Initiate

1. Request parameters:
(1) Contracted vendor's serial number (#corp_data_id)
(2) Contracted vendor item id: id of items that customers buy/rent/repair, defined by vendor. (#vendor_item_id)
(3)	Contracted vendor item name: name of items that customers buy/rent/repair, defined by vendor. (#item_name)
(4)	Employee cellphone number: Enterprise customer employee cellphone number keeps in contracted vendor's database after calling [API-P02](https://hackmd.io/@custos-it/B1GGjiiYn) authentication.  (#to_emp_phone)
(5)	Action code: Buy = 5, Rent = 4, Repair = 2, Refund = 7 (#category_id)
(6)	Trading amount (#total_amt)
(7)	Date (#create_date)
(8)	Country and language setting (#language_setting)

2. Create system log: Contracted vendor #corp_data_id|Sending transaction data back|Process starts

## API Process Start
1. Select the following data by cellphone number (#to_emp_phone) from database 
(1)	Backend login ID of the enterprise (#to_corp_id)
(2)	Serial number of the enterprise (#to_corp_data_id)
(3)	Employee ID (#to_emp_id)
(4)	Employee serial number (#to_emp_data_id)

2. Select the following data by contracted vendor's serial number (#corp_data_id)
(1)	Backend login ID of the contracted vendor (#corp_id)
(2)	Contact person employee id of the contracted vendor (#emp_id)
(3)	Contact person employee serial number of the contracted vendor (#emp_data_id)
(4)	Contact person cellphone number of the contracted vendor (#emp_phone)
(5) First picture of the item that is uploaded to the marketplace by the contracted vendor (#item_image)

3. Insert new transaction data in corp_fm_transaction table
*insert into corp_fm_transaction (vendor_item_id, corp_id, corp_data_id, to_corp_id, to_corp_data_id, emp_id, emp_data_id, to_emp_id, to_emp_data_id, emp_phone, to_emp_phone, category_id, total_amt, item_name, item_image, modify_oper, language_setting) values (#vendor_item_id, #corp_id, #corp_data_id, #to_corp_id, #to_corp_data_id, #emp_id, #emp_data_id, #to_emp_id, #to_emp_data_id, #emp_phone, #to_emp_phone, #category_id, #total_amt, #item_name, #item_image, #corp_id, #language_setting)*

4. If no data returned from the above step 1 or 2, create a system log: Contracted vendor #corp_data_id|Sending transaction data back: No data found when processing the transaction data|Processing

5. Return result = 'N', message = (the log content).

## API Process End
Create system log: Contracted vendor #corp_data_id|Sending transaction data back|Process ends


## Exception Handling
If there is error/exception occurs, create an error log: [YYYYMMDDHHMMSS] Enterprise-API-P01 Error! Message: (the system exception messages).

## Specification and Sample
|API No.|Enterprise-API-P01|
|-|-|
|API Name|setTransactionRecords|
|URL|${url}/APP/setData/setTransactionRecords|
|Purpose|Receiving data from contracted vendor via API|
|Description|Contracted vendors can send back all transaction details via this API and store in Custos database.|
|Content-Type|application/json|

**Request**
|Parameters|Data Type|Mandatory|Length|Description|
|-|-|:-:|:-:|-|
|corp_data_id|INT|Y||Contracted vendor's serial number|
|vendor_item_id|String|Y|45|ID of items that customers buy/rent/repair, defined by vendor|
|item_name|String|Y|256|Name of items that customers buy/rent/repair, defined by vendor|
|to_emp_phone|String|Y|16|Enterprise customer employee cellphone number|
|category_id|INT|Y||Buy = 5, Rent = 4, Repair = 2, Repair = 7|
|total_amt|Float|Y||Trading amount|
|create_date|DateTime|Y||Trading date|
|language_setting|String|Y|10|Country and language setting|

**Response**
|Parameters|Data Type|Mandatory|Description|
|-|-|:-:|-|
|result|String|Y|API process result，Y: Successfully, N: Failure|
|message|String|N|API process failure description|

**Request Sample**
```javascript
var input = {
  "corp_data_id": 12,
  "vendor_item_id": "c-002135",
  "item_name": "1 liter cup",
  "to_emp_phone": "0912345678",
  "category_id": 3,
  "total_amt": "200",
  "create_date": "2023-06-01 10:03:28",
  "language_setting": "en-SG"
}
```

**Response Sample**
```javascript
{	
  "result": "Y",	//API process result
  "message": "..."	//API process failure description
}	
```