Kripto Ödeme Mutabakatı: Stablecoin Faturalarını Siparişlerle Eşleştirme

Kripto Ödeme Mutabakatı: Stablecoin Faturalarını Siparişlerle Eşleştirme

Bir kart ödemesi, siparişi zaten belirten bir kart takas/mutabakat raporu aracılığıyla defterlerinize ulaşır. Bir USDC transferi ise size yalnızca bir adres, bir tutar ve bir işlem hash'i ile ulaşır; başka bir bilgi taşımaz. Kripto ödeme mutabakatı, fatura işletmenin referansını taşıdığında işe yarar, çünkü transfer bunu taşıyamaz.

Bu rehber, stablecoin kabul edip euro cinsinden tahsilat yapan satıcılar, PSP'ler ve EMI'lerdeki finans ve operasyon ekipleri içindir. Her fatura kaydının hangi alanlara ihtiyaç duyduğunu, kısmi ve yanlış coin ile yapılan ödemelerin nasıl ele alınacağını, webhook'ların ve API'nin defteri nasıl beslediğini ve tüm bunları ne kadar süre saklamanız gerektiğini belirleyen AB kurallarını açıklar.

Video özeti, 119 saniye, İngilizce.

Önemli anlar

Kısaca

  • Bir ERC-20 transferi yalnızca gönderen, alıcı ve tutarı taşır. Sipariş referansı ödemede değil, faturada bulunmalıdır.
  • Faturayı EUR cinsinden fiyatlandırın ve bu euro tutarını kaydedin. Kripto tutarı, denetim izi için sakladığınız türetilmiş bir sayıdır.
  • İşin büyük kısmı istisnalarda yoğunlaşır: kısmi ödemeler, süresi dolmuş faturalar, yanlış coin. Bunları ay sonunda değil, her gün gözden geçirin.
  • Webhook'u tetikleyici olarak kullanın, gerçek kaynak olarak faturayı kimliğiyle yeniden okuyun ve güvenlik ağı ile CSV dışa aktarımınızın kaynağı olarak fatura listesini her gece çekin.

Kripto ödeme mutabakatı neden kartlardan daha zor?#

Kripto ödeme mutabakatı daha zordur, çünkü bir blokzincir transferinin sipariş numaranız için bir alanı yoktur. Ethereum'da, ERC-20 token standardı (EIP-20) transfer olayını `Transfer(address _from, address _to, uint256 _value)` olarak tanımlar: kim gönderdi, kim aldı ve ne kadar. Not alanı, fatura numarası ya da müşteri adı yoktur.

Banka ve kart ödemeleri ters yönde kurgulanmıştır. Bir SEPA transferinde ödeyenin dolduracağı bir açıklama alanı vardır ve bir acquirer'ın kart takas/mutabakat raporu her kart işlemini satıcı referansınızla listeler. Muhasebe sisteminiz bu referansa göre eşleştirme yapar.

Stablecoin'lerde üç şey daha işi zorlaştırır:

  • Tutar nadiren yuvarlaktır. USDC cinsinden fiyatlandırılan 250 EUR'luk bir fatura 279,2846 USDC gibi bir rakama dönüşür; bu nedenle benzer büyüklükteki iki fatura birbirine benzeyebilir.
  • Ödeme hemen kesinleşmez. Ethereum her 12 saniyede bir blok üretir, ancak ethereum.org'a göre (sayfa Ekim 2026'da güncellendi) "bir Ethereum bloğunun kesinleşmesi yaklaşık 15 dakika sürer." Bir transfer görünür olabilir ve yine de sayılmayabilir.
  • Ödeyenler hata yapar. Eksik gönderir, iki kez gönderir, farklı bir coin gönderir ya da fatura süresi dolduktan sonra öder.

