KeyTether API Documentation

Welcome to the KeyTether API documentation. All endpoints require authentication via an API key.

Base URL

https://card.keytether.io/api

Authentication

All requests must include the x-api-key header with a valid API key.

x-api-key: your_api_key

Endpoints

1. Create Card

Endpoint: /create_card/

Method: POST

Description: Creates a new card with the provided details.

Request Body:


{
    "title": "string",
    "email": "string",
    "mobile": "string"
}
        

Example Request:


curl -X POST https://card.keytether.io/api/create_card/ \
-H "Content-Type: application/json" \
-H "x-api-key: your_api_key" \
-d '{"title":"John Doe","email":"john.doe@gmail.com","mobile":"+3987654321"}'
        

Success Response (201 Created):


{
    "id": "5ba4c8b9-1363-478c-ad37-5c9fbf488ef7",
    "last4": "0123",
    "expiration_date_short": "08/30",
    "form_factor": "VIRTUAL",
    "status": "ACTIVE",
    "currency": "USD",
    "created_at": "2025-07-15T10:15:15.057828+00:00",
    "updated_at": "2025-08-11T05:25:15.279098+00:00",
    "brand": "VISA",
    "tokenizable": true,
    "spend_cap": 0,
    "spent_amount": 0,
    "card_name": "John Doe",
    "email": "john.doe@gmail.com",
    "mobile": "+3987654321",
    "type": "prepaid",
    "limits": {
      "all_time_enabled": false,
      "all_time_cap": 0,
      "all_time_spent": 0,
      "daily_enabled": true,
      "daily_cap": 0,
      "daily_spent": 0,
      "weekly_enabled": true,
      "weekly_cap": 0,
      "weekly_spent": 0,
      "monthly_enabled": true,
      "monthly_cap": 0,
      "monthly_spent": 0,
      "yearly_enabled": false,
      "yearly_cap": 0,
      "yearly_spent": 0,
      "per_transaction_enabled": true,
      "per_transaction_cap": 0,
      "per_transaction_spent": 0
    }
}
        

Error Responses:

2. Top-up Card

URL: /top_up/

Method: POST

Description: Top-up an existing card by its ID.

Request Body:


{
    "card_id": "string"
    "amount"": "string",
    "tx_id": "string"
}
        

Example Request:


curl -X POST https://card.keytether.io/api/top_up/ \
-H "Content-Type: application/json" \
-H "x-api-key: your_api_key" \
-d '{"card_id":7af8c8a9-1773-588c-ad48-5c9fbf233ef7,"amount":100.0417,"tx_id":'158c1dbca59065bcc16eac55580c05716305ca76eaf5abc498a01632422833b8'}'
        

Success Response (200 OK):


{
    "status":"success",
    "message":"Waiting for replenishment",
    "time":1754980691
}
        

Error Responses:

3. Freeze Card

URL: /freeze/

Method: POST

Description: Freezes an existing card by its ID.

Request Body:


{
    "card_id": "string"
}
        

Example Request:


curl -X POST https://card.keytether.io/api/freeze/ \
-H "Content-Type: application/json" \
-H "x-api-key: your_api_key" \
-d '{"card_id":7af8c8a9-1773-588c-ad48-5c9fbf233ef7}'
        

Success Response (200 OK):


{
    "status":"success",
    "message":"Card successfully frozen"
}
        

Error Responses:

4. Unfreeze Card

URL: /unfreeze/

Method: POST

Description: Unfreezes an existing card by its ID.

Request Body:


{
    "card_id": "string"
}
        

Example Request:


curl -X POST https://card.keytether.io/api/unfreeze/ \
-H "Content-Type: application/json" \
-H "x-api-key: your_api_key" \
-d '{"card_id":7af8c8a9-1773-588c-ad48-5c9fbf233ef7}'
        

Success Response (200 OK):


{
    "status":"success",
    "message":"Card successfully unfrozen"
}
        

Error Responses:

5. Card sensitive data

URL: /sensitive/

Method: POST

Description: Card sensitive data an existing card by its ID.

Request Body:


