Singapay Home Page
Logo Icon
  1. Payment Link
  2. Update

Information

MethodPathFormatAuthentication
PUT/api/v1.0/payment-link-manage/{account_id}/{payment_link_id}jsonOAuth 2.0 with Access Token

Request Details

Headers Structure

FieldValueTypeMandatoryLengthDescriptionExample
X-PARTNER-IDapi_keyAlphanumericMandatoryAPI key obtained from the merchant dashboard.b3ed7d4b-a96c-6c08-b3c7-12c3124242d9
Acceptapplication/jsonAlphabeticMandatorySpecifies JSON as the expected response format.application/json
AuthorizationBearer {bearerToken}AlphanumericMandatoryBearer token obtained from the get access token endpoint.Bearer eyJ0eXAiOiJKV1{…}

Body Structure

FieldTypeMandatoryLengthDescriptionExample
required_customer_detailBooleanMandatory1Determines if the customer must fill in contact details (name, email, phone) before payment.true
max_usageNumericMandatory-The maximum number of times this payment link can be successfully used. Must be >= current_usage. Max 1,000,000.20
expired_atNumeric/NullConditional-The expiration date/time of the link, typically in Epoch/Unix Millisecond Timestamp format. Set to null for no expiration.1740960000000
statusAlphabeticMandatory-The current status of the payment link. Values are open, closed, or expired.open
whitelisted_payment_methodArray String/NullConditional-A list of payment method codes that are allowed (whitelisted) for this link. null means all available methods are allowed.[ “VA_BRI”, “VA_DANAMON”, “QRIS”, “ALFAMART” ]
redirect_urlString/NullConditional2048URL to redirect the customer after payment success or expiry. Set to null or omit to disable.https://example.com/thank-you

Body Example

{
    "required_customer_detail": true,
    "max_usage": 20,
    "expired_at": 1740960000000,
    "status": "open",
    "whitelisted_payment_method": ["VA_BRI", "VA_DANAMON", "QRIS", "ALFAMART"],
    "redirect_url": "https://example.com/thank-you"
}

Response Details

Response Structure

FieldTypeMandatoryLengthDescriptionExample
statusNumericMandatory3HTTP Status Code.200
successBooleanMandatory1Indicates successful request.true
dataObjectMandatory-The main object containing the single payment link detail.-
> idNumericMandatory-Internal ID of the Payment Link.103
> reff_noAlphanumericMandatory-Payment Link unique reference number.PL2025102113590968f72f3df34e5
> titleAlphanumericMandatory-Title or name of the payment link.tes
> payment_urlStringMandatory-The URL to access the payment link page.http://localhost:3000/b2b/PL2025102113590968f72f3df34e5
> statusAlphabeticMandatory-The current status of the link. Values are open or closed.open
> status_computedAlphabeticMandatory-The computed status of the link. Values are open, closed, or expired.expired
> required_customer_detailBooleanMandatory1Indicates whether the customer must provide contact details.true
> max_usageNumericMandatory-The maximum usage count allowed for this link.20
> current_usageNumericMandatory-The current number of times the link has been used.2
> expired_atDatetime/NullConditional-The expiration date/time (ISO 8601 format). null if no expiry.2025-03-03T00:00:00+07:00
> is_expiredBooleanMandatory1Indicates whether the payment link has expired.true
> total_amountString/NumericMandatory-The total amount due for the link.20000.00
> itemsArray Object/NullConditional-List of items included in the payment.-
>> nameAlphabeticMandatory-Item name.tes
>> quantityString/NumericMandatory-Item quantity.1
>> unit_priceString/NumericMandatory-Item unit price.20000
>> subtotalNumericMandatory-Item subtotal (quantity * unit_price).20000
> whitelisted_payment_methodArray String/NullConditional-A list of allowed (whitelisted) payment method codes. null if all methods are allowed.[ “VA_BRI”, “VA_DANAMON”, “QRIS”, “ALFAMART” ]
> redirect_urlString/NullConditional-URL to redirect the customer after payment success or expiry. It is null if not set.https://example.com/thank-you
> payment_dateDatetime/NullConditional-Date/time of the last successful payment (ISO 8601 or null).2025-10-21T13:59:40+07:00
> created_atDatetimeMandatory-Date/time the payment link was created (ISO 8601).2025-10-21T13:59:40+07:00
> updated_atDatetimeMandatory-Date/time the payment link was last updated (ISO 8601).2025-10-21T18:32:01+07:00
> accountObjectMandatory-Information about the associated account.-
>> idAlphanumericMandatory-Account ID.01K7P073Q8RE2A9PQT8Q7MXPN4
>> nameAlphabeticMandatory-Account name.Moh. Zulkifli Katili
>> emailStringMandatory-Account email address.tes@gmail.com
>> phoneNumericMandatory-Account phone number.08123993201
>> statusAlphabeticMandatory-Account status.active

Response Example

Success: Here’s an example of a successful response.

{
    "status": 200,
    "success": true,
    "data": {
        "id": 103,
        "reff_no": "PL2025102113590968f72f3df34e5",
        "title": "tes",
        "payment_url": "http://localhost:3000/b2b/PL2025102113590968f72f3df34e5",
        "status": "open",
        "status_computed": "expired",
        "required_customer_detail": true,
        "max_usage": 20,
        "current_usage": 2,
        "expired_at": "2025-03-03T00:00:00+07:00",
        "is_expired": true,
        "total_amount": "20000.00",
        "items": [
            {
                "name": "tes",
                "quantity": "1",
                "unit_price": "20000",
                "subtotal": 20000
            }
        ],
        "whitelisted_payment_method": [
            "VA_BRI",
            "VA_DANAMON",
            "QRIS",
            "ALFAMART"
        ],
        "redirect_url": "https://example.com/thank-you",
        "payment_date": "2025-10-21T13:59:40+07:00",
        "created_at": "2025-10-21T13:59:40+07:00",
        "updated_at": "2025-10-21T18:32:01+07:00",
        "account": {
            "id": "01K7P073Q8RE2A9PQT8Q7MXPN4",
            "name": "Moh. Zulkifli Katili",
            "email": "tes@gmail.com",
            "phone": "08123993201",
            "status": "active"
        }
    }
}