پرش به محتوای اصلی

تأیید پرداخت (verify)

نهایی کردن پرداخت سمت سرور.

پس از بازگشت مشتری و پیش از تحویل کالا یا خدمت، پرداخت را verify کنید. تا زمان verify، مبلغ قابل تسویه نیست.

POST/api/v1/payments/{id}/verify

پارامترها

نامنوعتوضیح
amountالزامیintegerمبلغ سفارش به ریال؛ باید با مبلغ پرداخت برابر باشد.
bash
curl -X POST https://api.sheypay.ir/api/v1/payments/PAYMENT_ID/verify \
  -H "Authorization: Bearer sk_test_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "amount": 1500000 }'

پاسخ

json
{ "payment": { "id": "…", "status": "verified", "amount": 1500000, "fee": 15000, "verified_at": "…", … }, "already_verified": false }

رفتار

  • idempotent است: فراخوانی دوباره، پرداخت را دوباره ثبت نمی‌کند و already_verified: true برمی‌گرداند.
  • 400 payment_amount_mismatch: مبلغ ارسالی با پرداخت برابر نیست.
  • 409 payment_invalid_state با details.status: اگر pending باشد نتیجه بانک هنوز نیامده و باید کمی بعد تلاش کنید؛ اگر failed یا expired باشد پرداخت انجام نشده است.
مهلت verify در verify_deadline_at آمده است (پیش‌فرض ۳۰ دقیقه پس از پرداخت). پس از آن، پرداخت به‌صورت خودکار برگشت می‌خورد و وب‌هوک payment.reversed ارسال می‌شود.

پرداخت‌های لینک پرداخت، فاکتور و اشتراک توسط شی‌پی به‌صورت خودکار تأیید می‌شوند و نیازی به verify شما ندارند.