Hediye kartları API

Hediye kartları modülünün tüm işlemleri (11) ve veri modelleri (3): adresler, izinler, girdiler, ön koşullar, olaylar ve örnekler.

Kodu, bakiyesi, son kullanma tarihi ve tüm geçmişiyle hediye kartları.

Modül kodu gift_cards · 11 işlem · 3 veri modeli · 7 olay. Bir anahtar ya da token, arkasındaki kişinin bu modülde yapabildiğinden fazlasını asla yapamaz; satır düzeyindeki güvenlik uygulamadakiyle birebir aynıdır. Yetki kapsamları: gift_cards (hepsi), gift_cards:read (yalnız okuma) ya da gift_cards:<yetenek>.

Kaynaklar

KaynakTabloListeleme ve okumaPOSTPATCHDELETE
gift_card_eventsgift_card_event/api/v1/gift_card_events
gift_card_holdsgift_card_hold/api/v1/gift_card_holds
gift_cardsgift_card/api/v1/gift_cards

Listeler limit (en çok 200), cursor, order (ör. -created_at), fields ve q alır; diğer her sorgu parametresi bir sütun süzgecidir: ?status=paid, ?total[gte]=100, ?id[in]=a,b, ?x=null.

İşlemler

İşlemGereken izinNe yapar
gift_cards.add_notegift_cards:writeNot ekle
gift_cards.bulk_issuegift_cards:writeToplu hediye kartı oluştur
gift_cards.expire_duegift_cards:manageSüresi dolan kartları kapat
gift_cards.issuegift_cards:writeHediye kartı oluştur
gift_cards.redeemgift_cards:writeHediye kartını kullan
gift_cards.refundgift_cards:manageHediye kartına iade et
gift_cards.reset_balancegift_cards:manageBakiyeyi düzelt
gift_cards.sendgift_cards:writeMüşteriye gönder
gift_cards.set_activegift_cards:manageEtkinleştir veya devre dışı bırak
gift_cards.set_expirygift_cards:manageSon kullanma tarihini değiştir
gift_cards.site_applygift_cards:writeHediye kartı kullan (site)

gift_cards.add_note

Not ekle — Kartın geçmişine bir satır.

Gereken izin gift_cards:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/gift_card_events/actions/add_note
API anahtarı ya da OAuth token · gift_cards:write
  • Asıl adres: POST /api/v1/actions/gift_cards.add_note

Girdi

AlanTürZorunluAçıklama
iduuidevetHediye kartı · kimliği: gift_card
messagestringevetNot · en çok 2000

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
gift_card_not_foundKart bulunmalı.

Yayımladığı olaylar: gift_cards.updated

Neye yazar: gift_card_event (insert) — Records the note

curl -X POST https://app.getera.io/api/v1/gift_card_events/actions/add_note \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"id":"GIFT_CARD_ID","message":"Note"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "gift_cards.updated"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.giftCardEvents.addNote({
  id: "GIFT_CARD_ID",
  message: "Note"
})
era gift_card_events add_note \
  --id "GIFT_CARD_ID" \
  --message "Note"
tools/call
{
  "name": "era__gift_cards__add_note",
  "arguments": {
    "id": "GIFT_CARD_ID",
    "message": "Note"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde gift_cards:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 gift_card_not_found · 429 çok sık istek

gift_cards.bulk_issue

Toplu hediye kartı oluştur — Aynı bakiye ve son kullanma tarihiyle, her biri kendi koduyla birçok kart.

Gereken izin gift_cards:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/gift_cards/actions/bulk_issue
API anahtarı ya da OAuth token · gift_cards:write
  • Asıl adres: POST /api/v1/actions/gift_cards.bulk_issue

Girdi

AlanTürZorunluAçıklama
countnumberevetKaç tane
amountnumber (money)evetBakiye
currencystringPara birimi · en çok 3
expiryDatedateSona erme
isActivebooleanHemen etkin olsun
notestringNot · en çok 2000

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
invalid_gift_card_countTek seferde 1 ile 500 arasında kart.
gift_card_amount_not_positiveHediye kartının değeri sıfırdan büyüktür.
invalid_currencyPara birimi bir ISO-4217 kodu olmalı.
gift_card_expiry_in_pastSon kullanma tarihi geçmiş olamaz.

Yayımladığı olaylar: gift_cards.issued

Neye yazar: gift_card (insert) — Issues the cards; gift_card_event (insert) — Records each issue

curl -X POST https://app.getera.io/api/v1/gift_cards/actions/bulk_issue \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"count":1,"amount":1}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "gift_cards.issued"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.giftCards.bulkIssue({
  count: 1,
  amount: 1
})
era gift_cards bulk_issue \
  --count 1 \
  --amount 1
tools/call
{
  "name": "era__gift_cards__bulk_issue",
  "arguments": {
    "count": 1,
    "amount": 1
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde gift_cards:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 invalid_gift_card_count, gift_card_amount_not_positive, invalid_currency, gift_card_expiry_in_past · 429 çok sık istek

gift_cards.expire_due

Süresi dolan kartları kapat — Son kullanma tarihi geçmiş her aktif kartı kapatır.

Gereken izin gift_cards:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/gift_card_events/actions/expire_due
API anahtarı ya da OAuth token · gift_cards:manage
  • Asıl adres: POST /api/v1/actions/gift_cards.expire_due

Girdi

AlanTürZorunluAçıklama
asOfdateGeçerlilik tarihi

Yayımladığı olaylar: gift_cards.status_changed

Neye yazar: gift_card (update) — Deactivates it; gift_card_event (insert) — Records why

curl -X POST https://app.getera.io/api/v1/gift_card_events/actions/expire_due \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"asOf":"2026-11-02"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "gift_cards.status_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.giftCardEvents.expireDue({
  asOf: "2026-11-02"
})
era gift_card_events expire_due \
  --as-of "2026-11-02"
tools/call
{
  "name": "era__gift_cards__expire_due",
  "arguments": {
    "asOf": "2026-11-02"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde gift_cards:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 429 çok sık istek

gift_cards.issue

Hediye kartı oluştur — Bakiyesi, kodu ve isteğe bağlı son kullanma tarihi olan yeni bir kart.

Gereken izin gift_cards:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/gift_cards/actions/issue
API anahtarı ya da OAuth token · gift_cards:write
  • Asıl adres: POST /api/v1/actions/gift_cards.issue

Girdi

AlanTürZorunluAçıklama
amountnumber (money)evetBakiye
currencystringPara birimi · en çok 3
codestringKod · Boş bırakılırsa bir kod oluşturulur. · en çok 16
expiryDatedateSona erme
customerIduuidVerildiği kişi · kimliği: customer
issuedToEmailemailE-posta
notestringNot · en çok 2000
sourceModulestringSatın alındığı yer · en çok 40
sourceRecordIduuidKaynak kayıt

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
gift_card_amount_not_positiveHediye kartının değeri sıfırdan büyüktür.
invalid_currencyPara birimi bir ISO-4217 kodu olmalı.
invalid_gift_card_codeKod 8 ila 16 harf, rakam veya tireden oluşur.
gift_card_expiry_in_pastSon kullanma tarihi geçmiş olamaz.
gift_card_code_takenKodlar çalışma alanında benzersizdir.

Yayımladığı olaylar: gift_cards.issued

Neye yazar: gift_card (insert) — Issues the card; gift_card_event (insert) — Records the issue

curl -X POST https://app.getera.io/api/v1/gift_cards/actions/issue \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"amount":1}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "gift_cards.issued"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.giftCards.issue({
  amount: 1
})
era gift_cards issue \
  --amount 1
tools/call
{
  "name": "era__gift_cards__issue",
  "arguments": {
    "amount": 1
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde gift_cards:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 gift_card_amount_not_positive, invalid_currency, invalid_gift_card_code, gift_card_expiry_in_past, gift_card_code_taken · 429 çok sık istek

gift_cards.redeem

Hediye kartını kullan — Bakiyeden harcar. Tekrarlanan bir kullanım hiçbir şeyi iki kez harcamaz.

Gereken izin gift_cards:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/gift_cards/{id}/actions/redeem
API anahtarı ya da OAuth token · gift_cards:write
  • Asıl adres: POST /api/v1/actions/gift_cards.redeem

Girdi

AlanTürZorunluAçıklama
codestringKod · en çok 16
giftCardIduuidDoldurulduğu yer: adresteki {id} · Hediye kartı · kimliği: gift_card
amountnumber (money)evetTutar
currencystringevetPara birimi · en çok 3
sourceModulestringHarcandığı yer · en çok 40
sourceRecordIduuidSipariş veya ödeme
idempotencyKeystringTekrar önleme anahtarı · en çok 512

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
gift_card_not_foundKart bulunmalı.
gift_card_inactiveDevre dışı bir kart kullanılamaz.
gift_card_expiredSüresi dolmuş bir kart kullanılamaz.
gift_card_currency_mismatchKart yalnızca kendi para biriminde öder.
gift_card_insufficient_balanceKullanım asla bakiyeyi aşmaz.

Yayımladığı olaylar: gift_cards.redeemed

Neye yazar: gift_card (update) — Lowers the balance; gift_card_event (insert) — Records the redemption

curl -X POST https://app.getera.io/api/v1/gift_cards/GIFT_CARD_ID/actions/redeem \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"amount":1,"currency":"Currency"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "gift_cards.redeemed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.giftCards.redeem("GIFT_CARD_ID", {
  amount: 1,
  currency: "Currency"
})
era gift_cards redeem GIFT_CARD_ID \
  --amount 1 \
  --currency "Currency"
