curl --request POST \
--url https://api.fireant.vn/mxv/physical-delivery/register \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"contract": "<string>",
"quantity": 123,
"email": "<string>",
"phone": "<string>",
"authorization": {
"fullName": "<string>",
"dateOfBirth": "<string>",
"idNumber": "<string>",
"idIssueDate": "<string>",
"idIssuePlace": "<string>",
"address": "<string>",
"idImageFront": "<string>",
"idImageBack": "<string>",
"email": "<string>",
"phone": "<string>"
}
}
'import requests
url = "https://api.fireant.vn/mxv/physical-delivery/register"
payload = {
"contract": "<string>",
"quantity": 123,
"email": "<string>",
"phone": "<string>",
"authorization": {
"fullName": "<string>",
"dateOfBirth": "<string>",
"idNumber": "<string>",
"idIssueDate": "<string>",
"idIssuePlace": "<string>",
"address": "<string>",
"idImageFront": "<string>",
"idImageBack": "<string>",
"email": "<string>",
"phone": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
contract: '<string>',
quantity: 123,
email: '<string>',
phone: '<string>',
authorization: {
fullName: '<string>',
dateOfBirth: '<string>',
idNumber: '<string>',
idIssueDate: '<string>',
idIssuePlace: '<string>',
address: '<string>',
idImageFront: '<string>',
idImageBack: '<string>',
email: '<string>',
phone: '<string>'
}
})
};
fetch('https://api.fireant.vn/mxv/physical-delivery/register', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fireant.vn/mxv/physical-delivery/register",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'contract' => '<string>',
'quantity' => 123,
'email' => '<string>',
'phone' => '<string>',
'authorization' => [
'fullName' => '<string>',
'dateOfBirth' => '<string>',
'idNumber' => '<string>',
'idIssueDate' => '<string>',
'idIssuePlace' => '<string>',
'address' => '<string>',
'idImageFront' => '<string>',
'idImageBack' => '<string>',
'email' => '<string>',
'phone' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.fireant.vn/mxv/physical-delivery/register"
payload := strings.NewReader("{\n \"contract\": \"<string>\",\n \"quantity\": 123,\n \"email\": \"<string>\",\n \"phone\": \"<string>\",\n \"authorization\": {\n \"fullName\": \"<string>\",\n \"dateOfBirth\": \"<string>\",\n \"idNumber\": \"<string>\",\n \"idIssueDate\": \"<string>\",\n \"idIssuePlace\": \"<string>\",\n \"address\": \"<string>\",\n \"idImageFront\": \"<string>\",\n \"idImageBack\": \"<string>\",\n \"email\": \"<string>\",\n \"phone\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.fireant.vn/mxv/physical-delivery/register")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"contract\": \"<string>\",\n \"quantity\": 123,\n \"email\": \"<string>\",\n \"phone\": \"<string>\",\n \"authorization\": {\n \"fullName\": \"<string>\",\n \"dateOfBirth\": \"<string>\",\n \"idNumber\": \"<string>\",\n \"idIssueDate\": \"<string>\",\n \"idIssuePlace\": \"<string>\",\n \"address\": \"<string>\",\n \"idImageFront\": \"<string>\",\n \"idImageBack\": \"<string>\",\n \"email\": \"<string>\",\n \"phone\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fireant.vn/mxv/physical-delivery/register")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"contract\": \"<string>\",\n \"quantity\": 123,\n \"email\": \"<string>\",\n \"phone\": \"<string>\",\n \"authorization\": {\n \"fullName\": \"<string>\",\n \"dateOfBirth\": \"<string>\",\n \"idNumber\": \"<string>\",\n \"idIssueDate\": \"<string>\",\n \"idIssuePlace\": \"<string>\",\n \"address\": \"<string>\",\n \"idImageFront\": \"<string>\",\n \"idImageBack\": \"<string>\",\n \"email\": \"<string>\",\n \"phone\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"time": "<string>",
"success": true,
"code": "<string>",
"msg": "<string>",
"confirmationCode": "<string>",
"payload": [
{
"confirmationcode": "<string>"
}
]
}Đăng ký giao hàng vật chất (bên bán)
curl --request POST \
--url https://api.fireant.vn/mxv/physical-delivery/register \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"contract": "<string>",
"quantity": 123,
"email": "<string>",
"phone": "<string>",
"authorization": {
"fullName": "<string>",
"dateOfBirth": "<string>",
"idNumber": "<string>",
"idIssueDate": "<string>",
"idIssuePlace": "<string>",
"address": "<string>",
"idImageFront": "<string>",
"idImageBack": "<string>",
"email": "<string>",
"phone": "<string>"
}
}
'import requests
url = "https://api.fireant.vn/mxv/physical-delivery/register"
payload = {
"contract": "<string>",
"quantity": 123,
"email": "<string>",
"phone": "<string>",
"authorization": {
"fullName": "<string>",
"dateOfBirth": "<string>",
"idNumber": "<string>",
"idIssueDate": "<string>",
"idIssuePlace": "<string>",
"address": "<string>",
"idImageFront": "<string>",
"idImageBack": "<string>",
"email": "<string>",
"phone": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
contract: '<string>',
quantity: 123,
email: '<string>',
phone: '<string>',
authorization: {
fullName: '<string>',
dateOfBirth: '<string>',
idNumber: '<string>',
idIssueDate: '<string>',
idIssuePlace: '<string>',
address: '<string>',
idImageFront: '<string>',
idImageBack: '<string>',
email: '<string>',
phone: '<string>'
}
})
};
fetch('https://api.fireant.vn/mxv/physical-delivery/register', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fireant.vn/mxv/physical-delivery/register",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'contract' => '<string>',
'quantity' => 123,
'email' => '<string>',
'phone' => '<string>',
'authorization' => [
'fullName' => '<string>',
'dateOfBirth' => '<string>',
'idNumber' => '<string>',
'idIssueDate' => '<string>',
'idIssuePlace' => '<string>',
'address' => '<string>',
'idImageFront' => '<string>',
'idImageBack' => '<string>',
'email' => '<string>',
'phone' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.fireant.vn/mxv/physical-delivery/register"
payload := strings.NewReader("{\n \"contract\": \"<string>\",\n \"quantity\": 123,\n \"email\": \"<string>\",\n \"phone\": \"<string>\",\n \"authorization\": {\n \"fullName\": \"<string>\",\n \"dateOfBirth\": \"<string>\",\n \"idNumber\": \"<string>\",\n \"idIssueDate\": \"<string>\",\n \"idIssuePlace\": \"<string>\",\n \"address\": \"<string>\",\n \"idImageFront\": \"<string>\",\n \"idImageBack\": \"<string>\",\n \"email\": \"<string>\",\n \"phone\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.fireant.vn/mxv/physical-delivery/register")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"contract\": \"<string>\",\n \"quantity\": 123,\n \"email\": \"<string>\",\n \"phone\": \"<string>\",\n \"authorization\": {\n \"fullName\": \"<string>\",\n \"dateOfBirth\": \"<string>\",\n \"idNumber\": \"<string>\",\n \"idIssueDate\": \"<string>\",\n \"idIssuePlace\": \"<string>\",\n \"address\": \"<string>\",\n \"idImageFront\": \"<string>\",\n \"idImageBack\": \"<string>\",\n \"email\": \"<string>\",\n \"phone\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fireant.vn/mxv/physical-delivery/register")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"contract\": \"<string>\",\n \"quantity\": 123,\n \"email\": \"<string>\",\n \"phone\": \"<string>\",\n \"authorization\": {\n \"fullName\": \"<string>\",\n \"dateOfBirth\": \"<string>\",\n \"idNumber\": \"<string>\",\n \"idIssueDate\": \"<string>\",\n \"idIssuePlace\": \"<string>\",\n \"address\": \"<string>\",\n \"idImageFront\": \"<string>\",\n \"idImageBack\": \"<string>\",\n \"email\": \"<string>\",\n \"phone\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"time": "<string>",
"success": true,
"code": "<string>",
"msg": "<string>",
"confirmationCode": "<string>",
"payload": [
{
"confirmationcode": "<string>"
}
]
}Ủy quyền
OAuth2 Implicit Grant
Nội dung
Request đăng ký giao hàng vật chất (bên bán) - API 3.3.1 Giai đoạn FND -> LND
Mã hợp đồng kỳ hạn (VD: SIV0326)
Số lượng lot đăng ký giao (phải > 0)
Email liên hệ (chỉ điền nếu khác với thông tin trên tài khoản giao dịch)
Số điện thoại liên hệ (chỉ điền nếu khác với thông tin trên tài khoản giao dịch)
Thông tin người uỷ quyền nhận lại Bạc (trong trường hợp bên bán đến nhận lại Bạc). Chỉ cung cấp khi KH đã có mã CIF tại kho MSB chỉ định.
Show child attributes
Show child attributes
Phản hồi
OK
Wrapper response của MXV REST API cho các nghiệp vụ giao nhận hàng vật chất. Khác với MXVResponse<T> (dùng status/message/data), các API section 3.3/3.4 trả về success/code/msg/confirmationCode/payload.
Thời điểm server xử lý
true = thành công, false = lỗi
Mã kết quả: "0" = thành công
Thông báo kết quả (VD: "[0]: Thành công!")
Mã xác nhận đăng ký do MXV cấp (top-level field). End user cần lưu lại để dùng cho API huỷ và truy vấn.
Dữ liệu chi tiết (array, mỗi phần tử chứa confirmationcode)
Show child attributes
Show child attributes