Bu nedenle bağlantı, ödeme yapılmadan önce kurulmalıdır: her sipariş için bir fatura, siparişinizin kimliğini ve kendi ödeme adresini taşıyan bir fatura. Böylece gelen her transfer, neyin ödemesi olduğunu zaten bilen bir kayda düşer.

Her kripto fatura kaydında hangi alanlar bulunmalı?#

Her faturada dört şeyi birbirine bağlayan sabit bir alan seti bulunmalıdır: siparişiniz, euro fiyatı, zincir üstü transfer ve nihai durum. Bunlardan biri eksikse, birisi eşleştirmeyi elle yapmak zorunda kalır. Aşağıdaki tablo ItisPay fatura API'sinin alan adlarını kullanır; diğer sağlayıcılar aynı kavramlar için farklı adlar kullanabilir.

AlanİçeriğiMuhasebenin neden ihtiyaç duyduğu
invoice_idSağlayıcının atadığı benzersiz kimlikHer arama ve her defter satırı için birincil anahtar
order_idSiparişiniz veya sözleşme numaranız; sipariş başına benzersizERP, mağaza veya CRM'nize bağlantı; kartlarda ek çaba gerektirmeden gelen referans
order_nameSiparişin kısa açıklamasıBir kişinin mağazayı açmadan bir istisnayı kontrol etmesini sağlar
fiat_amount, fiat_currencyEUR cinsinden fiyatKaydettiğiniz gelir rakamı
currency, crypto_amountFaturalandırılan coin ve ödenmesi gereken tutarÖdeyenden ne göndermesinin istendiğini gösterir
actual_crypto_amount_paidGerçekte ne ulaştıEksik ve fazla ödemeyi tespit eder
currency_paidKullanılan coin, faturalandırılandan farklıysaYanlış coin ile yapılan ödemeleri inceleme için işaretler
network, addressBlokzincir ağı ve ödeme adresiParanın nereye gönderildiğini kanıtlar; her izleme veya iade için gereklidir
transactions (tx_hash, amount, status)Gelen her transfer için bir satırBir fatura birden fazla transfer alabilir; her hash zincir üstü kanıtınızdır
statusnew, pending, completed, expired, cancelled, paid_partialKaydedip kaydetmeyeceğinize, göndermeye, takip etmeye veya kapatmaya karar verir
created_at, updated_at, expires_atZaman damgalarıAy sonu kesim tarihi ve siparişin ne zaman ödendiğinin kanıtı

Bunların ikisi işin büyük kısmını yapar. `order_id`, bir blokzincir transferinin taşıyamayacağı referanstır; bu nedenle onu kendi sisteminizden ayarlayın ve her müşteri için değil, her sipariş için benzersiz tutun. `transactions` listesi önemlidir, çünkü bir fatura her zaman tek seferde ödenmez: her transfer kendi hash'i ve durumuyla kendi satırını alır, böylece ödenen tutarı hangi transferlerin oluşturduğunu görebilirsiniz.

Kripto tutarını tüm ondalıklarıyla ayrı bir sütunda saklayın. Genel defteriniz euro sentleriyle çalışır; kripto sütunları ise defter değeri değil, kanıttır.

ItisPay fatura listesi; her sipariş için sipariş numarası, durum, USDC tutarı, EUR toplamı, alınan pay, ağ ve adres gösteriliyor (demo verileri)

Deftere hangi euro tutarı işlenmeli?#

Deftere faturadaki euro fiyatını işleyin. Fatura EUR cinsinden kesildiğinde sağlayıcı, güncel kur üzerinden bunu bir kripto para tutarına çevirir ve ödeyen bu tutarı gönderir. Ödeme hesabınıza euro olarak aktarılırsa, faturadaki euro tutarı gelirinizdir; kripto tutarı ise paranın nasıl geldiğine dair teknik bir ayrıntıdır.

Bu, EUR'ya dönüşümle kripto ödemelerini otomatik olarak kabul eden ekiplerin kripto muhasebesine neredeyse hiç ihtiyaç duymamasının başlıca nedenidir: ay sonunda değerlemesi gereken bir coin bilançoda bulunmaz.

