ValU
Copy page
Copy page as Markdown for LLMs
Open in Claude
Ask questions about this page
ValU consumer finance is a simple and secure financing platform where your customers can do online purchases on short-term financing and repay the amount based on specific installment plans at an interest rate offered by the financing company. For now, we have partnered with ValU in Egypt to offer consumer financing services.
We support ValU in Egypt. Ensure your merchant account is configured for the Egyptian market before integration.
API Endpoints
https://sbpaymentservices.payfort.com/FortAPI/paymentApi
Request Format
- Method:
POST - Content-Type:
application/json - Submission: Server-to-server HTTPS POST
Before Starting
Before you start, remember:
- Your customer should be registered with ValU in order to have this benefit of installments.
- You should have a valid SHA signature, to configure signatures, refer to Signature and Signature Calculation Tool.
- To fetch your merchant reference and merchant access code, go to Merchant Management, search and select the test merchant account and click Security Settings.
Multiply your transaction amount by the currency decimal code per ISO code 3 before sending the amount parameter. Example: For 100 EGP (2 decimal places per ISO code 3), multiply by 100 to send 10000 in your request.
The merchant_reference must be unique per transaction and should be the same for all ValU APIs.
Check signature calculation section to learn how to calculate the signature.
- Customer Verify
- OTP Generate
- Get Installment Plans
- Purchase
This request allows the Merchant to identify whether the customer is a ValU registered customer or not; by verifying the Customer's phone number.
Request Parameters
| Parameter |
|---|
service_command Alpha Max: 20 Required Service command for customer verification. Value: CUSTOMER_VERIFYExample. CUSTOMER_VERIFY |
access_code Alphanumeric Max: 20 Required Merchant access code obtained from Amazon Payment Services dashboard under Integration Settings. Example. zx0IPmPy5jp1vAz8Kpg7 |
merchant_identifier Alphanumeric Max: 20 Required Unique merchant identifier assigned by Amazon Payment Services during account setup. Example. CycHZxVj |
merchant_reference Alphanumeric Max: 40 Required Unique order reference that must be unique per merchant. The merchant reference should be the same for all APIs. Alphanumeric characters, hyphens, underscores, and periods allowed. Special characters: - _ .Example. XYZ9239-yu898 |
language Alpha Max: 2 Required Response language. Supported values: en (English) or ar (Arabic). Example. en |
payment_option Alpha Max: 10 Required Payment option for ValU transactions. Value: VALUExample. VALU |
phone_number Alphanumeric Max: 19 Required Customer's phone number registered with ValU for verification. Example. 00008557694 |
signature Alphanumeric Max: 200 Required SHA-256 hash signature for request authentication and integrity validation. Example. 7cad05f0212ed933c9a5d5dffa31661acf2c827a |
Response Parameters
| Parameter |
|---|
service_command Alpha Max: 20 Service command from the request. Value: CUSTOMER_VERIFYExample. CUSTOMER_VERIFY |
access_code Alphanumeric Max: 20 Merchant access code used in the request. Example. zx0IPmPy5jp1vAz8Kpg7 |
merchant_identifier Alphanumeric Max: 20 Merchant identifier used in the request. Example. CycHZxVj |
merchant_reference Alphanumeric Max: 40 Unique order reference from the request. Special characters: - _ .Example. XYZ9239-yu898 |
language Alpha Max: 2 Language used for the response. Example. en |
payment_option Alpha Max: 10 Payment option used. Value: VALUExample. VALU |
phone_number Alphanumeric Max: 19 Customer's phone number from the request. Example. 00008557694 |
signature Alphanumeric Max: 200 Response signature for verification. Example. 7cad05f0212ed933c9a5d5dffa31661acf2c827a |
response_message Alphanumeric Max: 150 Human-readable response description in requested language. Example. Success |
response_code Numeric Max: 5 Numeric response code indicating verification result. Example. 88000 |
status Numeric Max: 2 Two-digit status code indicating verification state. Example. 88 |
{
"service_command": "CUSTOMER_VERIFY",
"merchant_reference": "XYZ9239-yu898",
"merchant_identifier": "CycHZxVj",
"access_code": "zx0IPmPy5jp1vAz8Kpg7",
"language": "en",
"payment_option": "VALU",
"phone_number": "00008557694",
"signature": "54efbd76bd644e9ef237c39137bf5d2304dc1bfdf6f6302065b448f2456a07a7"
}
{
"service_command": "CUSTOMER_VERIFY",
"access_code": "zx0IPmPy5jp1vAz8Kpg7",
"merchant_identifier": "CycHZxVj",
"merchant_reference": "XYZ9239-yu898",
"language": "en",
"payment_option": "VALU",
"phone_number": "00008557694",
"signature": "7cad05f0212ed933c9a5d5dffa31661acf2c827a",
"response_message": "Success",
"response_code": "88000",
"status": "88"
}
Generate an OTP for the customer, where the customer should fill in their phone number in the merchant's check-out page. ValU will generate the OTP code and send it to customer as SMS.
Request Parameters
| Parameter |
|---|
service_command Alpha Max: 20 Required Service command for OTP generation. Value: OTP_GENERATEExample. OTP_GENERATE |
access_code Alphanumeric Max: 20 Required Merchant access code obtained from Amazon Payment Services dashboard under Integration Settings. Example. zx0IPmPy5jp1vAz8Kpg7 |
merchant_identifier Alphanumeric Max: 20 Required Unique merchant identifier assigned by Amazon Payment Services during account setup. Example. CycHZxVj |
merchant_reference Alphanumeric Max: 40 Required Unique order reference that must be unique per merchant. The merchant reference should be the same for all APIs. Alphanumeric characters, hyphens, underscores, and periods allowed. Example. XYZ9239-yu898 |
language Alpha Max: 2 Required Response language. Supported values: en (English) or ar (Arabic). Example. en |
payment_option Alpha Max: 10 Required Payment option for ValU transactions. Value: VALUExample. VALU |
phone_number Alphanumeric Max: 19 Required Customer's phone number registered with ValU for OTP delivery. Example. 00008557694 |
amount Numeric Max: 10 Required Transaction amount in smallest currency unit (e.g., piasters for EGP). Must be positive integer. Example. 10000 |
currency Alpha Max: 3 Required Three-letter ISO 4217 currency code for the transaction amount. Value: EGPExample. EGP |
signature Alphanumeric Max: 200 Required SHA-256 hash signature for request authentication and integrity validation. Example. 7cad05f0212ed933c9a5d5dffa31661acf2c827a |
wallet_amount Numeric Max: 10 Required Wallet amount or ToU (Transfer of Use) - a gift balance that can be purchased using valU limit and paid in flexible installment plans from 6-60 months. Amount in smallest currency unit. Example. 10000 |
cashback_wallet_amount Numeric Max: 10 Required Amount stored in cashback wallet. Amount in smallest currency unit. Example. 10000 |
include_installments Alpha Max: 3 Optional Defines whether the customer can pay in installments. Values: YES, NODefault: YESExample. YES |
total_downpayment Numeric Max: 100 Optional Total down-payment amount payable by the customer. Decimal values are not accepted. Example. 1200 |
merchant_extra1 Alphanumeric Max: 250 Optional Additional custom field for merchant-specific data. Will be received and sent back as received. Special characters: . ; / _ - , ' @Example. JohnSmith |
merchant_extra2 Alphanumeric Max: 250 Optional Additional custom field for merchant-specific data. Will be received and sent back as received. Special characters: . ; / _ - , ' @Example. JohnSmith |
merchant_extra3 Alphanumeric Max: 250 Optional Additional custom field for merchant-specific data. Will be received and sent back as received. Special characters: . ; / _ - , ' @Example. JohnSmith |
Response Parameters
| Parameter |
|---|
service_command Alpha Max: 20 Service command from the request. Value: OTP_GENERATEExample. OTP_GENERATE |
access_code Alphanumeric Max: 20 Merchant access code used in the request. Example. zx0IPmPy5jp1vAz8Kpg7 |
merchant_identifier Alphanumeric Max: 20 Merchant identifier used in the request. Example. CycHZxVj |
merchant_reference Alphanumeric Max: 40 Unique order reference from the request. Example. XYZ9239-yu898 |
language Alpha Max: 2 Language used for the response. Example. en |
payment_option Alpha Max: 10 Payment option used. Value: VALUExample. VALU |
phone_number Alphanumeric Max: 19 Customer's phone number from the request. Example. 00008557694 |
merchant_order_id Alphanumeric Max: 100 Unique order identifier generated by the system. Use this value for all subsequent APIs. Example. Valu123 |
amount Numeric Max: 10 Transaction amount from the request. Example. 10000 |
currency Alpha Max: 3 Currency code from the request. Example. EGP |
total_downpayment Numeric Max: 100 Total down-payment amount from the request. Example. 10000 |
installment_detail List Array of installment plan details if include_installments is set to YES. Contains fee amount, installment amount, installment per month and total installment information. Example. Array of objects |
signature Alphanumeric Max: 200 Response signature for verification. Example. 7cad05f0212ed933c9a5d5dffa31661acf2c827a |
merchant_extra1 Alphanumeric Max: 250 Custom data from the request. Example. JohnSmith |
merchant_extra2 Alphanumeric Max: 250 Custom data from the request. Example. JohnSmith |
merchant_extra3 Alphanumeric Max: 250 Custom data from the request. Example. JohnSmith |
response_message Alphanumeric Max: 150 Human-readable response description in requested language. Example. Success |
response_code Numeric Max: 5 Numeric response code indicating OTP generation result. Example. 88000 |
status Numeric Max: 2 Two-digit status code indicating OTP generation state. Example. 88 |
wallet_amount Numeric Max: 10 Wallet amount from the request. Example. 10000 |
cashback_wallet_amount Numeric Max: 10 Cashback wallet amount from the request. Example. 10000 |
{
"merchant_reference": "TEST-009967",
"merchant_identifier": "CycHZxVj",
"access_code": "zx0IPmPy5jp1vAz8Kpg7",
"signature": "27c1303138f8718e56f311d1b3d823b5a644e6bcd4fac43d5454955b13b5b337",
"service_command": "OTP_GENERATE",
"language": "en",
"payment_option": "VALU",
"phone_number": "01220422223",
"amount": 100000,
"currency": "EGP",
"include_installments": "YES",
"wallet_amount": 500000,
"cashback_wallet_amount": 300000
}
{
"service_command": "OTP_GENERATE",
"access_code": "zx0IPmPy5jp1vAz8Kpg7",
"merchant_identifier": "CycHZxVj",
"merchant_reference": "TEST-009967",
"language": "en",
"payment_option": "VALU",
"phone_number": "01220422223",
"merchant_order_id": "Valu123",
"amount": 100000,
"currency": "EGP",
"total_downpayment": 10000,
"installment_detail": [
{
"fee_amount": 500,
"installment_amount": 17500,
"installment_per_month": 6,
"total_installment": 105000
}
],
"signature": "7cad05f0212ed933c9a5d5dffa31661acf2c827a",
"response_message": "Success",
"response_code": "88000",
"status": "88",
"wallet_amount": 500000,
"cashback_wallet_amount": 300000
}
Using this API, you can fetch the installment plans the customer has selected.
Request Parameters
| Parameter |
|---|
service_command Alpha Max: 20 Required Service command for retrieving installment plans. Value: GET_INSTALLMENTS_PLANSExample. GET_INSTALLMENTS_PLANS |
access_code Alphanumeric Max: 20 Required Merchant access code obtained from Amazon Payment Services dashboard under Integration Settings. Example. zx0IPmPy5jp1vAz8Kpg7 |
merchant_identifier Alphanumeric Max: 20 Required Unique merchant identifier assigned by Amazon Payment Services during account setup. Example. CycHZxVj |
merchant_reference Alphanumeric Max: 40 Required Unique order reference that must be unique per merchant. The merchant reference should be the same for all APIs. Alphanumeric characters, hyphens, underscores, and periods allowed. Special characters: - _ .Example. XYZ9239-yu898 |
language Alpha Max: 2 Required Response language. Supported values: en (English) or ar (Arabic). Example. en |
payment_option Alpha Max: 10 Required Payment option for ValU transactions. Value: VALUExample. VALU |
phone_number Alphanumeric Max: 19 Required Customer's phone number registered with ValU. Example. 00008557694 |
amount Numeric Max: 10 Required Transaction amount in smallest currency unit (e.g., piasters for EGP). Must be positive integer. Example. 10000 |
currency Alpha Max: 3 Required Three-letter ISO 4217 currency code for the transaction amount. Value: EGPExample. EGP |
signature Alphanumeric Max: 200 Required SHA-256 hash signature for request authentication and integrity validation. Example. 7cad05f0212ed933c9a5d5dffa31661acf2c827a |
wallet_amount Numeric Max: 10 Required Wallet amount or ToU (Transfer of Use) - a gift balance that can be purchased using valU limit and paid in flexible installment plans from 6-60 months. Amount in smallest currency unit. Example. 10000 |
cashback_wallet_amount Numeric Max: 10 Required Amount stored in cashback wallet. Amount in smallest currency unit. Example. 10000 |
total_downpayment Numeric Max: 100 Optional Total down-payment amount payable by the customer. Decimal values are not accepted. Example. 1200 |
Response Parameters
| Parameter |
|---|
service_command Alpha Max: 20 Service command from the request. Value: GET_INSTALLMENTS_PLANSExample. GET_INSTALLMENTS_PLANS |
access_code Alphanumeric Max: 20 Merchant access code used in the request. Example. zx0IPmPy5jp1vAz8Kpg7 |
merchant_identifier Alphanumeric Max: 20 Merchant identifier used in the request. Example. CycHZxVj |
merchant_reference Alphanumeric Max: 40 Unique order reference from the request. Special characters: - _ .Example. XYZ9239-yu898 |
language Alpha Max: 2 Language used for the response. Example. en |
payment_option Alpha Max: 10 Payment option used. Value: VALUExample. VALU |
total_downpayment Numeric Max: 100 Total down-payment amount from the request. Example. 1200 |
phone_number Alphanumeric Max: 19 Customer's phone number from the request. Example. 00008557694 |
amount Numeric Max: 10 Transaction amount from the request. Example. 10000 |
currency Alpha Max: 3 Currency code from the request. Example. EGP |
signature Alphanumeric Max: 200 Response signature for verification. Example. 7cad05f0212ed933c9a5d5dffa31661acf2c827a |
installment_detail List Array containing detailed information about all available installment plans, including number of installments, fees due every month, and total amounts. Example. Array of objects |
wallet_amount Numeric Max: 10 Wallet amount from the request. Example. 10000 |
cashback_wallet_amount Numeric Max: 10 Cashback wallet amount from the request. Example. 10000 |
{
"service_command": "GET_INSTALLMENTS_PLANS",
"merchant_reference": "XYZ9239-yu898",
"merchant_identifier": "CycHZxVj",
"access_code": "zx0IPmPy5jp1vAz8Kpg7",
"signature": "b574e362cc08d7504d8277e71400132f06064ee1537cd570717569b583dec0b5",
"phone_number": "01220422223",
"payment_option": "VALU",
"language": "en",
"amount": 100000,
"currency": "EGP",
"total_downpayment": 1200,
"wallet_amount": 500000,
"cashback_wallet_amount": 300000
}
{
"service_command": "GET_INSTALLMENTS_PLANS",
"access_code": "zx0IPmPy5jp1vAz8Kpg7",
"merchant_identifier": "CycHZxVj",
"merchant_reference": "XYZ9239-yu898",
"language": "en",
"payment_option": "VALU",
"total_downpayment": 1200,
"phone_number": "01220422223",
"amount": 100000,
"currency": "EGP",
"signature": "7cad05f0212ed933c9a5d5dffa31661acf2c827a",
"installment_detail": [
{
"tenure": 6,
"fee_amount": 2500,
"installment_amount": 17083,
"total_installment": 102500
},
{
"tenure": 12,
"fee_amount": 5000,
"installment_amount": 8750,
"total_installment": 105000
}
],
"wallet_amount": 500000,
"cashback_wallet_amount": 300000
}
This request allows the Customer to Purchase his selected items through the selected consumer finance.
Request Parameters
- Mandatory Parameters
| Parameter |
|---|
command Alpha Max: 20 Required Transaction type to be executed for ValU purchase. Value: PURCHASEExample. PURCHASE |
access_code Alphanumeric Max: 20 Required Merchant access code obtained from Amazon Payment Services dashboard under Integration Settings. Example. zx0IPmPy5jp1vAz8Kpg7 |
merchant_identifier Alphanumeric Max: 20 Required Unique merchant identifier assigned by Amazon Payment Services during account setup. Example. CycHZxVj |
merchant_reference Alphanumeric Max: 40 Required Unique order reference that must be unique per merchant. The merchant reference should be the same for all APIs. Alphanumeric characters, hyphens, underscores, and periods allowed. Special characters: - _ .Example. XYZ9239-yu898 |
payment_option Alpha Max: 10 Required Payment option for ValU transactions. Value: VALUExample. VALU |
phone_number Alphanumeric Max: 19 Required Customer's phone number registered with ValU. Example. 00008557694 |
amount Numeric Max: 10 Required Transaction amount in smallest currency unit (e.g., piasters for EGP). Must be positive integer. Example. 10000 |
currency Alpha Max: 3 Required Three-letter ISO 4217 currency code for the transaction amount. Value: EGPExample. EGP |
language Alpha Max: 2 Required Response language. Supported values: en (English) or ar (Arabic). Example. en |
customer_email Alphanumeric Max: 254 Required Valid customer email address for payment notifications and receipt delivery. Special characters: _ - . @ +Example. customer@domain.com |
otp Alphanumeric Max: 10 Required One-time password sent to customer's mobile phone via SMS from ValU. Example. 123456 |
tenure Alphanumeric Max: 100 Required Selected tenure for the installment payments in months. Example. 6 |
signature Alphanumeric Max: 200 Required SHA-256 hash signature for request authentication and integrity validation. Example. 7cad05f0212ed933c9a5d5dffa31661acf2c827a |
purchase_description Alphanumeric Max: 100 Required Human-readable description of the purchase or service being paid for. Example. Test |
total_down_payment Alphanumeric Max: 100 Required Total down-payment amount for the transaction. Decimal values are not accepted. Example. 0 |
wallet_amount Numeric Max: 10 Required Wallet amount or ToU (Transfer of Use) - a gift balance that can be purchased using valU limit and paid in flexible installment plans from 6-60 months. Amount in smallest currency unit. Example. 10000 |
cashback_wallet_amount Numeric Max: 10 Required Amount stored in cashback wallet. Amount in smallest currency unit. Example. 10000 |
Response Parameters
| Parameter |
|---|
command Alpha Max: 20 Transaction type executed. Value: PURCHASEExample. PURCHASE |
access_code Alphanumeric Max: 20 Merchant access code used in the request. Example. zx0IPmPy5jp1vAz8Kpg7 |
merchant_identifier Alphanumeric Max: 20 Merchant identifier used in the request. Example. CycHZxVj |
merchant_reference Alphanumeric Max: 40 Unique order reference from the request. Example. XYZ9239-yu898 |
payment_option Alpha Max: 10 Payment option used. Value: VALUExample. VALU |
phone_number Alphanumeric Max: 19 Customer's phone number from the request. Example. 00008557694 |
amount Numeric Max: 10 Transaction amount processed. Example. 10000 |
currency Alpha Max: 3 Currency code used for the transaction. Example. EGP |
language Alpha Max: 2 Language used for the response. Example. en |
customer_email Alphanumeric Max: 254 Customer email address used. Example. customer@domain.com |
signature Alphanumeric Max: 200 Response signature for verification. Example. 7cad05f0212ed933c9a5d5dffa31661acf2c827a |
purchase_description Alphanumeric Max: 100 Purchase description from the request. Example. Test |
customer_ip Alphanumeric Max: 45 Customer's IP address captured during the transaction. Supports IPv4 and IPv6 formats. Example. 192.178.1.10 |
eci Alpha Max: 16 E-commerce indicator for the transaction. Value: ECOMMERCEExample. ECOMMERCE |
fort_id Numeric Max: 20 Unique transaction reference generated by Amazon Payment Services. Example. 149295435400084008 |
response_message Alphanumeric Max: 150 Human-readable response description in requested language. Example. Success |
response_code Numeric Max: 5 Numeric response code indicating purchase result. Example. 14000 |
status Numeric Max: 2 Two-digit status code indicating purchase state. Example. 14 |
wallet_amount Numeric Max: 10 Wallet amount from the request. Example. 10000 |
cashback_wallet_amount Numeric Max: 10 Cashback wallet amount from the request. Example. 10000 |
loan_number Alphanumeric Max: 100 Unique loan number generated by ValU for each successful purchase transaction. Example. VL123456789 |
valu_transaction_id Alphanumeric Max: 100 Unique identifier for the transaction generated by ValU system. Example. VTX987654321 |
{
"merchant_reference": "XYZ9239-yu898",
"merchant_identifier": "CycHZxVj",
"access_code": "zx0IPmPy5jp1vAz8Kpg7",
"signature": "b574e362cc08d7504d8277e71400132f06064ee1537cd570717569b583dec0b5",
"command": "PURCHASE",
"language": "en",
"payment_option": "VALU",
"phone_number": "00008557694",
"amount": 10000,
"currency": "EGP",
"customer_email": "customer@domain.com",
"otp": "123456",
"tenure": "6",
"total_down_payment": "1200",
"purchase_description": "Test",
"wallet_amount": 500000,
"cashback_wallet_amount": 300000
}
{
"command": "PURCHASE",
"access_code": "zx0IPmPy5jp1vAz8Kpg7",
"merchant_identifier": "CycHZxVj",
"merchant_reference": "XYZ9239-yu898",
"payment_option": "VALU",
"phone_number": "00008557694",
"amount": 10000,
"currency": "EGP",
"language": "en",
"customer_email": "customer@domain.com",
"signature": "7cad05f0212ed933c9a5d5dffa31661acf2c827a",
"purchase_description": "Test",
"customer_ip": "192.178.1.10",
"eci": "ECOMMERCE",
"fort_id": "149295435400084008",
"response_message": "Success",
"response_code": "14000",
"status": "14",
"wallet_amount": 500000,
"cashback_wallet_amount": 300000,
"loan_number": "VL123456789",
"valu_transaction_id": "VTX987654321"
}
Refund Operations
The refund API follows the same standards as other payment options. ValU supports both full and partial refund operations.
The refund API of ValU supports both full refund and partial refund operations. Please use the standard Refund Operation documentation for implementation details.
Response Codes
For a complete list of response codes and their descriptions, please refer to our Error Codes Documentation.
Important Notes
Prior to sending the transaction value, multiply the value by the currency decimal code corresponding to the ISO code 3.
Example: If the amount was 100 EGP, multiply the value with 100 (2 decimal points). The request amount will be 10000.
- Wallet Amount (ToU): A gift balance that can be purchased using your valU limit and paid in flexible installment plans from 6-60 months.
- Cashback Wallet Amount: Amount stored in the cashback wallet for the customer.
- Both amounts are mandatory parameters and must follow the currency decimal point rules.
Your customer must be registered with ValU to access installment benefits. Use the Customer Verify API to check registration status before proceeding with other operations.
Testing The Integration
Sandbox Testing
Use the sandbox environment for development and testing:
- Sandbox URL:
https://sbpaymentservices.payfort.com/FortAPI/paymentApi - Test Phone Numbers: Contact your integration team for ValU test phone numbers
- Test OTP Codes: Use sandbox-specific OTP codes provided by your integration team
Go-Live Process
When ready to move to production, follow our Go-Live checklist