{
    "card_id": "string"
}
        

Example Request:


curl -X POST https://card.keytether.io/api/sensitive/ \
-H "Content-Type: application/json" \
-H "x-api-key: your_api_key" \
-d '{"card_id":7af8c8a9-1773-588c-ad48-5c9fbf233ef7}'
        

Success Response (200 OK):


{
    "card_number":"4937280060005922",
    "expiry_date":"06/30",
    "cvv":"888",
    "security_code":null
}
        

Error Responses:

6. Card data

URL: /card_data/

Method: POST

Description: Card data an existing card by its ID.

Request Body:


{
    "card_id": "string"
}
        

Example Request:


curl -X POST https://card.keytether.io/api/card_data/ \
-H "Content-Type: application/json" \
-H "x-api-key: your_api_key" \
-d '{"card_id":7af8c8a9-1773-588c-ad48-5c9fbf233ef7}'
        

Success Response (200 OK):


{
    "id":"5ba4c8b9-1363-478c-ad37-5c9fbf488ef7",
    "last4":"0123",
    "expiration_date_short":"08/30",
    "form_factor":"VIRTUAL",
    "status":"ACTIVE",
    "currency":"USD",
    "created_at":"2025-07-15T10:15:15.057828+00:00",
    "updated_at":"2025-08-11T05:25:15.279098+00:00",
    "brand":"VISA",
    "tokenizable":true,
    "spend_cap":100.99,
    "spent_amount":0,
    "card_name":"John Doe",
    "email":"john.doe@gmail.com",
    "mobile":"+3987654321",
    "type":"prepaid",
    "limits":
      {
      "all_time_enabled":false,
      "all_time_cap":0,
      "all_time_spent":0,
      "daily_enabled":true,
      "daily_cap":0,
      "daily_spent":0,
      "weekly_enabled":true,
      "weekly_cap":0,
      "weekly_spent":0,
      "monthly_enabled":true,
      "monthly_cap":0,
      "monthly_spent":0,
      "yearly_enabled":false,
      "yearly_cap":0,
      "yearly_spent":0,
      "per_transaction_enabled":true,
      "per_transaction_cap":0,
      "per_transaction_spent":0
      }
}
        

Error Responses:

7. Card transaction

URL: /card_transaction/

Method: POST

Description: Card transaction data an existing card by its ID.

Request Body:


{
    "card_id": "string",
    "page": "string",
    "limit": "string"
}
        

Example Request:


curl -X POST https://card.keytether.io/api/card_transaction/ \
-H "Content-Type: application/json" \
-H "x-api-key: your_api_key" \
-d '{
      "card_id":7af8c8a9-1773-588c-ad48-5c9fbf233ef7,
      "page": 1,
      "limit": 100
    }'
        

Success Response (200 OK):


{
    "has_more": false,
    "count": 1,
    "data": [
        {
            "vendor_transaction_id": "tid_eAqU385998",
            "created_at": "2025-08-09T15:36:42.969Z",
            "cleared_at": "2025-08-09T15:36:42.969Z",
            "merchant": {
                "name": "",
                "category_code": "",
                "city": "",
                "country": "",
                "terminal_id": "",
                "merchant_id": ""
            },
            "last4": "0123",
            "title": "HK1753277895778",
            "billing_amount": 381.26,
            "billing_currency": "USD",
            "transaction_amount": 319.99,
            "transaction_currency": "EUR",
            "conversion_rate": "1.1914747335854",
            "failure_reason": "",
            "status": "PENDING",
            "transaction_type": "AUTHORIZATION",
            "is_credit": false,
            "has_receipt": false,
            "adjustment_type": null,
            "review_status": "PENDING",
            "group": null,
            "total_amount": 0,
            "original_authorization_id": null,
            "is_reversal": false,
            "is_cleared": false,
            "marked_for_dispute_at": null,
            "marked_for_dispute_by": null,
            "card_name": "",
            "enriched_merchant_data": null,
            "card_id": "7af8c8a9-1773-588c-ad48-5c9fbf233ef7"
        }
    ]
}
        

Error Responses: