Lewati ke konten
Buat akun
atau
Masuk
Logo Dokumen Stripe
/
Tanya AI
Buat akun
Masuk
Mulai
Pembayaran
Pendapatan
Platform dan situs belanja online
Manajemen uang
Sumber daya pengembang
Gambaran Umum
Tentang pembayaran Stripe
Upgrade integrasi Anda
Analitik pembayaran
Pembayaran online
Gambaran umumTemukan contoh penggunaan AndaPembayaran Terkelola
Gunakan Payment Links
Buat halaman checkout
Bangun integrasi lanjutan
Bangun integrasi dalam aplikasi
Metode Pembayaran
Tambahkan metode pembayaran
    Gambaran umum
    Opsi integrasi metode pembayaran
    Kelola metode pembayaran default di Dashboard
    Tipe metode pembayaran
    Kartu
    Bayar dengan saldo Stripe
    Kripto
    Debit bank
    Halaman pembayaran bank
    Transfer bank
      Terima pembayaran
      Saldo pelanggan
      Pengembalian dana
    Transfer kredit (Sumber)
    Beli sekarang, bayar nanti
    Pembayaran real-time
    Voucher
    Dompet
    Aktifkan metode pembayaran lokal menurut negara
    Metode pembayaran custom
Kelola metode pembayaran
Checkout lebih cepat dengan Link
Antarmuka pembayaran
Payment Links
Checkout
Web Elements
Elements dalam aplikasi
Skenario pembayaran
Tangani beberapa mata uang
Alur pembayaran custom
Akuisisi fleksibel
Orkestrasi
Pembayaran di tempat
Terminal
Di luar pembayaran
Dirikan perusahaan Anda
Kripto
Financial Connections
Climate
BerandaPembayaranAdd payment methodsBank transfers

Terima transfer bank

Gunakan Payment Intents API untuk menerima pembayaran 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.

Ketika pelanggan membayar kurang:

Ketika pelanggan membayar lebih:

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 Stripe
Sisi server

Pertama, Anda membutuhkan akun Stripe. Daftar sekarang.

Gunakan pustaka resmi kami untuk mendapatkan akses ke API Stripe dari aplikasi Anda:

Command Line
Ruby
# Available as a gem sudo gem install stripe
Gemfile
Ruby
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Buat atau ambil Pelanggan
Sisi server

Anda harus mengaitkan objek Pelanggan untuk merekonsiliasi setiap pembayaran transfer bank. Jika sudah memiliki objek Pelanggan, Anda dapat melewati langkah ini. Jika belum, buat objek Pelanggan yang baru.

Command Line
cURL
curl -X POST https://api.stripe.com/v1/customers \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"

Buat dan konfirmasikan PaymentIntent
Sisi 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. Anda juga harus mengisi parameter pelanggan dari permintaan pembuatan PaymentIntent. Transfer bank tidak tersedia di PaymentIntents tanpa pelanggan.

Sebelum membuat Payment Intent, pastikan untuk mengaktifkan Transfer bank di halaman pengaturan metode pembayaran Dashboard Anda.

Catatan

Dengan Metode pembayaran dinamis, Stripe menangani pengembalian metode pembayaran yang memenuhi syarat berdasarkan faktor-faktor, seperti jumlah transaksi, mata uang, dan alur pembayaran.

Command Line
cURL
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=1099 \ -d customer=
{{CUSTOMER_ID}}
\ -d currency=usd \ -d "automatic_payment_methods[enabled]"=true \ --data-urlencode return_url="https://example.com/return_url" \ -d "payment_method_data[type]"=customer_balance \ -d confirm=true

Di versi terbaru API, menentukan parameter automatic_payment_methods bersifat opsional karena Stripe mengaktifkan fungsionalitasnya secara default.

Jika pelanggan sudah memiliki saldo yang cukup tinggi untuk menutupi jumlah pembayaran, PaymentIntent langsung berhasil dengan status succeeded. Pelanggan dapat memperoleh saldo bila secara tidak sengaja membayar lebih untuk suatu transaksi—kejadian umum dengan transfer bank. Anda harus merekonsiliasi saldo pelanggan dalam periode tertentu berdasarkan lokasi Anda.

Perintahkan pelanggan untuk menyelesaikan transfer bank
Sisi client

Jika saldo pelanggan tidak cukup untuk menutupi jumlah permintaan, PaymentIntent akan menampilkan status requires_action. Tanggapan memiliki bidang next_action yang berisi nilai type display_bank_transfer_instructions. Hash next_action[display_bank_transfer_instructions] berisi informasi untuk Anda tampilkan kepada pelanggan agar dapat menyelesaikan transfer bank. Untuk memastikan penyelesaian dana, instruksikan pelanggan Anda untuk menggunakan detail persis yang diberikan, terutama untuk nama akun dan nomor akun, jika ada.

Catatan

