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

alfamartAlfamart
indomaretIndomaret

POST{{HOST}}/retail

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.

Request Json

POST
{{HOST}}/retail
<?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

POST
{{HOST}}/retail
{
    "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

ParameterDescription
responseCodeThe HTTP response code indicating the status of the request. See the Error Codes section for details.
responseMessageA descriptive message indicating the status of the request.
responseDataAn object containing the data related to the transaction response.
responseData.idSenGo unique identifier for the transaction.
responseData.statusThe current status of the transaction. success, pending, expired, failed.
responseData.feePayerThe party responsible for paying the transaction fee. customer or merchant.
responseData.amountThe original amount associated with the transaction.
responseData.feeThe fee charged for the transaction.
responseData.totalAmountThe total amount (original amount + fee) for the transaction.
responseData.expiredDateThe date and time when the transaction will expire.
responseData.additionalInfo.callbackThe callback URL where notifications or updates related to the transaction will be sent.
responseData.retail.viewNameThe code representing the bank associated with the virtual account.
responseData.retail.channelThe channel representing the e-wallet to be used for the transaction.
responseData.retail.paymentCodeThe identifier associated with the retail. This number will be informed by customer to the retail cassier.

Was this page helpful?