Token kartu E-commerce: apa itu dan bagaimana cara kerjanya?

Halo! Baru-baru ini, di Yandex.Checkout, bersama dengan sistem pembayaran Visa dan Mastercard, kami meluncurkan teknologi baru untuk mengurangi pembayaran untuk E-commerce, atau, dengan kata lain, perdagangan online. Seseorang mungkin berpikir: apa yang salah dengan tokenisasi kartu yang sudah diketahui dengan rilis Apple Pay, Google Pay dan * Pay lainnya. Tapi tidak, ini adalah sesuatu yang baru, dan kami adalah yang pertama meluncurkan teknologi ini di Rusia musim semi ini untuk toko mitra, jadi mengapa tidak membagikannya.



Di AS dan Eropa, teknologi ini muncul agak lebih awal, dan pengguna layanan seperti Netflix dan Amazon sudah membayar dengan token E-commerce, meskipun mereka mungkin bahkan tidak mengetahuinya. Dan sekarang saya akan memberi tahu Anda cara kerjanya tidak hanya di luar (untuk mitra dan pemegang kartu), tetapi juga di dalam, dari sudut pandang pengembang dan pemimpin tim proyek ini. Jika Anda tertarik - welsh di bawah kucing.





Apple Pay Google Pay



, , Apple Pay Google Pay ( — *Pay), .



, *Pay , . , , . , , , . — — , .



:



  • , ,
  • .


? E-commerce, , - -.



, E-commerce



, — , .



— (PAN — Primary Account Number) .
Jika pemegang kartu adalah penggagas untuk menghubungkan kartu ke * Bayar, maka toko online memulai tokenization untuk E-commerce. Tetapi mengapa (dan untuk alasan apa)?



Tentunya banyak dari Anda menggunakan layanan berlangganan: baik itu pembayaran bulanan untuk musik, film, atau, misalnya, utilitas. Bagaimana cara berlangganan ini dikeluarkan? Anda pergi ke situs web toko online, masukkan detail kartu Anda dan centang kotak yang mengkonfirmasi persetujuan Anda bahwa toko akan menyimpan detail kartu Anda (PAN dan tanggal kedaluwarsa) dan akan dapat secara mandiri melakukan pembayaran untuk layanan tertentu.



Anda perlu memahami bahwa tindakan seperti itu menyiratkan bahwa toko harus menyimpan data kartu di suatu tempat. Biasanya ada dua opsi:



  1. , PCI DSS, -,
  2. , ., PCI DSS .


Apakah mungkin untuk menerapkan pendekatan tokenization di sini juga? Mengapa tidak menggunakan semacam token alih-alih menyimpan data kartu bank, yang dapat dikelola secara terpisah dari kartu? Tetapi bagaimana jika Anda memastikan bahwa token tetap sama dengan kartu yang diterbitkan kembali berikutnya dan Anda tidak perlu menautkan kembali kartu ke layanan yang berbeda? Kedengarannya penasaran?



Mari kita bicarakan semuanya secara berurutan. Selama tokenization, kami menukar data kartu bank dengan token, tapi apa itu? Token disediakan oleh sistem pembayaran kartu - Mastercard atau Visa. Ini adalah pengidentifikasi unik, mirip dengan nomor akun Apple Pay perangkat atau nomor akun virtual Google Pay, yang dapat ditemukan di aplikasi ponsel cerdas (Wallet di perangkat Apple dan Google Pay di Android).



Tidak seperti * Bayar, dalam tokenisasi E-commerce, pembuatan token memulai toko online atau solusi pembayarannya, dan token itu sendiri disimpan di server sistem pembayaran.



Tentu saja, siapa pun tidak dapat datang ke sistem pembayaran dan menerima token kartu seseorang untuk membayar pembelian. Pertama, hanya solusi pembayaran yang disertifikasi dan menerima persetujuan sistem pembayaran yang dapat membatalkan kartu. Solusi pembayaran semacam itu disebut On-Behalf Token Requestor atau Token Service Provider, tetapi untuk kesederhanaan, selanjutnya kami akan menggunakan istilah Token Requestor.. Dan hanya Token Requestor yang dapat melakukan pembayaran token. Kedua, token selalu dikeluarkan untuk toko tertentu, dan dengan bantuan token Anda hanya dapat membayar di toko itu. Ini sangat mirip dengan bagaimana token * Pay dikaitkan dengan perangkat tempat itu dibuat.