tools/call
{
  "name": "era__gift_cards__redeem",
  "arguments": {
    "giftCardId": "GIFT_CARD_ID",
    "amount": 1,
    "currency": "Currency"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde gift_cards:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 gift_card_not_found, gift_card_inactive, gift_card_expired, gift_card_currency_mismatch, gift_card_insufficient_balance · 429 çok sık istek

gift_cards.refund

Hediye kartına iade et — Karttan harcanan parayı karta geri yükler.

Gereken izin gift_cards:manage · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/gift_cards/{id}/actions/refund
API anahtarı ya da OAuth token · gift_cards:manage
  • Asıl adres: POST /api/v1/actions/gift_cards.refund

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Hediye kartı · kimliği: gift_card
amountnumber (money)evetTutar
sourceModulestringİade edildiği kaynak · en çok 40
sourceRecordIduuidSipariş
reasonstringNeden · en çok 2000
idempotencyKeystringTekrar önleme anahtarı · en çok 512

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
gift_card_not_foundKart bulunmalı.
gift_card_refund_exceeds_spentYalnızca harcanan geri gelebilir.

Yayımladığı olaylar: gift_cards.refunded

Neye yazar: gift_card (update) — Raises the balance; gift_card_event (insert) — Records the refund

curl -X POST https://app.getera.io/api/v1/gift_cards/GIFT_CARD_ID/actions/refund \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"amount":1}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "gift_cards.refunded"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.giftCards.refund("GIFT_CARD_ID", {
  amount: 1
})
era gift_cards refund GIFT_CARD_ID \
  --amount 1
tools/call
{
  "name": "era__gift_cards__refund",
  "arguments": {
    "id": "GIFT_CARD_ID",
    "amount": 1
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde gift_cards:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 gift_card_not_found, gift_card_refund_exceeds_spent · 429 çok sık istek

gift_cards.reset_balance

Bakiyeyi düzelt — Bakiyeyi elle belirler; neden kartın geçmişine yazılır.

Gereken izin gift_cards:manage · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır) · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/gift_cards/{id}/actions/reset_balance
API anahtarı ya da OAuth token · gift_cards:manage
  • Asıl adres: POST /api/v1/actions/gift_cards.reset_balance

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Hediye kartı · kimliği: gift_card
balancenumber (money)evetYeni bakiye · en az 0
reasonstringevetNeden · en çok 2000

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
gift_card_not_foundKart bulunmalı.
gift_card_amount_not_positiveBakiye negatif olamaz.

Yayımladığı olaylar: gift_cards.updated

Neye yazar: gift_card (update) — Writes the balance; gift_card_event (insert) — Records the correction

curl -X POST https://app.getera.io/api/v1/gift_cards/GIFT_CARD_ID/actions/reset_balance \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"balance":1,"reason":"Reason"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "gift_cards.updated"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.giftCards.resetBalance("GIFT_CARD_ID", {
  balance: 1,
  reason: "Reason"
})
era gift_cards reset_balance GIFT_CARD_ID \
  --balance 1 \
  --reason "Reason"
tools/call
{
  "name": "era__gift_cards__reset_balance",
  "arguments": {
    "id": "GIFT_CARD_ID",
    "balance": 1,
    "reason": "Reason"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde gift_cards:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 gift_card_not_found, gift_card_amount_not_positive · 429 çok sık istek

gift_cards.send

Müşteriye gönder — Kartı bildirimler modülü üzerinden e-postayla gönderir; kayıt, gidip gitmediğini gösterir.

Gereken izin gift_cards:write · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır) · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/gift_card_events/actions/send
API anahtarı ya da OAuth token · gift_cards:write
  • Asıl adres: POST /api/v1/actions/gift_cards.send

Girdi

AlanTürZorunluAçıklama
iduuidevetHediye kartı · kimliği: gift_card
tostringE-posta · en çok 320
messagestringMesaj · en çok 2000

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
gift_card_not_foundKart bulunmalı.
gift_card_inactiveDevre dışı bir kart gönderilmez.
gift_card_expiredSüresi dolmuş bir kart gönderilmez.
gift_card_recipient_missingGönderilecek bir adres olmalı.

Yayımladığı olaylar: gift_cards.send_requested

Neye yazar: gift_card_event (insert) — Records who it was sent to

curl -X POST https://app.getera.io/api/v1/gift_card_events/actions/send \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"id":"GIFT_CARD_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "gift_cards.send_requested"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.giftCardEvents.send({
  id: "GIFT_CARD_ID"
})
era gift_card_events send \
  --id "GIFT_CARD_ID"