Stablecoin'leri elinizde tutarsanız bu değişir. IFRS Yorumlama Komitesi Haziran 2019'da, kripto varlıkların işletmenin olağan faaliyetleri çerçevesinde satış amacıyla tutulması hâlinde IAS 2 (stoklar), aksi hâlde IAS 38 (maddi olmayan duran varlıklar) kapsamına girdiğine karar verdi. Kripto para tanımı, sahibi ile bir başka taraf arasında sözleşme yaratan varlıkları dışarıda bırakır. USDC farklıdır: Circle, USDC'nin “ABD doları karşılığında 1:1 itfa edilebilir” olduğunu belirtir ve Temmuz 2024'ten itibaren Circle, Fransız düzenleyici kurum ACPR'nin verdiği elektronik para lisansı kapsamında AB'de USDC ve EURC'yi e-para token'ları olarak ihraç etmektedir. Elinizdeki bir stablecoin'in nasıl sınıflandırılacağı denetçinize ait bir sorudur. Alındığı anda EUR'ya çevirmek bu soruyu gündemden çıkarır.

Kısmi ödemeler ve yanlış coin durumunda ne yapılır?#

`completed` olmayan her faturayı, sahibi ve son tarihi olan bir istisna olarak ele alın. Kripto ödeme mutabakatı çabasının büyük kısmı burada yoğunlaşır; tamamen ödenmiş bir fatura kendiliğinden eşleşir.

ItisPay durumlarını kullanarak, her durumun finans açısından ne anlama geldiğini şöyle özetleyebiliriz:

DurumNe olduFinans ne yaparTeslim mi, serbest bırakma mı?
newFatura açık, hiçbir şey alınmadıKaydedilecek bir şey yokHayır
pendingBir transfer görüldü, henüz kesinleşmediDurumun değişmesini bekleyinHayır
completedTam olarak ödendiGeliri EUR fiyatıyla kaydedin, siparişi serbest bırakınEvet
paid_partialTutarın bir kısmı ulaştıKalanı isteyin, iade edin veya anlaşmayla kapatınDuruma göre
expiredTam ödeme yapılmadan süre dolduSiparişi kapatın; geç gelen transferleri kontrol edinHayır
cancelledFaturayı siz iptal ettinizMuhasebe kaydı yapılmaz; müşteri hâlâ ödemek isterse faturayı yeniden oluşturunHayır

Kısmi ödemeler#

Kısmi bir ödeme genellikle ödeyenin cüzdanının veya borsasının tutardan ücret kesmesi ya da ödeyenin tutarı yanlış girmesi anlamına gelir. ItisPay her transferi ayrı kaydeder; bu nedenle ikinci bir transfer faturayı tamamlayabilir. Faturada ayrıca `allowed_error_percent` ayarı bulunur: fatura bazında belirlenen küçük bir tolerans payıdır; böylece küçük bir farkla eksik kalan bir ödeme yine de ödenmiş sayılır. Bunu bir kez politika olarak belirleyin; örneğin banka transferinde de silebileceğiniz bir düzeyde olsun ve vaka vaka değiştirmeyin.

Kalan tutar hiç gelmezse, sabit bir gün sayısı içinde karar verin: eksik tutarı kabul edip silin, gelen tutarı iade edin veya siparişi iptal edin. Ödenmiş bir siparişin arkasında neden daha az para olduğunu denetçinin görebilmesi için kararı fatura kaydına yazın.

Yanlış coin veya geç ödeme#

