Introduction
Streamline Retail Payments at Alfamart, Indomaret, and More with our API. Effortlessly integrate our API with popular retail chains to simplify payment processes. Enable seamless payment acceptance at Alfamart, Indomaret, and other supported retailers, providing convenient options for your customers
Channel List
List of supported Channel in Retail:
Channel | Name |
|---|---|
| alfamart | Alfamart |
| indomaret | Indomaret |
Request
You need to authenticate your requests to access any endpoint in the SenGo API.
Request Parameters
- Name
reference- Type
- mandatory
- Description
A unique reference number or identifier for the transaction. all transaction references should be unique.
- Name
phoneNumber- Type
- mandatory
- Description
Transaction bills will be sent to this telephone number
- Name
channel- Type
- mandatory
- Description
A type of e-wallet to be used for the transaction. you can find the list of ewallet above the table.
- Name
amount- Type
- mandatory
- Description
Amount your user should paid to complete the transaction
- Name
expiryMinutes- Type
- opsional
- Description
If you want the transaction to last for 1 hour, you would set the value of the expiryMinutes parameter to 60.
- Name
viewName- Type
- mandatory
- Description
The name or identifier of the receiver for the transaction.
- Name
additionalInfo.callback- Type
- mandatory
- Description
The callback URL where notifications or updates related to the transaction will be sent.
You need to authenticate your Headers request to access any endpoint in the SenGo API, to see the authentication documentation please read the Authentication section.
Request Json
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => '{{HOST}}/retail',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"reference": "REFF012",
"phoneNumber":"08123456789",
"channel":"alfamart",
"amount": 10000,
"expiryMinutes": 30,
"viewName": "Merchant Name",
"additionalInfo": {
"callback": "http://your-site-callback.com/notify",
}
}',
CURLOPT_HTTPHEADER => array(
'X-Client-Key: ',
'X-Client-Token: ',
'X-Signature: '
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Response
Response Json
{
"responseCode": 200,
"responseMessage": "success",
"responseData": {
"id": "66e934f6-f5d6-4f1c-bb3d-450ec2873782",
"merchantRef": "REFF012",
"status": "pending",
"feePayer": "customer",
"amount": 10000,
"fee": 85,
"totalAmount": 10085,
"expiredDate": "2025-03-23T10:24:58+07:00",
"additionalInfo": {
"callback": "http://your-site-callback.com/notify"
},
"retail": {
"viewName": "Merchant Name",
"channel": "alfamart",
"paymentCode": "12345678901"
}
}
}
Response Parameters
| Parameter | Description |
|---|---|
| responseCode | The HTTP response code indicating the status of the request. See the Error Codes section for details. |
| responseMessage | A descriptive message indicating the status of the request. |
| responseData | An object containing the data related to the transaction response. |
| responseData.id | SenGo unique identifier for the transaction. |
| responseData.status | The current status of the transaction. success, pending, expired, failed. |
| responseData.feePayer | The party responsible for paying the transaction fee. customer or merchant. |
| responseData.amount | The original amount associated with the transaction. |
| responseData.fee | The fee charged for the transaction. |
| responseData.totalAmount | The total amount (original amount + fee) for the transaction. |
| responseData.expiredDate | The date and time when the transaction will expire. |
| responseData.additionalInfo.callback | The callback URL where notifications or updates related to the transaction will be sent. |
| responseData.retail.viewName | The code representing the bank associated with the virtual account. |
| responseData.retail.channel | The channel representing the e-wallet to be used for the transaction. |
| responseData.retail.paymentCode | The identifier associated with the retail. This number will be informed by customer to the retail cassier. |
If you want to see the error code status, please read the Extras >> Error Code section.
