Total System Services Cards API

Card lifecycle management

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/total-system-services-cards-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

total-system-services-cards-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: TSYS Issuing Platform Accounts Cards API
  description: TSYS Issuing Platform API for financial institutions and fintechs to manage card programs, cardholder accounts, card issuance, spending controls, and transaction history. Part of the Global Payments / TSYS API-driven payment stack.
  version: 1.0.0
  contact:
    name: TSYS Developer Support
    url: https://www.tsys.com/platform
servers:
- url: https://issuing.api.tsys.com/v1
  description: TSYS Issuing Platform Production API
security:
- bearerAuth: []
tags:
- name: Cards
  description: Card lifecycle management
paths:
  /accounts/{accountId}/cards:
    get:
      operationId: listAccountCards
      summary: List Account Cards
      description: List all cards associated with a cardholder account.
      tags:
      - Cards
      parameters:
      - name: accountId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Cards list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardList'
    post:
      operationId: issueCard
      summary: Issue Card
      description: Issue a new physical or virtual card for a cardholder account.
      tags:
      - Cards
      parameters:
      - name: accountId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CardIssuanceRequest'
      responses:
        '201':
          description: Card issued
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Card'
  /cards/{cardId}:
    get:
      operationId: getCard
      summary: Get Card
      description: Retrieve details for a specific card.
      tags:
      - Cards
      parameters:
      - name: cardId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Card details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Card'
        '404':
          $ref: '#/components/responses/NotFound'
  /cards/{cardId}/activate:
    post:
      operationId: activateCard
      summary: Activate Card
      description: Activate a newly issued card to allow transactions.
      tags:
      - Cards
      parameters:
      - name: cardId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Card activated
  /cards/{cardId}/suspend:
    post:
      operationId: suspendCard
      summary: Suspend Card
      description: Temporarily suspend a card to block new transactions.
      tags:
      - Cards
      parameters:
      - name: cardId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Card suspended
  /cards/{cardId}/transactions:
    get:
      operationId: listCardTransactions
      summary: List Card Transactions
      description: Returns transaction history for a specific card.
      tags:
      - Cards
      parameters:
      - name: cardId
        in: path
        required: true
        schema:
          type: string
      - name: startDate
        in: query
        schema:
          type: string
          format: date
        description: Start of date range
      - name: endDate
        in: query
        schema:
          type: string
          format: date
        description: End of date range
      - name: page
        in: query
        schema:
          type: integer
          default: 1
      - name: limit
        in: query
        schema:
          type: integer
          default: 50
      responses:
        '200':
          description: Transaction list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IssuingTransactionList'
  /cards/{cardId}/controls:
    get:
      operationId: getCardControls
      summary: Get Card Controls
      description: Retrieve spending controls for a specific card.
      tags:
      - Cards
      parameters:
      - name: cardId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Card controls
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpendingControls'
    put:
      operationId: updateCardControls
      summary: Update Card Controls
      description: Update spending limits, category restrictions, or geographic controls.
      tags:
      - Cards
      parameters:
      - name: cardId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SpendingControls'
      responses:
        '200':
          description: Controls updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpendingControls'
components:
  schemas:
    SpendingControls:
      type: object
      properties:
        dailyLimit:
          type: number
          format: float
          description: Maximum spend per day
        monthlyLimit:
          type: number
          format: float
          description: Maximum spend per month
        transactionLimit:
          type: number
          format: float
          description: Maximum per transaction amount
        allowedMerchantCategories:
          type: array
          items:
            type: string
          description: Allowed MCC codes (empty = all allowed)
        blockedMerchantCategories:
          type: array
          items:
            type: string
          description: Blocked MCC codes
        allowedCountries:
          type: array
          items:
            type: string
          description: ISO 3166-1 alpha-2 country codes
        internationalEnabled:
          type: boolean
          default: false
        onlineEnabled:
          type: boolean
          default: true
        atmEnabled:
          type: boolean
          default: true
    IssuingTransactionList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/IssuingTransaction'
        total:
          type: integer
        page:
          type: integer
        limit:
          type: integer
    IssuingTransaction:
      type: object
      properties:
        id:
          type: string
        cardId:
          type: string
        type:
          type: string
          enum:
          - purchase
          - refund
          - cash_advance
          - fee
        status:
          type: string
          enum:
          - pending
          - posted
          - declined
        amount:
          type: number
          format: float
        currency:
          type: string
        merchantName:
          type: string
        merchantCategory:
          type: string
        merchantCity:
          type: string
        merchantCountry:
          type: string
        authorizedAt:
          type: string
          format: date-time
        postedAt:
          type: string
          format: date-time
    CardList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Card'
    CardIssuanceRequest:
      type: object
      required:
      - type
      - network
      properties:
        type:
          type: string
          enum:
          - physical
          - virtual
        network:
          type: string
          enum:
          - visa
          - mastercard
        shippingAddress:
          type: object
          description: Required for physical cards
          properties:
            street:
              type: string
            city:
              type: string
            state:
              type: string
            zip:
              type: string
    Card:
      type: object
      properties:
        id:
          type: string
        accountId:
          type: string
        type:
          type: string
          enum:
          - physical
          - virtual
        status:
          type: string
          enum:
          - pending
          - active
          - suspended
          - expired
          - cancelled
        lastFour:
          type: string
        network:
          type: string
          enum:
          - visa
          - mastercard
        expirationDate:
          type: string
        issuedAt:
          type: string
          format: date-time
        activatedAt:
          type: string
          format: date-time
    Error:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
  responses:
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT