# মেসেজিং API v2 ওভারভিউ

মেসেজিং API v2 হল Pushwoosh সমর্থিত প্রতিটি চ্যানেলে আউটবাউন্ড মেসেজ তৈরি করার জন্য একটি একক REST/JSON এন্ডপয়েন্ট:

- পুশ: iOS, Android, Huawei, Baidu, macOS, Amazon, Windows, Safari, Chrome, Firefox, IE
- ইমেল
- এসএমএস
- Telegram, Kakao, LINE, WhatsApp, Viber

**চ্যানেল** পেলোড টাইপ দ্বারা নির্বাচিত হয় (`payload` পুশ / এসএমএস / মেসেঞ্জারের জন্য, `email_payload` ইমেলের জন্য)।

**টার্গেটিং** রিকোয়েস্টের ধরণ দ্বারা নির্বাচিত হয় (`segment` অডিয়েন্স সেগমেন্টের জন্য, `transactional` নির্দিষ্ট ডিভাইস বা ব্যবহারকারী তালিকার জন্য)।

## বেস URL

```
https://api.pushwoosh.com
```

আপনি যদি একটি ডেডিকেটেড রিজিওন বা প্রাইভেট ডেপ্লয়মেন্ট ব্যবহার করেন, তাহলে আপনার Pushwoosh কাস্টমার সাকসেস ম্যানেজারের সাথে সঠিক বেস URL নিশ্চিত করুন।

## অথেন্টিকেশন

প্রতিটি রিকোয়েস্টে একটি `Authorization` হেডার অন্তর্ভুক্ত করতে হবে, যেখানে একটি সার্ভার-সাইড Pushwoosh [API অ্যাক্সেস টোকেন](/bn/developer/api-reference/api-access-token/#server-api-token) থাকবে:

```
Authorization: Token YOUR_API_TOKEN
```

সার্ভার-টু-সার্ভার API কলের জন্য আপনি যে টোকেনটি ব্যবহার করেন, সেটিই ব্যবহার করুন। এই টোকেনটি ক্লায়েন্ট অ্যাপ্লিকেশনে প্রকাশ করবেন না।

## মেথড

- [`Notify`](/bn/developer/api-reference/messaging-api-v2/notify/): `POST /messaging/v2/notify`। একটি একক মেসেজ তৈরি এবং পাঠান (সেগমেন্ট বা ট্রানজ্যাকশনাল)।
- [`Cancel`](/bn/developer/api-reference/messaging-api-v2/cancel/): `POST /messaging/v2/cancel`। পূর্বে তৈরি করা একটি মেসেজ বাতিল করুন যা এখনও ডেলিভার করা হয়নি।
- [`Update`](/bn/developer/api-reference/messaging-api-v2/update/): `POST /messaging/v2/update`। এখনও শিডিউল করা একটি মেসেজকে একটি নতুন ডেফিনিশন দিয়ে প্রতিস্থাপন করুন।

## রিকোয়েস্ট এবং রেসপন্স ফরম্যাট

- কন্টেন্ট টাইপ: `application/json`।
- ফিল্ডের নাম `snake_case` ব্যবহার করে। `oneof` গ্রুপগুলি নেস্টেড অবজেক্ট হিসাবে প্রদর্শিত হয় যেখানে ঠিক একটি কী সেট করা থাকে।
- Enum মানগুলি তাদের স্ট্রিং নাম হিসাবে সিরিয়ালাইজ করা হয় (উদাহরণস্বরূপ, `"IOS"`, `"MESSAGE_TYPE_MARKETING"`)।
- সফল রেসপন্সগুলি একটি JSON বডি সহ HTTP 200 রিটার্ন করে; ত্রুটিগুলি স্ট্যান্ডার্ড gRPC-গেটওয়ে এরর এনভেলপ ব্যবহার করে — `{ "code": ..., "message": ..., "details": [...] }`।

## দ্রুত শুরু

```bash title="একটি সেগমেন্টে পুশ পাঠান"
curl -X POST https://api.pushwoosh.com/messaging/v2/notify \
  -H "Authorization: Token YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "segment": {
      "application": "XXXXX-XXXXX",
      "platforms": ["IOS", "ANDROID"],
      "code": "active_users",
      "payload": {
        "content": {
          "localized_content": {
            "en": {
              "ios":     { "body": "Hello from v2!" },
              "android": { "body": "Hello from v2!" }
            }
          }
        }
      },
      "schedule": { "at": "2026-05-01T12:00:00Z" },
      "message_type": "MESSAGE_TYPE_MARKETING"
    }
  }'
```

## SMTP-এর মাধ্যমে ইমেল পাঠানো

যদি কোনো সার্ভিস আগে থেকেই SMTP ব্যবহার করে, তাহলে আপনি সরাসরি `Notify` কল করার পরিবর্তে [SMTP গেটওয়ে](/bn/developer/api-reference/smtp-gateway/)-এর মাধ্যমে ট্রানজ্যাকশনাল ইমেল জমা দিতে পারেন। গেটওয়ে প্রতিটি মেসেজকে এই API-তে একটি ট্রানজ্যাকশনাল `Notify` হিসাবে ফরোয়ার্ড করে, তাই একই অথেন্টিকেশন এবং ইমেল পেলোড নিয়ম প্রযোজ্য হবে।

## পরবর্তী পদক্ষেপ

<CardGrid>
  <LinkCard title="Notify" href="/developer/api-reference/messaging-api-v2/notify/" />
  <LinkCard title="Cancel" href="/developer/api-reference/messaging-api-v2/cancel/" />
  <LinkCard title="Update" href="/developer/api-reference/messaging-api-v2/update/" />
  <LinkCard title="পেলোড রেফারেন্স" href="/developer/api-reference/messaging-api-v2/payload-reference/" />
  <LinkCard title="ইমেল পেলোড রেফারেন্স" href="/developer/api-reference/messaging-api-v2/email-payload-reference/" />
  <LinkCard title="SMTP গেটওয়ে" href="/developer/api-reference/smtp-gateway/" />
  <LinkCard title="v1 থেকে মাইগ্রেশন" href="/developer/api-reference/messaging-api-v2/migration-from-v1/" />
</CardGrid>