Hosted Checkout

Checkout generates a secure, Finmo-hosted payment page that facilitates the collection of payments via local methods such as bank transfers, cards, direct debit, and wallets swiftly. It functions seamlessly across devices, potentially boosting your conversion rates.

Checkout simplifies the process of creating an optimal payment experience:

  • Designed to minimize friction

  • Mobile-ready

  • Supports multiple global payment methods

  • White Label – Customize by adding logo, support details, and payment instructions specific to the payment method

  • Customizable buttons and background color

Optimizing the Checkout Experience

Step 1: Determine the time frame for the customers to complete the payment and set an expiration date-time. Typically, if the payment method supports expiration, it will share the same date-time. For example, PayID in Australia usually expires within 24 hours.

Step 2: Decide on offering specific payment methods, an entire set, or just a category to the customer. This can be managed using include & exclude options. Categories refer to types of payment methods like Bank, E-Wallet, Card, etc.

Step 3: Choose how the Checkout completion should work, i.e., if the user be redirected to a single URL or multiple URLs. The field called REDIRECT_URL stands for a common redirect URL. The status message can be handled based on the parameters provided in the REDIRECT_URL.

Alternatively, four different or identical URLs can also be provided under ADVANCED_REDIRECT_URL, allowing the capability to display the appropriate status message based on events on the checkout page.

Step 4: Customers can be notified about the checkout link via email or SMS. Finmo will send them the link to pay the invoice amount through the checkout link.

Checkout Status & Webhook Notifications

Finmo will notify about any status updates of the Checkout object via webhooks. Static webhook listener URL can also be configured via the dashboard or a dynamic webhook URL can be sent in the Create Checkout request.

  • CHECKOUT_CREATED: Triggered when a Checkout page is created. The Checkout status will be CREATED.

  • PAYIN_CREATED: Triggered once the customer selects the payment method on the Checkout page and submits. This webhook includes the CHECKOUT_ID to link the payment to the customer. The Checkout status remains CREATED, while the payment status updates to PENDING.

  • CHECKOUT_COMPLETED and PAYIN_COMPLETED: Triggered once the consumer makes the payment. Both the Checkout and Payment status updates to COMPLETED.

  • CHECKOUT_EXPIRED and PAYIN_EXPIRED: Triggered if the Checkout page expires. Both the Checkout and payment status updates to EXPIRED.

  • CHECKOUT_CANCELLED: Triggered if the consumer cancels the Checkout page. If the payment method is_cancellable = true, the payment will also be cancelled. Both the Checkout and payment status updates to CANCELLED.

Creating a Checkout Page

Create a checkout page that builds a Payin. This method can be used without requiring PCI certification.

post/checkout

Request

  • Base URL
    https://api.finmo.net/v1
  • Auth
    HTTP basic

Request body

amountinteger required

Transaction amount. The number of decimal place will be different for each currency according to ISO 4217

amount_breakdownobject

List of items that sum up together to match 'amount'. Example: { 'laptop': 2000, 'taxes': 100 }

currencystring required

Transaction currency

countrystring required

Merchant country code. ISO 3166-1, 2-char alphabetic code

redirect_urlstring uri required

The link that the page will be redirected to after transaction. Either advanced_redirect_url or redirect_url should be present

descriptionstring

Transaction Description

include_categorystring[]

Category to include for the transaction (For e.g. BANK, EWALLET, CARD etc) Currently only 'BANK' and 'EWALLET' are supported

exclude_categorystring[]

Category to exclude for the transaction (For e.g. BANK, EWALLET, CARD etc) Currently only 'BANK' and 'EWALLET' are supported If the include_category parameter is present then this parameter will not be considered

include_payin_methodstring[]

Payin-Method to be included for the transaction

exclude_payin_methodstring[]

Payin-Method to be excluded for the transaction If the include_payin_method parameter is present then this parameter will not be considered

credit_wallet_idstring

Provide the Wallet ID where the funds are to be credited. If no wallet id is provided, we assume its the Organization Payin wallet

customer_idstring

Customer reference (customer_*)

fees_wallet_idstring

Fees Wallet ID (wallet_*)

organization_reference_idstring

A reference you can later use to identify this payment, such as an order number. Can only be alphanumeric and must be unique for Benefit.

notification_emailstring email

Email to recieve the checkout link

notification_phone_country_codestring

Country code of the mobile number to receive the checkout link

notification_phone_numberstring

Mobile Number to receive the checkout link without the country code

expire_atinteger

Epoch timestamp at which the payment expires

receipt_emailstring email

Provide an email if you would like to send a receipt to your customer or yourself after the payin or refund is successfully completed

webhook_urlstring uri

Dynamic webhook URL of the transaction otherwise the one configured on the dashboard would be used

payin_method_namestring

Name of payin method

payin_typestring

Type of payin

Example request

{
  "advanced_redirect_url": {
    "cancelled_url": "finmo.net/canceled.com",
    "completed_url": "finmo.net/completed.com",
    "expired_url": "finmo.net/expired.com",
    "failed_url": "finmo.net/failed.com",
    "succeeded_url": "finmo.net/succeeded.com",
    "awaiting_funds_url": "finmo.net/awaiting.com"
  },
  "amount": 22,
  "amount_breakdown": {},
  "country": "AU",
  "credit_wallet_id": "",
  "currency": "AUD",
  "customer_id": null,
  "description": "22 AUD @ Ecommerce Store",
  "exclude_category": [
    ""
  ],
  "exclude_payin_method": [
    ""
  ],
  "expire_at": 1700000000,
  "fees_wallet_id": "",
  "include_category": [
    "BANK"
  ],
  "include_payin_method": [
    ""
  ],
  "metadata": {
    "any-custom-ref": "INV_123"
  },
  "notification_email": "email@finmo.net",
  "notification_phone_country_code": "",
  "notification_phone_number": "",
  "organization_reference_id": "org_reference123",
  "payin_method_name": "au_bank_npp",
  "payin_method_param": {
    "payid_reference": "invoice_123"
  },
  "payin_type": "DIRECT_PAYIN",
  "receipt_email": "example@finmo.net",
  "redirect_url": "finmo.net",
  "webhook_url": "finmo.net",
  "capture_config": {
    "capture_delay": 2,
    "capture_type": "DELAYED"
  },
  "recurring_payin": {
    "frequency": "MONTHLY",
    "start_at": "2024-01-01T00:00:00Z",
    "is_recurring_amount_fixed": true
  },
  "tnc_and_policies_url": {
    "tnc_url": "https://example.com/legal/tnc-policy",
    "refund_policy_url": "https://example.com/legal/refunds-policy",
    "return_policy_url": "https://example.com/legal/returns-policy"
  }
}

Response

Created

request_idstring
request_timestring date-time
status_codeinteger
status_textstring
successboolean

Changes