Ödeyen faturada yazılandan farklı bir stablecoin gönderdiğinde, `currency_paid` alanı bunu gösterir. Bunu otomatik olarak kaydetmeyin: tutarı ve euro değerini kontrol edin, ardından kabul edin veya iade edin. Süresi dolmuş bir faturaya yapılan transfer de benzerdir. Para zincir üzerindedir, ancak siparişiniz kapanmıştır; bu nedenle birinin siparişi yeniden açıp açmayacağına ya da parayı geri göndereceğine karar vermesi gerekir. Siparişi sizin tarafınızda iptal ederseniz, geç bir ödeme gelmeden önce kayıtlarınızın faturayı kapalı göstermesi için faturayı API üzerinden iptal edin (durum güncellemesi).

Webhook'lar ve API kripto ödeme mutabakatını nasıl beslemeli?#

Üç katman kullanın: webhook bir şeyin değiştiğini söyler, faturanın yeni bir okuması neyin doğru olduğunu söyler, tüm faturaların gece çekilen listesi ise ilk ikisinin kaçırdığı her şeyi yakalar.

  1. Her faturada bir `callback_url` bulunabilir; sağlayıcı durum güncellemelerini buraya gönderir. Mesajı bir tetikleyici olarak ele alın, kanıt olarak değil.
  2. Her webhook'ta `GET /invoices/{invoice_id}` çağrısı yapın ve yanıttaki durum ile tutarlara göre hareket edin. API çağrısı API anahtarınızı gerektirdiğinden, bu adım uç noktanıza yapılan sahte veya tekrar oynatılmış çağrılara karşı sizi korur.
  3. İşleyiciyi idempotent yapın: aynı durum iki kez gelebilir. Defter kaydınızı `invoice_id` ile durumun birleşimine göre anahtarlayın; böylece tekrar eden bir kayıt hiçbir şeyi değiştirmez.
  4. Her gece, `updated_at` alanına göre sıralanmış tüm faturaları en yeniden en eskiye doğru listeleyin ve son çalıştırmanıza kadar sayfalayın; ayrıca hâlâ `new`, `pending` veya `paid_partial` durumundaki her faturayı yeniden kontrol edin. Bunları defterinizle karşılaştırın. Sağlayıcının kayıtlarında ödenmiş ama sizin defterinizde açık görünen her fatura bir istisnadır.

Test için ItisPay, bir faturanın durum değişikliğini simüle eden bir uç nokta ile `invoice_id` veya `order_id` ile son webhook'u yeniden gönderen bir uç nokta sunar. Sunucunuz kapalıysa yeniden göndermeyi kullanın. Birden çok ödeme yöntemini tek bir ödeme orkestrasyonu katmanı üzerinden yönlendiren ekipler aynı deseni her ödeme kanalına uygular.

Stablecoin ödemesini bir siparişle eşleştiren beş adım: sipariş kimliğine sahip fatura, zincir üzerinde transfer, webhook, fatura kimliğiyle yeniden okuma, EUR cinsinden defter satırı

Muhasebe için CSV dışa aktarımı nasıl oluşturulur?#

Dışa aktarımı fatura listesi API'sinden oluşturun: her fatura için bir satır ve her transfer için bir satır. ItisPay'de `GET /invoices` durum, coin ve oluşturulma tarihine göre filtreler, tarihe veya tutara göre sıralar ve sayfa sayısıyla birlikte sayfa başına en fazla 100 fatura döndürür. Küçük bir script, bir gün veya bir ay için sayfaları gezebilir ve yukarıdaki alan tablosundaki sütunları yazabilir.

İki dosya, tek dosyadan daha iyi işe yarar:

  • `invoices.csv`: invoice_id, order_id, fiat_amount, fiat_currency, currency, crypto_amount, actual_crypto_amount_paid, status, created_at, updated_at. Muhasebeci bu dosyayı içe aktarır ve satışlarla eşleştirir.
  • `transfers.csv`: invoice_id, tx_hash, amount, currency, transfer durumu, zaman. Bu dosya, denetçi için kanıt dosyasıdır.