Dalam mode live, Stripe menyediakan seperangkat detail transfer bank yang unik kepada setiap konsumen. Sebaliknya, Stripe menawarkan detail transfer bank yang tidak valid kepada semua pelanggan di lingkungan percobaan. Tidak seperti mode live, detail yang tidak valid ini tidak selalu unik.

BidangKeterangan
typeTipe transfer bank yang akan digunakan. Tipe harus berupa us_bank_transfer di AS.
referenceKode referensi unik untuk mengidentifikasi transfer bank. Instruksikan pelanggan Anda untuk memasukkan kode ini di bidang referensi transfer bank mereka.
amount_remainingSisa jumlah yang perlu ditransfer untuk menyelesaikan pembayaran. Instruksikan pelanggan Anda untuk mentransfer jumlah ini. Ini mungkin berbeda dari jumlah PaymentIntent jika dana yang sudah ada sebelumnya di saldo pelanggan diterapkan ke PaymentIntent atau jika pelanggan Anda kurang bayar.
currencyMata uang untuk sisa jumlah.
financial_addressesDaftar alamat keuangan untuk rekening bank AS. Tipe mencakup aba dan swift. Lihat di bawah untuk detailnya.
hosted_instructions_urlTautan ke halaman yang di-hosting dan memandu pelanggan Anda menyelesaikan transfer.

hash aba

Contoh hash aba:

{ "aba": { "account_number": "111222333444", "bank_name": "Wells Fargo Bank, NA", "routing_number": "444555666" }, "supported_networks": [ "ach", "domestic_wire_us" ], "type": "aba" }
BidangNilaiKeterangan
typeabaTipe alamat keuangan.
supported_networks
  • ach
  • domestic_wire_us
Daftar jaringan yang didukung oleh alamat ini.
aba.account_number111222333444Nomor rekening ABA.
aba.routing_number444555666Nomor routing ABA.
aba.bank_nameWells Fargo Bank, NANama bank.

hash swift

Contoh hash swift:

{ "swift": { "account_number": "111222333444", "bank_name": "Wells Fargo Bank, NA", "swift_code": "AAAA-BB-CC-123" }, "supported_networks": [ "swift" ], "type": "swift" }
BidangNilaiKeterangan
typeswiftTipe alamat keuangan.
supported_networks
  • swift
Daftar jaringan yang didukung oleh alamat ini.
swift.account_number111222333444Nomor rekening SWIFT.
swift.swift_codeAAAA-BB-CC-123Kode SWIFT.
swift.bank_nameWells Fargo Bank, NANama bank.

Pengaturan waktu penyelesaian

Setelah menginstruksikan pelanggan Anda untuk memprakarsai transfer dengan bank mereka menggunakan informasi yang Anda berikan, diperlukan waktu hingga 5 hari untuk menyelesaikan transfer. Waktu penyelesaian bergantung pada jaringan perbankan yang dilalui masuknya transfer ke Stripe:

  • Transfer ACH tiba dalam waktu 1–3 hari kerja.
  • Transfer kawat domestik (Fedwire) tiba pada hari yang sama (tergantung apakah transfer dikirim sebelum batas waktu bank).
  • Transfer kawat internasional (SWIFT) tiba dalam waktu 1–5 hari kerja.

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.

KejadianKeteranganLangkah berikutnya
payment_intent.requires_actionDikirim 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_fundedPelanggan 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.succeededPembayaran 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

Ruby
require 'json' # Using Sinatra post '/webhook' do payload = request.body.read event = nil begin event = Stripe::Event.construct_from( JSON.parse(payload, symbolize_names: true)

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 di sandbox, buka halaman pelanggan di Dashboard. Pada Metode pembayaran, klik Tambahkan dan pilih Danai saldo kas (hanya percobaan).

Dengan Stripe API

Anda dapat melakukan panggilan API untuk menyimulasikan transfer bank.

Command Line
cURL
curl https://api.stripe.com/v1/test_helpers/customers/ic_xxxxxxxxx/fund_cash_balance \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=1000 \ -d currency=usd \ -d reference=REF-4242

Menangani masalah ketersediaan sementara

Kode kesalahan berikut mengindikasikan masalah sementara pada ketersediaan metode pembayaran:

KodeKeteranganPenanganan
payment_method_rate_limit_exceededAda terlalu banyak permintaan yang dibuat dalam waktu berdekatan untuk metode pembayaran ini, yang memiliki batas lebih ketat daripada batas rasio API secara keseluruhan.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.

OpsionalMengumpulkan opsi metode pembayaran dari pelanggan Anda

OpsionalKirim email instruksi pembayaran

Apakah halaman ini membantu?
YaTidak
Butuh bantuan? Hubungi Tim CS.
Bergabunglah dengan program akses awal kami.
Lihat log perubahan kami.
Ada pertanyaan? Hubungi Bagian Penjualan.
LLM? Baca llms.txt.
Dijalankan oleh Markdoc