Cards

Overview of card payments on PayMongo.

Overview

PayMongo supports Visa and Mastercard credit, debit, and prepaid cards from customers in the Philippines and internationally. All card payments go through the Payment Intent workflow and support 3D Secure (3DS 2.0) authentication by default.


Supported card types

TypeNetworks
Credit cardsVisa, Mastercard
Debit cardsVisa, Mastercard
Prepaid cardsVisa, Mastercard

How cards attach to a Payment Intent

Card payments follow the standard Payment Intent workflow. The key difference from other payment methods is the 3D Secure step:

  1. Create a Payment Intent on your server with "card" in payment_method_allowed.
  2. Create a Payment Method client-side with type: "card" and the customer's card details.
  3. Attach the Payment Method to the Payment Intent.
  4. Check the status:
    • awaiting_next_action — redirect the customer to the 3DS authentication URL in next_action.redirect.url
    • processing — requery after 1–2 seconds
    • succeeded — payment complete, no redirect needed
    • awaiting_payment_method — error, check last_payment_error
  5. Confirm via webhook — listen for payment.paid or payment.failed.

See the Quick Start for complete code for this flow.


Features available for cards

FeatureWhat it does
Card VaultingStore a card token on a Customer object for future payments
Click to PayMastercard's streamlined checkout — customers skip card re-entry
USD Card AcceptanceAccept international card payments in US dollars
Hold Then CaptureAuthorize a card hold, capture only when ready to fulfill

3D Secure

PayMongo applies 3D Secure 2.0 to card transactions. 3DS adds an authentication step where the customer's bank verifies their identity (typically via OTP or biometric prompt) before the payment completes.

When 3DS is triggered:

  • The Payment Intent status moves to awaiting_next_action
  • next_action.redirect.url contains the authentication URL
  • Redirect the customer there, then handle the return via your return_url

Successful 3DS authentication shifts chargeback liability from you to the issuing bank for those transactions.


Testing cards

Use these test card numbers in test mode. See the full list on the Testing page.

Card numberBehavior
4343434343434345Successful payment, no 3DS required
41200000000000073DS required — authenticate to complete payment
4200000000000018Declined — expired card
4300000000000017Declined — invalid CVC
5100000000000198Declined — insufficient funds

Use any future expiration date and any 3-digit CVC for test cards.