Fatura dosyasını, kart ödemesi tahsilat raporunu içe aktardığınız gibi muhasebe aracınıza aktarın: sipariş başına bir satır, euro cinsinden, eşleştirme anahtarı olarak sipariş kimliği.

Kripto ödeme kayıtlarını hangi AB kuralları şekillendirir?#

Bağlamı üç AB kuralı belirler. Bunlardan hiçbiri tüccarı kripto varlık hizmet sağlayıcısı (CASP) yapmaz, ancak hangi verilerin var olacağını ve ne kadar süreyle saklanacağını belirlerler.

  • Fon Transferi Tüzüğü (AB) 2023/1113. 30 Aralık 2024'ten itibaren, ödeyicinin kripto varlık hizmet sağlayıcısı her transferin, ödeyici ve alıcıya ilişkin bilgilerle, örneğin adlar ve defter adresleriyle birlikte gönderilmesini sağlamak zorundadır (Madde 14). Veri, transferin içinde değil, yanında seyahat eder. Kendi kendine barındırılan bir cüzdana veya bu cüzdandan yapılan 1.000 EUR'yu aşan transferler için ilgili taraftaki sağlayıcı, o cüzdanın kendi müşterisine ait olup olmadığını değerlendirmek zorundadır (Madde 14 ve 16). Bu, lisanslı sağlayıcının görevidir ve bir ödemenin incelemede beklemesinin nedenlerinden biridir.
  • Kayıt tutma. Mevcut AML Direktifi (AB) 2015/849'un 40. maddesine göre yükümlü kuruluşlar, işlem kayıtlarını iş ilişkisi sona erdikten veya işlem gerçekleştikten sonra beş yıl boyunca saklar. Yeni AML Tüzüğü (AB) 2024/1624, beş yıllık süreyi korur (Madde 77) ve 10 Temmuz 2027'den itibaren uygulanır.
  • DAC8, Direktif (AB) 2023/2226. 1 Ocak 2026'dan itibaren kripto varlık hizmet sağlayıcıları, kullanıcılarının kripto işlemlerini vergi otoritelerine bildirir. Kendi kayıtlarınız, sağlayıcınızın bildirdikleriyle uyuşmalıdır.

Lisanslı bir ortak üzerinden çalışıyorsanız, ortak MiCA ve bu kurallar kapsamındaki CASP yükümlülüklerini üstlenir. Bu konu, MiCA CASP lisansı rehberimizde anlatılmaktadır. Yine de sipariş kayıtlarınızı ve kendi tarafınızdaki izi tutmaya devam edersiniz.

Kripto mutabakatında hâlâ insan gerektiren noktalar nerede?#

Otomasyon, tam ödenmiş durumu yönetir. Geri kalanı için adı belli bir sorumlu kişi ve kısa bir yazılı politika gerekir.

Nerede işe yaramaz

  • İadeler geri alma değil, yeni giden transferlerdir. Bir adrese veya IBAN'a ödeme ve kendi kayıtlarını gerektirirler.
  • Bir borsa hesabından gönderen ödeyici, gönderen adresiyle her zaman tanımlanamaz. Eşleştirmeyi yalnızca faturaya göre yapın, asla göndericiye göre yapmayın.
  • Süresi dolmuş faturaya yapılan ödemeler, mükerrer ödemeler ve yanlış coinlerin tümü bir insan kararı gerektirir.
  • Ağ ücretleri ve yuvarlama küçük farklara yol açar. Bir tolerans sınırını bir kez belirleyin ve buna bağlı kalın.

Beş adımda günlük kripto ödeme mutabakat rutini#

