Skip to content

Barındırılan belge verme API'si ​

Kurumun, Tamga'nın barındırılan belge verme servisine belge teklif ettirmek, bilet sattırmak ya da belge iptal ettirmek için çağırdığı API.

Gerçek ağ
https://issuer.tamga.network/{slug}/api/v1
Sandbox (deneme ağı)
https://issuer.sandbox.tamga.network/{slug}/api/v1
Kimlik doğrulama
Bearer

Tamga Network operatörü işletir (ADR-0016, ADR-0020). Bağımlılıksız Node istemcisi @tamga-network/issuer/client.

Teklifler. İki tür:

  • Kimliğe bağlı (önerilen; ADR-0020): bind gönderin. PIN yok. Kişi bağlantıyı cüzdanında açar ve Tamga kimlik belgesini sunar; belge yalnızca sunulan kimlik numarası ve doğum tarihi eşleşirse verilir. Bu anahtarların yalnızca anahtarlı özeti saklanır. 7 gün geçerli, tek kullanımlık. Bağlantıyı kişiye siz kendi kanalınızdan (e-posta, öğrenci portalı) iletirsiniz; Tamga iletişim bilgisi almaz.
  • PIN'li ön yetkili (kimlik belgesi olmayanlar için yedek yol): yanıtta tx_code gelir. PIN'i asla bağlantıyla aynı kanaldan göndermeyin.

Belge verisi teklifle gönderilmez: barındırılan servis onu belge verme anında kurumunuzun sorgu ucundan okur (kurum sorgu ucu sayfasına bakın).

Hatalar RFC 9457 problem ayrıntısı biçimindedir (title, status). Her anahtarın dakikalık sınırı vardır (Retry-After ile 429).

Uç noktalar ​

Uç noktaAçıklama
POST /offersBelge teklif et
GET /ticketsSatılan biletleri listele
POST /ticketsBilet sat
POST /revocationsBelgeyi iptal et, askıya al ya da geri al

Kimlik doğrulama ​

Bearer

Authorization: Bearer tmg_<slug>_… — Kurum Konsolu'nda kurum başına verilen, kapsamlı bir API anahtarı; 90 gün geçerlidir, yenisi verilerek döndürülür. Yalnız sunucunuzda tutun.

Teklifler ​

Kayıtlarınızdaki bir kişiye belge teklif edin.

Belge teklif et ​

POST/offers

Kapsam offers:write. Kişi kurumunuzun sorgu ucunda bulunmalıdır.

Kimlik doğrulama Bearer

İstek gövdesi ​

application/json

AlanTürAçıklama
subject_id zorunlustringKişiye verdiğiniz opak referans (sorgu ucunuzdaki SubjectRecord.id).
vct zorunlustringBelge türü; güven listesinde kurumunuza yetkilendirilmiş olmalıdır.
klassstringÖn yetkili teklifte PIN'in iletim biçimi; bind varsa yok sayılır. Değerler: on-screen · out-of-band
bindobjectTeklifi kimliğe bağlar (ADR-0020). Yalnızca anahtarlı özet saklanır.
bind.personal_administrative_number zorunlustring
bind.birth_date zorunlustring (date)

Yanıtlar ​

DurumAçıklama
200Teklif oluşturuldu.
400RFC 9457 problem ayrıntısı. Döner: Problem
401Anahtar yok, süresi dolmuş ya da kapsamı yetmiyor. Döner: Problem
404Kişi kurumunuzun kaynağında yok.
429Anahtar başına sınır aşıldı. Retry-After saniye bekleyin. Döner: Problem Başlıklar: Retry-After
503Sorgu ucunuza ulaşılamadı.

Örnek ​

bash
curl -X POST "https://issuer.tamga.network/your-institution/api/v1/offers" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"subject_id":"stu_8c41f2","vct":"urn:tamga:edu:DiplomaCredential:1","bind":{"personal_administrative_number":"10000000146","birth_date":"2001-04-17"}}'
json
{
  "offer_id": "off_3kQ9xV",
  "expires_at": 1791504000,
  "offer_uri": "https://issuer.tamga.network/your-institution/offers/off_3kQ9xV",
  "deep_link": "openid-credential-offer://?credential_offer_uri=https%3A%2F%2Fissuer.tamga.network%2Fyour-institution%2Foffers%2Foff_3kQ9xV",
  "offer": {
    "credential_issuer": "https://issuer.tamga.network/your-institution",
    "credential_configuration_ids": [
      "urn:tamga:edu:DiplomaCredential:1"
    ],
    "grants": {
      "authorization_code": {
        "issuer_state": "off_3kQ9xV"
      }
    }
  },
  "identity_bound": true
}

