curl --request PATCH \
--url https://api.example.com/payment-links/{id}/closeimport requests
url = "https://api.example.com/payment-links/{id}/close"
response = requests.patch(url)
print(response.text)const options = {method: 'PATCH'};
fetch('https://api.example.com/payment-links/{id}/close', 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.example.com/payment-links/{id}/close",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/payment-links/{id}/close"
req, _ := http.NewRequest("PATCH", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.example.com/payment-links/{id}/close")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/payment-links/{id}/close")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
response = http.request(request)
puts response.read_body{
"id": "pl_z1urYtVFgEebtcj8fxp4v",
"url": "https://pay.hub2.com/pl_z1urYtVFgEebtcj8fxp4v",
"status": "active",
"purchaseReference": "ORDER-12345",
"amount": 1000,
"currency": "XOF",
"currentSuccessCount": 0,
"maximumAttempts": 3,
"createdAt": "2024-01-15T12:00:00.000Z",
"updatedAt": "2024-01-15T12:30:00.000Z",
"expirationDate": "2024-01-15T14:30:00.000Z",
"customerPhoneNumber": "123456789",
"type": "single_use",
"openAmount": false,
"minAmount": 500,
"maxAmount": 100000,
"maximumPayments": 50,
"customerFields": [
{
"fieldName": "national_id",
"fieldLabel": "National ID",
"fieldType": "text",
"isRequired": true,
"fieldPlaceholder": "<string>"
}
]
}{
"status": 400,
"error": {
"statusCode": 400,
"message": [
"destination.provider must be a string"
],
"error": "Bad Request"
}
}{
"status": 403,
"error": {
"statusCode": 403,
"message": "Forbidden",
"error": "<string>"
}
}{
"httpStatus": 404,
"message": "X not found",
"error": "Not found"
}{
"status": 429,
"error": "ThrottlerException: Too Many Requests"
}Close payment links
curl --request PATCH \
--url https://api.example.com/payment-links/{id}/closeimport requests
url = "https://api.example.com/payment-links/{id}/close"
response = requests.patch(url)
print(response.text)const options = {method: 'PATCH'};
fetch('https://api.example.com/payment-links/{id}/close', 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.example.com/payment-links/{id}/close",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/payment-links/{id}/close"
req, _ := http.NewRequest("PATCH", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.example.com/payment-links/{id}/close")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/payment-links/{id}/close")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
response = http.request(request)
puts response.read_body{
"id": "pl_z1urYtVFgEebtcj8fxp4v",
"url": "https://pay.hub2.com/pl_z1urYtVFgEebtcj8fxp4v",
"status": "active",
"purchaseReference": "ORDER-12345",
"amount": 1000,
"currency": "XOF",
"currentSuccessCount": 0,
"maximumAttempts": 3,
"createdAt": "2024-01-15T12:00:00.000Z",
"updatedAt": "2024-01-15T12:30:00.000Z",
"expirationDate": "2024-01-15T14:30:00.000Z",
"customerPhoneNumber": "123456789",
"type": "single_use",
"openAmount": false,
"minAmount": 500,
"maxAmount": 100000,
"maximumPayments": 50,
"customerFields": [
{
"fieldName": "national_id",
"fieldLabel": "National ID",
"fieldType": "text",
"isRequired": true,
"fieldPlaceholder": "<string>"
}
]
}{
"status": 400,
"error": {
"statusCode": 400,
"message": [
"destination.provider must be a string"
],
"error": "Bad Request"
}
}{
"status": 403,
"error": {
"statusCode": 403,
"message": "Forbidden",
"error": "<string>"
}
}{
"httpStatus": 404,
"message": "X not found",
"error": "Not found"
}{
"status": 429,
"error": "ThrottlerException: Too Many Requests"
}Path Parameters
Payment link ID
"pl_z1urYtVFgEebtcj8fxp4v"
Response
Payment link closed successfully
Unique identifier for the payment link
"pl_z1urYtVFgEebtcj8fxp4v"
URL for the payment link
"https://pay.hub2.com/pl_z1urYtVFgEebtcj8fxp4v"
Current status of the payment link
active, expired, closed, completed "active"
Merchant reference for the payment
"ORDER-12345"
Amount intended to be charged in the smallest currency unit. Null when openAmount is true.
1000
Three-letter ISO 4217 currency code
"XOF"
Number of successful payments recorded for this link
0
Maximum number of failed payments allowed per user
3
Creation date in ISO 8601 format
"2024-01-15T12:00:00.000Z"
Last update date in ISO 8601 format
"2024-01-15T12:30:00.000Z"
Expiration date in ISO 8601 format
"2024-01-15T14:30:00.000Z"
Restricted MSISDN
"123456789"
Type of the payment link
single_use, multi_use "single_use"
When true, the payer decides the amount at payment time.
false
Minimum amount the payer can enter (only when openAmount is true).
500
Maximum amount the payer can enter (only when openAmount is true).
100000
Maximum successful payments allowed (omitted when unlimited multi_use)
50
Custom form fields defined on this payment link. Absent when the link has no customer fields.
Show child attributes
Show child attributes
