Get vault escrow
curl --request GET \
--url https://staging.api.payluk.ng/v1/escrow/vault/{paymentToken} \
--header 'Authorization: Bearer <token>'import requests
url = "https://staging.api.payluk.ng/v1/escrow/vault/{paymentToken}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://staging.api.payluk.ng/v1/escrow/vault/{paymentToken}', 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://staging.api.payluk.ng/v1/escrow/vault/{paymentToken}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://staging.api.payluk.ng/v1/escrow/vault/{paymentToken}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://staging.api.payluk.ng/v1/escrow/vault/{paymentToken}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.api.payluk.ng/v1/escrow/vault/{paymentToken}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status": 200,
"message": "Vault escrow fetched successfully",
"data": {
"id": "665f1b2c9a1e4d0012ab3c50",
"amount": 1000000,
"purpose": "FIFA tournament stake",
"fee": 25000,
"paymentToken": "PY_7CD34E0F5162",
"state": "OPENED",
"status": "ONGOING",
"settlementType": "VAULT",
"participants": [
{
"customerId": "665f1b2c9a1e4d0012ab3c40",
"amount": 600000,
"status": "STAKED",
"stakedAt": "1784900000",
"settledAt": null
},
{
"customerId": "665f1b2c9a1e4d0012ab3c41",
"amount": 400000,
"status": "STAKED",
"stakedAt": "1784900000",
"settledAt": null
}
],
"winnerId": null
}
}
5. Stake & resolve: Vault Escrow
Get vault escrow
Returns the vault escrow with its participants and (once declared) the winner. Merchant-only: do not send the customer-id header.
GET
/
v1
/
escrow
/
vault
/
{paymentToken}
Get vault escrow
curl --request GET \
--url https://staging.api.payluk.ng/v1/escrow/vault/{paymentToken} \
--header 'Authorization: Bearer <token>'import requests
url = "https://staging.api.payluk.ng/v1/escrow/vault/{paymentToken}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://staging.api.payluk.ng/v1/escrow/vault/{paymentToken}', 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://staging.api.payluk.ng/v1/escrow/vault/{paymentToken}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://staging.api.payluk.ng/v1/escrow/vault/{paymentToken}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://staging.api.payluk.ng/v1/escrow/vault/{paymentToken}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.api.payluk.ng/v1/escrow/vault/{paymentToken}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status": 200,
"message": "Vault escrow fetched successfully",
"data": {
"id": "665f1b2c9a1e4d0012ab3c50",
"amount": 1000000,
"purpose": "FIFA tournament stake",
"fee": 25000,
"paymentToken": "PY_7CD34E0F5162",
"state": "OPENED",
"status": "ONGOING",
"settlementType": "VAULT",
"participants": [
{
"customerId": "665f1b2c9a1e4d0012ab3c40",
"amount": 600000,
"status": "STAKED",
"stakedAt": "1784900000",
"settledAt": null
},
{
"customerId": "665f1b2c9a1e4d0012ab3c41",
"amount": 400000,
"status": "STAKED",
"stakedAt": "1784900000",
"settledAt": null
}
],
"winnerId": null
}
}
Authorizations
Your secret key as a Bearer token. The key prefix selects the environment: sk_test_... (staging) or sk_live_... (production); a key on the wrong host is refused with 403 Unauthorized Access. Each key is limited to 10 requests per minute (429 beyond that) and, on production, to the IP addresses on your dashboard allowlist when one is configured.
Path Parameters
The escrow's payment token (e.g. PY_8AB12C9D3045).