Mark External Gateway Payment As Paid
curl --request POST \
--url https://api.unibee.dev/merchant/payment/external_gateway_payment/mark_paid \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"externalTransactionId": "<string>",
"paymentId": "<string>",
"signature": "<string>",
"timestamp": 123,
"gatewayId": 123,
"metadata": {},
"paidTime": 123
}
'import requests
url = "https://api.unibee.dev/merchant/payment/external_gateway_payment/mark_paid"
payload = {
"externalTransactionId": "<string>",
"paymentId": "<string>",
"signature": "<string>",
"timestamp": 123,
"gatewayId": 123,
"metadata": {},
"paidTime": 123
}
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({
externalTransactionId: '<string>',
paymentId: '<string>',
signature: '<string>',
timestamp: 123,
gatewayId: 123,
metadata: {},
paidTime: 123
})
};
fetch('https://api.unibee.dev/merchant/payment/external_gateway_payment/mark_paid', 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.unibee.dev/merchant/payment/external_gateway_payment/mark_paid",
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([
'externalTransactionId' => '<string>',
'paymentId' => '<string>',
'signature' => '<string>',
'timestamp' => 123,
'gatewayId' => 123,
'metadata' => [
],
'paidTime' => 123
]),
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.unibee.dev/merchant/payment/external_gateway_payment/mark_paid"
payload := strings.NewReader("{\n \"externalTransactionId\": \"<string>\",\n \"paymentId\": \"<string>\",\n \"signature\": \"<string>\",\n \"timestamp\": 123,\n \"gatewayId\": 123,\n \"metadata\": {},\n \"paidTime\": 123\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.unibee.dev/merchant/payment/external_gateway_payment/mark_paid")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"externalTransactionId\": \"<string>\",\n \"paymentId\": \"<string>\",\n \"signature\": \"<string>\",\n \"timestamp\": 123,\n \"gatewayId\": 123,\n \"metadata\": {},\n \"paidTime\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.unibee.dev/merchant/payment/external_gateway_payment/mark_paid")
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 \"externalTransactionId\": \"<string>\",\n \"paymentId\": \"<string>\",\n \"signature\": \"<string>\",\n \"timestamp\": 123,\n \"gatewayId\": 123,\n \"metadata\": {},\n \"paidTime\": 123\n}"
response = http.request(request)
puts response.read_body{
"code": 123,
"data": {
"invoiceId": "<string>",
"paymentId": "<string>",
"status": "<string>",
"subscriptionId": "<string>"
},
"merchantId": 123,
"message": "<string>",
"redirect": "<string>",
"requestId": "<string>"
}Payment
Mark External Gateway Payment As Paid
Mark payment as paid using external gateway result. Auth: OpenAPI + signature (HMAC-SHA256, hex).
POST
/
merchant
/
payment
/
external_gateway_payment
/
mark_paid
Mark External Gateway Payment As Paid
curl --request POST \
--url https://api.unibee.dev/merchant/payment/external_gateway_payment/mark_paid \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"externalTransactionId": "<string>",
"paymentId": "<string>",
"signature": "<string>",
"timestamp": 123,
"gatewayId": 123,
"metadata": {},
"paidTime": 123
}
'import requests
url = "https://api.unibee.dev/merchant/payment/external_gateway_payment/mark_paid"
payload = {
"externalTransactionId": "<string>",
"paymentId": "<string>",
"signature": "<string>",
"timestamp": 123,
"gatewayId": 123,
"metadata": {},
"paidTime": 123
}
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({
externalTransactionId: '<string>',
paymentId: '<string>',
signature: '<string>',
timestamp: 123,
gatewayId: 123,
metadata: {},
paidTime: 123
})
};
fetch('https://api.unibee.dev/merchant/payment/external_gateway_payment/mark_paid', 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.unibee.dev/merchant/payment/external_gateway_payment/mark_paid",
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([
'externalTransactionId' => '<string>',
'paymentId' => '<string>',
'signature' => '<string>',
'timestamp' => 123,
'gatewayId' => 123,
'metadata' => [
],
'paidTime' => 123
]),
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.unibee.dev/merchant/payment/external_gateway_payment/mark_paid"
payload := strings.NewReader("{\n \"externalTransactionId\": \"<string>\",\n \"paymentId\": \"<string>\",\n \"signature\": \"<string>\",\n \"timestamp\": 123,\n \"gatewayId\": 123,\n \"metadata\": {},\n \"paidTime\": 123\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.unibee.dev/merchant/payment/external_gateway_payment/mark_paid")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"externalTransactionId\": \"<string>\",\n \"paymentId\": \"<string>\",\n \"signature\": \"<string>\",\n \"timestamp\": 123,\n \"gatewayId\": 123,\n \"metadata\": {},\n \"paidTime\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.unibee.dev/merchant/payment/external_gateway_payment/mark_paid")
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 \"externalTransactionId\": \"<string>\",\n \"paymentId\": \"<string>\",\n \"signature\": \"<string>\",\n \"timestamp\": 123,\n \"gatewayId\": 123,\n \"metadata\": {},\n \"paidTime\": 123\n}"
response = http.request(request)
puts response.read_body{
"code": 123,
"data": {
"invoiceId": "<string>",
"paymentId": "<string>",
"status": "<string>",
"subscriptionId": "<string>"
},
"merchantId": 123,
"message": "<string>",
"redirect": "<string>",
"requestId": "<string>"
}Endpoint Overview
POSThttps://api.unibee.dev/merchant/payment/external_gateway_payment/mark_paid
Mark payment as paid using external gateway result. Auth: OpenAPI + signature (HMAC-SHA256, hex).
Authorization
All UniBee Merchant API requests require authentication via API key.| Header | Required | Description |
|---|---|---|
Authorization | Yes | Bearer <your_api_key> |
Content-Type | Yes | application/json (for request body) |
Parameters
Parameters for this endpoint are listed below. The schema is also shown in the Try it panel.Request body
| Name | Type | Required | Description |
|---|---|---|---|
externalTransactionId | string | Yes | External payment transaction id from gateway, used as idempotent key |
gatewayId | integer | No | External gateway id (optional), if omitted will be resolved from paymentId |
metadata | object | No | Additional metadata from external gateway |
paidTime | integer | No | Payment success time (unix timestamp in seconds, optional) |
paymentId | string | Yes | The UniBee paymentId |
signature | string | Yes | HMAC-SHA256 hex signature using External Gateway API Key over ‘paymentId|externalTransactionId|timestamp’ |
timestamp | integer | Yes | Unix timestamp in seconds, used for signature and anti-replay |
Request examples
cURL
curl -X POST "https://api.unibee.dev/merchant/payment/external_gateway_payment/mark_paid" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"externalTransactionId": "id_example",
"gatewayId": 0,
"metadata": {},
"paidTime": 0,
"paymentId": "id_example",
"signature": "",
"timestamp": 0
}'
Sandbox
curl -X POST "https://api-sandbox.unibee.top/merchant/payment/external_gateway_payment/mark_paid" \
-H "Authorization: Bearer YOUR_SANDBOX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"externalTransactionId": "id_example",
"gatewayId": 0,
"metadata": {},
"paidTime": 0,
"paymentId": "id_example",
"signature": "",
"timestamp": 0
}'
Response
Success responses return a JSON envelope withcode, data, message, redirect, and requestId. code 0 indicates success.
| Field | Type | Description |
|---|---|---|
code | integer | Response code. 0 = success |
data | object | Response payload |
data.invoiceId | string | The related UniBee invoiceId |
data.paymentId | string | The UniBee paymentId |
data.status | string | Result status, e.g. success |
data.subscriptionId | string | The related UniBee subscriptionId (if any) |
message | string | Human-readable message |
requestId | string | Request ID for support |
Error handling
| HTTP status | Meaning |
|---|---|
| 400 | Bad request — invalid or missing parameters. Check message in the body. |
| 401 | Unauthorized — missing or invalid API key. |
| 404 | Not found — invalid path or resource. |
| 500 | Server error — retry with backoff. |
code in the response body is non-zero, check message for details. Use requestId when contacting support.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
Mark payment as paid using external gateway result. Auth: OpenAPI + signature (HMAC-SHA256, hex).
External payment transaction id from gateway, used as idempotent key
The UniBee paymentId
HMAC-SHA256 hex signature using External Gateway API Key over 'paymentId|externalTransactionId|timestamp'
Unix timestamp in seconds, used for signature and anti-replay
External gateway id (optional), if omitted will be resolved from paymentId
Additional metadata from external gateway
Show child attributes
Show child attributes
Payment success time (unix timestamp in seconds, optional)