Biletler ​

Etkinlik biletlerini belge olarak satın.

Satılan biletleri listele ​

GET/tickets

Kapsam tickets:read.

Kimlik doğrulama Bearer

Yanıtlar ​

DurumAçıklama
200Biletler.
401Anahtar yok, süresi dolmuş ya da kapsamı yetmiyor. Döner: Problem
429Anahtar başına sınır aşıldı. Retry-After saniye bekleyin. Döner: Problem Başlıklar: Retry-After

Örnek ​

bash
curl "https://issuer.tamga.network/your-institution/api/v1/tickets" \
  -H "Authorization: Bearer $API_KEY"
json
{
  "tickets": [
    {}
  ]
}

Bilet sat ​

POST/tickets

Kapsam tickets:write. Satışı kaydeder ve bilet belgesini teklif eder; teklif kişisel veri taşımaz.

Kimlik doğrulama Bearer

İstek gövdesi ​

application/json

AlanTürAçıklama
event_id zorunlustring
ticket_class zorunlustring
seatstring
klassstringDeğerler: on-screen · out-of-band

Yanıtlar ​

DurumAçıklama
200Bilet satıldı.
400RFC 9457 problem ayrıntısı. Döner: Problem
401Anahtar yok, süresi dolmuş ya da kapsamı yetmiyor. Döner: Problem
404RFC 9457 problem ayrıntısı. Döner: Problem
429Anahtar başına sınır aşıldı. Retry-After saniye bekleyin. Döner: Problem Başlıklar: Retry-After

Örnek ​

bash
curl -X POST "https://issuer.tamga.network/your-institution/api/v1/tickets" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"event_id":"evt_2026_konser","ticket_class":"standard","seat":"B-14"}'
json
{
  "ticket_id": "…",
  "ticket_no": "…",
  "event": {
    "id": "…",
    "name": "…",
    "start": "…",
    "venue": "…"
  },
  "offer": {
    "offer_id": "…",
    "tx_code": "…",
    "expires_at": 0,
    "offer_uri": "…",
    "deep_link": "…"
  }
}

İptaller ​

Verilmiş bir belgenin durumunu değiştirin.

Belgeyi iptal et, askıya al ya da geri al ​

POST/revocations

Kapsam revocations:write. Bir sonraki sabit aralıklı durum listesi yayınında geçerli olur. İptal edilen belge iptal kalır; yalnız askıdaki belge geri alınabilir.

Kimlik doğrulama Bearer

İstek gövdesi ​

application/json

AlanTürAçıklama
credential_id zorunlustring
actionstringDeğerler: revoke · suspend · reinstate (default revoke)
reasonstringDenetim kaydınızda tutulur; asla yayınlanmaz.

Yanıtlar ​

DurumAçıklama
200Kabul edildi.
400RFC 9457 problem ayrıntısı. Döner: Problem
401Anahtar yok, süresi dolmuş ya da kapsamı yetmiyor. Döner: Problem
404RFC 9457 problem ayrıntısı. Döner: Problem
429Anahtar başına sınır aşıldı. Retry-After saniye bekleyin. Döner: Problem Başlıklar: Retry-After

Örnek ​

bash
curl -X POST "https://issuer.tamga.network/your-institution/api/v1/revocations" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"credential_id":"crd_5Hn2Lw","action":"suspend","reason":"disciplinary review"}'
json
{
  "ok": true,
  "effective_after_next_publish": true,
  "interval_sec": 3600
}

Nesneler ​

Problem ​

AlanTürAçıklama
typestring
titlestring
statusinteger

Makine okur tanımı herhangi bir OpenAPI aracına aktararak istemci üretebilir ya da deneme isteği gönderebilirsiniz: tamga-issuer-api.openapi.yaml.