Prepaid Solutions
Overview
With our prepaid solution, you can extend prepaid products to customers without constraints such as credit rating, income, or bank account ownership. The solution includes issuer, branch, corporate, or cardholder web-based portals, enabling effortless sales, maintenance, load, and card or customer lifecycle management. These features empower non-banked customers to manage their finances like seasoned professionals, making financial management more accessible and straightforward.
Activate prepaid cards
Users can activate prepaid cards when they are first issued or after they have been deactivated for any reason.
Check card balances
Users can check the balance on a prepaid card in real-time or on a scheduled basis.
View transaction history
Users can view a detailed record of all transactions made with a prepaid card, including the date, time, amount, and location of each transaction.
Reload cards
Users can add funds to a prepaid card, either by transferring money from another account or by purchasing a reload card.
Resolve disputes
Users can access a process for resolving disputes or issues that may arise with prepaid card transactions.
Manage card accounts
Users can view and manage their prepaid card accounts, including the ability to set spending limits, view transaction history, and update personal information.
Card Set Pin
Status:
Production
Version:
V2
Product:
Prepaid Solutions
Card Set PIN
Overview
This API is used to set a PIN on a card. This is typically done for newly created cards or replaced ones, and is necessary for making Point of Sales (POS) purchases. The API can also be used in the event that the cardholder forgets their PIN, but it is important to note that strong verification of the cardholder's identity should be performed before enabling this feature (e.g. through the use of biometrics, security questions, or one-time passwords).
The PIN provided through this API will be the one required for all POS purchases made with the card. To ensure the secure exchange of sensitive information, the API uses cryptography to protect the PIN. Two modes of encryption are supported: symmetric encryption and asymmetric encryption.
Symmetric encryption relies on a key exchange ceremony and requires the use of a Hardware Security Module (HSM) or a signed waiver from the bank for key handling. Asymmetric encryption, on the other hand, relies on dynamic key exchange.
For more information on encryption, refer to the 'Get Encryption Certificate' API.
Security
The API uses asymmetric encryption to secure the exchange of sensitive PIN information.
PCI-DSS compliance:
The PIN exchange strategy has been certified by the Payment Card Industry Data Security Standard (PCI-DSS), ensuring compliance with industry standards.
Secure storage of card information
The API uses software encryption and PIN block algorithms, eliminating the need for an HSM.
How It Works
This API allows for the secure configuration of a PIN on a card for Point of Sales (POS) purchases. In order to ensure the security of the PIN, the API requires the use of another API, known as the 'Get Encryption Certificate' API, to prepare the PIN before it is transported.
To use this API, the following steps must be followed:
Retrieve the encryption certificate by calling the 'Get Encryption Certificate' API. This will provide a X509 certificate containing a public key specific to your institution. Obtain the raw PIN from the cardholder through your own channels. It is important to note that this process should not be logged or stored in any way.
If you do not have access to the Card PAN, use the Card Lookup API to retrieve it. The Card PAN is required to form the Pinblock using the ISO 9564 Pinblock format Algorithm.
Form the Pinblock and encrypt it using the certificate obtained in step 1. It's important to note that the Pinblock must be in a Hexstring format before encryption. Use the encrypted Pinblock in this API to configure the PIN on the card.
This API uses a combination of software encryption (RSA 4096) and the PIN Block algorithm to ensure the secure exchange of sensitive information. Furthermore, it does not require the use of Hardware Security Modules (HSM) and can be integrated within your own applications. Additionally, the API is PCI-DSS certified, meaning that it has been certified as compliant with the Payment Card Industry Data Security Standard, and thus you don't have to worry about the security of this API.
Process 1
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Amet, sed at amet cras fringilla adipiscing nunc, in pulvinar. Sagittis pellentesque leo et proin convallis justo vitae in.
Process 1
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Amet, sed at amet cras fringilla adipiscing nunc, in pulvinar. Sagittis pellentesque leo et proin convallis justo vitae in.
Process 1
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Amet, sed at amet cras fringilla adipiscing nunc, in pulvinar. Sagittis pellentesque leo et proin convallis justo vitae in.
Card Set Pin
Status:
Production
Version:
V2
Product:
Prepaid Solutions
Node | Child Node | Type | Length | Description |
---|---|---|---|---|
Authorization | Bearer xxxx | string | Authorization Header (Bearer Token) | |
Content-Type | application/json | string | Content Type |
Node Type | Type | Length | Description | |||||||
---|---|---|---|---|---|---|---|---|---|---|
NISrvRequest | request_card_set_pin | header | msg_id | string | 12 | Message ID, this field should be unique id for each Api call. This will be generated from client side. If the same message ID is used the system will decline the API call with Error Description “Duplicate Message ID” | ||||
msg_type | string | 12 | Message Type – This can have either “TRANSACTION” or “ENQUIRY” As for this API the value expected is “TRANSACTION” | |||||||
msg_function | string | 50 | Static Value - REQ_CARD_SET_PIN | |||||||
src_application | string | 10 | Source Application: This is a free Text and the client can populate the source system from where the API is Initiated Example: IVR, IB, MB No Validations of these are kept at Network Systems | |||||||
target_application | string | 10 | The target_application can hold any value from FI side, this can be used by FI to check the target system of the API call | |||||||
timestamp | string | 30 | Timestamp of the request - Format YYYY-MM-DDtHH:MM:SS.SSS+04:00 | |||||||
bank_id | string | 4 | Bank Id is Unique Id 4 digit code for each client and the same will be provided once the client setup is completed in our core system. For sandbox testing – Please use “NIC” | |||||||
body | card_identifier_id | string | 32 | Card Identifier Id | ||||||
card_identifier_type | string | 20 | CONTRACT_NUMBER is used for clear card number or EXID which is a unique identifier for the card generated by CMS | |||||||
card_sequence_number | string | 2 | Card sequence number Example 01 | |||||||
card_expiry_date | string | 4 | 2605 | |||||||
encrypted_pin | string | 20 | Encrypted Pin block under ZPK Ex: 7B47D3321D4A5F63 | |||||||
encryption_method | string | 20 | Encryption Method to be used for the encryption of the pin |
{
"NISrvRequest": {
"request_card_set_pin": {
"header": {
"msg_id": "236001",
"msg_type": "TRANSACTION",
"msg_function": "REQ_CARD_SET_PIN",
"src_application": "IVR",
"target_application": "WAY4",
"timestamp": "2020-07-20T10:49:02.366+04:00",
"bank_id": "NIC"
},
"body": {
"card_identifier_id": "99984100148297467162",
"card_identifier_type": "EXID",
"card_sequence_number": "01",
"card_expiry_date": "2704",
"encrypted_pin": "F41AB9C3974FE7A9",
"encryption_method": "SYMMETRIC"
}
}
}
}
Node | Child Node | Type | Length | Description | |
---|---|---|---|---|---|
Content-Type | application/json | string | Content Type |
Node Type | Type | Length | Description | |||||||
---|---|---|---|---|---|---|---|---|---|---|
NISrvResponse | response_card_set_pin | header | msg_id | string | 12 | Message ID, this field should be unique id for each Api call. This will be generated from client side. If the same message ID is used the system will decline the API call with Error Description “Duplicate Message ID” | ||||
msg_type | string | 12 | Message Type – This can have either “TRANSACTION” or “ENQUIRY” As for this API the value expected is “TRANSACTION” | |||||||
msg_function | string | 50 | Static value - REP_CARD_SET_PIN | |||||||
src_application | string | 10 | Source Application: This is a free Text and the client can populate the source system from where the API is Initiated Example: IVR, IB, MB No Validations of these are kept at Network Systems | |||||||
target_application | string | 10 | The target_application can hold any value from FI side, this can be used by FI to check the target system of the API call | |||||||
timestamp | string | 15 | Timestamp of the response - Format YYYY-MM-DDtHH:MM:SS.SSS+04:00 | |||||||
bank_id | string | 4 | Bank Id is Unique Id 4 digit code for each client and the same will be provided once the client setup is completed in our core system. For sandbox testing – Please use “NIC” | |||||||
exception_details | application_name | string | 20 | Application Name | ||||||
date_time | string | 30 | Timestamp of the response Format “YYYY-MM-DD HH:MM:SS” | |||||||
status | string | 1 | Status of the request (S/F) | |||||||
error_code | string | 4 | EAI Internal Error Code (Check error codes section for the complete list of error codes and error code descriptions) | |||||||
error_description | string | 100 | Error Description (Check error codes section for the complete list of error codes and error code descriptions) | |||||||
transaction_ref_id | string | 20 | The tracking_id sent in the request will be sent back in response in this field. |
{
"NISrvResponse": {
"response_card_set_pin": {
"header": {
"msg_id": "236001",
"msg_type": "TRANSACTION",
"msg_function": "REP_CARD_SET_PIN",
"src_application": "IVR",
"target_application": "WAY4",
"timestamp": "2020-07-20T10:49:02.366+04:00",
"bank_id": "NIC"
},
"exception_details": {
"application_name": "TCC-ADP",
"date_time": "2023-02-01T16:39:47.314+04:00",
"status": "S",
"error_code": "000",
"error_description": "Success"
}
}
}
}
Code | Description |
---|---|
200 | Sample Description |
400 | Bad Request |
401 | Unauthorized |
403 | Forbidden |
500 | Internal Server Error |
502 | Bad gateway |
503 | Scheduled Maintenance |
504 | Gateway Timeout |
596 | Service Not Found |