Getting Started

Step 1: Obtain your prerequisite data setup

Setup authentication method

StraitsX will setup your account and share the authentication method with you

More details for how the authentication method works, please refer to here

Setup issuer group

StraitsX will setup the dedicated issuer group, issuer plan, and the card product for you.

Please contact the representative in charge of the integration process.

The opaque_id for the issuer plan will be the identifier in the path parameter for all your requests within the issuer plan.

The opaque_id for the card product will be the identifier when you create a card, and it'll determine which type of card to be created.

Step 2: User creation

Create a user

Get the issuing_plan_opaque_id, use it as path parameter.

The JSON below is an example for the fields to create a user, check the api reference create user for more information

{
  "customer_name": "John Doe",
  "kyc_full_name": "John H. Doe",
  "date_of_birth": "1985/01/01",
  "nationality": "SG"
}

The opaque_id for the user in the response will be the identifier in the path parameter for the requests related to the user.

Step 3: Card creation

Create a card for the user

Get the issuing_plan_opaque_id and customer_opaque_id, use them as the path parameter.

The card type created depends on the card product linked to your issuer plan.

The JSON below is an example for the fields to create a card, check the api reference create card for more information

{
  "card_product_opaque_id": "01FH9ZVANRDJ8JNXCJX38MNDZC",
  "cardholder_name": "John Doe",
  "cardholder_first_name": "Doe",
  "cardholder_surname": "John",
  "contact_number": "+6282210490777",
  "funding_source": "remote-host",
  "address": {
    "country": "ID",
    "region": "Jakarta",
    "city": "Jakarta",
    "street": "Sudirman",
    "house": "1",
    "postal_code": "12190"
  }
}

The opaque_id for the card in the response will be the identifier in the path parameter for the request related to the card.

The opaque_id for the card number in the response will be the identifier in the path parameter for the request related to the card number.

Activate the card

📘

The "Create Now, Print Later" feature supports our goal of initially providing a Digital Card, offering flexibility in physical card printing.

If the "Create Now, Print Later" feature is enabled:

  1. Currently, only StraitsX can toggle this feature.
  2. The card will initially exist as a digital card until you Request Card for Printing
  3. The card can be activated approximately one hour after creation or once your system receives our card_activation_ready webhook.

If the "Create Now, Print Later" feature is disabled:

  1. The card will be printed no later than one week after it has been created.
  2. Activation of the card is possible starting one day after its creation.

Get the issuing_plan_opaque_id , customer_opaque_id, and contract_opaque_id, use them as the path parameter.

The JSON below is an example for the fields to activate a card, check the api reference activate card for more information

{
  "truncated_card_number": "4665********7274",
  "expiry_date": "11/25"
}
Step 4: Highly recommended APIs

Enroll to 3DS

📘

Card needs to be enrolled to 3DS if you wish to make most e-commerce payment

Get the issuing_plan_opaque_id , customer_opaque_id, contract_opaque_id, and card_number_opaque_id, use them as the path parameter.

The JSON below is an example for the fields to enroll the card to 3DS, check the api reference enroll 3ds for more information

{
  "authentication_method": "SMS_OTP",
  "destination": "+62123456789"
}

Set up Card PIN

Get the issuing_plan_opaque_id , customer_opaque_id, and contract_opaque_id, use them as the path parameter.

Check the api reference pin setup iframe for more information

Step 5: APIs at any certain point after card issued

Change Card Status

Get the issuing_plan_opaque_id , customer_opaque_id, and contract_opaque_id, use them as the path parameter.

The JSON below is an example for the fields to update the status for the card, check the api reference update card status for more information

{
  "status": "LOST",
  "reason": "User reported card as lost"
}

Close Card

📘

The card will be permanently blocked, cannot be reverted

Get the issuing_plan_opaque_id , customer_opaque_id, and contract_opaque_id, use them as the path parameter.

The JSON below is an example for the fields to close the card, check the api reference close card for more information

{
  "reason": "User requested for card deactivation"
}

Set Card Spend Limit

Get the issuing_plan_opaque_id , customer_opaque_id, and contract_opaque_id, use them as the path parameter.

The JSON below is an example for the fields to set spend limit for the card, check the api reference create spend limit for more information

{
  "amount_limit": 100,
  "currency_code": "SGD",
  "velocity_window": "DAY"
}

Update Card Configuration

Get the issuing_plan_opaque_id , customer_opaque_id, and contract_opaque_id, use them as the path parameter.

The JSON below is an example for the fields to update configuration for the card, check the api reference update card configuration for more information

{
  "card_present_transaction_enabled": true
}
Next Steps: Transaction testing

Create your remote host authorization & webhook notification endpoint with the corresponding api key & signing secret to share with StraitsX.

Remote host authorization is utilized as the logic to approve or reject the transaction. Check the api reference remote host authorization for more information.

Webhook notification is utilized to inform about actions that have been made or the information to pass to your user. Check the api reference webhook notification for more information.

After the endpoints shared with StraitsX, you can test the various transactions in sandbox environment. Please come up with a list of available transactions you want to support and share with StraitsX. Check sample transaction test case for more information.

When all integration and testing in sandbox works properly, then you can start issuing pilot card and test in production.

Ready to test transactions for a card

📘

If enabled, these two webhooks will run hourly. Example: Card created at 1:35 PM SGT, the webhook is expected to be sent around 2:00 PM SGT

  • card_activation_ready
    • Card is not immediately activatable due to background jobs that are scheduled
    • Once you receive this webhook, then you are able to call the card activate endpoint
  • iframe_ready
    • CVV is not immediately available if the card is physical
    • Once you receive this webhook, you are able to view the full PAN as well as expiry date and CVV