Receive a BDO Installment payment
Learn how to receive a bdo_installment
payment from your customer.
The BDO Installment payment method allows your customers to use their BDO-issued credit card to complete a payment in installments. To complete a BDO Installment payment, your customer should select BUY NOW, PAY LATER with the BDO logo as the payment method, and complete the necessary steps.
BDO Installment is a different payment method from a card payment method. If you want to implement straight card payments regardless of the issuing bank, please check the card payment method section.
In test mode, you can try the BDO installment payment method. For live mode payments, this payment method should be requested for activation through customer support.
The BDO Installment payment flow
At checkout, your customer can select BUY NOW, PAY LATER with the BDO logo as the preferred payment method. Once your customer clicks the pay button, the customer is redirected to the BDO checkout page, and your customer must complete the payment. BDO facilitates its payment step. PayRex facilitates the transaction by rendering the payment page provided by BDO.
Payment terms and installment types.
Installment Types
- Regular Installment - regular
- 0% Interest Installment - zero
- Regular Installment with Payment Holiday - regular_holiday
- 0% Interest Installment with Payment Holiday - zero_holiday
Payment terms
- 3
- 6
- 9
- 12
- 18
- 24
- 36
Low-code integration
PayRex offers a low-code solution that gives you more payment integration control.
- Checkout: This lets you redirect your customers to a PayRex-hosted checkout page.
- Elements: A UI component that you can embed into your website. When your customer is ready to complete a purchase, you create a PaymentIntent and configure how you want to display payment methods.
Receiving a BDO installment payment
To receive a BDO Installment payment, you must specify that you allow a BDO Installment payment when creating a payment intent. The example below is for payment intent workflow.
- Node
- PHP
- Python
- Ruby
// Protect your PayRex Secret API key at all costs. One common approach
// to store it in an environment variable.
// Add your PayRex test secret API key.
const payrexSecretApiKey = '';
const payrex = require('payrex-node')(payrexSecretApiKey);
// Create a PaymentIntent with amount and currency
const paymentIntent = await payrex.paymentIntents.create({
// Amount is in cents. The sample below is 100.00.
amount: 10000,
currency: 'PHP',
payment_methods: [
'bdo_installment',
// add more payment methods if this is your preference
],
});
const output = {
clientSecret: paymentIntent.clientSecret,
}
console.log(JSON.stringify(output));
<?php
require_once '../vendor/autoload.php';
// Protect your PayRex Secret API key at all costs. One common approach
// to store it in an environment variable.
// Add your PayRex test secret API key.
$payrexSecretApiKey = '';
$payrex = new \Payrex\PayrexClient($payrexSecretApiKey);
// Create a PaymentIntent with amount and currency
$paymentIntent = $payrex->paymentIntents->create([
// Amount is in cents. The sample below is 100.00.
'amount' => 10000,
'currency' => 'PHP',
'payment_methods' => [
'bdo_installment',
// add more payment methods if this is your preference
],
]);
$output = [
'clientSecret' => $paymentIntent->client_secret,
];
echo json_encode($output);
from payrex import Client as PayrexClient
# Protect your PayRex Secret API key at all costs. One common approach
# to store it in an environment variable.
# Add your PayRex test secret API key.
payrex_secret_api_key = ''
payrex = PayrexClient(payrex_secret_api_key)
# Create a PaymentIntent with amount and currency
payment_intent = payrex.payment_intents.create(
{
# Amount is in cents. The sample below is 100.00.
'amount': 10000,
'currency': 'PHP',
'payment_methods': [
'bdo_installment',
# add more payment methods if this is your preference
]
}
)
output = {
'client_secret': payment_intent.client_secret
}
print(output)
require "payrex-ruby"
# Protect your PayRex Secret API key at all costs. One common approach
# to store it in an environment variable.
# Add your PayRex test secret API key.
payrex_secret_api_key = ""
payrex = Payrex::Client.new(payrex_secret_api_key)
# Create a PaymentIntent with amount and currency
payment_intent = payrex.payment_intents.create(
# Amount is in cents. The sample below is 100.00.
amount: 10000,
currency: "PHP",
payment_methods: [
"bdo_installment",
// add more payment methods if this is your preference
]
)
output = {
clientSecret: payment_intent.client_secret
}
puts output.to_json
Once you specify the bdo_installment
string, PayRex will handle the rest of your customer's payment flow.
Overriding installment types or payment terms
By default, PayRex provides the full payment method options for the BDO installment payment method. If you want to override the default payment method options e.g. you will only allow zero installment options, please see sample code below:
- Node
- PHP
- Python
- Ruby
// Protect your PayRex Secret API key at all costs. One common approach
// to store it in an environment variable.
// Add your PayRex test secret API key.
const payrexSecretApiKey = '';
const payrex = require('payrex-node')(payrexSecretApiKey);
// Create a PaymentIntent with amount and currency
const paymentIntent = await payrex.paymentIntents.create({
// Amount is in cents. The sample below is 100.00.
amount: 10000,
currency: 'PHP',
payment_methods: [
'bdo_installment',
// add more payment methods if this is your preference
],
payment_method_options: {
bdo_installment: {
// Sample values if you will only allow 3 and 6 months installment
"payment_terms": ["3", "6"],
// Sample values if you will only 0% installments
"installment_types": ["zero", "zero_holiday"],
}
}
});
const output = {
clientSecret: paymentIntent.clientSecret,
}
console.log(JSON.stringify(output));
<?php
require_once '../vendor/autoload.php';
// Protect your PayRex Secret API key at all costs. One common approach
// to store it in an environment variable.
// Add your PayRex test secret API key.
$payrexSecretApiKey = '';
$payrex = new \Payrex\PayrexClient($payrexSecretApiKey);
// Create a PaymentIntent with amount and currency
$paymentIntent = $payrex->paymentIntents->create([
// Amount is in cents. The sample below is 100.00.
'amount' => 10000,
'currency' => 'PHP',
'payment_methods' => [
'bdo_installment',
// add more payment methods if this is your preference
],
'payment_method_options': [
'bdo_installment' => [
// Sample values if you will only allow 3 and 6 months installment
'payment_terms' => ["3", "6"],
// Sample values if you will only 0% installments
'installment_types' => ["zero", "zero_holiday"],
]
]
]);
$output = [
'clientSecret' => $paymentIntent->client_secret,
];
echo json_encode($output);
from payrex import Client as PayrexClient
# Protect your PayRex Secret API key at all costs. One common approach
# to store it in an environment variable.
# Add your PayRex test secret API key.
payrex_secret_api_key = ''
payrex = PayrexClient(payrex_secret_api_key)
# Create a PaymentIntent with amount and currency
payment_intent = payrex.payment_intents.create(
{
# Amount is in cents. The sample below is 100.00.
'amount': 10000,
'currency': 'PHP',
'payment_methods': [
'bdo_installment',
# add more payment methods if this is your preference
],
'payment_method_options': {
'bdo_installment': {
# Sample values if you will only allow 3 and 6 months installment
'payment_terms': ["3", "6"],
# Sample values if you will only 0% installments
'installment_types': ["zero", "zero_holiday"],
}
}
}
)
output = {
'client_secret': payment_intent.client_secret
}
print(output)
require "payrex-ruby"
# Protect your PayRex Secret API key at all costs. One common approach
# to store it in an environment variable.
# Add your PayRex test secret API key.
payrex_secret_api_key = ""
payrex = Payrex::Client.new(payrex_secret_api_key)
# Create a PaymentIntent with amount and currency
payment_intent = payrex.payment_intents.create(
# Amount is in cents. The sample below is 100.00.
amount: 10000,
currency: "PHP",
payment_methods: [
"bdo_installment",
# add more payment methods if this is your preference
],
payment_method_options: [
bdo_installment: [
# Sample values if you will only allow 3 and 6 months installment
payment_terms: ["3", "6"],
# Sample values if you will only 0% installments
installment_types: ["zero", "zero_holiday"],
]
]
)
output = {
clientSecret: payment_intent.client_secret
}
puts output.to_json