From card
nCore platform provides you a feature to load money into a NymCard card account from an external funding source which can make you able to top-up your card account using any card.
For example, a user can use his debit card issued by a bank to top up his prepaid card account in nCore platform.
To load card account from outside of the nCore platform, NymCard integrates with Mastercard Payment Gateway Services (MPGS), which offers different payment methods (currently ‘hosted checkout’ payment method is supported). NymCard's frontend/backend client initiates request to nCore platform for loading into the card account.
Prerequisite:
Identify the BUSINESS user having default_user value as true in the tenant.
Identify the account with default_account as true linked to the business user.
Business account (default_account) has to be loaded with funds (in AED) covering the transferred amount.
Configurations applicable at tenant level
Following are the configuration requirements that need to be done at tenant level by NymCard.
Field | Description | Sample value |
‘payment_gateway’ | The name of the payment gateway. | 'MPGS' |
‘merchant_id’ | ID of the merchant. This ID is assigned by the payment gateway. | '500536' |
‘user_name’ | The name of the user in the merchant profile, which is configured on the gateway portal. | 'merchant.500536' |
‘user_password’ | The password of the user in the merchant profile, which is configured on the gateway portal. | 'user-password' |
‘mpgs_api_url’ | API URL of the payment gateway where nCore API communicates. | 'https://test-gateway.mastercard.com' |
‘authentication_limit’ | Applicable in HOSTED_SESSION payment method. | '25' |
‘merchant_currency’ | The merchant currency in format of 3-character ISO alpha code. Default value is ‘AED’. It is the only supported currency for now. | 'AED' |
‘merchant_mcc’ | 4-characters MCC code of the merchant. | '1234' |
Please ask your NymCard account manager to make sure that you have the corresponding setting "default_currency": "AED"
configured for your tenant.
External funding flow
You can take the following steps to perform the external funding flow:
1. Create order using nCore API (you can find this API request and response samples in "Orders management" section of this document):
2. Take ‘session_id’ value from API response received from the nCore platform and place it together with the following payment gateway code snippets in your widget:
<script src="https://test-gateway.mastercard.com/checkout/version/61/checkout.js" data-error="errorCallback" data-cancel="cancelCallback"></script>
Checkout.configure({
session: {
id: SESSION0002617523020H25893709N7
}
});
Please refer to the Payment gateway integration guide for more details.
3. Initialize your code.
4. Select hosted page:
- To display the checkout interaction in a lightbox on existing page, use:
Checkout.showLightbox();
- To display the checkout interaction on a new page, use:
Checkout.showPaymentPage();
In case of lightbox, you will get the pop-up window where you should fill in card info:
In case of hosted payment page, you will be redirected to a separate page where you should fill in card info:
5. After the payment is successful at step 4, NymCard will callback on the 'redirect_URL', which is provided by the client in 'Create order' API, together with 'order_id' and the payment status. Below you can see an example:
Order statuses
The links below are just examples. The actual URL will be based on 'redirect_URL', which is provided by the client in the 'Create order' API.
There are several order statuses, which you can face:
The operation was successful. Then you will get the following URL after payment fulfillment: localhost:9000/redirect?order_id=d78f5600-08b5-4b6f-8c73-0025b5e4fb6c&status=SUCCESS
The operation was canceled. Then you will get the following URL after payment fulfillment: localhost:9000/redirect?order_id=d78f5600-08b5-4b6f-8c73-0025b5e4fb6c&status=CANCEL
Timeout occurred during operation processing.
An error occurred during operation processing.
Interaction between Client-NymCard-Payment gateway
Below you can find the communication process between client, NymCard and payment gateway:
Client's frontend captures the amount and currency from the user and communicates it to its backend. Note that multi-currency loading is not supported for now.
Client’s backend calls the “Create order” API.
NymCard creates a hosted checkout session with MPGS and returns the unique order and session IDs in the 'Create order' API response.
Client's frontend calls ‘checkout.showlightbox’ or ‘checkout.showpaymentpage’.
Payment gateway processes the payment.
nCore platform callbacks the redirect URL, provided by the client, along with order 'status' and 'order_id'.
Client's backend/frontend displays the results to the user.
Orders management
You can create and manage your orders by using our APIs. Following are the APIs available at nCore platform for orders management.
Create order
Get specific order
Create order
You can create an order by sending a POST request to /orders endpoint as given below.
Get specific order
You can retrieve a specific order by sending a GET request to /orders/{id} endpoint, where id is the order ID.
Order response result field breakdown
You can use the following table to map the ‘result’ field received in response which can help to understand the reason if the order failed due to some reason.
Note, that below you can find the most popular responses. The full list of 'status_reason' values you can find in 'Create order' API (go to Response ,'status_reason' enums).
NymCard ‘status’ field values | NymCard ‘status_reason’ field value | NymCard ‘status_description’ field value |
SUCCESS | ORDER_CREATED |
|
ERROR | FAILED | “The operation was declined or rejected by the payment gateway.” |
ERROR | INVALID_REQUEST
| “The request was rejected by the payment gateway because it did not conform to the API protocol.“ |
ERROR | REQUEST_REJECTED | “The request was rejected by the payment gateway due to security reasons such as firewall rules, expired certificate, etc.” |
ERROR | SERVER_BUSY | “The payment gateway server did not have enough resources to process the request at the moment.” |
ERROR | SERVER_FAILED | “There was an internal system failure at the payment gateway side.” |
Sample cards
Below you can find sample card info, which you can use for testing purposes:
Test Cards | Card Number | 3-D Secure Enrolled |
Mastercard | 5123450000000008 | Y |
2223000000000007 | Y | |
5111111111111118 | N | |
2223000000000023 | N | |
Visa | 4508750015741019 | Y |
4012000033330026 | N | |
American Express | 345678901234564 | Y |
371449635398431 | N | |
Diners Club | 30123400000000 | Y |
36259600000012 | N | |
JCB | 3528000000000007 | Y |
3528111100000001 | N | |
Discover | 6011003179988686 | Y |
6011963280099774 | N | |
Maestro | 5000000000000000005 | Y |
5666555544443333 | N | |
UATP (UATP cards do not support CSC/CVV and 3DS) | 135492354874528 | N |
135420001569134 | N |
Expiry Date | Transaction Response Gateway Code |
01 / 39 | APPROVED |
05 / 22 | DECLINED |
04 / 27 | EXPIRED_CARD |
08 / 28 | TIMED_OUT |
01 / 37 | ACQUIRER_SYSTEM_ERROR |
02 / 37 | UNSPECIFIED_FAILURE |
05 / 37 | UNKNOWN |
CSC/CVV | CSC/CVV Response Gateway Code |
100 | MATCH |
101 | NOT_PROCESSED |
102 | NO_MATCH |
For American Express cards | |
1000 | MATCH |
1010 | NOT_PROCESSED |
1020 | NO_MATCH |
Billing Address Street | AVS Response Gateway Code |
10001 Alpha St | ADDRESS_MATCH |
10002 Gamma St | NOT_VERIFIED |
10003 November St | NO_MATCH |
10004 Romeo St | SERVICE_NOT_AVAILABLE_RETRY |
10005 Sierra St | SERVICE_NOT_SUPPORTED |
10006 Uniform St | NOT_AVAILABLE |
10007 Whiskey St | ZIP_MATCH |
10008 X-ray St | ADDRESS_ZIP_MATCH |
10009 Kilo St | NAME_MATCH |
10010 Oscar St | NAME_ADDRESS_MATCH |
10011 Lima St | NAME_ZIP_MATCH |
10012 Zero St | NOT_REQUESTED
|
Last updated