MacellanMacellan SuperApp
ÖdemeOTP İle Ödeme

Gönderim

  • OTP ile ödeme başlatma servisi, müşterinin telefon ve ödeme detayları ile ödeme işlemi başlatılması için kullanılır.

  • Müşterinin telefonuna OTP doğrulama kodu gönderilir ve ödeme kaydını oluşturur.

  • Ödemeyi tamamlamak için doğrulama servisi çağrılmalıdır.

  • Ödeme bilgileri 2 farklı şekilde kullanılabilir. Puan tutarının manuel belirlenmesi veya kullanıcıya puan kullanma seçeneğinin seçtirilmesi

    • Puan Kullanımının Kullanıcı Tarafından Seçtirilmesi(point_usage kullanımı): İstekte opsiyonel olarak istenen point_usage parametresi kullanıldığında, kullanıcı cüzdanındaki puan tutarı önceliklendirilerek, harcama tutarı kadar kullandırılmaya çalışılır. Örn. 100 liralık harcama isteğinde, kullanıcının 500 Bakiye, 200 Puan olduğunu düşünürsek, point_usage parametresi true gönderdildiğinde harcama, kullanıcının puan tutarından düşürülerek gerçekleştirilir. Ödeme işlemi sonrası kullanıcının cüzdanı 500 Bakiye, 100 Puan olarak güncellenir.
    • Puan Tutarının Manuel Belirlenmesi(point kullanımı): Harcamada kullanıcının cüzdanından düşülecek puanın sizin tarafınızdan belirlenmesidir. İstekte opsiyonel olarak istenen point değeri kadar kullanıcı cüzdanından harcama yapılmaya çalışılır. Örn. 100 liralık harcama isteğinde, price: 70, point: 30 gönderildiğinde kullanıcı cüzdanından 70 bakiye ve 30 puan ile harcama yapılmaya çalışılacaktır. Bu yöntem ile harcama isteği yapıldığında, price ve point değerlerini kullanıcı cüzdan tutarına göre sizin hesaplamanız gerekmektedir. Bu yöntem kullanıldığında point_usage parametresi gönderilse bile dikkate alınmayacaktır.

Extra Bilgiler

  • external_id alanı opsiyoneldir. Genellikle ödemeye ait sipariş numarası gibi harici sistem ID'si burada gönderilir; işlemleri kolayca takip etmenize yardımcı olur.

Ürün Listesi

product_list alanı opsiyoneldir ve satın alınan ürünlerin detaylarını bu alanda gönderebilirsiniz. Bu bilgiler raporlama ve analiz amaçlı kullanılır.

Ürün listesi gönderildiğinde:

  • Her ürün için price ve quantity alanları birlikte zorunludur
  • Her ürünün total_price değeri, price * quantity ile eşleşmelidir
POST
/integration/payment/otp/send

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

phone*string

Kullanıcı telefon bilgisi (E.164 Format)

price*number

Harcama İşlem Tutarı

Formatfloat
Multiple Of0.01
Range0 <= value
point?number

Harcamada cüzdandan düşülecek puan değeri. Bu parametre null veya gönderilmezse, `point_usage parametresi dikkate alınacatır

Formatfloat
point_usage?boolean

Harcama puan ile yapılmalı mı

Defaultfalse
apply_campaigns?boolean

Harcama sonucunda kullanıcının kampanyadan faydalanıp faydalanmayacağını belirtir.

Defaulttrue
external_id?string

Harici sistem ID değeri

branch_code?string

Tek Bir Token İle Entegrasyon Sağlandığında Kullanılan Şube Kodu

product_list?

Ürün listesi

{
  "phone": "+905231113344",
  "price": 1.23,
  "point": 1,
  "point_usage": false,
  "apply_campaigns": true,
  "external_id": "EXT-12345",
  "branch_code": "Test-123",
  "product_list": [
    {
      "item_id": 1,
      "name": "Ayran",
      "category_name": "İçecekler",
      "price": 20,
      "quantity": 2,
      "total_price": 40
    }
  ]
}

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://api.altpay.dev/integration/payment/otp/send" \  -H "Content-Type: application/json" \  -d '{    "phone": "+905231113344",    "price": 1.23  }'
{
  "data": {
    "verification": {
      "expires_at": "2019-08-24T14:15:22Z",
      "server_time": "2019-08-24T14:15:22Z",
      "code": 123456
    },
    "payment": {
      "payment_id": 1,
      "wallet_id": 1,
      "user_id": 1,
      "user_mapping_id": "8b5ac43a-20ce-4987-a739-d8a7ee480eaa",
      "company_id": 1,
      "branch_id": 1,
      "cashier_id": 1,
      "reference_code": 123456,
      "order_id": 1305549790,
      "price": 1,
      "paid_price": 1,
      "price_show": "1,00",
      "paid_price_show": "1,00",
      "point": 1,
      "point_show": "0,00",
      "final_total": 1,
      "final_total_show": "1,00",
      "discounted_total_amount": 1,
      "discounted_total_amount_show": "1,00",
      "discount_point": 0,
      "discount_point_show": "0,00",
      "discount_percent": 0,
      "refund_amount": 0,
      "status": "approved",
      "status_translate": "Onaylandı",
      "gateway": "terminal",
      "is_shared_wallet": true,
      "wallet_share_id": 0,
      "user_fillable_point": true,
      "wallet_share": {
        "description": "string"
      }
    }
  }
}
{
  "message": "Unauthenticated"
}
{
  "message": "İşlemi yapmak için yetkili değilsiniz."
}
{
  "message": "string"
}
{
  "message": "Bakiye yetersiz."
}

Bu sayfada