Create payment link
Creates a new payment link for an existing transaction. The new link is associated with the transaction and triggers all active merchant webhooks subscribing to the `payment_link.created` event. The webhook POSTs a JSON payload with the payment link data, the associated transactionId, and an HMAC SHA256 signature in the `X-Katu9-Signature` header.
Authorization
Authorization
RequiredBearer <token>In: header
Request Body
application/json
RequiredtransactionId
Requiredstring"uuid"
amount
numberAmount for the payment link (optional, defaults to transaction amount)
currency
stringCurrency (optional, defaults to transaction currency)
expiryMinutes
integerLink expiry in minutes (optional, defaults to 60)
redirectUrl
stringRedirect URL after payment (optional)
description
stringDescription for the payment link (optional)
Response Body
Payment link created successfully
TypeScript Definitions
Use the response body type in TypeScript.
data
RequiredobjectInvalid request parameters
TypeScript Definitions
Use the response body type in TypeScript.
error
RequiredobjectUnauthorized
TypeScript Definitions
Use the response body type in TypeScript.
error
RequiredobjectTransaction not found or unauthorized
TypeScript Definitions
Use the response body type in TypeScript.
error
RequiredobjectA non-expired payment link already exists for this transaction in this environment.
TypeScript Definitions
Use the response body type in TypeScript.
error
Requiredobjectcurl -X POST "https://api.katu9.com/payment-link/generate" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"transactionId": "75906707-8c31-479c-b354-aa805c4cefbc",
"amount": 0,
"currency": "string",
"expiryMinutes": 0,
"redirectUrl": "string",
"description": "string"
}'
const body = JSON.stringify({
"transactionId": "75906707-8c31-479c-b354-aa805c4cefbc",
"amount": 0,
"currency": "string",
"expiryMinutes": 0,
"redirectUrl": "string",
"description": "string"
})
fetch("https://api.katu9.com/payment-link/generate", {
headers: {
"Authorization": "Bearer <token>"
},
body
})
package main
import (
"fmt"
"net/http"
"io/ioutil"
"strings"
)
func main() {
url := "https://api.katu9.com/payment-link/generate"
body := strings.NewReader(`{
"transactionId": "75906707-8c31-479c-b354-aa805c4cefbc",
"amount": 0,
"currency": "string",
"expiryMinutes": 0,
"redirectUrl": "string",
"description": "string"
}`)
req, _ := http.NewRequest("POST", url, body)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
import requests
url = "https://api.katu9.com/payment-link/generate"
body = {
"transactionId": "75906707-8c31-479c-b354-aa805c4cefbc",
"amount": 0,
"currency": "string",
"expiryMinutes": 0,
"redirectUrl": "string",
"description": "string"
}
response = requests.request("POST", url, json = body, headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
})
print(response.text)
{
"data": {
"paymentLink": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"expiresAt": "2019-08-24T14:15:22Z",
"amount": 0,
"currency": "string",
"status": "string",
"redirectUrl": "http://example.com"
}
}
}
{
"error": {
"message": "string",
"details": {}
}
}
{
"error": {
"message": "string",
"details": {}
}
}
{
"error": {
"message": "string",
"details": {}
}
}
{
"error": {
"message": "A non-expired payment link already exists for this transaction in this environment."
}
}