# Charges API versus Payment Intents API Pelajari tentang perbedaan antara dua API pembayaran inti Stripe dan saat untuk menggunakannya. ## Memahami API pembayaran Stripe Kini ada tiga cara untuk menerima pembayaran di Stripe: - Stripe Checkout - Charges API - *Payment Intents API* (The Payment Intents API tracks the lifecycle of a customer checkout flow and triggers additional authentication steps when required by regulatory mandates, custom Radar fraud rules, or redirect-based payment methods) [Stripe Checkout](https://docs.stripe.com/payments/checkout.md) adalah halaman pembayaran siap-rakit yang memungkinkan Anda mengarahkan ulang pelanggan untuk *langganan* (A Subscription represents the product details associated with the plan that your customer subscribes to. Allows you to charge the customer on a recurring basis) dan pembelian sederhana. Halaman ini menyediakan banyak fitur, seperti Apple Pay, Google Pay, internasionalisasi, dan validasi formulir. [Charges](https://docs.stripe.com/api/charges.md) API dan [Payment Intents](https://docs.stripe.com/api/payment_intents.md) API memungkinkan Anda membangun pengalaman dan alur pembayaran custom. Payment Intents API adalah API terpadu untuk semua produk dan metode pembayaran Stripe. Meskipun kami tidak menghapus fitur Charges, fitur baru hanya tersedia melalui Payment Intents API . Untuk perbandingan fitur lengkap, lihat tabel di bawah ini: | Charges API | Payment Intents API | | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Digunakan oleh kalangan bisnis terutama dengan pelanggan di AS/Kanada yang menginginkan cara sederhana untuk menerima kartu. | Diharuskan bagi bisnis yang menerima beberapa metode pembayaran dan kartu yang memerlukan autentikasi (misalnya, karena *Autentikasi Pelanggan yang Kuat* (Strong Customer Authentication (SCA) is a regulatory requirement in effect as of September 14, 2019, that impacts many European online payments. It requires customers to use two-factor authentication like 3D Secure to verify their purchase) di Eropa). | | Berfungsi di Web, iOS, dan Android. | Berfungsi di Web, iOS, dan Android. Dapat juga digunakan untuk menerima pembayaran di toko dengan Terminal. | | Mendukung kartu dan semua metode pembayaran di [Sources API](https://docs.stripe.com/sources.md). | Mendukung kartu, kartu yang memerlukan 3DS, iDEAL, SEPA, dan [banyak metode pembayaran lain](https://docs.stripe.com/payments/payment-methods/overview.md). | | **Tidak** siap SCA | *Siap SCA* (Strong Customer Authentication (SCA) is a regulatory requirement in effect as of September 14, 2019, that impacts many European online payments. It requires customers to use two-factor authentication like 3D Secure to verify their purchase) | ## Memigrasi kode yang membaca dari charge Jika Anda memiliki aplikasi dengan beberapa alur pembayaran dan secara bertahap memigrasi masing-masing dari Charges API ke [Payment Intents API](https://docs.stripe.com/payments/payment-intents.md), Anda harus memperbarui kode yang membaca dari objek [Charge](https://docs.stripe.com/api/charges.md) terlebih dahulu. Untuk membantu hal ini, objek charge memiliki dua properti tambahan, [payment_method_details](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details) dan [billing_details](https://docs.stripe.com/api/charges/object.md#charge_object-billing_details), yang menyediakan antarmuka konsisten untuk membaca detail metode pembayaran yang digunakan untuk charge tersebut. Bidang ini tersedia di semua versi API dan di objek charge yang dibuat dengan Charges API dan Payment Intents API. Tabel berikut menampilkan properti yang umum digunakan dengan charge dan cara informasi yang sama dapat diakses menggunakan properti tambahan: #### Kartu dan rekening bank | Keterangan | Sebelum | Setelah | | -------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | | Detail tentang metode pembayaran yang digunakan untuk membuat charge | `charge.source` | `charge.payment_method_details` | | Identifikasi metode pembayaran yang digunakan untuk charge | `charge.source.id` | `charge.payment_method` | | Tipe metode pembayaran yang digunakan | `charge.source.object` (misalnya, `card` atau `bank_account`) | `charge.payment_method_details.type` | | Informasi tagihan untuk charge (misalnya, kode pos tagihan) | `charge.source.address_zip` | `charge.billing_details.address.postal_code` | | Nama pemegang kartu | `charge.source.name` | `charge.billing_details.name` | | Empat angka terakhir kartu yang digunakan | `charge.source.last4` | `charge.payment_method_details.card.last4` | | Sidik jari kartu | `charge.source.fingerprint` | `charge.payment_method_details.card.fingerprint` | | Status verifikasi CVC untuk charge | `charge.source.cvc_check` | `charge.payment_method_details.card.checks.cvc_check` | | Nilai merek kartu | `charge.source.brand` dapat merupakan salah satu dari: `American Express`, `Diners Club`, `Discover`, `JCB`, `MasterCard`, `UnionPay`, `Visa` | `charge.payment_method_details.card.brand` dapat merupakan salah satu dari: `amex`, `diners`, `discover`, `jcb`, `mastercard`, `unionpay`, `visa` | | Nilai enumerasi Google Pay | `charge.source.tokenization_method` adalah `android_pay` | `card.wallet.type` dalam `charge.payment_method_details` adalah `google_pay` | #### Sumber | Keterangan | Sebelum | Setelah | | -------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | | Detail tentang metode pembayaran yang digunakan untuk membuat charge | `charge.source` | `charge.payment_method_details` | | Identifikasi metode pembayaran yang digunakan untuk charge | `charge.source.id` (`charge.source.three_d_secure.card` jika sumber 3D Secure digunakan) | `charge.payment_method` | | Tipe metode pembayaran yang digunakan | `charge.source.object == 'source' && charge.source.type` (kecuali `charge.source.type` adalah `three_d_secure`) | `charge.payment_method_details.type` | | Informasi tagihan untuk charge (misalnya, kode pos tagihan) | `charge.source.owner.address.postal_code` | `charge.billing_details.address.postal_code` | | Nama pemegang kartu | `charge.source.owner.name` | `charge.billing_details.name` | | Empat angka terakhir kartu yang digunakan | `charge.source.card.last4` `charge.source.three_d_secure.last4` | `charge.payment_method_details.card.last4` | | Berhasil atau tidaknya 3D Secure | `charge.source.object == 'source' && charge.source.type == 'three_d_secure'` | `charge.payment_method_details.card.three_d_secure.succeeded` | | Sidik jari kartu | `charge.source.card.fingerprint` | `charge.payment_method_details.card.fingerprint` | | Status verifikasi CVC untuk charge | `charge.source.card.cvc_check` | `charge.payment_method_details.card.checks.cvc_check` | | Nilai merek kartu | `charge.source.card.brand` dapat merupakan salah satu dari: `American Express`, `Diners Club`, `Discover`, `JCB`, `MasterCard`, `UnionPay`, `Visa` | `charge.payment_method_details.card.brand` dapat merupakan salah satu dari: `amex`, `diners`, `discover`, `jcb`, `mastercard`, `unionpay`, `visa` | | Nilai enumerasi Google Pay | `charge.source.card.tokenization_method` adalah `android_pay` | `card.wallet.type` dalam `charge.payment_method_details` adalah `google_pay` | ## See also - [Migrasikan ke Payment Intents](https://docs.stripe.com/payments/payment-intents/migration.md)