---
title: अपना बैकएंड इंटीग्रेट करें
description: बैक-एंड सर्विस को Human Plugin कैसे कॉल करना चाहिए — क्या स्टोर करें, पोलिंग कैसे करें, नतीजा कैसे पढ़ें और विफलताओं को कैसे संभालें।
canonical: https://developer.unico.io/hi/human-plugin/integrations/backend
locale: hi
generated_by: markdown-export
---

# अपना बैकएंड इंटीग्रेट करें

सर्वर-साइड सर्विस से Human Plugin को कॉल करने की चेकलिस्ट।

Human Plugin को केवल आपके बैक-एंड से कॉल किया जाना चाहिए। इसे ब्राउज़र या मोबाइल ऐप के सामने एक्सपोज़ न करें: इसमें इनबाउंड ऑथेंटिकेशन नहीं है।

## 1. Create

### curl

```bash
curl -X POST "$HUMAN_PLUGIN_URL/v1/processes" \
  -H 'Content-Type: application/json' \
  -d '{
    "flow": "api+humantoken",
    "clientId": "client-a",
    "correlationId": "onboarding-001",
    "credential": { "type": "DUI_TYPE_NG_BVN", "value": "<document number>" },
    "imageBase64": "<base64 selfie>"
  }'
```

### Node.js

```javascript
const response = await fetch(`${process.env.HUMAN_PLUGIN_URL}/v1/processes`, {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    flow: 'api+humantoken',
    clientId: 'client-a',
    correlationId: 'onboarding-001',
    credential: { type: 'DUI_TYPE_NG_BVN', value: documentNumber },
    imageBase64,
  }),
  signal: AbortSignal.timeout(60_000),
});

const body = await response.json();
if (response.status !== 201) {
  // body is { message, details }
  throw new Error(`Human Plugin ${response.status} ${body.message}`);
}
const { id, state, data } = body;
```

अपने क्लाइंट का टाइमआउट **कम से कम 60 सेकंड** रखें: एक create को प्रोसेस होने में 30 सेकंड तक लग सकते हैं, साथ ही डेटाबेस के चरण भी। `id` केवल create के जवाब में आता है, इसलिए जो क्लाइंट जल्दी हार मान लेता है, वह ऐसा process खो सकता है जो पूरा हो जाता है।

## 2. बाद में ज़रूरी चीज़ें सहेजकर रखें

| क्या रखें | क्यों |
| --- | --- |
| `id` | `GET` के लिए हैंडल |
| Journey का `token` और `link`, यदि हो | केवल create के जवाब में लौटते हैं, Human Plugin इन्हें कभी स्टोर नहीं करता |
| आपका `correlationId` | यह यूनीक होना चाहिए। हर प्रयास के लिए नया बनाएं, रीट्राई सहित, सिवाय `503` के बाद |

## 3. नतीजा पढ़ें

1. यदि `state` `PROCESS_STATE_FINISHED` है, तो नतीजा `data` से पढ़ें: `humanToken` (या रीवैलिडेशन में `humanTokenMatch`), `liveness` और `ndocs`। Finished का मतलब approved नहीं है।
2. यदि `state` `PROCESS_STATE_CREATED` है, तो बदलने तक बैकऑफ़ के साथ `GET /v1/processes/{id}` की पोलिंग करें। process को और कुछ आगे नहीं बढ़ाता।
3. यदि `state` `PROCESS_STATE_FAILED` है, तो process बिना नतीजे के समाप्त हुआ। यदि आपका flow अनुमति दे, तो नया शुरू करें।

## 4. इंटेलिजेंस का उपयोग करें

`data.ndocs` बताता है कि व्यक्ति ने आपके साथ क्या किया है: आपके कितने क्लाइंट और दस्तावेज़ों के साथ उसे देखा गया और कब। अपने निर्णय में इसे Human Token के साथ इस्तेमाल करें, और याद रखें कि यह अनुपस्थित भी हो सकता है। देखें [इंटेलिजेंस](/hi/human-plugin/get-started/intelligence)।

## 5. विफलताओं को संभालना

- create पर `500` या `502` को अपने-आप रीट्राई न करें। देखें [त्रुटियां और रीट्राई](/hi/human-plugin/api-reference/errors-and-retries)।
- create पर `503` को उसी `correlationId` के साथ, और `GET` की किसी भी विफलता को, बैकऑफ़ के साथ रीट्राई करें।
- `409` का मतलब है कि `correlationId` पहले से लिया जा चुका है। उसे कभी दोबारा इस्तेमाल न करें।
- बार-बार `503` आने पर अलर्ट करें: इसका मतलब है कि Human Plugin अपने डेटाबेस तक नहीं पहुंच पा रहा।

## परिचालन अपेक्षाएं

- Human Plugin को कंटेनर वाले ही नेटवर्क से कॉल करें। यदि रास्ता अविश्वसनीय नेटवर्क से गुज़रता है, तो उसके सामने TLS टर्मिनेट करें।
- एक Human Plugin इंस्टॉलेशन एक आइसोलेशन सीमा है। जिन क्लाइंट, ब्रांड या एनवायरनमेंट को इंटेलिजेंस साझा नहीं करना चाहिए, उनके लिए अलग इंस्टॉलेशन और डेटाबेस चाहिए, हर एक की अपनी इंटेलिजेंस के साथ।