Kısa bir günlük rutin, ay sonu kapanışını bir formalite haline getirir:

  1. API'den son çalıştırmadan bu yana oluşturulan veya güncellenen faturaları çekin ve fatura ile transfer dosyalarını güncelleyin.
  2. Her `completed` faturanın mağazanızda veya ERP'nizde eşleşen ödenmiş bir siparişi olduğunu kontrol edin ve tersini de kontrol edin.
  3. İstisna listesini işleyin: `paid_partial`, süresi dolmuş faturalara yapılan ödemeler, yanlış coinler. Her birini yazılı bir kararla kapatın.
  4. Banka hesabınıza gelen euro tahsilatını, dönem için tamamlanmış faturaların toplamıyla eşleştirin. IBAN'ınıza yapılan tahsilat, sanal IBAN'lar sayesinde akışları iş kolu bazında ayırmada yardımcı olur.
  5. Her iki dosyayı en az beş yıl boyunca arşivleyin.

Bu altyapıyı kendiniz kurmadan stablecoin kabul etmek ve euro almak istiyorsanız, ItisPay API'yi, faturalandırmayı ve mutabakat verilerini sağlar: fatura ve sipariş kimlikleri, transfer başına hash'ler, durumlar ve webhook'lar. Lisanslama, KYC ve IBAN'ınıza tahsilat, AB lisanslı CASP + Ödeme Kuruluşu ortağımız aracılığıyla yürütülür ve çoğu ekip KYB'den ilk işleme bir haftadan kısa sürede geçer.

Bu makale yalnızca bilgilendirme amaçlıdır ve hukuki veya düzenleyici tavsiye niteliği taşımaz.

Sık Sorulan Sorular

Müşteri bir USDC transferine sipariş numarası koyabilir mi?

Standart bir ERC-20 transferinde hayır: yalnızca gönderen, alıcı ve tutar taşınır. Sipariş numarasını faturaya yazın ve her faturaya kendi ödeme adresini verin.

Müşteri aynı faturayı iki kez öderse ne olur?

İkinci transfer, faturada fazladan bir işlem olarak görünür; bu nedenle ödenen tutar fiyattan yüksektir. Bunu bir fazla ödeme istisnası olarak ele alın: müşteriyle teyit edin, ardından fazla tutarı yeni bir giden transfer olarak iade edin ve aynı faturaya kaydedin.

Kripto tutarını mı yoksa euro tutarını mı kaydetmeliyiz?

Ödeme euro olarak tahsil edildiğinde faturadaki euro fiyatını kaydedin. Kripto tutarını, coin'i, ağı ve işlem hash'ini kanıt olarak ayrı sütunlarda tutun. Stablecoin'leri bunun yerine elinizde tutuyorsanız, muhasebe uygulamasını önce denetçinizle netleştirin.

Kripto ödeme kayıtları ne kadar süreyle saklanmalıdır?

En az beş yıl için planlayın. Bu, AB para aklamayla mücadele kurallarının yükümlü kuruluşların tuttuğu işlem kayıtları için belirlediği süredir; ulusal vergi mevzuatı daha uzun süre gerektirebilir. Fatura dosyasını, transfer dosyasını ve istisnalara ilişkin kararları birlikte saklayın.

Stablecoin ödemeleri Xero, NetSuite veya QuickBooks'a aktarılabilir mi?

Evet, içe aktarılan bir dosya olarak. Ödenmiş her fatura için euro cinsinden, sipariş numaranızla birlikte bir satır dışa aktarın ve kart ödemesi tahsilat raporunu içe aktardığınız gibi içe aktarın. İşlem hash'leri ayrı bir kanıt dosyasına girer.

Nik Perkov

Nik Perkov

Founder, ItisPay

Share this article:

The newsletter for crypto entrepreneurs

Join founders and innovators exploring crypto payments. Get insights, product updates, and stories from businesses building the future of digital commerce.

Unsubscribe anytime. By entering your email, you agree to receive marketing emails from ItisPay. By proceeding, you agree to the Terms and Conditions and Privacy Policy.

Ready to launch stablecoin-first payments under your brand?

Stablecoin-first infrastructure with 1:1 EUR/USD backing. Deploy in 1 week. Built for high-volume PSPs and neobanks with zero volatility risk.