Get a payment
curl --request GET \
--url https://api.sandbox.paywit.xyz/v1/payments/{paymentId}import requests
url = "https://api.sandbox.paywit.xyz/v1/payments/{paymentId}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.sandbox.paywit.xyz/v1/payments/{paymentId}', 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.sandbox.paywit.xyz/v1/payments/{paymentId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.sandbox.paywit.xyz/v1/payments/{paymentId}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.sandbox.paywit.xyz/v1/payments/{paymentId}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.paywit.xyz/v1/payments/{paymentId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"payment": {
"id": "0f4c1e2a-7b3d-4e5f-9a6b-1c2d3e4f5a6b",
"createdAt": "2026-10-14T09:29:07.335Z",
"amount": 5.43,
"status": "Paid",
"description": "Order #18421",
"returnUrl": "https://shop.example/orders/18421",
"expiresAt": "2026-10-14T10:29:07.335Z",
"bridgeStatus": null
}
}{
"statusCode": 123,
"body": "<unknown>"
}Payments
Get a payment
Returns the current state of a payment. No authentication is required, and the response deliberately excludes merchant data such as your app id and client reference id. Use it to show the buyer where their payment is. Use webhooks, not this call, to release goods.
GET
/
v1
/
payments
/
{paymentId}
Get a payment
curl --request GET \
--url https://api.sandbox.paywit.xyz/v1/payments/{paymentId}import requests
url = "https://api.sandbox.paywit.xyz/v1/payments/{paymentId}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.sandbox.paywit.xyz/v1/payments/{paymentId}', 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.sandbox.paywit.xyz/v1/payments/{paymentId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.sandbox.paywit.xyz/v1/payments/{paymentId}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.sandbox.paywit.xyz/v1/payments/{paymentId}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.paywit.xyz/v1/payments/{paymentId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"payment": {
"id": "0f4c1e2a-7b3d-4e5f-9a6b-1c2d3e4f5a6b",
"createdAt": "2026-10-14T09:29:07.335Z",
"amount": 5.43,
"status": "Paid",
"description": "Order #18421",
"returnUrl": "https://shop.example/orders/18421",
"expiresAt": "2026-10-14T10:29:07.335Z",
"bridgeStatus": null
}
}{
"statusCode": 123,
"body": "<unknown>"
}