> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# पते का प्रमाण API: POA सत्यापन और OCR

> POST /v3/poa/ से Didit उपयोगिता बिल, बैंक स्टेटमेंट और लीज़ सत्यापित करता है। OCR पता निकालता है, प्रामाणिकता जाँचता है। कोई अनुबंध नहीं।



## OpenAPI

````yaml hi/openapi-25.json POST /v3/poa/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: पहचान सत्यापन API। x-api-key हेडर के साथ प्रमाणीकृत करें।
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/poa/:
    post:
      tags:
        - Standalone APIs
      summary: पते का प्रमाण (दस्तावेज़ OCR + पता जाँच)
      description: >-
        एक ही कॉल में पते का प्रमाण दस्तावेज़ — यूटिलिटी बिल, बैंक स्टेटमेंट, और
        सरकारी दस्तावेज़ — निकालें और सत्यापित करें। यह जारीकर्ता, जारी/समाप्ति
        तिथियाँ, धारक का नाम, रॉ और पार्स किया गया/जियोकोड किया गया पता, एक
        `Approved`/`Declined` `status`, और पाई गई हर समस्या को स्पष्ट करने वाली
        `warnings` सूची लौटाता है।


        **विलंबता।** एक्सट्रैक्शन LLM-आधारित है: सामान्य कॉलों में **5–15
        सेकंड** लगते हैं, मल्टी-पेज PDF में **~30 सेकंड** तक लग सकते हैं। **कम
        से कम 45 सेकंड** का क्लाइंट टाइमआउट कॉन्फ़िगर करें और कॉल पूरा होने से
        पहले पुनः प्रयास न करें।


        **यह कैसे काम करता है।** दस्तावेज़ (इमेज या PDF, 15 MB तक; एन्क्रिप्टेड
        PDF के लिए `document_password` आवश्यक है) को दस्तावेज़ प्रकार और
        उप-प्रकार (जैसे `UTILITY_BILL` / `WATER_BILL`) में वर्गीकृत किया जाता
        है, और जारीकर्ता, तिथियाँ, धारक का नाम और पता LLM-आधारित एक्सट्रैक्शन से
        निकाले जाते हैं। पते को पार्स किया जाता है और `poa_parsed_address` में
        जियोकोड किया जाता है। PDF/EXIF फ़ॉरेंसिक्स छेड़छाड़ की जाँच करते हैं —
        डिजिटल हस्ताक्षर के बाद संशोधन, ज्ञात PDF संपादक, ओवरले-टेक्स्ट हेरफेर,
        संदिग्ध पुनः एक्सपोर्ट — जिससे `SUSPECTED_DOCUMENT_MANIPULATION` या
        `DOCUMENT_METADATA_MISMATCH` सामने आते हैं। एक टेक्स्ट फ़ील्ड जिसे मिटा
        दिया गया था और किसी अन्य फ़ॉन्ट में फिर से टाइप किया गया था, जहाँ फ़ाइल
        में स्वयं इस बात का कोई प्रमाण नहीं है कि उसकी सामग्री बदली गई है या
        नहीं, वहाँ `POA_DOCUMENT_UNPROVEN_TEXT_REPLACEMENT` सामने आता है।
        दस्तावेज़ की आयु को `poa_document_age_months` के आधार पर और भाषा को
        `poa_languages_allowed` के आधार पर मान्य किया जाता है। यदि आप
        `expected_address`, `expected_country`, या
        `expected_first_name`/`expected_last_name` पास करते हैं, तो निकाले गए
        मानों की क्रॉस-जाँच की जाती है और बेमेल होने पर फ़्लैग किया जाता है।


        **निर्णय लॉजिक।** `status` तब तक `Approved` रहता है जब तक कि कम से कम एक
        चेतावनी अस्वीकृत होने का कारण न बने। हार्ड विफलताएँ हमेशा अस्वीकृत होती
        हैं: `MISSING_ADDRESS_INFORMATION`, `POA_DOCUMENT_EXPIRED`,
        `INVALID_DOCUMENT_TYPE`, `UNABLE_TO_VALIDATE_DOCUMENT_AGE`, साथ ही
        `UNABLE_TO_EXTRACT_ISSUE_DATE` और `POA_NAME_NOT_DETECTED` (इस endpoint
        पर कॉन्फ़िगर करने योग्य नहीं)। पाँच जोखिम समूहों को `poa_*_action`
        विकल्पों (`DECLINE` या `NO_ACTION`, सभी डिफ़ॉल्ट रूप से `DECLINE`) के
        माध्यम से प्रति अनुरोध कॉन्फ़िगर किया जा सकता है।
        `POA_DOCUMENT_NOT_SUPPORTED_FOR_APPLICATION` और
        `UNPARSABLE_OR_INVALID_ADDRESS` इस endpoint पर केवल सूचनात्मक हैं और कभी
        अस्वीकृत नहीं करते। एक दस्तावेज़ जिसे बिल्कुल भी संसाधित नहीं किया जा
        सकता वह `400` लौटाता है; एक पढ़ने योग्य लेकिन समस्याग्रस्त दस्तावेज़
        `status: "Declined"` के साथ `200` लौटाता है — हमेशा सिर्फ़ HTTP कोड ही
        नहीं, बल्कि `poa.status` और `poa.warnings` का भी निरीक्षण करें।


        **बिलिंग।** प्रत्येक `200` रिस्पॉन्स एक पते का प्रमाण API क्रेडिट का
        उपभोग करता है (आपके प्लान क्रेडिट या टॉप-अप बैलेंस से भुगतान किया जाता
        है)। जब संगठन का बैलेंस कॉल को कवर नहीं कर सकता, तो endpoint किसी भी
        दस्तावेज़ प्रसंस्करण से पहले पर्याप्त क्रेडिट न होने की त्रुटि के साथ
        `403` लौटाता है।


        **सत्र निरंतरता (`save_api_request`, डिफ़ॉल्ट `true`)।** जब `true` होता
        है, तो कॉल को एक API-प्रकार के सत्र के रूप में सुरक्षित रखा जाता है: यह
        Business Console में दिखाई देता है, अपलोड किया गया दस्तावेज़ संग्रहीत
        किया जाता है, लौटाया गया `request_id` एक वास्तविक session id होता है
        जिसे आप `GET /v3/session/{sessionId}/decision/` पर पास कर सकते हैं
        (निर्णय अतिरिक्त रूप से `document_file` और `document_metadata`
        फ़ॉरेंसिक्स प्रदर्शित करता है, जिसे यह रिस्पॉन्स छोड़ देता है), और एक
        `status.updated` webhook उत्सर्जित होता है। जब `false` होता है, तो कुछ
        भी संग्रहीत नहीं किया जाता है और `request_id` एक बार इस्तेमाल होने वाला
        कोरिलेशन UUID होता है जिसे बाद में खोजा नहीं जा सकता।


        **सैंडबॉक्स।** सैंडबॉक्स API कुंजियाँ सभी प्रोसेसिंग और बिलिंग को छोड़
        देती हैं: अनुरोध सत्यापन के बाद (गलत इनपुट अभी भी `400` लौटाता है),
        endpoint एक स्थिर `Approved` मॉक payload (एक काल्पनिक "Sandbox Power
        Co." बिजली बिल) लौटाता है, कोई सत्र सुरक्षित नहीं किया जाता है, और किसी
        क्रेडिट का उपभोग नहीं होता है।


        **प्रमाणीकरण।** अपने एप्लिकेशन की API कुंजी `x-api-key` हेडर में भेजें।
        अनुपलब्ध या अमान्य क्रेडेंशियल `403` (`{"detail": "You do not have
        permission to perform this action."}`) लौटाते हैं — यह API कभी भी `401`
        नहीं लौटाता।


        **रेट लिमिट।** सभी POST/PATCH/DELETE endpoints पर प्रति API कुंजी 300
        requests/min का साझा राइट बजट; इससे अधिक होने पर `429` मिलता है।


        नोट: `FUTURE_ISSUE_DATE` और `POOR_DOCUMENT_QUALITY` वर्कफ़्लो सत्रों में
        मौजूद होते हैं लेकिन इस स्टैंडअलोन endpoint द्वारा कभी भी उत्पन्न नहीं
        किए जाते हैं — भविष्य की तारीख वाले दस्तावेज़ को यहाँ स्वचालित रूप से
        अस्वीकृत नहीं किया जाता है।
      operationId: post_v3poa
      parameters: []
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
                - document
              properties:
                document:
                  type: string
                  format: binary
                  description: >-
                    पते का प्रमाण दस्तावेज़। स्वीकृत एक्सटेंशन: `tiff`, `jpg`,
                    `jpeg`, `png`, `pdf`, `webp`। अधिकतम अपलोड साइज़: **15 MB**
                    (बड़ी फ़ाइलें `400` के साथ अस्वीकृत कर दी जाती हैं)।
                    मल्टी-पेज PDF समर्थित हैं (अधिक लेटेंसी की उम्मीद करें);
                    एन्क्रिप्टेड PDF के लिए `document_password` आवश्यक है।
                    प्रोसेसिंग से पहले इमेज स्वचालित रूप से कंप्रेस की जाती हैं।
                document_password:
                  type: string
                  description: >-
                    `document` को डिक्रिप्ट करने का पासवर्ड जब यह एक
                    एन्क्रिप्टेड PDF हो। बिना (या गलत) पासवर्ड के एन्क्रिप्टेड
                    PDF भेजने पर `400` मिलता है।
                  writeOnly: true
                expected_address:
                  type: string
                  description: >-
                    दस्तावेज़ के साथ सत्यापित करने के लिए पता। इसे जियोकोड किया
                    जाता है और निकाले गए पते से तुलना की जाती है; बेमेल होने पर
                    (या ऐसा अपेक्षित पता जिसे जियोकोड/सत्यापित नहीं किया जा
                    सकता) `ADDRESS_MISMATCH_WITH_PROVIDED` जुड़ जाता है, जो
                    `poa_address_mismatch_action` द्वारा नियंत्रित होता है।
                    जियोकोड किया गया रूप `expected_details_formatted_address` /
                    `expected_details_parsed_address` में वापस दिखाया जाता है।
                  example: Av. Monseñor Tavella 1291, Salta, Argentina
                expected_country:
                  type: string
                  description: >-
                    दस्तावेज़ से सत्यापित करने के लिए देश (ISO 3166-1 कोड, उदा.
                    `ARG` या `AR`)। दस्तावेज़ के देश के साथ बेमेल होने पर
                    `POA_COUNTRY_MISMATCH_WITH_PROVIDED` जुड़ जाता है, जो
                    `poa_address_mismatch_action` द्वारा नियंत्रित होता है।
                  example: ARG
                expected_first_name:
                  type: string
                  description: >-
                    `name_on_document` के विरुद्ध सत्यापित करने के लिए पहला नाम
                    (फ़ज़ी मिलान, लिप्यंतरण-सचेत)। मिलान थ्रेशोल्ड से नीचे का
                    स्कोर `NAME_MISMATCH_WITH_PROVIDED` जोड़ता है, जो
                    `poa_address_mismatch_action` द्वारा नियंत्रित होता है।
                  example: Sophia
                expected_last_name:
                  type: string
                  description: >-
                    `name_on_document` के विरुद्ध सत्यापित करने के लिए अंतिम
                    नाम, मिलान स्कोर के लिए `expected_first_name` के साथ
                    संयुक्त।
                  example: Martinez
                poa_languages_allowed:
                  type: string
                  description: >-
                    ISO 639-1 कोड के रूप में स्वीकृत दस्तावेज़ भाषाओं की कॉमा से
                    अलग की गई सूची (उदा. `en,es,fr`)। छोड़े जाने या खाली होने
                    पर, **सभी 51 समर्थित भाषाएं** स्वीकृत हैं। सूची से बाहर की
                    भाषा में दस्तावेज़ `UNSUPPORTED_DOCUMENT_LANGUAGE` जोड़ता है
                    (`poa_unsupported_language_action` द्वारा शासित); सूची में
                    एक अज्ञात कोड समर्थित कोड के पूरे सेट के साथ `400` लौटाता
                    है।
                  example: en,es
                poa_document_age_months:
                  type: string
                  description: >-
                    कॉमा से अलग किए गए `key:value` जोड़े जो प्रति दस्तावेज़
                    प्रकार महीनों में अधिकतम दस्तावेज़ आयु निर्धारित करते हैं —
                    कुंजियाँ: `utility_bill`, `bank_statement`,
                    `government_issued_document`, `other_poa_document`; मान:
                    `1`–`120`, या असीमित (कोई आयु जांच नहीं) के लिए `-1`। छोड़े
                    जाने पर डिफ़ॉल्ट:
                    `utility_bill:3,bank_statement:3,government_issued_document:12,other_poa_document:12`।
                    अपनी सीमा से पुराना दस्तावेज़ `POA_DOCUMENT_EXPIRED` के साथ
                    अस्वीकृत हो जाता है। **सावधानी:** जब आप यह फ़ील्ड प्रदान
                    करते हैं, तो आपके द्वारा स्वीकार किए जाने वाले *प्रत्येक*
                    प्रकार को सूचीबद्ध करें — छोड़े गए प्रकारों को अस्वीकृत माना
                    जाता है (सूचनात्मक
                    `POA_DOCUMENT_NOT_SUPPORTED_FOR_APPLICATION`) और उनकी आयु
                    जांच छोड़ दी जाती है।
                  example: utility_bill:3,bank_statement:6
                poa_name_mismatch_action:
                  type: string
                  enum:
                    - DECLINE
                    - NO_ACTION
                  default: DECLINE
                  description: >-
                    स्वीकृत लेकिन **वर्तमान में लागू नहीं किया गया** — नाम-बेमेल
                    चेतावनियाँ (`NAME_MISMATCH_WITH_PROVIDED`) इसके बजाय
                    `poa_address_mismatch_action` का पालन करती हैं। नाम और पते
                    दोनों के बेमेल व्यवहार को नियंत्रित करने के लिए
                    `poa_address_mismatch_action` सेट करें।
                poa_document_issues_action:
                  type: string
                  enum:
                    - DECLINE
                    - NO_ACTION
                  default: DECLINE
                  description: >-
                    फ़ाइल-अखंडता समस्याओं पर क्या कार्रवाई करें — व्यवहार में इस
                    endpoint द्वारा केवल `DOCUMENT_METADATA_MISMATCH` ही उत्पन्न
                    होता है।
                poa_document_authenticity_action:
                  type: string
                  enum:
                    - DECLINE
                    - NO_ACTION
                  default: DECLINE
                  description: >-
                    दस्तावेज़ में हेरफेर का संदेह होने पर क्या कार्रवाई करें
                    (`SUSPECTED_DOCUMENT_MANIPULATION`) — उदाहरण के लिए, PDF को
                    डिजिटल हस्ताक्षर के बाद संशोधित किया गया था, किसी ज्ञात PDF
                    संपादक द्वारा संसाधित किया गया था, ओवरले-टेक्स्ट हेरफेर
                    दिखाता है, या इसमें असंगत EXIF तिथियाँ हैं।
                    `POA_DOCUMENT_UNPROVEN_TEXT_REPLACEMENT` को भी नियंत्रित
                    करता है (एक पुनः टाइप किया गया टेक्स्ट फ़ील्ड जिसे फ़ाइल
                    परिवर्तित या अपरिवर्तित साबित नहीं कर सकती): `DECLINE` इसे
                    भी अस्वीकार करता है, `NO_ACTION` इसे चेतावनी के रूप में रखता
                    है।
                poa_unsupported_language_action:
                  type: string
                  enum:
                    - DECLINE
                    - NO_ACTION
                  default: DECLINE
                  description: >-
                    दस्तावेज़ की भाषा `poa_languages_allowed` से बाहर होने
                    (`UNSUPPORTED_DOCUMENT_LANGUAGE`) पर क्या कार्रवाई की जाए।
                poa_address_mismatch_action:
                  type: string
                  enum:
                    - DECLINE
                    - NO_ACTION
                  default: DECLINE
                  description: >-
                    निकाले गए विवरणों का `expected_*` फ़ील्ड से मेल न खाने पर
                    क्या कार्रवाई की जाए: `ADDRESS_MISMATCH_WITH_PROVIDED`,
                    `NAME_MISMATCH_WITH_PROVIDED`, और
                    `POA_COUNTRY_MISMATCH_WITH_PROVIDED` सभी इसी कार्रवाई का
                    पालन करते हैं।
                poa_issuer_not_identified_action:
                  type: string
                  enum:
                    - DECLINE
                    - NO_ACTION
                  default: DECLINE
                  description: >-
                    जब दस्तावेज़ पर किसी जारीकर्ता कंपनी/संगठन की पहचान नहीं की
                    जा सकती है (`ISSUER_NOT_IDENTIFIED`) तो क्या कार्रवाई करें।
                save_api_request:
                  type: boolean
                  default: true
                  description: >-
                    `true` (डिफ़ॉल्ट) होने पर, कॉल को API-प्रकार के सत्र के रूप
                    में बनाए रखता है — Business Console में दृश्यमान, लौटाए गए
                    `request_id` का उपयोग करके `GET
                    /v3/session/{sessionId}/decision/` के माध्यम से प्राप्त करने
                    योग्य, `status.updated` webhook के माध्यम से घोषित, और अपलोड
                    किए गए दस्तावेज़ को संग्रहीत किया जाता है। `false` होने पर,
                    कुछ भी संग्रहीत नहीं किया जाता है और `request_id` केवल
                    रिस्पॉन्स सहसंबंध के लिए एक अस्थायी UUID होता है।
                  example: true
                vendor_data:
                  type: string
                  description: >-
                    वैकल्पिक अपारदर्शी स्ट्रिंग (आपकी आंतरिक उपयोगकर्ता ID,
                    ईमेल, UUID…) जो स्थायी सत्र पर संग्रहीत होती है और रिस्पॉन्स
                    में वापस भेजी जाती है। इसका उपयोग अपने स्वयं के रिकॉर्ड के
                    साथ API कॉल को सहसंबंधित करने और बाद में सत्रों को फ़िल्टर
                    करने के लिए करें।
                  example: user-123
                metadata:
                  type: object
                  additionalProperties: true
                  description: >-
                    सत्र के साथ संग्रहीत वैकल्पिक JSON ऑब्जेक्ट (जब
                    `save_api_request=true`) और रिस्पॉन्स में वापस प्रतिध्वनित
                    होता है। मल्टीपार्ट अनुरोधों में, इसे JSON-एन्कोडेड स्ट्रिंग
                    फ़ील्ड (उदा. `metadata={"flow":"onboarding"}`) के रूप में
                    भेजें — इसे एक ऑब्जेक्ट में पार्स किया जाता है।
                  example:
                    flow: onboarding
            example:
              document: (binary JPEG/PNG/PDF of the utility bill or bank statement)
              expected_address: Av. Monseñor Tavella 1291, Salta, Argentina
              expected_country: ARG
              expected_first_name: Sophia
              expected_last_name: Martinez
              poa_languages_allowed: en,es
              save_api_request: true
              vendor_data: user-123
      responses:
        '200':
          description: >-
            दस्तावेज़ संसाधित। `poa.status` `Approved` या `Declined` है; हर
            संसूचित समस्या को `poa.warnings` में सूचीबद्ध किया गया है। समय-सीमा
            समाप्त, बेमेल या संदिग्ध दस्तावेज़ भी `status: "Declined"` के साथ
            `200` लौटाता है — केवल HTTP कोड ही नहीं, बल्कि बॉडी का भी निरीक्षण
            करें। जब `save_api_request=true` हो, तो `request_id` स्थायी सत्र id
            होती है।
          content:
            application/json:
              examples:
                Approved:
                  summary: यूटिलिटी बिल साफ़ पढ़ा गया, अपेक्षित विवरण की कोई जाँच नहीं
                  value:
                    request_id: 4b523a8d-ed32-45e4-8aa8-a89eda459d88
                    poa:
                      issuing_state: ARG
                      document_type: UTILITY_BILL
                      document_subtype: WATER_BILL
                      document_language: es
                      issuer: Aguas del Norte
                      issue_date: '2026-04-10'
                      expiration_date: null
                      poa_address: >-
                        AVDA. MONSEÑOR TAVELLA N° 1291, B° VILLA LAVALLE CP:
                        4400, CAPITAL - SALTA
                      poa_formatted_address: Av. Monseñor Tavella 1291 b, A4400 Salta, Argentina
                      poa_parsed_address:
                        street_1: Avenida Monseñor Tavella 1291
                        street_2: b
                        city: Salta
                        region: Salta
                        country: AR
                        postal_code: A4400
                        document_location:
                          latitude: -24.8208682
                          longitude: -65.4130954
                      expected_details_address: null
                      expected_details_formatted_address: null
                      expected_details_parsed_address: null
                      name_on_document: OESTE EMBOTELLADORA S.A.
                      extra_fields:
                        bank_account_number: null
                        bank_iban: null
                        bank_sort_code: null
                        bank_routing_number: null
                        bank_swift_bic: null
                        bank_branch_name: null
                        bank_branch_address: null
                        document_phone_number: null
                        additional_names:
                          - LA EMBOTELLADORA DEL NORTE SA
                      detected_codes:
                        - type: QR_CODE
                          page_number: 1
                          position:
                            - - 820
                              - 1120
                            - - 1002
                              - 1120
                            - - 1002
                              - 1302
                            - - 820
                              - 1302
                          x: 820
                          'y': 1120
                          width: 182
                          height: 182
                          page_width: 1190
                          page_height: 1684
                          raw_payload: >-
                            aHR0cHM6Ly9hZ3Vhc2RlbG5vcnRlLmNvbS9mYWN0dXJhLzk5ODgxMQ==
                          parsed_payload: https://aguasdelnorte.com/factura/998811
                        - type: CODE_128
                          page_number: 1
                          position:
                            - - 112
                              - 1480
                            - - 560
                              - 1480
                            - - 560
                              - 1540
                            - - 112
                              - 1540
                          x: 112
                          'y': 1480
                          width: 448
                          height: 60
                          page_width: 1190
                          page_height: 1684
                          raw_payload: MDA5OTg4MTEwMDA0Mg==
                          parsed_payload: '0099881100042'
                      status: Approved
                      warnings: []
                    vendor_data: user-123
                    metadata: null
                    created_at: '2026-06-12T02:29:02.439655+00:00'
                Declined - document too old:
                  summary: >-
                    जारी करने की तिथि अनुमत `poa_document_age_months` से पुरानी
                    है
                  value:
                    request_id: f61681b8-9422-4378-ac3e-04c6a247fb45
                    poa:
                      issuing_state: ARG
                      document_type: UTILITY_BILL
                      document_subtype: WATER_BILL
                      document_language: es
                      issuer: Aguas del Norte
                      issue_date: '2021-02-10'
                      expiration_date: null
                      poa_address: >-
                        AVDA. MONSEÑOR TAVELLA N° 1291, B° VILLA LAVALLE CP:
                        4400, CAPITAL - SALTA
                      poa_formatted_address: Av. Monseñor Tavella 1291 b, A4400 Salta, Argentina
                      poa_parsed_address:
                        street_1: Avenida Monseñor Tavella 1291
                        street_2: b
                        city: Salta
                        region: Salta
                        country: AR
                        postal_code: A4400
                        document_location:
                          latitude: -24.8208682
                          longitude: -65.4130954
                      expected_details_address: null
                      expected_details_formatted_address: null
                      expected_details_parsed_address: null
                      name_on_document: OESTE EMBOTELLADORA S.A.
                      extra_fields:
                        bank_account_number: null
                        bank_iban: null
                        bank_sort_code: null
                        bank_routing_number: null
                        bank_swift_bic: null
                        bank_branch_name: null
                        bank_branch_address: null
                        document_phone_number: null
                        additional_names:
                          - LA EMBOTELLADORA DEL NORTE SA
                      status: Declined
                      warnings:
                        - risk: POA_DOCUMENT_EXPIRED
                          feature: PROOF_OF_ADDRESS
                          additional_data:
                            expiration_reason: age_window
                            max_age_months: 3
                            document_subtype: WATER_BILL
                            document_type: UTILITY_BILL
                            issue_date: '2021-02-10'
                          log_type: error
                          short_description: Document expired
                          long_description: >-
                            The submitted document is older than the maximum
                            accepted age of 3 months from its issue date, which
                            exceeds the acceptable time period for validity.
                    vendor_data: user-123
                    metadata: null
                    created_at: '2026-06-12T02:23:02.165493+00:00'
                Declined - name mismatch:
                  summary: >-
                    `expected_first_name`/`expected_last_name`
                    `name_on_document` से मेल नहीं खाते हैं
                  value:
                    request_id: 0a7f2f9c-58f1-4b8e-b1e3-2f6f9d4f7a21
                    poa:
                      issuing_state: ARG
                      document_type: UTILITY_BILL
                      document_subtype: WATER_BILL
                      document_language: es
                      issuer: Aguas del Norte
                      issue_date: '2021-02-10'
                      expiration_date: null
                      poa_address: >-
                        AVDA. MONSEÑOR TAVELLA N° 1291, B° VILLA LAVALLE CP:
                        4400, CAPITAL - SALTA
                      poa_formatted_address: Av. Monseñor Tavella 1291 b, A4400 Salta, Argentina
                      poa_parsed_address:
                        street_1: Avenida Monseñor Tavella 1291
                        street_2: b
                        city: Salta
                        region: Salta
                        country: AR
                        postal_code: A4400
                        document_location:
                          latitude: -24.8208682
                          longitude: -65.4130954
                      expected_details_address: null
                      expected_details_formatted_address: null
                      expected_details_parsed_address: null
                      name_on_document: OESTE EMBOTELLADORA S.A.
                      extra_fields:
                        bank_account_number: null
                        bank_iban: null
                        bank_sort_code: null
                        bank_routing_number: null
                        bank_swift_bic: null
                        bank_branch_name: null
                        bank_branch_address: null
                        document_phone_number: null
                        additional_names:
                          - LA EMBOTELLADORA DEL NORTE SA
                      status: Declined
                      warnings:
                        - risk: NAME_MISMATCH_WITH_PROVIDED
                          feature: PROOF_OF_ADDRESS
                          additional_data: null
                          log_type: error
                          short_description: Name mismatch with provided information
                          long_description: >-
                            The full name on the document does not match the
                            name from the user's verified identity documents, or
                            the full name sent by API.
                    vendor_data: user-123
                    metadata: null
                    created_at: '2026-06-12T02:27:21.330172+00:00'
              schema:
                type: object
                properties:
                  request_id:
                    type: string
                    format: uuid
                    description: >-
                      `save_api_request=true` होने पर सहेजी गई सत्र ID (`GET
                      /v3/session/{sessionId}/decision/` के साथ उपयोग योग्य);
                      अन्यथा एक क्षणिक सहसंबंध UUID।
                  poa:
                    type: object
                    properties:
                      status:
                        type: string
                        enum:
                          - Approved
                          - Declined
                        description: >-
                          `Approved` जब कोई चेतावनी अस्वीकृति में नहीं बदलती है;
                          अन्यथा `Declined` — `warnings` सूची बताती है कि ऐसा
                          क्यों है।
                      issuing_state:
                        type: string
                        nullable: true
                        description: >-
                          वह देश जिसमें दस्तावेज़ जारी किया गया था, जैसा कि
                          दस्तावेज़ से निकाला गया है — आमतौर पर ISO 3166-1
                          alpha-3 (उदा. `ARG`)।
                        example: ARG
                      document_type:
                        type: string
                        enum:
                          - UTILITY_BILL
                          - BANK_STATEMENT
                          - GOVERNMENT_ISSUED_DOCUMENT
                          - OTHER_POA_DOCUMENT
                          - UNKNOWN
                        description: >-
                          पहचानी गई दस्तावेज़ श्रेणी। `UNKNOWN` का अर्थ है कि
                          दस्तावेज़ को स्वीकार्य पते का प्रमाण के रूप में
                          वर्गीकृत नहीं किया जा सका और यह
                          `INVALID_DOCUMENT_TYPE` के साथ स्वतः अस्वीकृत हो जाता
                          है। कभी भी null नहीं — वर्गीकरण विफल होने पर यह
                          `UNKNOWN` पर फ़ॉलबैक हो जाता है।
                      document_subtype:
                        type: string
                        description: >-
                          `document_type` के भीतर अधिक विस्तृत वर्गीकरण — उदा.
                          `ELECTRICITY_BILL`, `WATER_BILL`, `GAS_BILL`,
                          `INTERNET_BILL`, `PHONE_BILL` (उपयोगिता बिल);
                          `ACCOUNT_STATEMENT`, `CREDIT_CARD_STATEMENT` (बैंक
                          स्टेटमेंट); `TAX_ASSESSMENT`, `RESIDENCY_CERTIFICATE`
                          (सरकारी दस्तावेज़)। जब कोई उपप्रकार निर्धारित नहीं
                          किया जा सका तो `UNKNOWN`। कभी भी null नहीं — वर्गीकरण
                          विफल होने पर `UNKNOWN` पर फ़ॉलबैक होता है।
                        example: WATER_BILL
                      document_language:
                        type: string
                        nullable: true
                        description: पहचानी गई दस्तावेज़ भाषा (ISO 639-1)।
                        example: es
                      issuer:
                        type: string
                        nullable: true
                        description: >-
                          कंपनी या संगठन जिसने दस्तावेज़ जारी किया। `null` मान
                          `ISSUER_NOT_IDENTIFIED` जोड़ता है।
                        example: Aguas del Norte
                      issue_date:
                        type: string
                        format: date
                        nullable: true
                        description: >-
                          दस्तावेज़ जारी करने की तिथि (`YYYY-MM-DD`)। `null` जब
                          इसे निकाला नहीं जा सका — इस endpoint पर अनुरोध
                          `UNABLE_TO_EXTRACT_ISSUE_DATE` के साथ अस्वीकृत होता
                          है।
                        example: '2021-02-10'
                      expiration_date:
                        type: string
                        format: date
                        nullable: true
                        description: >-
                          दस्तावेज़ पर मुद्रित स्पष्ट समाप्ति/वैधता तिथि, जब
                          मौजूद हो। `poa_document_age_months` आयु जाँच से
                          स्वतंत्र।
                      poa_address:
                        type: string
                        nullable: true
                        description: >-
                          दस्तावेज़ पर ठीक वैसा ही मुद्रित पता। `null` होने पर
                          `MISSING_ADDRESS_INFORMATION` के साथ स्वतः अस्वीकृत हो
                          जाता है।
                      poa_formatted_address:
                        type: string
                        nullable: true
                        description: '`poa_address` का जियोकोडेड, सामान्यीकृत संस्करण।'
                        example: Av. Monseñor Tavella 1291 b, A4400 Salta, Argentina
                      poa_parsed_address:
                        type: object
                        nullable: true
                        description: >-
                          दस्तावेज़ के पते का संरचित, जियोकोडेड ब्रेकडाउन। जब
                          पता पार्स नहीं किया जा सका, तब `null`।
                        properties:
                          street_1:
                            type: string
                            nullable: true
                            example: Avenida Monseñor Tavella 1291
                          street_2:
                            type: string
                            nullable: true
                          city:
                            type: string
                            nullable: true
                            example: Salta
                          region:
                            type: string
                            nullable: true
                            example: Salta
                          country:
                            type: string
                            nullable: true
                            description: ISO 3166-1 alpha-2 देश कोड।
                            example: AR
                          postal_code:
                            type: string
                            nullable: true
                            example: A4400
                          document_location:
                            type: object
                            nullable: true
                            properties:
                              latitude:
                                type: number
                              longitude:
                                type: number
                            description: दस्तावेज़ के पते के जियोकोडेड निर्देशांक।
                      expected_details_address:
                        type: string
                        nullable: true
                        description: >-
                          आपके द्वारा भेजे गए `expected_address` का इको, या
                          `null`।
                      expected_details_formatted_address:
                        type: string
                        nullable: true
                        description: >-
                          `expected_address` का जियोकोडेड, सामान्यीकृत संस्करण;
                          प्रदान न किए जाने या जियोकोड करने योग्य न होने पर
                          `null`।
                      expected_details_parsed_address:
                        type: object
                        nullable: true
                        additionalProperties: true
                        description: >-
                          `expected_address` के लिए पूर्ण जियोकोडिंग परिणाम
                          (सड़क/शहर/क्षेत्र/देश/डाक कोड के साथ रॉ जियोकोडर
                          आउटपुट और एक `is_verified` फ़्लैग)। जब
                          `expected_address` प्रदान नहीं किया गया था, तब `null`।
                      name_on_document:
                        type: string
                        nullable: true
                        description: >-
                          दस्तावेज़ से निकाला गया प्राथमिक धारक का नाम; प्रदान
                          किए जाने पर `expected_first_name`/`expected_last_name`
                          से तुलना की जाती है। इस endpoint पर `null` होने पर
                          `POA_NAME_NOT_DETECTED` के साथ अस्वीकृत कर दिया जाता
                          है।
                        example: OESTE EMBOTELLADORA S.A.
                      extra_fields:
                        type: object
                        description: >-
                          दस्तावेज़-विशिष्ट अतिरिक्त विवरण। बैंक फ़ील्ड बैंक
                          स्टेटमेंट के लिए तब भरे जाते हैं जब वे दस्तावेज़ पर
                          मुद्रित हों; अन्यथा `null`।
                        properties:
                          bank_account_number:
                            type: string
                            nullable: true
                          bank_iban:
                            type: string
                            nullable: true
                          bank_sort_code:
                            type: string
                            nullable: true
                          bank_routing_number:
                            type: string
                            nullable: true
                          bank_swift_bic:
                            type: string
                            nullable: true
                          bank_branch_name:
                            type: string
                            nullable: true
                          bank_branch_address:
                            type: string
                            nullable: true
                          document_phone_number:
                            type: string
                            nullable: true
                            description: दस्तावेज़ पर मुद्रित संपर्क फ़ोन नंबर।
                          additional_names:
                            type: array
                            items:
                              type: string
                            description: >-
                              दस्तावेज़ पर पाए गए अन्य धारक के नाम (उदा. सह-खाता
                              धारक, पिछले खाते के नाम)।
                      warnings:
                        type: array
                        description: >-
                          बिना किसी जोखिम वाली स्वीकृति पर खाली। प्रत्येक
                          प्रविष्टि एक पहचाने गए जोखिम की व्याख्या करती है;
                          `log_type: "error"` वाली प्रविष्टियाँ `status` को
                          `Declined` पर सेट करती हैं।
                        items:
                          type: object
                          properties:
                            risk:
                              type: string
                              description: >-
                                मशीन-पठनीय जोखिम कोड। हमेशा अस्वीकार किए जाने
                                वाले: `MISSING_ADDRESS_INFORMATION`,
                                `POA_DOCUMENT_EXPIRED`, `INVALID_DOCUMENT_TYPE`,
                                `UNABLE_TO_VALIDATE_DOCUMENT_AGE`, साथ ही
                                `UNABLE_TO_EXTRACT_ISSUE_DATE` और
                                `POA_NAME_NOT_DETECTED` (इस endpoint पर अस्वीकार
                                करने के लिए निर्धारित)। अनुरोध विकल्पों द्वारा
                                नियंत्रित: `NAME_MISMATCH_WITH_PROVIDED` /
                                `ADDRESS_MISMATCH_WITH_PROVIDED` /
                                `POA_COUNTRY_MISMATCH_WITH_PROVIDED`
                                (`poa_address_mismatch_action`),
                                `POOR_DOCUMENT_QUALITY` (इस endpoint द्वारा कभी
                                उत्पन्न नहीं किया जाता) /
                                `DOCUMENT_METADATA_MISMATCH`
                                (`poa_document_issues_action`),
                                `SUSPECTED_DOCUMENT_MANIPULATION` और
                                `POA_DOCUMENT_UNPROVEN_TEXT_REPLACEMENT`
                                (`poa_document_authenticity_action`),
                                `UNSUPPORTED_DOCUMENT_LANGUAGE`
                                (`poa_unsupported_language_action`),
                                `ISSUER_NOT_IDENTIFIED`
                                (`poa_issuer_not_identified_action`)। इस
                                endpoint पर सूचनात्मक:
                                `POA_DOCUMENT_NOT_SUPPORTED_FOR_APPLICATION`,
                                `UNPARSABLE_OR_INVALID_ADDRESS`।
                              example: POA_DOCUMENT_EXPIRED
                            feature:
                              type: string
                              enum:
                                - PROOF_OF_ADDRESS
                              description: >-
                                सुविधा जिसने चेतावनी उत्पन्न की। इस endpoint पर
                                हमेशा `PROOF_OF_ADDRESS`।
                            additional_data:
                              type: object
                              nullable: true
                              additionalProperties: true
                              description: >-
                                कुछ जोखिमों के लिए अतिरिक्त संदर्भ — उदा.
                                `POA_DOCUMENT_EXPIRED` में `expiration_reason`
                                (`printed_expiration` या `age_window`),
                                `document_type`, `document_subtype`, और
                                `issue_date` शामिल हैं, साथ ही
                                `printed_expiration` पथ पर `expiration_date` या
                                `age_window` पथ पर `max_age_months`;
                                `SUSPECTED_DOCUMENT_MANIPULATION` में `reason`
                                और `detection_method` शामिल हैं;
                                `POA_DOCUMENT_UNPROVEN_TEXT_REPLACEMENT` में
                                `reason`, `detection_method`
                                (`unproven_text_replacement`), `replaced_text`,
                                `manipulated_regions` और `manipulated_blocks`
                                शामिल हैं। अधिकांश जोखिमों के लिए `null`।
                            log_type:
                              type: string
                              enum:
                                - error
                                - information
                              description: >-
                                गंभीरता। `error` चेतावनियाँ `status` को
                                `Declined` में बदल देती हैं; `information`
                                प्रविष्टियाँ केवल सलाहकारी होती हैं और अपने आप
                                कभी अस्वीकृत नहीं करती हैं। (इस endpoint द्वारा
                                `warning` उत्पन्न नहीं की जाती है — इसके विकल्प
                                केवल `DECLINE` या `NO_ACTION` स्वीकार करते हैं।)
                            short_description:
                              type: string
                              description: जोखिम का मानव-पठनीय एक पंक्ति का सारांश।
                            long_description:
                              type: string
                              description: जोखिम का मानव-पठनीय स्पष्टीकरण।
                      detected_codes:
                        type: array
                        description: >-
                          दस्तावेज़ के प्रत्येक संसाधित पृष्ठ पर पहचाने गए QR
                          कोड और बारकोड। कोई न मिलने पर खाली। पहचाना गया लेकिन
                          डिकोड न किया जा सकने वाला QR कोड `parsed_payload:
                          null` रखता है।
                        items:
                          $ref: '#/components/schemas/DocumentAIDetectedCode'
                  vendor_data:
                    type: string
                    nullable: true
                    description: आपके द्वारा भेजे गए `vendor_data` का इको, या `null`।
                  metadata:
                    type: object
                    nullable: true
                    additionalProperties: true
                    description: आपके द्वारा भेजे गए `metadata` ऑब्जेक्ट का इको, या `null`।
                  created_at:
                    type: string
                    format: date-time
                    description: रिस्पॉन्स जनरेट होने का ISO 8601 टाइमस्टैम्प (UTC)।
        '400':
          description: >-
            सत्यापन या प्रोसेसिंग त्रुटि। फ़ील्ड-स्तरीय समस्याएं DRF का मानक
            एनवेलप (प्रत्येक समस्याग्रस्त फ़ील्ड के लिए संदेशों का एक एरे)
            लौटाती हैं। एन्क्रिप्टेड-PDF समस्याएं `{"detail": ...}` लौटाती हैं।
            ऐसा दस्तावेज़ जिसे निष्कर्षण पाइपलाइन प्रोसेस नहीं कर सकती, वह
            `{"error": ["Error extracting POA information"]}` लौटाता है।
          content:
            application/json:
              examples:
                Missing document:
                  summary: फ़ॉर्म डेटा में `document` शामिल नहीं है
                  value:
                    document:
                      - No file was submitted.
                Unsupported file extension:
                  summary: फ़ाइल एक्सटेंशन tiff/jpg/jpeg/png/pdf/webp से बाहर है
                  value:
                    document:
                      - >-
                        File extension “txt” is not allowed. Allowed extensions
                        are: tiff, jpg, jpeg, png, pdf, webp.
                File too large:
                  summary: अपलोड 15 MB की सीमा से अधिक है
                  value:
                    document:
                      - File size should not exceed 15 MB
                Encrypted PDF:
                  summary: आवश्यक पासवर्ड के बिना PDF अपलोड की गई
                  value:
                    detail: >-
                      The PDF is encrypted. Please upload a decrypted PDF or a
                      photo instead.
                Wrong PDF password:
                  summary: '`document_password` PDF को डिक्रिप्ट नहीं करता है'
                  value:
                    detail: >-
                      The PDF password is incorrect. Please provide the correct
                      password.
                Invalid language code:
                  summary: '`poa_languages_allowed` में एक असमर्थित कोड शामिल है'
                  value:
                    poa_languages_allowed:
                      - >-
                        Invalid language code: 'xx'. Must be one of the
                        supported languages: ['ar', 'bn', 'hy', 'bg', 'bs',
                        'ca', 'cnr', 'sq', 'zh', 'hr', 'cs', 'da', 'nl', 'en',
                        'et', 'fi', 'fr', 'ka', 'kk', 'de', 'el', 'he', 'hi',
                        'hu', 'id', 'it', 'ja', 'ko', 'ky', 'lv', 'lt', 'mk',
                        'mn', 'ms', 'no', 'fa', 'pl', 'pt', 'ro', 'ru', 'sr',
                        'sk', 'sl', 'so', 'es', 'sv', 'th', 'tr', 'uk', 'uz',
                        'vi'].
                Invalid document age value:
                  summary: '`poa_document_age_months` मान 1–120 / -1 से बाहर है'
                  value:
                    poa_document_age_months:
                      - >-
                        Invalid integer value for 'utility_bill': '999'. Must be
                        -1 (unlimited) or a positive integer between 1 and 120.
                Extraction failure:
                  summary: >-
                    निष्कर्षण पाइपलाइन द्वारा दस्तावेज़ को प्रोसेस नहीं किया जा
                    सका
                  value:
                    error:
                      - Error extracting POA information
        '403':
          description: >-
            अनुमति अस्वीकृत। तब लौटाया जाता है जब `x-api-key` हेडर अनुपलब्ध हो,
            और तब भी जब कॉल करने वाले संगठन का बैलेंस कॉल को कवर नहीं कर सकता;
            गलत, निरस्त या समय-सीमा समाप्त कुंजी `401` लौटाती है। अनुपलब्ध कुंजी
            `{"detail": ...}` के साथ `403` लौटाती है; गलत, निरस्त या समय-सीमा
            समाप्त कुंजी `401` लौटाती है। क्रेडिट की कमी किसी भी दस्तावेज़
            प्रोसेसिंग से पहले `{"error": ...}` के साथ `403` लौटाती है।
          content:
            application/json:
              examples:
                Missing or invalid API key:
                  summary: कोई `x-api-key` हेडर नहीं, या कुंजी अमान्य/निरस्त है
                  value:
                    detail: You do not have permission to perform this action.
                Not enough credits:
                  summary: संगठन का बैलेंस कॉल को कवर नहीं कर सकता
                  value:
                    error: >-
                      You don't have enough credits to perform this request.
                      Please top up at https://business.didit.me
        '429':
          description: >-
            रेट लिमिट पार हो गई। POST/PATCH/DELETE endpoints प्रति मिनट प्रति
            API कुंजी 300 राइट अनुरोधों का बजट साझा करते हैं (लेन-देन निर्माण और
            इवेंट इनजेशन का 600 का एक अलग बजट है)। रिस्पॉन्स में
            `X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-RateLimit-Reset` और
            `Retry-After` हेडर होते हैं।
          content:
            application/json:
              examples:
                Write rate limit exceeded:
                  summary: वर्तमान मिनट में 300 से अधिक राइट अनुरोध
                  value:
                    detail: >-
                      Write request rate limit exceeded. You can make up to 300
                      requests per minute.
              schema:
                type: object
                properties:
                  detail:
                    type: string
        '503':
          $ref: '#/components/responses/DocumentProcessingBusy'
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: cURL
          source: |-
            curl -X POST 'https://verification.didit.me/v3/poa/' \
              -H 'x-api-key: YOUR_API_KEY' \
              -F 'document=@./utility-bill.pdf' \
              -F 'expected_address=Av. Monseñor Tavella 1291, Salta, Argentina' \
              -F 'expected_country=ARG' \
              -F 'expected_first_name=Sophia' \
              -F 'expected_last_name=Martinez' \
              -F 'poa_languages_allowed=en,es' \
              -F 'vendor_data=user-123' \
              --max-time 45
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.proof_of_address.verify(
                document=open("document.pdf", "rb"),
                expected_address="Av. Monseñor Tavella 1291, Salta, Argentina",
                expected_country="ARG",
                expected_first_name="Sophia",
                expected_last_name="Martinez",
                poa_languages_allowed="en,es",
                save_api_request=True,
                vendor_data="user-123",
            )
            print(result)
        - lang: javascript
          label: Node.js
          source: |-
            import Didit, { fileFromPath } from "@didit-protocol/sdk-node";

            // Reads DIDIT_API_KEY.
            const didit = new Didit();

            const result = await didit.proofOfAddress.verify({
              document: await fileFromPath("document.pdf"),
              expected_address: "Av. Monseñor Tavella 1291, Salta, Argentina",
              expected_country: "ARG",
              expected_first_name: "Sophia",
              expected_last_name: "Martinez",
              poa_languages_allowed: "en,es",
              save_api_request: true,
              vendor_data: "user-123",
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.ProofOfAddress.Verify(ctx, didit.ProofOfAddressVerifyParams{\n\tDocument:            didit.FileFromPath(\"document.pdf\"),\n\tExpectedAddress:     didit.String(\"Av. Monseñor Tavella 1291, Salta, Argentina\"),\n\tExpectedCountry:     didit.String(\"ARG\"),\n\tExpectedFirstName:   didit.String(\"Sophia\"),\n\tExpectedLastName:    didit.String(\"Martinez\"),\n\tPOALanguagesAllowed: didit.String(\"en,es\"),\n\tSaveAPIRequest:      didit.Bool(true),\n\tVendorData:          didit.String(\"user-123\"),\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import java.nio.file.Path;

            import me.didit.Didit;

            import me.didit.types.ProofOfAddressVerifyParams;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.proofOfAddress().verify(ProofOfAddressVerifyParams.builder()
                    .document(Path.of("document.pdf"))
                    .expectedAddress("Av. Monseñor Tavella 1291, Salta, Argentina")
                    .expectedCountry("ARG")
                    .expectedFirstName("Sophia")
                    .expectedLastName("Martinez")
                    .poaLanguagesAllowed("en,es")
                    .saveApiRequest(true)
                    .vendorData("user-123")
                    .build());
            System.out.println(result);
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;
            use Didit\File;

            // Reads DIDIT_API_KEY.
            $didit = new DiditClient();

            $result = $didit->proofOfAddress->verify([
                'document' => File::fromPath('document.pdf'),
                'expected_address' => 'Av. Monseñor Tavella 1291, Salta, Argentina',
                'expected_country' => 'ARG',
                'expected_first_name' => 'Sophia',
                'expected_last_name' => 'Martinez',
                'poa_languages_allowed' => 'en,es',
                'save_api_request' => true,
                'vendor_data' => 'user-123',
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

            # Reads DIDIT_API_KEY.
            didit = Didit::Client.new

            result = didit.proof_of_address.verify(
              document: Pathname("document.pdf"),
              expected_address: "Av. Monseñor Tavella 1291, Salta, Argentina",
              expected_country: "ARG",
              expected_first_name: "Sophia",
              expected_last_name: "Martinez",
              poa_languages_allowed: "en,es",
              save_api_request: true,
              vendor_data: "user-123"
            )
            puts result.to_h
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY.

            using var client = new DiditClient();


            var result = await client.ProofOfAddress.VerifyAsync(new
            ProofOfAddressVerifyParams

            {
                Document = FileUpload.FromPath("document.pdf"),
                ExpectedAddress = "Av. Monseñor Tavella 1291, Salta, Argentina",
                ExpectedCountry = "ARG",
                ExpectedFirstName = "Sophia",
                ExpectedLastName = "Martinez",
                PoaLanguagesAllowed = "en,es",
                SaveApiRequest = true,
                VendorData = "user-123",
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    DocumentAIDetectedCode:
      type: object
      required:
        - type
        - page_number
        - position
        - x
        - 'y'
        - width
        - height
        - page_width
        - page_height
        - raw_payload
        - parsed_payload
      properties:
        type:
          type: string
          description: >-
            पहचाना गया सिम्बोलॉजी, उदाहरण के लिए `QR_CODE`, `CODE_128`,
            `EAN_13`, `DATA_MATRIX`, या `PDF_417`।
        page_number:
          type: integer
          minimum: 1
          description: 1-आधारित पेज संख्या।
        position:
          type: array
          nullable: true
          description: >-
            रेंडर किए गए पेज के पिक्सेल निर्देशांक में पहचाना गया बहुभुज। कोई
            विश्वसनीय स्थान उपलब्ध न होने पर `null`।
          items:
            type: array
            minItems: 2
            maxItems: 2
            items:
              type: integer
        x:
          type: integer
          nullable: true
          description: रेंडर किए गए पेज पिक्सेल में बाउंडिंग बॉक्स का बायाँ किनारा।
        'y':
          type: integer
          nullable: true
          description: रेंडर किए गए पेज के पिक्सेल में बाउंडिंग बॉक्स का ऊपरी किनारा।
        width:
          type: integer
          nullable: true
          description: रेंडर किए गए पेज के पिक्सल में बाउंडिंग-बॉक्स की चौड़ाई।
        height:
          type: integer
          nullable: true
          description: रेंडर किए गए पेज के पिक्सल में बाउंडिंग-बॉक्स की ऊंचाई।
        page_width:
          type: integer
          description: रेंडर किए गए पेज की चौड़ाई पिक्सेल में।
        page_height:
          type: integer
          description: रेंडर किए गए पेज की ऊंचाई पिक्सेल में।
        raw_payload:
          type: string
          description: >-
            उपलब्ध होने पर base64 स्ट्रिंग के रूप में रॉ डिकोडर payload; अन्यथा
            एक खाली स्ट्रिंग।
        parsed_payload:
          nullable: true
          description: >-
            डिकोड की गई स्ट्रिंग या संरचित मान। `null` जब कोड का पता चला था
            लेकिन उसे डिकोड नहीं किया जा सका।
  responses:
    DocumentProcessingBusy:
      description: >-
        वर्तमान में बहुत सारे दस्तावेज़ प्रोसेस किए जा रहे हैं, इसलिए यह अपलोड
        प्रोसेस नहीं हुआ: कुछ भी संग्रहीत नहीं किया गया और किसी भी प्रयास का
        उपयोग नहीं किया गया। `Retry-After` में दिए गए सेकंड की संख्या के बाद वही
        फ़ाइल दोबारा भेजें। `code` के आधार पर शाखा चुनें, संदेश टेक्स्ट के आधार
        पर नहीं।
      headers:
        Retry-After:
          description: समान अनुरोध दोबारा भेजने से पहले प्रतीक्षा करने की अवधि (सेकंड में)।
          schema:
            type: integer
            example: 10
      content:
        application/json:
          schema:
            type: object
            required:
              - detail
              - code
            properties:
              detail:
                type: string
              code:
                type: string
                enum:
                  - document_processing_busy
          example:
            detail: We are busy processing documents. Please try again in a moment.
            code: document_processing_busy
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        आपकी एप्लिकेशन की API कुंजी, Business Console में Developers -> API keys
        से। प्राथमिक कुंजी के पास पूर्ण एक्सेस होता है। एक नामित कुंजी को स्कोप
        किया जा सकता है: प्रति संसाधन none, read या write, कुछ वर्कफ़्लो या
        स्वीकृत सत्रों तक सीमित, IP पतों की सूची तक सीमित, और समाप्ति तिथि तक
        सीमित। 401 का अर्थ है कि कुंजी गलत है, निरस्त कर दी गई है या उसकी
        समय-सीमा समाप्त हो गई है; 403 का अर्थ है कि कोई कुंजी नहीं भेजी गई थी,
        कुंजी के पास इस संसाधन या कार्रवाई का एक्सेस नहीं है, या अनुरोध उसकी IP
        सूची से बाहर के पते से आया था; सत्र रूट पर 404 का अर्थ है कि सत्र कुंजी
        के वर्कफ़्लो या स्थितियों से बाहर है। मीडिया एक्सेस के बिना एक कुंजी को
        छवि, वीडियो और PDF URL null के रूप में प्राप्त होते हैं, और सत्र write
        के बिना एक कुंजी को सत्र लिंक और token null के रूप में प्राप्त होते हैं।
        देखें https://docs.didit.me/console/api-keys।

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.