# Tokenize a Transaction

To create a permanent token from a transactional token, you can utilize the following method in your application or interface. This method takes in a transactional token as input and generates a permanent token, which is securely stored in the Firstoken vault.

{% tabs %}
{% tab title="cUrl" %}
**POST /V1/requests/:transactionID/tokenize**

```
curl -X POST https://api.firstoken.co/transactions/requests/{{transaction_id}}/tokenize' 
-H 'x-api-key: YOUR_API_KEY' 
-H "Content-Type: application/json"
```

{% endtab %}

{% tab title="Attributes of the request" %}
**tags:** *\[string]*

> *Required: true*
>
> The tags value is a string array of tags that wants to be associated with the transaction ID. For example invoice id, member id, etc.

**scheme:** *integer*

> *Required: true*
>
> Scheme value represents what format do you want to use for the tokenization process in the request.
> {% endtab %}

{% tab title="Attributes of the response" %}

**status\_code:** *int*

> The status code represents the result of the operation that was performed. For successful transactions a code 200 is always returned for the others another code is returned.

**status:** *string*

> The status is a string result that only has two possible values. "Success" or "Fail".

**desc**: *string*

> The desc value represents a short description about the status code.

**data**: *{object}*

> The value of the data represents a set of JSON objects of tokenized credit cards. Each object has the following attributes:
>
> * **tokens:** *\[{object}]*
>   * **card**: *string*
>
>     The truncated value of the credit card number.
>   * **token**: *string*
>
>     The permanent token value.
>   * **tags**: *\[string]*
>
>     The tags associated to the credit card.
>   * **scheme**: *int*
>
>     The scheme used to tokenize the card.
>   * **status**: *int*
>
>     Value 1 if it was possible to tokenize the credit card. Value 0 if it was not possible to tokenize the credit card.
>   * **created\_by**: *string*
>
>     The username that tokenized the card.
>   * **createdAt**: *ISODate*
>
>     The ISODate of the tokenization.
>     {% endtab %}
>     {% endtabs %}

<details>

<summary>Example JSON request body</summary>

```json
{
    "tags": [
        "TESLA",
        "TEST"
    ],
    "scheme": "7"
}
```

</details>

<details>

<summary>Example JSON response body</summary>

```json
{
    "status_code": 200,
    "status": "success",
    "desc": "Success",
    "data": {
        "tokens": [
            {
                "card": "424242******4242",
                "token": "f3790191-4b4d-4f00-8afe-11e64f68cef2",
                "tags": [
                    "tesla",
                    "test"
                ],
                "scheme": "7",
                "created_by": {
                    "user_id": "API",
                    "name": "API"
                },
                "status": 1,
                "createdAt": "2022-10-23T20:05:48.198Z"
            }
        ]
    }
}
```

</details>


---

# 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://firstoken.gitbook.io/api-docs/api-reference/transactions/tokenize-a-transaction.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.
