Single Payments

Make one-time card payments using Vault

Easy step-by-step guide

Accepting one-time card payments is straightforward using our Vault API

Initialization and Authentication



Before deep diving the guide to accept card payments, kindly review Authentication first.

To start accepting single card payments, your customer should have finished selecting the items that they need to buy and have chosen to pay using a credit or debit card.

The customer will then input the card information on your form to start the tokenization process.


Customer's credit card data will have the following JSON data:

     "card": {
          "number": "512345678890",
          "expYear": "2025",
          "cvc": "11",
          "expMonth": "02"

When user submits the card information, your application should tokenize to generate a paymentTokenId for the next steps.


No credit information should be saved

Your application should not save the credit card information.

Processing the tokenized information for payment

Once the paymentTokenId has been generated, you can now send the details of the transaction such as total amount, buyer information, webhooks and other metadata. You can process the JSON body format below using the Create Payment endpoint.



paymentTokenId (string)

Tokenize credit card information

totalAmount (object)

An object that contains the value and currency

requiredReferenceNumber (string)

The reference number that will be generated from the merchant's side. It is recommended to use unique id generator such as uuid

redirectUrl (object)

An object that contains where PayMaya will redirect to after a successful payment. The fields supported are success, failure, cancel.

buyer (object)

Contains the buyer details. This is optional by default but it required for merchants to are Kount-enabled. Review the Kount Buyer fields for the required fields

items (array)

An array of the objects. Each object contains the information that a customer will pay for.

metadata (object)

Optional. Used to provide additional data to the transaction such a payment faciliator information. Contact your account manager to know more about and if you are required to fill-in the object

authorizationType (string)

Optional. Used for Manual Capture. The accepted values are: NORMAL, FINAL, PREAUTHORIZATION

Take note of the verificationUrl from the HTTP Response of Create Payment, you will need this on the next steps.

  "id": "7ea1f6ef-035c-4fcd-85e0-037c8d9d4a2c",
  "isPaid": false,
  "amount": "100",
  "currency": "PHP",
  "canVoid": false,
  "canRefund": false,
  "canCapture": false,
  "createdAt": "2021-07-12T10:02:55.000Z",
  "updatedAt": "2021-07-12T10:02:55.000Z",
  "description": "Charge for [email protected]",
  "paymentTokenId": "0zjacza65HEobriYGN9g5XwaWZYVSeErdNnaNCLCo8QvUXuGg49KPJSy1XbhHPL8OisYOiYPJSQ2BxqR2AuC682Yu5G5LzrU0SK6ByWi0TyhkekWf1ssl6cMBWAVAOdArLcY1QXEyHdr8EsRAS2bHeMEpUU6OSmxmky5Fk",
  "requestReferenceNumber": "1626084179",
  "verificationUrl": ""
Payment Flow of Vault Single PaymentsPayment Flow of Vault Single Payments

Payment Flow of Vault Single Payments


Manual Capture

Vault also supports manual capture by including authorizationType on the body of Create Payment endpoint. You can review the full details of manual capture here.

Payment Verification

Our Vault API will verify the payment details of your customer. Your application will be required to redirect to the verificationUrl to initiate the verification process (i.e. OTP).

Handling the post-verification data

Once verification is complete and your application has received the successful payment information via webhooks, you can show the successful payment page to your customer.


Too complex?

Avoid the complexity of executing one-time card payment and take a look at our Checkout guide to use a single endpoint accept one-time card payments.

Did this page help you?