> ## Documentation Index
> Fetch the complete documentation index at: https://docs.unibee.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Update External Gateway Payment Link

> Update external checkout link for a payment. Auth: OpenAPI + signature (HMAC-SHA256, hex).

## Endpoint Overview

**POST** `https://api.unibee.dev/merchant/payment/external_gateway_payment/update_link`

Update external checkout link for a payment. 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 |
| `paymentId` | string | Yes | The UniBee paymentId |
| `paymentLink` | string | Yes | External checkout URL for this payment |
| `sendInvoice` | boolean | No | Whether to send invoice email to customer after updating link |
| `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

```bash theme={null}
curl -X POST "https://api.unibee.dev/merchant/payment/external_gateway_payment/update_link" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "externalTransactionId": "id_example",
  "gatewayId": 0,
  "paymentId": "id_example",
  "paymentLink": "",
  "sendInvoice": false,
  "signature": "",
  "timestamp": 0
}'
```

### Sandbox

```bash theme={null}
curl -X POST "https://api-sandbox.unibee.top/merchant/payment/external_gateway_payment/update_link" \
  -H "Authorization: Bearer YOUR_SANDBOX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "externalTransactionId": "id_example",
  "gatewayId": 0,
  "paymentId": "id_example",
  "paymentLink": "",
  "sendInvoice": false,
  "signature": "",
  "timestamp": 0
}'
```

***

## Response

Success responses return a JSON envelope with `code`, `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 |
| `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. |

When `code` in the response body is non-zero, check `message` for details. Use `requestId` when contacting support.


## OpenAPI

````yaml post /merchant/payment/external_gateway_payment/update_link
openapi: 3.0.0
info:
  description: UniBee Api Server
  license:
    name: Apache-2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  title: OpenAPI UniBee
  version: daily,buildtime:202607240926
servers:
  - url: https://api.unibee.dev
  - url: https://api-sandbox.unibee.top
security:
  - Authorization: []
paths:
  /merchant/payment/external_gateway_payment/update_link:
    post:
      tags:
        - Payment
      summary: Update External Gateway Payment Link
      description: >-
        Update external checkout link for a payment. Auth: OpenAPI + signature
        (HMAC-SHA256, hex).
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/unibee.api.merchant.payment.ExternalGatewayPaymentUpdateLinkReq
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  code:
                    format: int
                    properties: {}
                    type: integer
                  data:
                    properties:
                      invoiceId:
                        description: The related UniBee invoiceId
                        format: string
                        properties: {}
                        type: string
                      paymentId:
                        description: The UniBee paymentId
                        format: string
                        properties: {}
                        type: string
                      status:
                        description: Result status, e.g. success
                        format: string
                        properties: {}
                        type: string
                    type: object
                  merchantId:
                    format: int64
                    properties: {}
                    type: integer
                  message:
                    format: string
                    properties: {}
                    type: string
                  redirect:
                    format: string
                    properties: {}
                    type: string
                  requestId:
                    format: string
                    properties: {}
                    type: string
                type: object
          description: ''
components:
  schemas:
    unibee.api.merchant.payment.ExternalGatewayPaymentUpdateLinkReq:
      description: >-
        Update external checkout link for a payment. Auth: OpenAPI + signature
        (HMAC-SHA256, hex).
      properties:
        externalTransactionId:
          description: External payment transaction id from gateway, used as idempotent key
          format: string
          properties: {}
          type: string
        gatewayId:
          description: >-
            External gateway id (optional), if omitted will be resolved from
            paymentId
          format: int64
          properties: {}
          type: integer
        paymentId:
          description: The UniBee paymentId
          format: string
          properties: {}
          type: string
        paymentLink:
          description: External checkout URL for this payment
          format: string
          properties: {}
          type: string
        sendInvoice:
          description: Whether to send invoice email to customer after updating link
          format: bool
          properties: {}
          type: boolean
        signature:
          description: >-
            HMAC-SHA256 hex signature using External Gateway API Key over
            'paymentId|externalTransactionId|timestamp'
          format: string
          properties: {}
          type: string
        timestamp:
          description: Unix timestamp in seconds, used for signature and anti-replay
          format: int64
          properties: {}
          type: integer
      required:
        - paymentId
        - externalTransactionId
        - paymentLink
        - timestamp
        - signature
      type: object
  securitySchemes:
    Authorization:
      bearerFormat: JWT
      scheme: bearer
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.