curl --request POST \
--url https://mapi.zbx.boomfi.xyz/v1/paylinks \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"amount": "<string>",
"currency": "<string>",
"name": "<string>",
"account_ids": [
123
],
"account_ref": "<string>",
"after_completion": {
"custom_message": "<string>",
"failure_redirect_url": "https://merchant.example/checkout/failed",
"redirect_url": "https://merchant.example/checkout/success",
"type": "redirect"
},
"available_quantity": 2,
"description": "<string>",
"expires_at": "<string>",
"image_url": "<string>",
"intervalCount": 2,
"metadata": {},
"reference": "<string>",
"trial_period": "<string>",
"type": "<string>"
}
'import requests
url = "https://mapi.zbx.boomfi.xyz/v1/paylinks"
payload = {
"amount": "<string>",
"currency": "<string>",
"name": "<string>",
"account_ids": [123],
"account_ref": "<string>",
"after_completion": {
"custom_message": "<string>",
"failure_redirect_url": "https://merchant.example/checkout/failed",
"redirect_url": "https://merchant.example/checkout/success",
"type": "redirect"
},
"available_quantity": 2,
"description": "<string>",
"expires_at": "<string>",
"image_url": "<string>",
"intervalCount": 2,
"metadata": {},
"reference": "<string>",
"trial_period": "<string>",
"type": "<string>"
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
amount: '<string>',
currency: '<string>',
name: '<string>',
account_ids: [123],
account_ref: '<string>',
after_completion: {
custom_message: '<string>',
failure_redirect_url: 'https://merchant.example/checkout/failed',
redirect_url: 'https://merchant.example/checkout/success',
type: 'redirect'
},
available_quantity: 2,
description: '<string>',
expires_at: '<string>',
image_url: '<string>',
intervalCount: 2,
metadata: {},
reference: '<string>',
trial_period: '<string>',
type: '<string>'
})
};
fetch('https://mapi.zbx.boomfi.xyz/v1/paylinks', 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://mapi.zbx.boomfi.xyz/v1/paylinks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'amount' => '<string>',
'currency' => '<string>',
'name' => '<string>',
'account_ids' => [
123
],
'account_ref' => '<string>',
'after_completion' => [
'custom_message' => '<string>',
'failure_redirect_url' => 'https://merchant.example/checkout/failed',
'redirect_url' => 'https://merchant.example/checkout/success',
'type' => 'redirect'
],
'available_quantity' => 2,
'description' => '<string>',
'expires_at' => '<string>',
'image_url' => '<string>',
'intervalCount' => 2,
'metadata' => [
],
'reference' => '<string>',
'trial_period' => '<string>',
'type' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://mapi.zbx.boomfi.xyz/v1/paylinks"
payload := strings.NewReader("{\n \"amount\": \"<string>\",\n \"currency\": \"<string>\",\n \"name\": \"<string>\",\n \"account_ids\": [\n 123\n ],\n \"account_ref\": \"<string>\",\n \"after_completion\": {\n \"custom_message\": \"<string>\",\n \"failure_redirect_url\": \"https://merchant.example/checkout/failed\",\n \"redirect_url\": \"https://merchant.example/checkout/success\",\n \"type\": \"redirect\"\n },\n \"available_quantity\": 2,\n \"description\": \"<string>\",\n \"expires_at\": \"<string>\",\n \"image_url\": \"<string>\",\n \"intervalCount\": 2,\n \"metadata\": {},\n \"reference\": \"<string>\",\n \"trial_period\": \"<string>\",\n \"type\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://mapi.zbx.boomfi.xyz/v1/paylinks")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": \"<string>\",\n \"currency\": \"<string>\",\n \"name\": \"<string>\",\n \"account_ids\": [\n 123\n ],\n \"account_ref\": \"<string>\",\n \"after_completion\": {\n \"custom_message\": \"<string>\",\n \"failure_redirect_url\": \"https://merchant.example/checkout/failed\",\n \"redirect_url\": \"https://merchant.example/checkout/success\",\n \"type\": \"redirect\"\n },\n \"available_quantity\": 2,\n \"description\": \"<string>\",\n \"expires_at\": \"<string>\",\n \"image_url\": \"<string>\",\n \"intervalCount\": 2,\n \"metadata\": {},\n \"reference\": \"<string>\",\n \"trial_period\": \"<string>\",\n \"type\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://mapi.zbx.boomfi.xyz/v1/paylinks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"amount\": \"<string>\",\n \"currency\": \"<string>\",\n \"name\": \"<string>\",\n \"account_ids\": [\n 123\n ],\n \"account_ref\": \"<string>\",\n \"after_completion\": {\n \"custom_message\": \"<string>\",\n \"failure_redirect_url\": \"https://merchant.example/checkout/failed\",\n \"redirect_url\": \"https://merchant.example/checkout/success\",\n \"type\": \"redirect\"\n },\n \"available_quantity\": 2,\n \"description\": \"<string>\",\n \"expires_at\": \"<string>\",\n \"image_url\": \"<string>\",\n \"intervalCount\": 2,\n \"metadata\": {},\n \"reference\": \"<string>\",\n \"trial_period\": \"<string>\",\n \"type\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"after_completion": {
"custom_message": "<string>",
"failure_redirect_url": "https://merchant.example/checkout/failed",
"redirect_url": "https://merchant.example/checkout/success",
"type": "redirect"
},
"created_at": "<string>",
"created_by": "<string>",
"customer_ident_collection": true,
"deleted_at": "<string>",
"enabled": true,
"id": "<string>",
"invoice_id": "<string>",
"metadata": {},
"plan": {
"available_quantity": 123,
"billing_scheme": "FlatFee",
"created_at": "<string>",
"created_by": "<string>",
"currency": "<string>",
"deleted_at": "<string>",
"enabled": true,
"expires_at": "<string>",
"id": "<string>",
"metadata": {},
"name": "<string>",
"org_id": "<string>",
"payment_link": {
"after_completion": {},
"created_at": "<string>",
"created_by": "<string>",
"customer_ident_collection": true,
"deleted_at": "<string>",
"enabled": true,
"id": "<string>",
"invoice_id": "<string>",
"metadata": {},
"plan_id": "<string>",
"properties": {},
"shipping_address_collection": true,
"source": "Lago",
"tax_ident_collection": true,
"updated_at": "<string>",
"updated_by": "<string>"
},
"price": "<string>",
"properties": {},
"recurring_interval": "Unknown",
"recurring_interval_count": 123,
"recurring_usage_type": "Unknown",
"reference": "<string>",
"source": "Lago",
"trial_period": "<string>",
"type": "Unknown",
"updated_at": "<string>"
},
"plan_id": "<string>",
"properties": {},
"shipping_address_collection": true,
"source": "Lago",
"tax_ident_collection": true,
"updated_at": "<string>",
"updated_by": "<string>",
"url": "<string>"
},
"error": true,
"message": "<string>"
}{
"error": {
"code": 400,
"errors": [
{
"domain": "orders",
"reason": "InsufficientQuantity"
}
],
"message": "Insufficient quantity"
}
}{
"error": {
"code": 400,
"errors": [
{
"domain": "orders",
"reason": "InsufficientQuantity"
}
],
"message": "Insufficient quantity"
}
}Create Paylink
Create payment link.
curl --request POST \
--url https://mapi.zbx.boomfi.xyz/v1/paylinks \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"amount": "<string>",
"currency": "<string>",
"name": "<string>",
"account_ids": [
123
],
"account_ref": "<string>",
"after_completion": {
"custom_message": "<string>",
"failure_redirect_url": "https://merchant.example/checkout/failed",
"redirect_url": "https://merchant.example/checkout/success",
"type": "redirect"
},
"available_quantity": 2,
"description": "<string>",
"expires_at": "<string>",
"image_url": "<string>",
"intervalCount": 2,
"metadata": {},
"reference": "<string>",
"trial_period": "<string>",
"type": "<string>"
}
'import requests
url = "https://mapi.zbx.boomfi.xyz/v1/paylinks"
payload = {
"amount": "<string>",
"currency": "<string>",
"name": "<string>",
"account_ids": [123],
"account_ref": "<string>",
"after_completion": {
"custom_message": "<string>",
"failure_redirect_url": "https://merchant.example/checkout/failed",
"redirect_url": "https://merchant.example/checkout/success",
"type": "redirect"
},
"available_quantity": 2,
"description": "<string>",
"expires_at": "<string>",
"image_url": "<string>",
"intervalCount": 2,
"metadata": {},
"reference": "<string>",
"trial_period": "<string>",
"type": "<string>"
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
amount: '<string>',
currency: '<string>',
name: '<string>',
account_ids: [123],
account_ref: '<string>',
after_completion: {
custom_message: '<string>',
failure_redirect_url: 'https://merchant.example/checkout/failed',
redirect_url: 'https://merchant.example/checkout/success',
type: 'redirect'
},
available_quantity: 2,
description: '<string>',
expires_at: '<string>',
image_url: '<string>',
intervalCount: 2,
metadata: {},
reference: '<string>',
trial_period: '<string>',
type: '<string>'
})
};
fetch('https://mapi.zbx.boomfi.xyz/v1/paylinks', 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://mapi.zbx.boomfi.xyz/v1/paylinks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'amount' => '<string>',
'currency' => '<string>',
'name' => '<string>',
'account_ids' => [
123
],
'account_ref' => '<string>',
'after_completion' => [
'custom_message' => '<string>',
'failure_redirect_url' => 'https://merchant.example/checkout/failed',
'redirect_url' => 'https://merchant.example/checkout/success',
'type' => 'redirect'
],
'available_quantity' => 2,
'description' => '<string>',
'expires_at' => '<string>',
'image_url' => '<string>',
'intervalCount' => 2,
'metadata' => [
],
'reference' => '<string>',
'trial_period' => '<string>',
'type' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://mapi.zbx.boomfi.xyz/v1/paylinks"
payload := strings.NewReader("{\n \"amount\": \"<string>\",\n \"currency\": \"<string>\",\n \"name\": \"<string>\",\n \"account_ids\": [\n 123\n ],\n \"account_ref\": \"<string>\",\n \"after_completion\": {\n \"custom_message\": \"<string>\",\n \"failure_redirect_url\": \"https://merchant.example/checkout/failed\",\n \"redirect_url\": \"https://merchant.example/checkout/success\",\n \"type\": \"redirect\"\n },\n \"available_quantity\": 2,\n \"description\": \"<string>\",\n \"expires_at\": \"<string>\",\n \"image_url\": \"<string>\",\n \"intervalCount\": 2,\n \"metadata\": {},\n \"reference\": \"<string>\",\n \"trial_period\": \"<string>\",\n \"type\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://mapi.zbx.boomfi.xyz/v1/paylinks")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": \"<string>\",\n \"currency\": \"<string>\",\n \"name\": \"<string>\",\n \"account_ids\": [\n 123\n ],\n \"account_ref\": \"<string>\",\n \"after_completion\": {\n \"custom_message\": \"<string>\",\n \"failure_redirect_url\": \"https://merchant.example/checkout/failed\",\n \"redirect_url\": \"https://merchant.example/checkout/success\",\n \"type\": \"redirect\"\n },\n \"available_quantity\": 2,\n \"description\": \"<string>\",\n \"expires_at\": \"<string>\",\n \"image_url\": \"<string>\",\n \"intervalCount\": 2,\n \"metadata\": {},\n \"reference\": \"<string>\",\n \"trial_period\": \"<string>\",\n \"type\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://mapi.zbx.boomfi.xyz/v1/paylinks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"amount\": \"<string>\",\n \"currency\": \"<string>\",\n \"name\": \"<string>\",\n \"account_ids\": [\n 123\n ],\n \"account_ref\": \"<string>\",\n \"after_completion\": {\n \"custom_message\": \"<string>\",\n \"failure_redirect_url\": \"https://merchant.example/checkout/failed\",\n \"redirect_url\": \"https://merchant.example/checkout/success\",\n \"type\": \"redirect\"\n },\n \"available_quantity\": 2,\n \"description\": \"<string>\",\n \"expires_at\": \"<string>\",\n \"image_url\": \"<string>\",\n \"intervalCount\": 2,\n \"metadata\": {},\n \"reference\": \"<string>\",\n \"trial_period\": \"<string>\",\n \"type\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"after_completion": {
"custom_message": "<string>",
"failure_redirect_url": "https://merchant.example/checkout/failed",
"redirect_url": "https://merchant.example/checkout/success",
"type": "redirect"
},
"created_at": "<string>",
"created_by": "<string>",
"customer_ident_collection": true,
"deleted_at": "<string>",
"enabled": true,
"id": "<string>",
"invoice_id": "<string>",
"metadata": {},
"plan": {
"available_quantity": 123,
"billing_scheme": "FlatFee",
"created_at": "<string>",
"created_by": "<string>",
"currency": "<string>",
"deleted_at": "<string>",
"enabled": true,
"expires_at": "<string>",
"id": "<string>",
"metadata": {},
"name": "<string>",
"org_id": "<string>",
"payment_link": {
"after_completion": {},
"created_at": "<string>",
"created_by": "<string>",
"customer_ident_collection": true,
"deleted_at": "<string>",
"enabled": true,
"id": "<string>",
"invoice_id": "<string>",
"metadata": {},
"plan_id": "<string>",
"properties": {},
"shipping_address_collection": true,
"source": "Lago",
"tax_ident_collection": true,
"updated_at": "<string>",
"updated_by": "<string>"
},
"price": "<string>",
"properties": {},
"recurring_interval": "Unknown",
"recurring_interval_count": 123,
"recurring_usage_type": "Unknown",
"reference": "<string>",
"source": "Lago",
"trial_period": "<string>",
"type": "Unknown",
"updated_at": "<string>"
},
"plan_id": "<string>",
"properties": {},
"shipping_address_collection": true,
"source": "Lago",
"tax_ident_collection": true,
"updated_at": "<string>",
"updated_by": "<string>",
"url": "<string>"
},
"error": true,
"message": "<string>"
}{
"error": {
"code": 400,
"errors": [
{
"domain": "orders",
"reason": "InsufficientQuantity"
}
],
"message": "Insufficient quantity"
}
}{
"error": {
"code": 400,
"errors": [
{
"domain": "orders",
"reason": "InsufficientQuantity"
}
],
"message": "Insufficient quantity"
}
}Authorizations
Body
Create Payment Link Request
Price amount in major units as a decimal string (non-zero).
Currency code for the price (recognised and enabled).
Display name shown on the payment link (max 100 characters).
100Settlement account IDs to accept payment on.
Settlement account reference as an alternative to account_ids.
100Checkout behaviour after payment or when the link expires. Known keys: type (hosted or redirect), redirect_url (success), failure_redirect_url (expire or Failed), custom_message. Additional keys are stored and returned. Takes precedence over metadata.after_completion.
Show child attributes
Show child attributes
Remaining purchasable quantity; set to 1 for single-use links.
x >= 1Human-readable description shown at checkout (max 200 characters).
200When the payment link expires (must be in the future).
Optional image URL shown on the payment link.
Billing interval unit for recurring links.
Unknown, Minute, Hour, Day, Week, Month, Year Number of interval units between billings. Minimum 1.
x >= 1Arbitrary key-value metadata (max 10 entries). after_completion may also be sent here for compatibility; the first-class after_completion field wins when both are set. customer_fields lists extra identity fields collected at checkout. Allowed values are address, date_of_birth, email, name, nationality, phone, and place_of_birth. nationality is an ISO 3166-1 country code; checkout may send alpha-2 or alpha-3, and the customer record stores alpha-3.
Show child attributes
Show child attributes
Optional merchant-defined reference (max 50 characters).
50Optional trial period before the first charge (parseable duration).
Plan type: OneTime or Recurring. Defaults from interval when omitted.