# Credential Revocation Integration

Gataca currently supports multiple credential revocation protocols, with the following mechanisms being the most notable. These mechanisms continue to evolve, and Gataca ensures backward compatibility with previous revocation methods. The revocation mechanism used depends on when the credential was issued. Currently Gataca uses [Verifiable Credential Status List 2021](https://www.w3.org/TR/2023/WD-vc-status-list-20230427/).

It is not necessary to explicitly determine the revocation mechanism of a credential, as Gataca manages this process. The issuer only needs to integrate with the Gataca API call described below.

These are the revocation mechanisms supported by Gataca:

* [Credential Status List 2017](https://w3c-ccg.github.io/vc-csl2017/)
* [Revocation List 2020](https://w3c-ccg.github.io/vc-status-rl-2020/)
* [Verifiable Credential Status List 2021](https://www.w3.org/TR/2023/WD-vc-status-list-20230427/)

To update the status of a credential, the issuer must execute the following API call.

*Request Example*

{% code title="http" %}

```http
PATCH /admin/v1/credentials/[CREDENTIAL-ID]
Host: certify.gataca.io
Authorization: jwt [ACCESS-TOKEN]
Content-Type: application/json

{
    "status": "[CREDENTIAL-STATUS]"
}
```

{% endcode %}

* `CREDENTIAL-ID` : Credential identifier. This identifier represents a credential, which will change its status after this call.
* `ACCESS-TOKEN`: Access token received from the authentication request (This authentication must be executed by an application linked to the tenant selected into the authentication request).
* `CREDENTIAL-STATUS`: Credential status identifier. In this case, only 3 different states can be assigned: `REVOKED`, `SUSPENDED` and `ISSUED` .

{% hint style="info" %}
Details: [Swagger](https://api.gataca.io/?urls.primaryName=Gataca%20Certify#/Credentials/patch_admin_v1_credentials__id_)
{% endhint %}

*Response Example*

{% code title="http" %}

```http
HTTP/1.1 200 OK
Content-Type: application/json

{
    "message": "SUCCESS"
}
```

{% endcode %}

### Credential statuses

* **ISSUED**: This is the default status when a verifiable credential is issued. It indicates that the credential is **valid**.
* **SUSPENDED**: This is a temporary revocation, meaning the credential is currently **not valid**. However, it can be reinstated to the Issued status, restoring its validity.
* **REVOKED**: This is a permanent status. Once revoked, the credential is **no longer valid** and cannot be reinstated.

This diagram illustrates the status flow, explaining how a credential’s status can be modified.

<figure><img src="/files/X61rHC5fAmBQokN6G2kS" alt=""><figcaption><p>Credential Status flow</p></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.gataca.io/developers/technical-integration/ssi-issuance-integration/credential-revocation-integration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