tools/call
{
  "name": "era__gift_cards__send",
  "arguments": {
    "id": "GIFT_CARD_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde gift_cards:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 gift_card_not_found, gift_card_inactive, gift_card_expired, gift_card_recipient_missing · 429 çok sık istek

gift_cards.set_active

Etkinleştir veya devre dışı bırak — Devre dışı kart bakiyesini korur ama harcanamaz.

Gereken izin gift_cards:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/gift_cards/{id}/actions/set_active
API anahtarı ya da OAuth token · gift_cards:manage
  • Asıl adres: POST /api/v1/actions/gift_cards.set_active

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Hediye kartı · kimliği: gift_card
activebooleanevetAktif

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
gift_card_not_foundKart bulunmalı.

Yayımladığı olaylar: gift_cards.status_changed

Neye yazar: gift_card (update) — Flips the card; gift_card_event (insert) — Records it

curl -X POST https://app.getera.io/api/v1/gift_cards/GIFT_CARD_ID/actions/set_active \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"active":true}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "gift_cards.status_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.giftCards.setActive("GIFT_CARD_ID", {
  active: true
})
era gift_cards set_active GIFT_CARD_ID \
  --active true
tools/call
{
  "name": "era__gift_cards__set_active",
  "arguments": {
    "id": "GIFT_CARD_ID",
    "active": true
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde gift_cards:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 gift_card_not_found · 429 çok sık istek

gift_cards.set_expiry

Son kullanma tarihini değiştir — Son kullanma tarihini taşır veya kaldırır.

Gereken izin gift_cards:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/gift_cards/{id}/actions/set_expiry
API anahtarı ya da OAuth token · gift_cards:manage
  • Asıl adres: POST /api/v1/actions/gift_cards.set_expiry

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Hediye kartı · kimliği: gift_card
expiryDatedateSona erme

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
gift_card_not_foundKart bulunmalı.
gift_card_expiry_in_pastSon kullanma tarihi geçmiş olamaz.

Yayımladığı olaylar: gift_cards.updated

Neye yazar: gift_card (update) — Writes the expiry; gift_card_event (insert) — Records the change

curl -X POST https://app.getera.io/api/v1/gift_cards/GIFT_CARD_ID/actions/set_expiry \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"expiryDate":"2026-11-02"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "gift_cards.updated"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.giftCards.setExpiry("GIFT_CARD_ID", {
  expiryDate: "2026-11-02"
})
era gift_cards set_expiry GIFT_CARD_ID \
  --expiry-date "2026-11-02"
