PayNow Transfer Payments Guide

Customer Profile API

πŸ“—

Learn how to use the Payment API to enable Singapore PayNow transfer deposits from your user.

Overview

Each connected user on your platform will be assigned a unique QR code for PayNow transfers. We check the sender's name against the user's name to ensure the payment is being made to the correct account. This creates a secure and seamless experience for your users and makes it easy for your team to reconcile these transactions.

Sample PayNow QR Code

Sample PayNow QR Code

Payment TypeFromTo
PayNow transferUser's bank accountStraitsX Business Account
curl --request POST \
     --url https://api-sandbox.straitsx.com/v1/sandbox/paynow_simulations \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "data": {
    "attributes": {
      "id": "string",
      "amount": 0,
      "sourceBankAccountHolderName": "string",
      "endToEndRef": "string"
    },
    "relationships": {
      "customerProfile": {
        "data": {
          "id": "string"
        }
      }
    }
  }
}
'
curl --request POST \
     --url https://api-sandbox.straitsx.com/v1/payment_methods/paynow \
     --header 'X-XFERS-APP-API-KEY: {YOUR_API_KEY}' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "data": {
    "attributes": {
      "referenceId": "string"
    },
    "relationships": {
      "customerProfile": {
        "data": {
          "id": "string"
        }
      }
    }
  }
}
'
  • To provide payee details for your user, initiate a request to create a PayNow QR code to display the QR code
  • This enables your user to scan the QR code using their bank app

Step 2 β€” Add callback URL

On a successful completion of a deposit transaction, StraitsX will send a callback notification to you via a callback URL indicated on the StraitsX Business Dashboard.

πŸ“˜

Add the callback URL on the dashboard to receive a callback when the transaction has been completed.

curl --request POST \
     --url https://api-sandbox.straitsx.com/v1/sandbox/paynow_simulations \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "data": {
    "attributes": {
      "id": "string",
      "amount": 0,
      "sourceBankAccountHolderName": "string",
      "endToEndRef": "string"
    },
    "relationships": {
      "customerProfile": {
        "data": {
          "id": "string"
        }
      }
    }
  }
}
'
  • In the sandbox environment, you can initiate a mock PayNow transfer payment to test the transfer using PayNow
  • Input a name under source_bank_account_holder_name to test if the sender name is matched correctly to your user's name.

Step 3b β€” Make a PayNow transfer (Production)

πŸ‘

Bank Account Verification

Bank accounts will be verified and added to a customer profile on the first deposit when the bank name matches with the customer profile name.

To make a PayNow transfer payment, your users can deposit funds via their bank app.

Scanning QR Code example
Scanning a QR code to make a fund transfer (Last Updated: 31 Mar 2023)

Step 4 β€” Confirm deposit has been received

Securing your callback

When the payment is received, we will send a callback to the URL indicated on the StraitsX Business Dashboard. The callback can be verified using the HMAC-SHA256 algorithm.

Learn more about how to secure your callback β†’


{
  "end_to_end_ref": "paynow511212e2824686",
  "payment_method": {
    "id": 000,
    "owner_id": 13433,
    "unique_id": "paynow_5f46adf0cdww3-0a-b27a-be0bf61850fe",
    "created_at": "2025-07-18T07:44:46.892Z",
    "expires_at": "2025-07-20T15:44:46.000Z",
    "owner_type": "User",
    "updated_at": "2025-07-18T07:44:46.892Z",
    "external_id": "payment_method_298bed5d-3301212-121-2160e19b57ed",
    "reference_id": "BTC_POS17416_0cb7ed37-116fdwedwe0dd0e0-8_1752824686",
    "base64_encoded_image": "iVBO.....",
    "virtual_payment_address": null
  },
  "additional_info": "Others",
  "bank_account_no": "170218051",
  "bank_abbreviation": "DBS",
  "bank_account_name": "John Doe",
  "payment_method_type": "paynow",
  "third_party_payment": true,
  "comply_advantage_submitted_at": "2025-07-18T15:46:22.290+08:00"
}


Try it out!

Getting started with StraitsX APIs is easy. Our business development and integration teams will be with you every step of the way. If you have any questions or would like to connect with our team, please do so via Support!