KHIPU
Khipu allows its users to pay and receive payments via a streamlined bank transfer. Users choose the Khipu payment method to make payment, sign in to their online banking, and then enter a two-factor authentication code with their PIN to complete a transaction.
The Paysafe Payments API supports Khipu via SafetyPay as a Payment Instrument for iGaming and Crypto Merchants in Chile.
Khipu is one of the most popular payment methods in Chile. It is available through online transfer payment method as many merchants consider it as the part of bank transfer. However, if you want to offer it as a separate payment method, then you can use the implementation mentioned here.
Features
Khipu:
- Provides instant payment confirmation.
- Has no chargebacks risks.
- Provides one-step online payments.
- Collection notification in real time / 24 hours a day.
- Has 100% of bank share in Chile.
Setup Requirements
To create an account in sandbox and production environment, you need to follow below steps. Your account manager will guide you in the process.
- Send your details to it_integrations@safetypay.com
- You will receive access to Portal where you will see below details
- Merchant Secret key
- Merchant Signature key
- You will receive access to Portal where you will see below details
- Share above details with us to create API Key - You will use this API key in our API calls.
Certification Requirements
Each merchant is required to go through a certification process to support SafetyPay Express as a payment method. The Paysafe integration team will share certification requirements.
Transaction Types
Paysafe supports the following transaction type:
- Payments – Used to transfer money from customer's bank account to merchant account. After successful payments, the merchant credits the customer's wallet.
Max Amount: CLP 5,000,000
Processing Currency: CLP
Settlement Currency: USD
NOTE: CLP has no minor currency unit. However, when you send an API request, you must send the amount with a 2 decimal shift - this is to maintain consistency across all payments methods, as a 2 decimal shift is standard in the Paysafe Payments API. When you want to process the amount of 123 in CLP for example, you must send the amount as 12300 in your API request.
Typical Scenarios
When you want to process a payment request using Khipu as the payment type, you would do the following:
-
Create a Payment Handle with the following parameter settings:
transactionType: PAYMENT
paymentType: KHIPU- There is also an option to display particular banks to the user in SafetyPay express by sending bank codes in request.
- You need to pass bankNameCodes in the request.
- Refer to the table at the bottom of the page for bankNameCodes.
-
Redirect the customer to the SafetyPay redirect URL, so they can generate a payment code. The status of the Payment Handle becomes PAYABLE. The merchant gets notified of this status change via webhooks that have been configured.
-
Use the paymentHandleToken returned in the response to process the Payment request. The Payment will have a status of PROCESSING until the customer has made the payment.
You will receive a Payment Completed notification via webhooks when the customer successfully completes the payment.
Return links
- After the customer has been redirected to SafetyPay Express, you will receive a Payment Handle Payable webhook. When you make a /payments call, you will get a payment status of either Processing, Completed or Failed.
- After the customer completes the transaction at Safetypay Express, the customer will be redirected to your return link. You can check the status of the /payments response and redirect the customer to your relevant page depending on the payment status:
Payment status | Description |
---|---|
PROCESSING | The transaction is not complete and is in progress. It does not mean that the transaction has failed. You will get a COMPLETED or FAILED webhook for this transaction at a later stage, when you will be able to update the transaction status at your end. |
COMPLETED | The customer has successfully completed the transaction at the SafetyPay end. |
FAILED | The payment has expired at the SafetyPay end. |
If you don't receive webhooks, you can use a GET call to query the transaction status. However, we recommend that you avoid constant polling of the API.
See Webhooks and GET calls for more information.
APIs to use
Payment handle request
{
"amount": 47000,
"currencyCode": "CLP",
"dupCheck": true,
"liveMode": true,
"merchantRefNum": "eb23d35f-761c-4496-8c01-0cd6a5a5be71",
"transactionType": "PAYMENT",
"paymentExpiryMinutes":15,
"accountId": "1002495260",
"paymentType": "KHIPU",
"profile": {
"email": "CLKHIPU0212_01@gmail.com"
},
"returnLinks": [
{
"rel": "default",
"href": "http://www.amazon.ca"
}
]
}
Payment handle response
{
"id": "285cb0a7-58a4-4889-816f-7f4307901ceb",
"paymentType": "KHIPU",
"paymentHandleToken": "PHLDYzxhki41lc4H",
"merchantRefNum": "b7500fd0-626c-41c6-9149-d1a763eb8b48",
"currencyCode": "CLP",
"txnTime": "2023-03-14T05:15:01Z",
"customerIp": "213.208.158.220",
"status": "INITIATED",
"links": [
{
"rel": "redirect_payment",
"href": "https://api.test.paysafe.com/alternatepayments/v1/redirect?accountId=1002495260&paymentHandleId=285cb0a7-58a4-4889-816f-7f4307901ceb&token=eyJhbGciOiJIUzI1NiJ9.eyJhY2QiOiIxMDAyNDk1MjYwIiwicHlkIjoiMjg1Y2IwYTctNThhNC00ODg5LTgxNmYtN2Y0MzA3OTAxY2ViIiwiZXhwIjoxNjc4NzcyNzAyfQ.L6of4dOnuo7wBjxJIizrwzsItCOhRzkXEa1AS2gL7kU"
}
],
"liveMode": false,
"simulator": "EXTERNAL",
"usage": "SINGLE_USE",
"action": "REDIRECT",
"executionMode": "SYNCHRONOUS",
"amount": 47000,
"timeToLiveSeconds": 898,
"gatewayResponse": {
"operationId": "0123073466283383",
"id": "60edc2f9-5c33-4455-ab8c-edbe009a19fa",
"processor": "SAFETYPAY"
},
"returnLinks": [
{
"rel": "default",
"href": "http://www.amazon.ca"
}
],
"transactionType": "PAYMENT",
"gatewayReconciliationId": "60edc2f9-5c33-4455-ab8c-edbe009a19fa",
"updatedTime": "2023-03-14T05:15:02Z",
"statusTime": "2023-03-14T05:15:02Z",
"paymentExpiryMinutes":15,
"profile": {
"email": "CLKHIPU0212_01@gmail.com"
}
}
Payments request
{
"merchantRefNum": "40005e73-71e0-433a-8817-7604dfce884d",
"amount": 47000,
"currencyCode": "CLP",
"dupCheck": true,
"settleWithAuth": true,
"paymentHandleToken": "PHLDYzxhki41lc4H"
}
Payments response
{
"id": "3e7f67e6-8927-4aea-93ec-a159b194ac40",
"paymentType": "KHIPU",
"paymentHandleToken": "PHLDYzxhki41lc4H",
"merchantRefNum": "0d6002cf-532d-4221-a230-b4227db3dc0a",
"currencyCode": "CLP",
"settleWithAuth": true,
"dupCheck": true,
"txnTime": "2023-03-14T05:15:01Z",
"customerIp": "213.208.158.220",
"status": "PROCESSING",
"gatewayReconciliationId": "60edc2f9-5c33-4455-ab8c-edbe009a19fa",
"amount": 47000,
"availableToRefund": 0,
"consumerIp": "213.208.158.220",
"liveMode": false,
"simulator": "EXTERNAL",
"updatedTime": "2023-03-14T05:17:10Z",
"statusTime": "2023-03-14T05:17:10Z",
"gatewayResponse": {
"operationId": "0123073466283383",
"id": "60edc2f9-5c33-4455-ab8c-edbe009a19fa",
"processor": "SAFETYPAY",
"status": "101"
},
"availableToSettle": 0,
"profile": {
"email": "CLKHIPU0212_01@gmail.com"
},
"settlements": {
"amount": 47000,
"txnTime": "2023-03-14T05:15:01.000+0000",
"availableToRefund": 0,
"merchantRefNum": "0d6002cf-532d-4221-a230-b4227db3dc0a",
"id": "3e7f67e6-8927-4aea-93ec-a159b194ac40",
"status": "PROCESSING"
}
}
Bank Codes
Bank Name Code | Currencies | Min Amount | Max Amount |
KHIPU | CLP | 200 CLP | CLP 5,000,000 |
BANCO_DE_CHILE | CLP | 200 CLP | CLP 5,000,000 |
SANTANDER | CLP | 1000 CLP | CLP 5,000,000 |
BANCO_ESTADO | CLP | 200 CLP | CLP 5,000,000 |
BCI | CLP | 200 CLP | CLP 5,000,000 |
ITAU | CLP | 200 CLP | CLP 5,000,000 |
Testing Instructions
Country | currencyCode | countryCode | Instructions |
---|---|---|---|
Chile | CLP | CL |
--------------
|