tools/call
{
  "name": "era__gift_cards__set_expiry",
  "arguments": {
    "id": "GIFT_CARD_ID",
    "expiryDate": "2026-11-02"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde gift_cards:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 gift_card_not_found, gift_card_expiry_in_past · 429 çok sık istek

gift_cards.site_apply

Hediye kartı kullan (site) — Ziyaretçi sepetine ya da ödeme bağlantısına bir hediye kartı ekler: kartın karşıladığı tutar 15 dakika ayrılır ve ödeme adımında karttan düşülür. Boş kod kartı kaldırır.

Gereken izin gift_cards:write · veriyi değiştirir · Yayındaki bir siteden de çağrılabilir (visitor)

Bir web sitesi işlemi: siteniz bunu site API’si üzerinden çağırır (/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).
POSThttps://app.getera.io/api/v1/gift_card_holds/actions/site_apply
API anahtarı ya da OAuth token · gift_cards:write
  • Asıl adres: POST /api/v1/actions/gift_cards.site_apply

Girdi

AlanTürZorunluAçıklama
codestringHediye kartı kodu · en çok 16
basketTokenuuidSepet
payTokenuuidÖdeme bağlantısı

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
basket_not_foundSepet bulunamadı ya da artık açık değil.
pay_link_invalidBu ödeme bağlantısı geçersiz ya da artık açık değil.
nothing_dueÖdenecek bir tutar kalmadı.
gift_card_not_foundBu koda ait bir hediye kartı bulunamadı.
gift_card_inactiveBu hediye kartı devre dışı.
gift_card_expiredBu hediye kartının süresi dolmuş.
gift_card_currency_mismatchKart yalnızca kendi para biriminde öder.
gift_card_insufficient_balanceKartta kullanılabilir bakiye yok (bakiye başka bir ödemede ayrılmış olabilir).

Yayımladığı olaylar: gift_cards.hold_changed

Neye yazar: gift_card_hold (insert) — Holds the part of the card that pays; gift_card_hold (update) — Lets go of an earlier hold on the same checkout

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde gift_cards:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 basket_not_found, pay_link_invalid, nothing_due, gift_card_not_found, gift_card_inactive, gift_card_expired, gift_card_currency_mismatch, gift_card_insufficient_balance · 429 çok sık istek

Veri modelleri

GiftCardEvent

Tablo gift_card_event · Kaynak gift_card_events

  • GET /api/v1/gift_card_events
  • GET /api/v1/gift_card_events/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
gift_card_idstring (uuid) · uuidgift_card
typestring · textissued, bought, updated, activated, deactivated, balance_reset, expiry_date_updated, tags_updated, sent_to_customer, resent, note_added, used_in_order, refunded_in_order, send_requested
currencystring · bpcharen çok 3
amountstring (int64) · int8
balance_afterstring (int64) · int8
source_modulestring · textevet
source_record_idstring (uuid) · uuidevet
idempotency_keystring · textevet
messagestring · textevet
parametersobject · jsonb
actor_user_idstring (uuid) · uuidevetapp_user
occurred_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK ((balance_after >= 0))
  • CHECK ((currency ~ '^[A-Z]{3}$'::text))

GiftCardHold

Tablo gift_card_hold · Kaynak gift_card_holds

  • GET /api/v1/gift_card_holds
  • GET /api/v1/gift_card_holds/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
gift_card_idstring (uuid) · uuidgift_card
target_kindstring · textcheckout, agreement
currencystring · bpcharen çok 3
amountstring (int64) · int8
expires_atstring (date-time) · timestamptz
redeemed_atstring (date-time) · timestamptzevet
released_atstring (date-time) · timestamptzevet
gift_card_event_idstring (uuid) · uuidevetgift_card_event
created_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK ((amount > 0))
  • CHECK ((NOT ((redeemed_at IS NOT NULL) AND (released_at IS NOT NULL))))

GiftCard

Tablo gift_card · Kaynak gift_cards

  • GET /api/v1/gift_cards
  • GET /api/v1/gift_cards/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
codestring · text
is_activeboolean · bool
currencystring · bpcharen çok 3
initial_balance_amountstring (int64) · int8
current_balance_amountstring (int64) · int8
expiry_datestring (date) · dateevet
customer_idstring (uuid) · uuidevetcustomer
issued_to_emailstring · textevet
source_modulestring · textevet
source_record_idstring (uuid) · uuidevet
notestring · textevet
last_used_atstring (date-time) · timestamptzevet
created_by_user_idstring (uuid) · uuidevetapp_user
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK (((length(code) >= 8) AND (length(code) <= 16)))
  • CHECK ((currency ~ '^[A-Z]{3}$'::text))
  • CHECK ((current_balance_amount >= 0))
  • CHECK ((initial_balance_amount >= 0))

Olaylar

İş akışları ve webhook'lar bu olaylara tepki verir.

OlayNe olurTaşıdığı alanlar
gift_cards.hold_changedSite ödemesinde bir hediye kartı kullanıldı ya da kaldırıldı (ödediği kısım ayrıldı).id, kind, amount
gift_cards.issuedBir hediye kartı verildi.id, amount, currency, customerId
gift_cards.redeemedBir hediye kartıyla harcama yapıldı.id, eventId, amount, currency, balance, sourceModule, sourceRecordId, codeTail
gift_cards.refundedBir hediye kartına para geri yüklendi.id, amount, balance, sourceModule, sourceRecordId, idempotencyKey
gift_cards.send_requestedBir hediye kartı birine gönderildi; bildirimler teslim eder.id, eventId, to
gift_cards.status_changedBir hediye kartı etkinleştirildi ya da devre dışı bırakıldı.id, active
gift_cards.updatedBir hediye kartı değiştirildi.id
Bu sayfa yardımcı oldu mu?