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

# Get Procedure

> Full catalogue detail for a procedure: flags, costs, caps, mandatory documents and questionnaires. Check a feature's flag before reading its cap; payers publish non-zero caps on procedures where the feature is off.



## OpenAPI

````yaml get /abdm/nhcx/v1/policies/{policyId}/procedures/{procedureCode}
openapi: 3.1.0
info:
  description: ABHA Registration and login APIs
  title: Registration
  version: 1.0.0
servers:
  - description: Production
    url: https://api.eka.care
  - description: Stage/Sandbox
    url: https://api.dev.eka.care
security: []
paths:
  /abdm/nhcx/v1/policies/{policyId}/procedures/{procedureCode}:
    get:
      summary: Get Procedure
      description: >-
        Full catalogue detail for a procedure: flags, costs, caps, mandatory
        documents and questionnaires. Check a feature's flag before reading its
        cap; payers publish non-zero caps on procedures where the feature is
        off.
      parameters:
        - description: Eka User ID (OID)
          in: header
          name: X-Pt-Id
          schema:
            type: string
        - description: Partner User ID
          in: header
          name: X-Partner-Pt-Id
          schema:
            type: string
        - description: Partner HIP ID
          in: header
          name: X-Hip-Id
          schema:
            type: string
        - description: policy_id from Search Policies or Policy Discovery Status
          in: path
          name: policyId
          required: true
          schema:
            description: policy_id from Search Policies or Policy Discovery Status
            minimum: 0
            type: integer
        - description: Procedure code from List Procedures
          in: path
          name: procedureCode
          required: true
          schema:
            description: Procedure code from List Procedures
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceCatalogProcedure'
          description: OK
        4XX:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NhcxError'
          description: ''
        5XX:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NhcxError'
          description: ''
      security:
        - authApiKey: []
components:
  schemas:
    ServiceCatalogProcedure:
      properties:
        claim_amount:
          description: >-
            ClaimAmount / MandatoryDocs / STGForms are populated by
            GetProcedure's join step (not stored directly on the Dynamo item) so
            existing consumers keep working unchanged: ClaimAmount mirrors the
            "Procedure" cost line (or the first cost line if none is typed
            "Procedure"); MandatoryDocs/STGForms are the joined documents' MAND
            codes / STG display strings. MandatoryDocDetails is the same join's
            full document records (category/code/display) keyed off MandCode,
            added so callers that need the richer metadata (e.g.
            enrichPreAuthItems filling CategoryDisplay/DocDisplay) don't need a
            second CatalogStore call — it is additive and safe to ignore.
          type: number
        code:
          type: string
        costs:
          items:
            $ref: '#/components/schemas/ServiceCatalogCost'
          type: array
        discharge_stages:
          type: string
        document_ids:
          items:
            type: string
          type: array
        flags:
          items:
            type: string
          type: array
        is_unspecified:
          description: >-
            Marks an "Unspecified Surgical Package" (code "<spec>U100"). Derived
            from the code at read time (not stored), so the FE knows to render
            the free-text name + amount fields: these packages have no catalog
            price (ClaimAmount is the 9999999 sentinel) and the provider must
            supply both. Such an item also cannot be clubbed with other
            procedures — see unspecified_procedure.go.
          type: boolean
        mandatory_doc_details:
          items:
            $ref: '#/components/schemas/ServiceCatalogDocument'
          type: array
        mandatory_docs:
          items:
            type: string
          type: array
        maximum_cycles_allowed:
          type: integer
        maximum_implants_allowed:
          type: integer
        maximum_stratification_allowed:
          type: integer
        name:
          type: string
        parent_procedure:
          description: >-
            The procedure an IMPLANT line attaches to (implant caps/flags live
            on that parent, not on the implant); DischargeStages is the
            LAMA/DAMA stage list. Both mirror NormProcedure — see the notes
            there.
          type: string
        parent_procedures:
          items:
            type: string
          type: array
        quantity_allowed:
          description: >-
            The four numeric Claim-Condition caps, mirroring NormProcedure's —
            see the note there for why they are not omitempty (0 is a real
            value) and why callers must gate on the matching Flags entry before
            reading a cap.
          type: integer
        questionnaire_ids:
          items:
            type: string
          type: array
        speciality_codes:
          items:
            type: string
          type: array
        standalone:
          description: >-
            Standalone / ParentProcedures are read-time conveniences for the
            FE's payer-enforced standalone/parent-procedure validations:
            Standalone surfaces the Flags entry as a bool; ParentProcedures
            splits ParentProcedure's comma list ("NA" normalised away). Derived
            in joinProcedureDocuments, not stored.
          type: boolean
        stg_forms:
          items:
            type: string
          type: array
        type:
          type: string
      type: object
    NhcxError:
      properties:
        error:
          type: string
        issues:
          description: >-
            Every validation problem found, when the backend rejects a submit
            before it reaches the payer
          items:
            type: string
          type: array
        updated_at:
          description: 'Only on a 409 from the draft save: the stored draft''s version'
          type: string
      type: object
    ServiceCatalogCost:
      properties:
        amount:
          type: number
        currency:
          type: string
        qualifier_code:
          type: string
        qualifier_display:
          type: string
        type:
          type: string
      type: object
    ServiceCatalogDocument:
      properties:
        category:
          description: >-
            The category DISPLAY (e.g. "Diagnostic report"); CategoryCode is the
            NDHM category CODE (e.g. "DIA") the payer validates in
            supportingInfo.category.
          type: string
        category_code:
          type: string
        code:
          type: string
        display:
          type: string
        doc_type_id:
          type: string
        mand_code:
          type: string
      type: object
  securitySchemes:
    authApiKey:
      description: The API requires a Bearer token (JWT) for authentication.
      scheme: bearer
      type: http

````

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