Bagaimana ini dicapai? Hanya saja sebelum melakukan setiap pembayaran pada Token, Pemohon harus mendapatkan persetujuan dari sistem pembayaran untuk pembayaran ini. Fakta persetujuan tersebut perlu disajikan selama pembayaran aktual, oleh karena itu persetujuan ini berbentuk kriptogram satu kali, yang dihasilkan oleh sistem pembayaran kartu. Saat melakukan pembayaran, kriptogram ini ditambahkan ke parameter permintaan ke bank yang mengakuisisi dan kemudian dikirim ke sistem pembayaran, yang memverifikasi keaslian kriptogram ini, yang telah dikeluarkan sebelumnya.



Dan bagaimana dengan manajemen token, terlepas dari manajemen kartu? Di sini, secara umum, semuanya sederhana - token menjalani kehidupannya sendiri, memiliki status siklus hidupnya sendiri, dan Token Requestor segera belajar tentang setiap perubahan status dari sistem pembayaran kartu.



Mari kita simpulkan. Apa yang diberikan tokenization kepada pemegang kartu?



  1. Keamanan data kartu bank nyata. Saat melakukan pembayaran, token digunakan, dan data kartu itu sendiri tidak dikirim, sehingga penyerang potensial tidak dapat mencegatnya. Dan tidak ada gunanya mencegat data token, karena token berubah menjadi labu ketika Anda mencoba membayar di toko lain.
  2. Ketika kartu bank diterbitkan kembali, token yang dikeluarkan untuk toko online tetap valid, dan pemegang kartu tidak perlu menautkan kartu baru ke layanan yang ia butuhkan.
  3. Kemampuan untuk mengontrol token. Token dapat dikelola tanpa mempengaruhi kartu bank itu sendiri. Bank yang menerbitkan akan dapat mengimplementasikan dalam antarmuka mereka alat khusus untuk pengelolaan fleksibel ikatan di toko online (membuat token di toko baru, melihat token yang ada, menghapus yang tidak relevan).


Apa fungsinya untuk belanja online?



  1. Apa yang baik untuk pembelanja juga bagus untuk toko, jadi menggunakan kartu tokenized dapat meningkatkan loyalitas pelanggan.
  2. , . , , . , .
  3. . , . , 88,53%, 97,89%*. , - , - . . , -, , .


* Kami membandingkan pembayaran untuk bulan April ini di bioskop online besar (MCC 4899) - kartu yang terhubung tanpa 3DS, tidak termasuk pembayaran yang gagal karena kurangnya uang pada kartu.

Aspek teknik



Bagi mereka yang ingin menggali lebih dalam, saya akan berbicara tentang teknologi tokenisasi kartu dan peluncurannya di Yandex.Cash - seperti apa semua itu dari bagian dalam solusi pembayaran kami.



Integrasi dengan sistem pembayaran



Untuk mendapatkan kemampuan teknis untuk memberi token pada kartu dan melakukan pembayaran dengan token, Anda perlu berintegrasi dengan Visa dan Mastercard, lulus tes, sertifikasi, dan mendapatkan persetujuan untuk peluncuran dalam produksi. Awalnya terdengar menakutkan. Dan tidak hanya pada awalnya, jujur ​​saja, setidaknya untuk saya. Tetapi sertifikasi itu lebih menakutkan, dan dalam hal teknologi semuanya sangat jelas.



Integrasi menyiratkan implementasi API berikut (secara kondisional) antara sistem pembayaran dan kami sebagai Pemohon Token:



  1. .

    -, . (risk scoring) . , , , . , .
  2. .

    , : — , ? , , . , , .
  3. .

    / , , , , . , .


Deskripsi API ini bersifat kondisional dan umum - mudah ditebak bahwa setiap sistem pembayaran memiliki format permintaan / respons yang berbeda, algoritme untuk menandatangani dan mengenkripsi data dalam permintaan, dan ada nuansa yang berbeda dalam logika bisnis. Karenanya, kami menyembunyikan semua detail dan perbedaan ini dari sistem kami yang lain dengan membuat layanan tokenisasi kartu terpisah, yang merupakan adaptor untuk sistem pembayaran dan bertanggung jawab penuh atas siklus hidup token.



Tokenisasi di Yandex.Cash



Yandex.Kassa adalah sistem besar untuk menerima pembayaran untuk toko online. Ini terdiri dari banyak lusinan layanan berbeda: backend, aplikasi frontend, layanan BI. Mereka memberikan penerimaan pembayaran pengguna dengan berbagai cara, mentransfer dana ke toko, mengelola pembayaran melalui akun pribadi toko, layanan analitis, dan sejenisnya. Dan bagaimana tepatnya tokenisasi kartu di sini?



Pertanyaan utamanya adalah: kapan membuat token untuk kartu bank?

