**Verify API** ---- To update user's status. * **URL** Staging: https://mega1-point-kyc-service-dev.yeah1group.com/v1/hd/verify * **Method:** `POST` * **Data Params** **Required:** `phone_number=[string]` _User's phone number_ `timestamp=[number]` _Unix timestamp to check signature expiration, a request will be expires in 5 minutes_ `token=[string]` _HD bank token_ `status=[SUCCEEDED | FAILED]` _User's status need to be update_ **Optional:** `failure_causes=[string]` _If status = "FAILED", you can add this param to let's we know why it's failed_ * **Success Response:** Each successful request will be push to task queues, then execute sequentially. * **HTTP status:** 200 OK <br /> **Content:** `{ "code": 2000, "data" : { "job_id" : "3d7f270fe937b18a21a9ddf3" } }` * **Error Response:** * **HTTP status:** 200 OK <br /> **Content:** `{ "code": 4220, "message" : "phone_number is required" }` **Content:** `{ "code": 4221, "message" : "status is required" }` **Content:** `{ "code": 4222, "message" : "timestamp is required" }` **Content:** `{ "code": 4223, "message" : "token is required" }` **Content:** `{ "code": 4224, "message" : "invalid status" }` **Content:** `{ "code": 4225, "message" : "invalid phone" }` **Content:** `{ "code": 4227, "message" : "invalid timestamp" }` **Content:** `{ "code": 4018, "message" : "get signature from header failed" }` **Content:** `{ "code": 4011, "message" : "request has expired" }` **Content:** `{ "code": 4031, "message" : "Forbidden" }` (Check encrypt algorithm with provided secret key or IP whitelisting) **Content:** `{ "code": 4290, "message" : "Too Many Requests" }` **Content:** `{ "code": 4040, "message" : "cannot find user's phone: 123" }` * **Sample Call:** ```bash curl --location --request POST 'https://mega1-point-kyc-service-dev.yeah1group.com/v1/hd/verify' \ --header 'signature: vwzqZzEAqlbMOYpIeygw6TixfGlHyHYKLKzXa/6qyIU=' \ --header 'Content-Type: application/json' \ --data-raw '{ "phone_number": "0700000567", "status": "SUCCEEDED", "timestamp": 1626764851 , "token": "123" }' ``` * **Encrypt signature** To get signature attached to header, use HMAC-SHA256 algorithm to encrypt raw body, then encode with Base64. Javascript sample: ```Javascript function generateSignature() { const rawBody = '{}' // Body will be post const secretKey = '123' // Provided secret key const sign = CryptoJS.HmacSHA256(rawBody, secretKey) const signature = CryptoJS.enc.Base64.stringify(sign) return signature } ```