retrieve-payment-links
POST /api/{team}/gateway/retrieve-payment-links
Ödeme linklerinin güncel hâlini döndürür; hiçbir şeyi değiştirmez. Her link, kendisinden yapılan son 50 ödeme denemesini (reddedilenler dahil, yeniden eskiye) ve bütün denemelerin sayısını taşır. Panelden açılan linkler de bu uçla bulunur. Linkten yapılan ödemelerin kalemleri, tutarları ve ödeyenin fatura bilgileri retrieve-link-payments ile okunur.
Kimlik doğrulama
X-Api-Key, X-Timestamp, X-Signature, Content-Type: application/json. Ayrıntılar: Kimlik Doğrulama ve İmza.
İstek
Kayıt üç yoldan biriyle adlandırılır; en fazla biri gönderilir:
{ "token": "3b7e1f20-5c4a-4d8e-9f1b-7a6c5d4e3f21" }
{ "reference": "LNK-1" }
{ "created_from": "2026-09-26", "created_to": "2026-10-02" }
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
token | string (UUID) | hayır | Kaydın token'ı. reference ya da tarih aralığıyla birlikte gönderilmez. |
reference | string | hayır | Linkin referansı. Referans tekil olmadığından bu referansla açılmış bütün linkler döner; linkler token ile ayırt edilir. Tarih aralığıyla birlikte gönderilmez. |
created_from | string | hayır | Başlangıç günü, YYYY-MM-DD. created_to ile birlikte gönderilir. |
created_to | string | hayır | Bitiş günü, YYYY-MM-DD. created_from ile birlikte gönderilir; ondan önce olamaz. Aralık iki gün dahil en fazla 7 gündür. |
Tarihler çalışma alanının saat dilimindedir. Hiçbir alan gönderilmezse ({}) bugün dahil son 7 gün listelenir. Yanıt her zaman bir listedir; eşleşen kayıt yoksa liste boştur. Başka bir çalışma alanının kaydı hiçbir zaman dönmez.
SDK örnekleri
Örneklerdeki $client / client nesnesinin kurulumu: İstemciyi Kurmak.
- PHP
- Node.js
- Python
- Java
- cURL
use Gurmehub\Odemehub\Request\RetrievePaymentLinks;
$link = $client->retrievePaymentLinks(RetrievePaymentLinks::byToken($linkToken))->paymentLinks[0] ?? null;
$link?->transactionsCount; // linkteki bütün denemeler
$link?->transactions; // son 50 deneme, yeniden eskiye
$link?->successful(); // bunlardan geçenler
const [link] = (await client.retrievePaymentLinks({ token: linkToken })).paymentLinks;
link?.transactionsCount; // linkteki bütün denemeler
link?.transactions; // son 50 deneme, yeniden eskiye
link?.successful(); // bunlardan geçenler
from odemehub.request import RetrievePaymentLinks
links = client.retrieve_payment_links(RetrievePaymentLinks(token=link_token)).payment_links
if links:
links[0].transactions_count # linkteki bütün denemeler
links[0].transactions # son 50 deneme, yeniden eskiye
links[0].successful() # bunlardan geçenler
import com.odemehub.request.RetrievePaymentLinks;
var links = client.retrievePaymentLinks(RetrievePaymentLinks.byToken(linkToken)).getPaymentLinks();
if (!links.isEmpty()) {
links.get(0).getTransactionsCount(); // linkteki bütün denemeler
links.get(0).getTransactions(); // son 50 deneme, yeniden eskiye
links.get(0).successful(); // bunlardan geçenler
}
URI_PATH="/api/$ODEMEHUB_TEAM/gateway/retrieve-payment-links"
BODY='{"token":"7c9e1a3b-5d2f-4b6a-8e0c-2a4c6e8b0d1f"}'
TIMESTAMP=$(date +%s)
SIGNATURE=$(printf '%s\n%s\n%s\n%s' "$TIMESTAMP" "POST" "$URI_PATH" "$BODY" | openssl dgst -sha256 -hmac "$ODEMEHUB_API_SECRET" | sed 's/^.* //')
curl -X POST "https://sandbox.odemehub.com$URI_PATH" \
-H "Content-Type: application/json" \
-H "X-Api-Key: $ODEMEHUB_API_KEY" \
-H "X-Timestamp: $TIMESTAMP" \
-H "X-Signature: $SIGNATURE" \
--data-raw "$BODY"
Yanıt
{
"result": { "successful": true, "message": null },
"payment_links": [
{
"token": "7c9e1a3b-5d2f-4b6a-8e0c-2a4c6e8b0d1f",
"reference": "LNK-1",
"description": "Bağış",
"payment_provider_token": null,
"amount_type": "fixed",
"item_name": null,
"predefined_amounts": null,
"tax_rate": null,
"tax_mode": "inclusive",
"items": [
{ "reference": null, "name": "Bağış", "image": null, "quantity": 1, "unit_amount": "100.00", "tax_rate": "0.00" }
],
"subtotal": "100.00",
"tax_amount": "0.00",
"amount": "100.00",
"currency": "TRY",
"currency_type": "fixed",
"currencies": null,
"emails_customer": false,
"is_active": true,
"is_test": false,
"expires_at": "2026-12-31T20:59:59.000000Z",
"checkout_url": "https://sandbox.odemehub.com/checkout/link/7c9e1a3b-5d2f-4b6a-8e0c-2a4c6e8b0d1f",
"created_at": "2026-10-02T09:30:00.000000Z",
"transactions_count": 1,
"transactions": [
{
"token": "1f3a5c7e-9b2d-4f6a-8c0e-3b5d7f9a1c2e",
"reference": "LINKPAY1",
"status": "successful",
"payment_status": "paid",
"security_type": "secure",
"amount": "100.00",
"base_amount": "100.00",
"currency": "TRY",
"installment_number": 1,
"is_test": false,
"error_code": null,
"error_message": null,
"created_at": "2026-10-02T11:00:00.000000Z",
"customer": { "reference": null, "billing_address": { "firstname": "Ayşe", "lastname": "Kaya", "email": "[email protected]" } },
"conversion": null,
"order": null,
"payment_link": { "token": "7c9e1a3b-5d2f-4b6a-8e0c-2a4c6e8b0d1f" },
"link_payment": { "token": "5e2a8c4f-7b1d-4a3e-9c6f-0d2b4f6a8c1e" },
"subscription": null
}
]
}
]
}
| Alan | Tip | Açıklama |
|---|---|---|
created_from, created_to | string | Yalnızca tarih aralığıyla (ya da boş gövdeyle) sorulduğunda: listenin kapsadığı günler. |
payment_links[] | array | Ödeme linki nesneleri, eskiden yeniye. |
Ödeme linki nesnesi
create-payment-link, update-payment-link yanıtlarında ve bu listede aynı nesne döner.
| Alan | Tip | Açıklama |
|---|---|---|
token | string | Linkin token'ı. |
reference | string | Linkin referansı: sizin verdiğiniz ya da verilmediyse geçidin ürettiği LINK{n}. Tekil değildir; birden çok link aynı referansı taşıyabilir. |
description | string | null | Açıklama. |
payment_provider_token | string | null | İstekte verilen ödeme hesabı; verilmediyse null. |
amount_type | string | fixed, custom, predefined ya da predefined_and_custom. Bkz. Tutar tipleri. |
item_name | string | null | Seçimli tiplerde ödemenin tek kaleminin adı; fixed tipte null. |
predefined_amounts | array | null | predefined ve predefined_and_custom tipte ödeyenin seçebileceği tutarlar ("100.00" biçiminde); öteki tiplerde null. |
tax_rate | string | null | Seçimli tiplerde ödenen tutarın KDV oranı; fixed tipte ve oran verilmediyse null. |
tax_mode | string | inclusive ya da exclusive. Yalnızca seçimli tiplerde uygulanır. |
items[] | array | Kalemler: reference, name, image, quantity, unit_amount (KDV dahil), tax_rate. Seçimli tiplerde boş dizi. |
subtotal | string | null | KDV hariç toplam. Seçimli tiplerde null. |
tax_amount | string | null | KDV. Seçimli tiplerde null. |
amount | string | null | Her ödemede karttan çekilecek tutar. Seçimli tiplerde null; tutarı ödeyen belirler. |
currency | string | Para birimi. |
currency_type | string | fixed ya da selectable. |
currencies | array | null | selectable ise ödeyenin seçebileceği para birimleri, currency dahil; fixed ise null. |
emails_customer | boolean | true ise her başarılı ödemeden sonra ödeyene e-posta gönderilir. |
is_active | boolean | Link açık ve son geçerlilik günü geçmemişse true. |
is_test | boolean | Çalışma alanı şu an test modundaysa true; linkten alınacak ödemeler bu modda alınır. |
expires_at | string | null | Son geçerlilik anı: gönderilen günün sonu (çalışma alanının saat dilimine göre), ISO 8601 UTC. Süresiz linkte null. |
checkout_url | string | null | Ödeme sayfası. Yalnızca link ödenebilirken (açık, süresi geçmemiş ve Link ile Ödeme modülü açık) dolu; değilse null. |
created_at | string | ISO 8601 UTC. |
Yalnızca bu listede:
| Alan | Tip | Açıklama |
|---|---|---|
transactions_count | integer | Linkten yapılan bütün ödeme denemelerinin sayısı. |
transactions[] | array | Son 50 deneme, yeniden eskiye: İşlem nesnesi. Her denemenin reference değeri link ödemesinin referansıdır (LINKPAY1, LINKPAY2 …); payment_link ve link_payment alanları dolu gelir. |
HTTP durum kodları
| Kod | Durum |
|---|---|
200 | Liste döndü; eşleşen kayıt yoksa boş. |
401 | API anahtarı ya da imza geçersiz. |
403 | Çalışma alanı işlem yapamıyor, planı ödeme linklerini kapsamıyor ya da Link ile Ödeme modülü kapalı. |
422 | Doğrulama hatası. |
429 | İstek sınırı aşıldı. |
Hatalar
| Alan | Mesaj |
|---|---|
token | Token ile birlikte referans ya da tarih aralığı gönderilmez. |
reference | Referans ile birlikte tarih aralığı gönderilmez. |
created_to | Bitiş tarihi başlangıç tarihinden önce olamaz. / Tarih aralığı en fazla 7 gün olabilir. |