Skip to main content
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
}
'
{
  "code": 123,
  "data": {
    "invoiceId": "<string>",
    "paymentId": "<string>",
    "status": "<string>",
    "subscriptionId": "<string>"
  },
  "merchantId": 123,
  "message": "<string>",
  "redirect": "<string>",
  "requestId": "<string>"
}

Endpoint Overview

POST https://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.
HeaderRequiredDescription
AuthorizationYesBearer <your_api_key>
Content-TypeYesapplication/json (for request body)

Parameters

Parameters for this endpoint are listed below. The schema is also shown in the Try it panel.

Request body

NameTypeRequiredDescription
externalTransactionIdstringYesExternal payment transaction id from gateway, used as idempotent key
gatewayIdintegerNoExternal gateway id (optional), if omitted will be resolved from paymentId
metadataobjectNoAdditional metadata from external gateway
paidTimeintegerNoPayment success time (unix timestamp in seconds, optional)
paymentIdstringYesThe UniBee paymentId
signaturestringYesHMAC-SHA256 hex signature using External Gateway API Key over ‘paymentId|externalTransactionId|timestamp’
timestampintegerYesUnix 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 with code, data, message, redirect, and requestId. code 0 indicates success.
FieldTypeDescription
codeintegerResponse code. 0 = success
dataobjectResponse payload
data.invoiceIdstringThe related UniBee invoiceId
data.paymentIdstringThe UniBee paymentId
data.statusstringResult status, e.g. success
data.subscriptionIdstringThe related UniBee subscriptionId (if any)
messagestringHuman-readable message
requestIdstringRequest ID for support

Error handling

HTTP statusMeaning
400Bad request — invalid or missing parameters. Check message in the body.
401Unauthorized — missing or invalid API key.
404Not found — invalid path or resource.
500Server error — retry with backoff.
When code in the response body is non-zero, check message for details. Use requestId when contacting support.

Authorizations

Authorization
string
header
required

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).

externalTransactionId
string<string>
required

External payment transaction id from gateway, used as idempotent key

paymentId
string<string>
required

The UniBee paymentId

signature
string<string>
required

HMAC-SHA256 hex signature using External Gateway API Key over 'paymentId|externalTransactionId|timestamp'

timestamp
integer<int64>
required

Unix timestamp in seconds, used for signature and anti-replay

gatewayId
integer<int64>

External gateway id (optional), if omitted will be resolved from paymentId

metadata
object

Additional metadata from external gateway

paidTime
integer<int64>

Payment success time (unix timestamp in seconds, optional)

Response

200 - application/json
code
integer<int>
data
object
merchantId
integer<int64>
message
string<string>
redirect
string<string>
requestId
string<string>