# API Introduction **Namirial Wallet Platform** offers a comprehensive set of APIs that enable Clients to easily integrate their system with the EUDI Wallet ecosystem, ensuring seamless interaction. The two primary use cases are presesented below: - **Credential Issuance** - **Credential Presentation** To get started with either use case, the Client must first complete the onboarding process by submitting a request for the desired use case. Once an agreement is established, the Namirial Platform provisions an **Admin Operator** and an API Operator. The API operator is associated with a unique API token. This API token enables the API Operator to authenticate and interact with the Namirial Platform API. Acting as the main administrator, the Operator is authorized to: - Create and manage operators - Create and manage Organization entities - Define credential templates - Configure and manage services (Issuance and/or Presentation) ## Credential Issuance Flow The following steps outline the necessary actions to initiate a Credential Issuance flow. Below, is sequence diagram that illustrates the process in detail. ```mermaid sequenceDiagram Client ->> Namirial: 1.1 agreement Namirial ->> Client: 1.2 Send API Token Client ->> Namirial Wallet Platform: 2. POST api/v1/user/create/ Client ->> Namirial Wallet Platform: 3. POST /credential/api/v1/template/create/ Client ->> Namirial Wallet Platform: 4. POST /issuance/api/v1/service/create/ Client ->> Namirial Wallet Platform: 5. POST /issuance/api/v1/{issuance_service_id}/init ``` 1.1) **Agreement** The client submits a request to access the service. 1.2) **Send the API Token** Once the request is approved, a personal API token is provided to the client. 1) **[Create an operator for the issuance service](/products/wallet/openapi/operator-api/user_create_api_v1_user_create__post)** The client creates one or more operator who will manage the issuance service. 2) **[Define a credential template](/products/wallet/openapi/credential-template-api/credential_template_create_credential_api_v1_template_create__post)** The client defines a credential template, specifying the structure and content of the credentials to be issued (e.g., name, expiration date, etc.). 3) **[Create the issuance service](/products/wallet/openapi/issuance-api/issuance_service_create_issuance_api_v1_service_create__post)** The client configures the issuance service by associating it with the previously defined credential template and specifying its operational parameters. 4) **[Initiate an issuance flow](/products/wallet/openapi/issuance-api/issuance_init_issuance_api_v1__issuance_service_id__init_post)** With both the issuance service and the relevant operator(s) in place, the client initiates the credential issuance process by calling the `Init Issuance` API endpoint. ## Credential Presentation flow The following steps outline the necessary actions to initiate a Credential Presentation flow. Below, is sequence diagram that illustrates the process in detail. ```mermaid sequenceDiagram Client ->> Namirial: 1. agreement Namirial ->> Client: 1. Send API Token Client ->> Namirial Wallet Platform: 2. POST api/v1/user/create/ Client ->> Namirial Wallet Platform: 3. POST /credential/api/v1/template/create/ Client ->> Namirial Wallet Platform: 4. POST /credential/api/v1/verification/template/create/ Client ->> Namirial Wallet Platform: 5. POST /verification/api/v1/service/create/ Client ->> Namirial Wallet Platform: 6. POST /verification/api/v1/{verification_service_id}/init ``` 1.1) **Agreement** The client submits a request to access the service. 1.2) **Send the API Token** Once the request is approved, a personal API token is provided to the client. 1) **[Create a operator for the Presentation service](/products/wallet/openapi/operator-api/user_create_api_v1_user_create__post)** Create one or more operators who will initiate the Presentation service. 2) **[Define a credential template](/products/wallet/openapi/credential-template-api/credential_template_create_credential_api_v1_template_create__post)** The client defines a credential template, specifying the structure and content of the credentials to be issued (e.g., name, expiration date, etc.). 3) **[Create a verification template for the Presentation service](/products/wallet/openapi/verification-template-api/verification_template_create_credential_api_v1_verification_template_create__post)** The rules and requirements for verifying presented credentials must be defined (e.g., required attributes). This verification template is linked to the **credential template** defined in the previous step, ensuring that the correct attributes are verified during the Presentation flow. 4) **[Create the Presentation Service](/products/wallet/openapi/verification-api/verification_service_create_verification_api_v1_service_create__post)** The service must be configured by linking it to both the operator(s) and the verification templates. 5) **[Initiate a Presentation flow](/products/wallet/openapi/verification-api/init_verification_verification_api_v1__verification_service_id__init_post)** Once the service and operator are in place, the Credential Presentation process can be initiated using the `Init Presentation` API endpoin if you are looking for a fast introdaction to the API follow this [user guide](/products/wallet/api-guide/quickstart)