Terima transfer bank
Pertama kali Anda menerima pembayaran transfer bank dari pelanggan, Stripe membuat rekening bank virtual untuk mereka, yang kemudian dapat Anda bagikan dengan mereka secara langsung. Semua pembayaran transfer bank mendatang dari pelanggan ini akan dikirim ke rekening bank ini. Di sejumlah negara, Stripe juga memberi Anda nomor referensi transfer unik yang harus disertakan pelanggan pada setiap transfer agar mempermudah pencocokan transfer dengan pembayaran terutang. Sejumlah negara memiliki batas jumlah nomor rekening bank virtual yang dapat dibuat secara gratis.
Anda dapat menemukan gambaran umum tentang langkah-langkah umum saat menerima pembayaran transfer bank dalam diagram urutan berikut:
Menangani kurang bayar dan lebih bayar
Dengan pembayaran transfer bank, dimungkinkan pelanggan mengirimi Anda lebih atau kurang dari jumlah pembayaran yang diharapkan. Jika pelanggan mengirim terlalu sedikit, Stripe mendanai sebagian tujuan pembayaran terbuka. Invoice tidak akan didanai sebagian dan tetap terbuka sampai dana yang masuk menutupi jumlah invoice penuh.
Jika pelanggan mengirim lebih dari jumlah yang diharapkan, Stripe mencoba merekonsiliasi dana yang masuk dengan pembayaran terbuka serta menyimpan sisa jumlah kelebihannya di saldo kas pelanggan. Anda dapat menemukan detail selengkapnya tentang cara Stripe menangani rekonsiliasi di bagian rekonsiliasi dari dokumentasi kami.
Menangani beberapa invoice atau pembayaran terbuka
Anda mungkin memiliki beberapa invoice atau pembayaran terbuka yang dapat dibayar dengan transfer bank. Di penyiapan default, Stripe mencoba untuk secara otomatis merekonsiliasi transfer bank dengan menggunakan informasi seperti kode referensi transfer atau jumlah yang ditransfer.
Anda dapat menonaktifkan rekonsiliasi otomatis serta secara manual merekonsiliasi pembayaran dan invoice sendiri. Anda dapat mengesampingkan perilaku rekonsiliasi otomatis per pelanggan dengan mengatur mode rekonsiliasi ke manual.
Siapkan StripeSisi server
Pertama, Anda membutuhkan akun Stripe. Daftar sekarang.
Gunakan pustaka resmi kami untuk mendapatkan akses ke API Stripe dari aplikasi Anda:
Buat atau ambil PelangganSisi server
Anda harus mengaitkan objek Customer untuk merekonsiliasi setiap pembayaran transfer bank. Jika sudah memiliki objek Customer yang sudah ada, Anda dapat melewati langkah ini. Jika belum, buat objek Customer yang baru.
Buat dan konfirmasikan PaymentIntentSisi server
PaymentIntent adalah objek yang mewakili maksud Anda menagih pembayaran dari pelanggan dan melacak siklus proses pembayaran melalui setiap tahapannya. Buat dan konfirmasikan PaymentIntent di server, dengan menetapkan jumlah dan mata uang yang ingin Anda gunakan untuk menagih.
Perintahkan pelanggan untuk menyelesaikan transfer bankSisi client
Jika saldo pelanggan tidak cukup tinggi untuk menutupi jumlah permintaan, PaymentIntent akan menampilkan status requires_action
. Responsnya memiliki bidang next_action
yang berisi nilai type
dari display_bank_transfer_instructions
. Hash next_action[display_bank_transfer_instructions]
berisi informasi untuk Anda tampilkan kepada pelanggan agar mereka dapat menyelesaikan transfer bank.
Catatan
Dalam mode live, Stripe menyediakan seperangkat detail transfer bank yang unik kepada setiap konsumen. Sebaliknya, Stripe menawarkan detail transfer bank yang tak valid kepada semua pelanggan dalam mode percobaan. Tidak seperti mode live, detail yang tak valid ini tidak selalu unik.
Konfirmasikan PaymentIntent berhasil
PaymentIntent tetap dalam status requires_action
hingga dana masuk di rekening bank. Bila dana siap, status PaymentIntent akan diperbarui dari requires_action
menjadi succeeded
.
Anda perlu menyiapkan endpoint webhook untuk mulai menerima kejadian payment_intent.partially_funded
.
Anda dapat menambahkan webhook dari Dashboard.
Atau, Anda dapat menggunakan Webhook Endpoints API untuk mulai menerima kejadian payment_intent.partially_funded
.
Stripe mengirimkan kejadian berikut selama dana pembayaran mengalir saat kami memperbarui PaymentIntent.
Kejadian | Keterangan | Langkah berikutnya |
---|---|---|
payment_intent.requires_action | Dikirim selama konfirmasi bila saldo pelanggan tidak memiliki cukup dana untuk merekonsiliasi PaymentIntent, PaymentIntent berubah menjadi requires_action . | Perintahkan pelanggan Anda untuk mengirim transfer bank dengan amount_remaining . |
payment_intent.partially_funded | Pelanggan mengirim transfer bank yang diterapkan pada PaymentIntent, tetapi tidak cukup untuk menyelesaikan pembayaran. Hal ini dapat terjadi karena pelanggan mentransfer jumlah yang tidak mencukupi (karena kesalahan kurang bayar atau biaya yang di-charge oleh bank mereka) atau karena saldo pelanggan yang tersisa telah diterapkan pada PaymentIntent ini. PaymentIntents yang didanai sebagian tidak tercermin di saldo akun Anda hingga pembayaran selesai. | Instruksikan pelanggan Anda untuk mengirim transfer bank lain dengan amount_remaining baru untuk menyelesaikan pembayaran. Jika Anda ingin menyelesaikan pembayaran dengan dana yang diterapkan sebagian, Anda dapat memperbarui amount dan konfirmasikan PaymentIntent kembali. |
payment_intent.succeeded | Pembayaran pelanggan berhasil. | Penuhi barang atau layanan yang dibeli oleh pelanggan. |
Peringatan
Bila Anda mengubah jumlah PaymentIntent yang didanai sebagian, dana akan dikembalikan ke saldo pelanggan. Jika PaymentIntent lain terbuka, Stripe akan mendanainya secara otomatis. Jika pelanggan dikonfigurasikan untuk rekonsiliasi manual, Anda perlu menerapkan dana lagi.
Kami merekomendasikan penggunaan webhook untuk mengonfirmasikan bahwa charge telah berhasil dan memberi tahu pelanggan bahwa pembayaran telah selesai.
Kode sampel
Lihat pembayaran yang menunggu di Dashboard
Anda dapat melihat semua PaymentIntents transfer bank yang tertunda di Dashboard dengan menerapkan filter Menunggu pendanaan ke Status.
Coba integrasi Anda
Anda dapat mencoba integrasi dengan menyimulasikan transfer bank yang masuk menggunakan Dashboard atau permintaan HTTP.
Dengan Dashboard
Untuk menyimulasikan transfer bank menggunakan Dashboard, buka halaman pelanggan di Dashboard. Di bagian Metode pembayaran, klik Tambah dan pilih Danai saldo kas (hanya mode percobaan).
Dengan Stripe API
Anda dapat melakukan panggilan API untuk menyimulasikan transfer bank.
Menangani masalah ketersediaan sementara
Kode kesalahan berikut mengindikasikan masalah sementara pada ketersediaan metode pembayaran:
Kode | Keterangan | Penanganan |
---|---|---|
payment_method_rate_limit_exceeded | Ada terlalu banyak permintaan yang dibuat dalam waktu berdekatan untuk metode pembayaran ini, yang memiliki batas lebih ketat daripada batas nilai di seluruh API. | Kesalahan ini dapat bertahan untuk beberapa permintaan API saat banyak pelanggan Anda mencoba menggunakan metode pembayaran yang sama, seperti saat obral yang sedang berlangsung di situs web Anda. Dalam kasus ini, minta pelanggan Anda untuk memilih metode pembayaran lain. |
Peringatan
Jika Anda mengantisipasi penggunaan berat secara umum atau karena kejadian mendatang, hubungi kami segera setelah Anda mengetahuinya.