Skip to content

Winpay — Over The Counter

Over The Counter (OTC) allows your customers to pay for their orders in cash via physical retail store cashiers throughout Indonesia.

Supported Retailers

  • ALFAMART (Usually covers Alfamidi, Dan+Dan, Lawson as well)
  • INDOMARET
  • FASTPAY

How to Create

Set method_type to over_the_counter, and in method_detail enter the store.

http
POST /v1/payments/create
json
{
  "amount": 7500000, 
  "currency": "IDR",
  "method_type": "over_the_counter",
  "method_detail": {
    "type": "over_the_counter",
    "store": "ALFAMART"
  },
  "customer_name": "Budi Santoso",
  "expiry_minutes": 1440 
}

Important Request Notes

  • Expiry (expiry_minutes): For OTC payments, it is recommended to set a long expiration time (e.g., 1440 minutes = 24 hours), because customers need time to physically travel to the outlet location.

Response

If successful, you will receive a Payment object with method_data containing the payment code to give to the cashier.

json
{
  "success": true,
  "data": {
    "id": "...",
    "status": "pending",
    "amount": 7500000,
    "expires_at": "2026-07-22T13:00:00Z",
    "method_data": {
      "type": "over_the_counter",
      "store": "ALFAMART",
      "payment_code": "444455556666"
    }
  }
}

Customer Instructions

In your application's UI, display the payment_code clearly and provide steps for the customer:

Example UI Instructions for Alfamart:

  1. Visit the nearest Alfamart / Alfamidi / Lawson / Dan+Dan store.
  2. Inform the cashier you want to pay for "Winpay / Toko Anda".
  3. Show the Payment Code: 444455556666 to the cashier.
  4. Pay the amount requested by the cashier (Rp 75,000 + admin fee if applicable).
  5. Ensure you receive the payment receipt from the cashier.
  6. The transaction status will automatically update in this application.

Gerbang Pay API Documentation