# रद्द करें

`POST` `https://api.pushwoosh.com/messaging/v2/cancel`

पहले बनाए गए संदेश को रद्द करता है, जिसे उसके `message_code` से पहचाना जाता है। रद्दीकरण केवल तभी उपलब्ध है जब संदेश इनमें से किसी एक स्थिति में हो:

- **pending:** बनाया गया है लेकिन अभी तक भेजने के लिए नहीं उठाया गया है।
- **waiting:** भविष्य में भेजने के लिए निर्धारित है।
- **processing:** वर्तमान में डिलीवरी के लिए तैयार किया जा रहा है।

<Aside type="caution" title="महत्वपूर्ण">

- यदि संदेश `processing` में है, तो रद्दीकरण केवल उन डिलीवरी को रोकता है जो अभी तक बाहर नहीं गई हैं। जिस किसी को भी संदेश पहले ही मिल चुका है, उसके पास यह अभी भी हो सकता है।

- यदि संदेश पहले ही रद्द कर दिया गया था या भेजा जा चुका है, तो API `400` लौटाता है। यह कॉल idempotent नहीं है। पुनः प्रयास करने से पहले संदेश की स्थिति जांचें।
</Aside>

यह जांचने के लिए कि क्या कोई संदेश अभी भी रद्द करने योग्य स्थिति में है, [संदेश की स्थिति जांचना](#checking-message-status) देखें।


## अनुरोध

अपने [सर्वर API टोकन](/hi/developer/api-reference/api-access-token/#server-api-token) के साथ `Authorization: Token <API_TOKEN>` हेडर में प्रमाणित करें।

| फ़ील्ड | प्रकार | आवश्यक | विवरण |
|---|---|---|---|
| `message_code` | स्ट्रिंग | हाँ | रद्द किए जाने वाले संदेश का [संदेश कोड](/hi/developer/api-reference/api-identifiers/#message-code), जैसा कि [`Notify`](/hi/developer/api-reference/messaging-api-v2/notify/) द्वारा `result.message_code` में लौटाया गया है। |

### उदाहरण अनुरोध

```bash
curl -X POST https://api.pushwoosh.com/messaging/v2/cancel \
  -H "Authorization: Token YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "message_code": "XXXX-XXXXXXXX-XXXXXXXX"
  }'
```

## प्रतिक्रिया

सफलता पर, यह एक खाली JSON बॉडी के साथ HTTP 200 लौटाता है।

```json
{}
```

## त्रुटियाँ

त्रुटियाँ मानक gRPC-गेटवे त्रुटि लिफाफे का उपयोग करती हैं: `{ "code": ..., "message": ..., "details": [...] }`।

| HTTP स्थिति | शर्त |
|---|---|
| `400` | `message_code` अनुपस्थित है। |
| `400` | संदेश रद्द करने योग्य स्थिति में नहीं है (यह अब `pending`, `waiting`, या `processing` नहीं है)। |
| `403` | संदेश किसी अन्य खाते का है। |
| `404` | दिए गए `message_code` के लिए कोई संदेश मौजूद नहीं है। |
| `500` | संदेश लोड करते समय या रद्दीकरण प्रकाशित करते समय एक आंतरिक त्रुटि हुई। अनुरोध को पुनः प्रयास करें। |


**उदाहरण**

एक संदेश को रद्द करना जो अब मौजूद नहीं है, HTTP `404` लौटाता है:

```json
{
  "code": 5,
  "message": "message not found",
  "details": []
}
```

## संदेश की स्थिति जांचना

रद्द करने से पहले, आप यह सत्यापित कर सकते हैं कि कोई संदेश अभी भी रद्द करने योग्य स्थिति में है या नहीं। कंट्रोल पैनल में संदेश तालिका में **स्थिति** कॉलम पढ़ने के अलावा ([**अभियान → एक-बार के संदेश**](/hi/product/statistics-and-analytics/message-history/)), आप [`messages:list`](/hi/developer/api-reference/statistics-api/message-statistics-api/#messageslist) के साथ प्रोग्रामेटिक रूप से स्थिति की पूछताछ कर सकते हैं:

- `filters.messages_codes` ऐरे में `message_code` पास करें (आवश्यक `filters.application` के साथ)।
- `items[]` में मेल खाने वाली प्रविष्टि के `status` फ़ील्ड को पढ़ें।

<Aside type="note">
`messages:list` सांख्यिकी API का हिस्सा है और इस एंडपॉइंट से एक अलग ऑथ हेडर का उपयोग करता है: `Authorization: Api <Server Key>`।
</Aside>

## संबंधित

<CardGrid>
  <LinkCard title="सूचित करें" href="/developer/api-reference/messaging-api-v2/notify/" />
  <LinkCard title="अपडेट करें" href="/developer/api-reference/messaging-api-v2/update/" />
  <LinkCard title="संदेश सांख्यिकी" href="/developer/api-reference/statistics-api/message-statistics-api/#messageslist" />
  <LinkCard title="मैसेजिंग API v2 अवलोकन" href="/developer/api-reference/messaging-api-v2/" />
  <LinkCard title="v1 से माइग्रेशन" href="/developer/api-reference/messaging-api-v2/migration-from-v1/" />
</CardGrid>