API Yandex.Checkout memungkinkan Anda menyimpan metode pembayaran yang dipilih untuk pembayaran di masa mendatang di masa mendatang, kami menyebutnya pembayaran otomatis .



Ini dapat terjadi baik ketika kartu terhubung ke akun pengguna di akun pribadi toko, dan ketika berlangganan secara berkala, ketika pembayaran dari kartu akan dilakukan secara otomatis. Dalam kedua skenario, saat membuat pembayaran, pedagang menggunakan API untuk meneruskan save_payment_method: parameter sebenarnya , dan setelah pembayaran berhasil, kami menerbitkan merchant payment_method_id - pengidentifikasi metode pembayaran yang disimpan, yang dengannya ia dapat melakukan pembayaran baru.



Ini dia, momen ini. Token dibuat hanya untuk pembayaran yang dilakukan oleh toko. Karenanya, segera setelah melakukan pembayaran sambil menyimpan metode pembayaran, kami secara tidak sinkron mengatur layanan tokenization kami untuk membuat token untuk pasangan "kartu dan toko".



Apa yang dilakukan sistem pembayaran itu sendiri ketika kartu tersebut dipatok?

Mereka beralih ke bank penerbit dengan permintaan untuk membuat token (seperti yang terjadi ketika membuat * token Pembayaran), dan bank mengeluarkan token untuk toko ini. Bank juga dapat memberi tahu pemegang kartu tentang ini dan menampilkan token yang dibuat di akun pribadinya.



Bagaimana cara kerja pembayaran token?



Mungkin, di sini Anda memerlukan beberapa ilustrasi tentang bagaimana pembayaran dengan kartu yang disimpan sebelumnya secara umum, yang memulai toko online:







Jadi, ketika membayar dengan metode yang disimpan sebelumnya, toko hanya mengirimkan ID-nya - payment_method_id . Dengan menggunakan pengidentifikasi ini, layanan pembayaran kartu menemukan data (PAN dan tanggal kedaluwarsa) kartu dan mentransfernya ke salah satu bank yang mengakuisisi, yang kemudian berkomunikasi dengan sistem pembayaran kartu.



Dengan token, langkah lain ditambahkan dalam skenario ini:







Jika kita melihat bahwa token sebelumnya dikeluarkan untuk kartu dan toko, maka kita dapat melakukan pembayaran tanpa menggunakan data kartu. Untuk melakukan ini, melalui layanan tokenization, pertama-tama kami mengirim permintaan ke sistem pembayaran internasional dengan data token dan sebagai tanggapan kami menerima kriptogram satu kali, yang mengkonfirmasi bahwa token itu valid dan kami memiliki hak untuk melakukan pembayaran. Dan setelah itu, kami mentransfer data token bank bersama dengan cryptogram ini ke bank yang mengakuisisi.



Apa yang terjadi dalam skenario ketika pengguna menerbitkan kembali kartu di bank mereka?

Jika token sebelumnya dikeluarkan ke kartu, maka bank penerbit menginformasikan sistem pembayaran Mastercard / Visa bahwa kartu telah diterbitkan kembali. Pada gilirannya, setiap Pemohon Token yang menerbitkan token ke kartu ini akan menerima pemberitahuan dari sistem pembayaran. Ini berisi informasi terbaru tentang kartu: 4 digit terakhir nomor dan tanggal kedaluwarsa baru. Tokennya tetap sama.



Ketika sebuah toko melakukan pembayaran lain dari kartu yang sudah kedaluwarsa, yang sebenarnya diterbitkan ulang, dan kami memiliki token untuk itu untuk toko ini, pembayaran akan berhasil. Selain itu, kami akan menginformasikan toko 4 digit terakhir terakhir dari kartu bank - mereka akan hadir dalam respons API kami. Ini diperlukan agar toko dan pengguna selalu melihat dari mana kartu didebit.



Alih-alih sebuah kesimpulan



Tokenisasi dalam E-commerce adalah tahap baru dalam pengembangan penerimaan pembayaran, meningkatkan kenyamanan bagi semua peserta dari proses pembayaran. Kami berharap bahwa banyak bank dan penyedia Rusia akan mendukung teknologi dalam waktu dekat - dan itu akan menjadi standar baru di pasar pembayaran.



Tentu saja, ceritanya berubah menjadi gambaran umum, tetapi saya berharap setiap pembaca akan menemukan sesuatu yang berguna di dalamnya - ia akan meningkatkan tingkat melek finansial, belajar tentang produk baru di fintech, atau, mungkin, menemukan ide untuk mengembangkan bisnisnya.



Saya semua, sehat dan jangan sakit!



All Articles