Chapa API v2
Build fast
with Chapa
The next generation of Chapa's payment platform. Enhanced security, faster performance, more payment options, and multi-currency support — go from zero to accepting payments in under 10 minutes.
initialize_payment.js
const response = await fetch( "https://api.chapa.global/v2/payments/hosted", { method: "POST", headers: { "Authorization": "Bearer CHAPA_TEST_xxxxxxxxxxxxx", "Content-Type": "application/json", }, body: JSON.stringify({ amount: 100, currency: "ETB", customer: { email: "abebe@chapa.co" }, }), } ); const data = await response.json(); // data.checkout_url — redirect customer here
Quick Start
Choose your integration path
REST APIs
Integrate directly with Chapa's REST API. Full control over your payment flow with JSON requests, webhooks, and real-time responses.
JavaScript Libraries
Drop in our Inline.js or Popup library to add a seamless checkout experience to any web page with just a few lines of JavaScript.
SDKs & Plugins
Use official SDKs for JavaScript, Python, Go, PHP, NestJS, Flutter, and Kotlin — or install one of our CMS and e-commerce plugins.
Documentation
Everything you
need to know
From accepting payments and sending payouts to virtual accounts, direct charge, and fraud prevention — all documented in one place.

Supported Languages
SDKs for every platform
JavaScript
@chapa/javascript
View on GitHub →
Python
chapa-python
View on GitHub →
Go
github.com/chapa-et/chapa-go
View on GitHub →
Laravel / PHP
@chapa/php-sdk
View on GitHub →
NestJS
@chapa/nestjs
View on GitHub →
Flutter
chapa_flutter
View on GitHub →
Kotlin
io.chapa:kotlin-sdk
View on GitHub →
Chapa CLI
@chapa/cli
View on GitHub →
Code Samples
Copy-paste
ready examples
Go from zero to accepting payments in under 10 minutes. Real v2 API examples — initialize, verify, and handle webhooks with minimal code.
View Full Docsinitialize_payment.js
const response = await fetch( "https://api.chapa.global/v2/payments/hosted", { method: "POST", headers: { "Authorization": "Bearer CHAPA_TEST_xxxxxxxxxxxxx", "Content-Type": "application/json", }, body: JSON.stringify({ amount: 500, currency: "ETB", customer: { first_name: "Abebe", last_name: "Bikila", email: "abebe@example.com", phone_number: "+251960000000", }, meta: { order_id: "ORD-99887" }, }), } ); const data = await response.json(); // data.checkout_url — redirect customer here
verify_payment.js
const reference = "CHAPA123456789"; const response = await fetch( `https://api.chapa.global/v2/payments/${reference}/verify`, { method: "GET", headers: { "Authorization": "Bearer CHAPA_TEST_xxxxxxxxxxxxx", }, } ); const { data } = await response.json(); if (data.status === "success") { // Payment confirmed — update order } else { // Handle failed or pending payment }
Resources
Everything to get you started
GitHub & SDKs
Explore open-source SDKs and plugins for JavaScript, Python, Go, PHP, Java, Ruby, .NET, and React Native.
API Playground
Test API calls directly in the browser without writing any code. Explore endpoints and inspect live responses.
Migration Guide
Step-by-step guide to upgrade from v1 to v2 with zero downtime. Covers breaking changes, new endpoints, and deprecations.
Status Page
Check real-time API status, uptime history, and incident reports. Subscribe to get notified of any disruptions.
Ready to start?
Create your own account instantly, or contact our sales team to help you create a custom package tailored specifically for your business.
