Introduction

Build your own checkout experience and accept multiple payment methods directly via the Payment Intent API.

Payment Acceptance is the PayMongo API surface that lets your business collect money from customers. Whether you're running an e-commerce store, a subscription service, a mobile app, or a physical counter, you can accept payments from over 14 payment methods — cards, e-wallets, QR codes, online banking, and more — without building separate integrations for each one.

Every payment method in this section works through the same core workflow: the Payment Intent. You create one Payment Intent per transaction, attach the customer's chosen payment method, and PayMongo handles the rest — authentication, routing, confirmation, and notifications.


Who this is for

This section is for teams who need complete control over their checkout experience — building a custom UI, integrating directly with PayMongo's APIs, and handling the full payment flow on their own frontend and backend.

If you're looking for a hosted checkout page, a shareable payment link, or a no-code solution, those are covered under Payment Channels.

If you're building a custom checkout experience, you're in the right place.


What this section covers

AreaWhat you'll find
Key ConceptsPayment Intent lifecycle, statuses, webhook events, glossary
Quick StartFastest path to your first payment
CardsVisa/Mastercard, card vaulting, installments, USD payments
QR PhDynamic QR for online checkout, static QR for in-store
E-walletsGCash, Maya, GrabPay, ShopeePay
Digital WalletsGoogle Pay
BNPLBuy Now Pay Later via BillEase
Direct Online BankingBPI, UBP, BDO, Landbank, Metrobank
Payment FeaturesHold & capture, splitting, pass on fees, subscriptions, disputes, refunds
Best PracticesPCI DSS scope, security responsibilities
TroubleshootingFailed payments, webhook issues, redirect problems
TestingTest mode, test cards, test cases for all methods

How payment acceptance works

All payment methods attach to a Payment Intent — a server-side record that holds the transaction details (amount, currency, allowed methods) until the customer completes payment. The Payment Intent acts as the container for the entire checkout session.

The basic flow for every payment method is:

  1. Your server creates a Payment Intent — sets the amount, currency, and which methods to accept.
  2. Your frontend creates a Payment Method — collects the customer's payment details (card number, e-wallet selection, etc.).
  3. Your frontend attaches the Payment Method to the Payment Intent — triggers authentication and payment processing.
  4. PayMongo notifies you via webhook — sends payment.paid or payment.failed when the outcome is known.

Different payment methods add steps at stage 3: cards may require a 3D Secure redirect, e-wallets redirect to the provider's app or website, and QR Ph generates a scannable code. The Key Concepts page explains the full lifecycle in detail.


Transaction amount limits

Payment Intents enforce minimum and maximum amounts per currency:

CurrencyMinimumMaximum
PHPPHP 1.00 (100 centavos)PHP 9,999,999.99 (999999999 centavos)
USDUSD 1.00 (100 cents)USD 200,000.00 (20000000 cents)

All amounts are passed in the smallest currency unit — centavos for PHP, cents for USD. A Payment Intent created outside these limits will be rejected.


Choosing a payment method

Not sure which methods to offer? Use this as a starting point:

If your customers are...Offer...
Paying with a credit or debit cardCards
Using GCash, Maya, GrabPay, or ShopeePayE-wallets
Paying at a physical counter or storeQR Ph (In-store)
Paying via online checkout with QRQR Ph (API)
Using Google PayGoogle Pay
Using online bank transfersDirect Online Banking
Paying over time via Buy Now Pay LaterBNPL

You can accept multiple methods simultaneously — a single Payment Intent can be configured to allow all of them, and the customer chooses at checkout.