[ACB] Xóa cấu hình tài khoản DN
Lưu ý
API này chỉ áp dụng cho ngân hàng ACB.
API cho phép xóa cấu hình tài khoản Doanh nghiệp ACB cho Merchant. Sau khi đăng ký hủy cấu hình xong, hệ thống trả về confirmId để sử dụng ở bước xác nhận.
POST
URLhttps://uat-open-api.tingee.vn/v1/merchant/delete-config-account-business
Xóa cấu hình tài khoản Doanh nghiệp ACB cho Merchant.
Header Request
| Header | Bắt buộc | Mô tả |
|---|---|---|
Content-Type | ✓ | application/json |
x-client-id | ✓ | Mã định danh của đối tác do TINGEE cung cấp. |
x-signature | ✓ | Chữ ký xác thực HMAC SHA512. Xem thêm tại Cách sinh chữ ký. |
x-request-timestamp | ✓ | Thời gian gửi request (format: yyyyMMddHHmmssSSS, múi giờ UTC+7) |
Body Parameter
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
merchantId | number | ✕ | ID của Merchant (Bắt buộc nếu kết nối bằng tài khoản Master Merchant). |
bankBin | string | ✕ | Mã BIN ngân hàng cần xóa cấu hình tài khoản DN. |
bankName | string | ✕ | Tên ngân hàng (ví dụ: ACB, VCB). Bắt buộc nếu không cung cấp bankBin. |
Ví dụ mã nguồn
- cURL
- NestJS
- C#
- Java
- PHP
curl --location --request POST 'https://uat-open-api.tingee.vn/v1/merchant/delete-config-account-business' \
--header 'x-signature: YOUR_SIGNATURE' \
--header 'x-request-timestamp: 20251209103911111' \
--header 'x-client-id: YOUR_CLIENT_ID' \
--header 'Content-Type: application/json' \
--data '{
"bankBin": "970416"
}'
import axios from "axios";
import { createHmac } from "crypto";
import { format } from 'date-fns';
async function deleteConfigAccountBusiness() {
const body = { bankBin: "970416" };
const timestamp = format(new Date(), "yyyyMMddHHmmssSSS");
const secretKey = "YOUR_SECRET_KEY";
const message = `${timestamp}:${JSON.stringify(body)}`;
const signature = createHmac('sha512', secretKey).update(message).digest('hex');
const res = await axios.post(
'https://uat-open-api.tingee.vn/v1/merchant/delete-config-account-business',
body,
{
headers: {
'x-signature': signature,
'x-request-timestamp': timestamp,
'x-client-id': 'YOUR_CLIENT_ID',
'Content-Type': 'application/json',
},
}
);
console.log(res.data);
}
var body = new { bankBin = "970416" };
var timestamp = DateTime.Now.ToString("yyyyMMddHHmmssfff");
var bodyJson = JsonSerializer.Serialize(body);
var message = $"{timestamp}:{bodyJson}";
using var hmac = new HMACSHA512(Encoding.UTF8.GetBytes("YOUR_SECRET_KEY"));
var signature = BitConverter.ToString(hmac.ComputeHash(Encoding.UTF8.GetBytes(message))).Replace("-","").ToLower();
var request = new HttpRequestMessage(HttpMethod.Post, "https://uat-open-api.tingee.vn/v1/merchant/delete-config-account-business");
request.Headers.Add("x-signature", signature);
request.Headers.Add("x-request-timestamp", timestamp);
request.Headers.Add("x-client-id", "YOUR_CLIENT_ID");
request.Content = new StringContent(bodyJson, Encoding.UTF8, "application/json");
var response = await new HttpClient().SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
import java.net.http.*;
import java.net.URI;
import java.nio.charset.StandardCharsets;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class DeleteConfigAccountBusiness {
public static void main(String[] args) throws Exception {
String bodyJson = "{"bankBin":"970416"}";
String secretKey = "YOUR_SECRET_KEY";
String timestamp = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"));
Mac mac = Mac.getInstance("HmacSHA512");
mac.init(new SecretKeySpec(secretKey.getBytes(StandardCharsets.UTF_8), "HmacSHA512"));
byte[] hash = mac.doFinal((timestamp + ":" + bodyJson).getBytes(StandardCharsets.UTF_8));
StringBuilder signature = new StringBuilder();
for (byte b : hash) signature.append(String.format("%02x", b));
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://uat-open-api.tingee.vn/v1/merchant/delete-config-account-business"))
.header("x-signature", signature.toString())
.header("x-request-timestamp", timestamp)
.header("x-client-id", "YOUR_CLIENT_ID")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(bodyJson))
.build();
HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
$body = ["bankBin" => "970416"];
$jsonBody = json_encode($body);
$timestamp = date("YmdHis") . substr((string)microtime(true), -3);
$signature = hash_hmac("sha512", $timestamp . ":" . $jsonBody, "YOUR_SECRET_KEY");
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => "https://uat-open-api.tingee.vn/v1/merchant/delete-config-account-business",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $jsonBody,
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-client-id: YOUR_CLIENT_ID",
"x-request-timestamp: $timestamp",
"x-signature: $signature"
]
]);
echo curl_exec($ch);
curl_close($ch);
Response mẫu
{
"code": "00",
"message": "Success",
"data": null
}
| Trường | Kiểu | Mô tả |
|---|---|---|
code | string | Mã kết quả (00 = Thành công). |
message | string | Thông điệp phản hồi. |
data.confirmId | string | Mã xác nhận để hoàn tất quá trình cấu hình tài khoản. Đối tác vui lòng truyền confirmId vào API Xóa cấu hình tài khoản để hoàn tất xác nhận. |
Mã lỗi thường gặp
| Code | Mô tả | Hướng xử lý |
|---|---|---|
90 | Sai format timestamp | Kiểm tra format yyyyMMddHHmmssSSS. |
91 | Request quá hạn | Kiểm tra thời gian gửi request. |
97 | Sai chữ ký | Kiểm tra lại Secret Key và logic tạo Signature. |
Others | Lỗi khác | Xem Danh sách mã lỗi. |