NovoPayment Cards API

Card Issuing, Switching, and Transaction Processing groups together the activities surrounding creating card programs, issuing cards to customers, managing those cards, and processing the transactions those customers make. These components can be implemented modularly. For example, an issuer may want to only employ NovoPayment’s Switch, while another uses only Issuing capabilities and handles transaction authorization in-house.

Operations 25

POST /cards/issuance Card And Account Bundled #
GET /cards/{cardId} Card Information #
PUT /cards/{cardId}/status Card Active Status #
POST /cards/{cardId}/block Block Card #
PUT /cards/{cardId}/tophysical Virtual To Physical Card #
GET /cards/{cardId}/balance Account Balance By CardId #
GET /cards/{cardId}/transactions Transaction Movements Query #
POST /cards/{cardId}/pin Card PIN Assignment #
PUT /cards/{cardId}/pin Card PIN Update #
GET /cards/{cardId}/qr Card QR Code #
POST /cards/replacement Card Replacement #
POST /cards/{cardId}/cashin Cash In #
POST /cards/{cardId}/reversecashin Cash In Reverse #
POST /cards/{cardId}/cashout Cash Out #
POST /cards/{cardId}/reversecashout Cash Out Reverse #
PATCH /cards/cardholders/{cardId}/operationlimits Customize Operation Limits #
POST /sendmoney Send Money #
GET /cards/{cardId}/transactions/{transactionIdentifier} Transaction Detail #
GET /cards/{cardId}/transactions/summary Transaction Summary #
POST /cards/{cardId}/unblock Unblock Card #
POST /cards/cardholders Cardholder Association #
PUT /cards/cardholders Cardholder Update #
POST /cards/{cardId}/transactionrules Associate Transaction Rules #
GET /cards/{cardId}/transactionrules List Transaction Rules #
PATCH /cards/{cardId}/transactionrules Update Transaction Rules #

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/cards"
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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

novopayment-cards-openapi.yml Raw ↑
---
openapi: 3.0.0
info:
  description: >
    Card Issuing, Switching, and Transaction Processing groups together
    the activities surrounding creating card programs, issuing cards to
    customers, managing those cards, and processing the transactions those
    customers make. These components can be implemented modularly. For example,
    an issuer may want to only employ NovoPayment’s Switch, while another uses
    only Issuing capabilities and handles transaction authorization in-house.


    To get started with Card Issuing, Switching, and Transaction Processing, an issuer needs to determine two things:


    1. The processing model.


    2. The characteristics of the program


    **Processing Model**


    There are three processing models that NovoPayment offers. The model selected will impact the characteristics of the program.


    - Switching: Transactions are received by NovoPayment’s transactional switch and routed to the appropriate issuer endpoint. The implementation of this processing model is most appropriate when multiple issuers are part of your program and each issuer has program rules established in their core.


    - Pre-Authorizer: Transactional data is received by NovoPayment, assessed for compliance against established program criteria, and routed to the issuer for final transaction approval. Typically implemented when the issuer holds account records and balances and will determine approval based on availability of funds. Prior to passing the transaction to the issuer, NovoPayment validates the transaction for compliance against all established rule parameters.


    - Full-Authorizer: NovoPayment receives and determines the outcome of a transaction based on configured program rules and available balances or credit limits. For this model, customer and account information is stored in NovoPayment’s Banking Core.


    Pre-Authorizer and Full-Authorizer models require that program information be configured in NovoPayment’s Banking Core.


    NovoPayment offers an extensive set of card program configurations that apply to all the cards issued within a program. Programs are configured in NovoPayment’s Banking Core.


    For open-loop programs, a key component to establishing a program is a BIN (Bank Identification Number). The BIN will vary based on the network you select and the card type. NovoPayment supports Visa and Mastercard prepaid, debit, and credit cards.


    BINs 8-digits long and are assigned to specific card programs. They can be further allocated to specific programs by assigning  9th digit to sub-programs (for example for promotional campaigns).


    Additionally, cards can be physical or virtual, and they can hold one of the 180 currencies supported by NovoPayment’s Banking Core. This information is not contained in the BIN but is captured as part of the program.


    Besides the network and card type, a host of configurations are available for cards issued within a program. Some of these configurations can be made more stringent at the card level via APIs. These configurations can be implemented for open and closed loop programs. Sample configurations include:


    - Card activation: determine when cards become active and mechanism for activation.


    - Card expiration: set the default card duration. This is also configurable per card via API.


    - Account limits: set a maximum account size and maximum amount of activity an account can transact monthly.

    - Card operations: establish allowed operations such as cash-in, cash-out, P2P, etc.


    - Transaction limits: set single transaction maximum limits, as well as total daily, weekly, and monthly maximum spend limits. This is also configurable per card via API.


    - Operation limits: cap the count of transactions that can be performed on a daily, weekly, and monthly basis.


    - Fees: configure fees for performing certain transactions.

    - Other limits based on available transaction information. Such as:

      - Channel limits: determine which channels cards can be used in (e.g. ATMs, eCommerce, POS) and limit operations for those channels.

      - Merchant list: specify in which types of businesses the card can be used. This is also configurable per card via API.

      - International use: restrictions for domestic or international transactions, or with specific currencies.


    Finally, as part of the card program for Virtual Cards, a Dynamic CCV2 can be configured. When in place, NovoPayment will generate a new CVV2 upon request by a customer completing an online purchase. This number is then validated for consistency when NovoPayment receives the transaction for authorization.


    Once a card program has been established, the Cards API is used to issue cards by creating customers and accounts and specifying any configurable information for the cards.


    Cards can then be managed using a suite of endpoints geared towards activating cards, blocking/ unblocking, establishing additional limits at the card level.


    Finally, the Cards API is used to perform a variety of purchase, funding, and money movement transactions that add give customers additional ways to use their cards.
  version: v1.3
  title: Cards API
servers:
  - description: Sandbox
    url: https://sandbox-api.novopayment.com/api/v1.3
tags:
  - name: Issuance
  - name: Balances
  - name: Movements
  - name: Support
  - name: Customer
  - name: Settings
paths:
  "/cards/issuance":
    post:
      tags:
        - Issuance
      summary: Card And Account Bundled
      description: >
        The main mechanism for issuing cards, the Card and Account Bundled
        endpoint combines the creation of an account with its respective
        account holder and the issuance of a card. If an account for the
        cardholder already exists (for example if the customer already onboarded
        onto your application) then the account number you’ve assigned can be
        submitted to NovoPayment to create the registry and issue the card. A
        lower level of information needs to be transmitted to NovoPayment in
        this scenario.  Alternatively, when NovoPayment is the one creating the
        account, the data collected as part of account and cardholder creation
        can be submitted to an AML/KYC provider to review the applicant.
        NovoPayment orchestrates the service and sends the relevant data.


        Cards issued can be named or unnamed. Unnamed cards do not have a cardholder associated with them. This process is typically done to have a stack of assignable prepaid cards which can be provided to consumers and then assigned via the Cardholder Creation endpoint.


        Once card and account information has been submitted, virtual cards can be issued instantly. Card embossing for physical cards can also begin immediately depending on your process configuration.
      operationId: CardAndAccountBundled
      requestBody:
        $ref: "#/components/requestBodies/RQCardAndAccountBundled"
      responses:
        "200":
          $ref: "#/components/responses/RSCardAndAccountBundled200"
        "400":
          $ref: "#/components/responses/RSCardAndAccountBundled400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
  "/cards/{cardId}":
    get:
      tags:
        - Issuance
      summary: Card Information
      description: >
        Enable a cardholder to retrieve and view information about a card.
        This operation would be performed to show card details in a UI, or to
        retrieve a Dynamic CVV2 when shopping online with a virtual card.


        Using the Card ID, NovoPayment will return information regarding the cardholder, CVV2, card type, card status, and more.
      operationId: CardInformation
      parameters:
        - $ref: "#/components/parameters/cardId"
        - $ref: "#/components/parameters/cvvNumber"
        - $ref: "#/components/parameters/dynCvvNumber"
      responses:
        "200":
          $ref: "#/components/responses/RSCardInformation200"
        "400":
          $ref: "#/components/responses/RSCardInformation400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
  "/cards/{cardId}/status":
    put:
      tags:
        - Issuance
      summary: Card Active Status
      description: >
        A cardholder can activate a card in several ways, based on program
        configurations and mechanism you wish to extend. Whether it is by keying
        in card information into a mobile or web UI, inputting their PIN in an
        ATM, or calling your customer support line, this endpoint allows you to
        send confirmation to NovoPayment that the card is active and can be used
        for transactions.


      operationId: CardActiveStatus
      parameters:
        - $ref: "#/components/parameters/cardId"
      requestBody:
        $ref: "#/components/requestBodies/RQCardActiveStatus"
      responses:
        "200":
          $ref: "#/components/responses/RSCardActiveStatus200"
        "400":
          $ref: "#/components/responses/RSCardActiveStatus400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
  "/cards/{cardId}/block":
    post:
      tags:
        - Support
      summary: Block Card
      description: >
        By providing a card ID, block all transactions from approval. This
        operation can be reversed through the Unblock Card endpoint. Cards that
        are to be replaced must be blocked before a replacement can be
        requested.
      operationId: BlockCard
      parameters:
        - $ref: "#/components/parameters/cardId"
      requestBody:
        $ref: "#/components/requestBodies/RQBlockCard"
      responses:
        "200":
          $ref: "#/components/responses/RSBlockCard200"
        "400":
          $ref: "#/components/responses/RSBlockCard400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
  "/cards/{cardId}/tophysical":
    put:
      tags:
        - Issuance
      summary: Virtual To Physical Card
      description: >
        Depending on your program configurations, a virtual and/or physical
        is created upon application approval. When both types of cards are
        issued immediately upon approval, they each receive a different PAN
        number, though both are associated to the same underlying account.


        In a case when only a virtual card is issued, through the Virtual to
        physical card endpoint a cardholder can convert their virtual card into
        a physical card which will have the same PAN number.


        The virtual card is blocked until unblocked by the physical card being
        activated.
      operationId: VirtualToPhysicalCard
      parameters:
        - $ref: "#/components/parameters/cardId"
      requestBody:
        $ref: "#/components/requestBodies/RQVirtualToPhysicalCard"
      responses:
        "200":
          $ref: "#/components/responses/RSVirtualToPhysicalCard200"
        "400":
          $ref: "#/components/responses/RSVirtualToPhysicalCard400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
  "/cards/{cardId}/balance":
    get:
      tags:
        - Balances
      summary: Account Balance By CardId
      description: >
        The Account Balance by CardId endpoint is used to retrieve balance available, 
        blocked and current  information for a specific card. 
        This would typically be done automatically when a user logs into their portal.
      operationId: AccountBalanceByCardId
      parameters:
        - $ref: "#/components/parameters/cardId"
      responses:
        "200":
          $ref: "#/components/responses/RSAccountBalanceByCardId200"
        "400":
          $ref: "#/components/responses/RSAccountBalanceByCardId400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
  "/cards/{cardId}/transactions":
    get:
      tags:
        - Movements
      summary: Transaction Movements Query
      description: >
        Allows your system to perform a query to retrieve the details of a
        card transactions for a specified card for a client to visualize. A
        general search can be filtered based on the direction of the
        transaction, specific transaction codes, and/or a specific date of
        transactions. You can optionally limit the maximum number of
        transactions to return, including how to paginate the information.


        The query will return all available transaction details including transaction ID, date, amounts (separating fees), participating cards or accounts and more.
      operationId: CardMovementsQuery
      parameters:
        - $ref: "#/components/parameters/cardId"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/page"
        - $ref: "#/components/parameters/date"
        - $ref: "#/components/parameters/days"
        - $ref: "#/components/parameters/transactionCode"
        - $ref: "#/components/parameters/transactionType"
        - $ref: "#/components/parameters/hasAuthCode"
      responses:
        "200":
          $ref: "#/components/responses/RSCardMovementsQuery200"
        "400":
          $ref: "#/components/responses/RSCardMovementsQuery400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
  "/cards/{cardId}/pin":
    post:
      tags:
        - Support
      summary: Card PIN Assignment
      description: |
        For a newly issued card, the Card PIN Assignment is used to set the
        card’s four-digit PIN which will be used for cash out transactions or
        transaction confirmation. To update a PIN for cards which already have
        one, the Card PIN Update endpoint is used.
      operationId: CardPINAssignment
      parameters:
        - $ref: "#/components/parameters/cardId"
      requestBody:
        $ref: "#/components/requestBodies/RQCardPinAssignment"
      responses:
        "200":
          $ref: "#/components/responses/RSCardPinAssignment200"
        "400":
          $ref: "#/components/responses/RSCardPinAssignment400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
    put:
      tags:
        - Support
      summary: Card PIN Update
      description: |
        For debit and prepaid cards which already have a four-digit PIN assigned, the Card PIN Update is used to update the card’s PIN.

        To set a PIN for a newly issued card, the Card PIN Assignment endpoint is used.
      operationId: CardPINUpdate
      parameters:
        - $ref: "#/components/parameters/cardId"
      requestBody:
        $ref: "#/components/requestBodies/RQCardPinUpdate"
      responses:
        "200":
          $ref: "#/components/responses/RSCardPinUpdate200"
        "400":
          $ref: "#/components/responses/RSCardPinUpdate400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
  "/cards/{cardId}/qr":
    get:
      tags:
        - Support
      summary: Card QR Code
      description: |
        You can request the generation of a QR code representing the details of
        a card for a cardholder to scan and retrieve card details.
        This is typically done to expedite the onboarding of a card onto your
        system (for example, to add card details for activating a card).
        The QR code does not have an expiration date.
      operationId: CardQRCode
      parameters:
        - $ref: "#/components/parameters/cardId"
      responses:
        "200":
          $ref: "#/components/responses/RSCardQRImage200"
        "400":
          $ref: "#/components/responses/RS400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
  "/cards/replacement":
    post:
      tags:
        - Issuance
      summary: Card Replacement
      description: |
        If a card has been lost, stolen, or generally needs to be replaced, this
        functionality is leveraged by an end user or a back-office administrator
        to request a replacement card for a cardholder (with a new PAN number).
        Only physical cards can be replaced with this endpoint.

        Cards must be blocked to be replaced. If an attempt is made to replace an active unblocked card, 
        an error message will be received. If a temporary block is needed instead of a card replacement, 
        that can be accomplished using the Block Card endpoint.


       
      operationId: CardReplacement
      requestBody:
        $ref: "#/components/requestBodies/RQCardReplacement"
      responses:
        "200":
          $ref: "#/components/responses/RSCardReplacement200"
        "400":
          $ref: "#/components/responses/RSCardReplacement400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
  "/cards/{cardId}/cashin":
    post:
      tags:
        - Balances
      summary: Cash In
      description: |
        For transactions which NovoPayment does not process, you can submit
        information to update a user’s account balance via the Cash In endpoint
        when an operation is performed to add value to an account (ATM deposit,
        transfers from another card, etc.). Information regarding the transaction
        is submitted to NovoPayment and a transaction ID is generated in response.
      operationId: CashIn
      parameters:
        - $ref: "#/components/parameters/cardId"
      requestBody:
        $ref: "#/components/requestBodies/RQCashIn"
      responses:
        "200":
          $ref: "#/components/responses/RSCashIn200"
        "400":
          $ref: "#/components/responses/RSCashIn400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
  "/cards/{cardId}/reversecashin":
    post:
      tags:
        - Balances
      summary: Cash In Reverse
      description: |
        Once a cash in transaction has been processed, the transaction can be
        reversed by providing the transaction ID. This causes the credit
        transaction to be debited from the account.
      operationId: CashInReverse
      parameters:
        - $ref: "#/components/parameters/cardId"
      requestBody:
        $ref: "#/components/requestBodies/RQCashInReverse"
      responses:
        "200":
          $ref: "#/components/responses/RSCashInReverse200"
        "400":
          $ref: "#/components/responses/RSCashInReverse400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
  "/cards/{cardId}/cashout":
    post:
      tags:
        - Balances
      summary: Cash Out
      description: |
        For transactions which NovoPayment does not process, you can submit
        information to update a user’s account balance via the Cash Out endpoint
        when an operation is performed to decrease value to an account
        (ATM withdrawal, transfer to another card, etc.).


        Information regarding the transaction is submitted to NovoPayment and a
        transaction ID is generated in response.
      operationId: CashOut
      parameters:
        - $ref: "#/components/parameters/cardId"
      requestBody:
        $ref: "#/components/requestBodies/RQCashOut"
      responses:
        "200":
          $ref: "#/components/responses/RSCashOut200"
        "400":
          $ref: "#/components/responses/RSCashOut400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
  "/cards/{cardId}/reversecashout":
    post:
      tags:
        - Balances
      summary: Cash Out Reverse
      description: |
        Once a cash out transaction has been processed, the transaction can be
        reversed by providing the transaction ID. This causes the debit
        transaction to be credited to the account.
      operationId: CashOutReverse
      parameters:
        - $ref: "#/components/parameters/cardId"
      requestBody:
        $ref: "#/components/requestBodies/RQCashOutReverse"
      responses:
        "200":
          $ref: "#/components/responses/RSCashOutReverse200"
        "400":
          $ref: "#/components/responses/RSCashOutReverse400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
  "/cards/cardholders/{cardId}/operationlimits":
    patch:
      tags:
        - Settings
      summary: Customize Operation Limits
      description: >
       The Customize Operation Limits establishes limits at an account level that differs 
       from those established by the card program


        The Customize Operations Limits endpoint is used to place restrictions on the amount 
        that can be spent with a card or the number of transactions that can be done with a 
        card on a daily, weekly, or monthly basis.


        This endpoint can be used to implement or update restrictions, 
        and can be sent only with the values that are to be modified
        (e.g. only the monthly limit for amounts).
      operationId: CustomizeOperationLimits
      parameters:
        - $ref: "#/components/parameters/cardId"
      requestBody:
        $ref: "#/components/requestBodies/RQCustomizeOperationLimits"
      responses:
        "200":
          $ref: "#/components/responses/RS200"
        "400":
          $ref: "#/components/responses/RSLimits400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
  "/sendmoney":
    post:
      tags:
        - Balances
      summary: Send Money
      description: |
        Leveraging the Send money endpoint, a user can send funds to another
        cardholder that’s a part of the same financial institution.

        The card ID of the recipient must be provided, along with the amount
        to be provided.
      operationId: SendMoney
      requestBody:
        $ref: "#/components/requestBodies/RQSendMoney"
      responses:
        "200":
          $ref: "#/components/responses/RSTransaction200"
        "400":
          $ref: "#/components/responses/RSSendMoney400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
  "/cards/{cardId}/transactions/{transactionIdentifier}":
    get:
      tags:
        - Movements
      summary: Transaction Detail
      description: |
        Allows your system to perform a query to retrieve details of a specific
        transaction for a specified card for a client to visualize. In response,
        all the relevant transaction details will be included. This endpoint
        only supports Cash In, Cash Out, and Send Money (P2P, P2M, A2A)
        transactions.


        Note: Only transactions which NovoPayment processed will have full
        details returned. If the transaction is submitted to NovoPayment via the
        Cash In or Cash Out endpoints (meaning your system processed the
        transaction), fewer details will be available.
      operationId: TransactionDetail
      parameters:
        - $ref: "#/components/parameters/cardId"
        - $ref: "#/components/parameters/transactionIdentifier"
      responses:
        "200":
          $ref: "#/components/responses/RSTransactionDetail200"
        "400":
          $ref: "#/components/responses/RSTransactionDetail400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
  "/cards/{cardId}/transactions/summary":
    get:
      tags:
        - Movements
      summary: Transaction Summary
      description: |
        Allows your system to perform a query to retrieve a report of card
        transactions, by transaction type, for a specified card for a client to
        visualize. The search is for a date range of transactions, maximum of
        three months, and can be optionally filtered based on the direction of
        the transaction or a specific type of transaction.


        The query will return details grouped by type of transaction, the total
        amount transacted, and fees charged. To view details of a specific
        transaction, use the Transaction Detail endpoint.
      operationId: TransactionSummary
      parameters:
        - $ref: "#/components/parameters/cardId"
        - $ref: "#/components/parameters/transactionCode"
        - $ref: "#/components/parameters/transactionType"
        - $ref: "#/components/parameters/dateFromSummary"
        - $ref: "#/components/parameters/dateToSummary"
      responses:
        "200":
          $ref: "#/components/responses/RSTransactionSummary200"
        "400":
          $ref: "#/components/responses/RSTransactionSummary400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
  "/cards/{cardId}/unblock":
    post:
      tags:
        - Support
      summary: Unblock Card
      description: |
        By providing a card ID, remove a block previously placed though the
        Block Card endpoint.
      operationId: UnblockCard
      parameters:
        - $ref: "#/components/parameters/cardId"
      requestBody:
        $ref: "#/components/requestBodies/RQUnblockCard"
      responses:
        "200":
          $ref: "#/components/responses/RSUnblockCard200"
        "400":
          $ref: "#/components/responses/RSUnblockCard400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
  "/cards/cardholders":
    post:
      tags:
        - Issuance
      summary: Cardholder Association
      description: >
        After (prepaid) unnamed cards have been issued and provided to the holder
        of the card, they can be assigned to that holder by creating a record of
        that cardholder in the system.


        It should be noted that if the cardholder is not yet registered, a new one will be created, 
        however, if the cardholder already exists, their data will be update.


        Once linked, a cardholder can activate the card.

      operationId: CardCardholdersAssociation
      requestBody:
        $ref: "#/components/requestBodies/RQCardCardholders"
      responses:
        "200":
          $ref: "#/components/responses/RSCardIdUserId200"
        "400":
          $ref: "#/components/responses/RSCardHolderCreate400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
    put:
      tags:
        - Customer
      summary: Cardholder Update
      description: > 
        Updates the card issuer data such as names, address, phone, marital status, nationality, email, gender, date of birth, place of birth, and agency.


        Only the data provided in the request object will be updated. Parameters not provided in the request will not be updated.


        The fields account number, card identifier, document number, document type, and verification digit will not be updated.
    
      operationId: CardCardholdersUpdate
      requestBody:
        $ref: "#/components/requestBodies/RQCardCardholdersUpdate"
      responses:
        "200":
          $ref: "#/components/responses/RSCardIdUserId200"
        "400":
          $ref: "#/components/responses/RSCardHolderCreate400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
  "/cards/{cardId}/transactionrules":
    post:
      tags:
        - Settings
      summary: Associate Transaction Rules
      description: >
        Allows the cardholder to associate specific transaction rules to
        a card, providing greater control over transaction behavior.


        This operation can be used to block certain types of transactions or
        define security parameters based on predefined rules.


        With the cardId, NovoPayment will record the specified transaction
        rules, ensuring that all transactions comply with the defined security
        settings.

      operationId: AssociateTransactionalRules
      parameters:
        - $ref: "#/components/parameters/cardId"
      requestBody:
        $ref: "#/components/requestBodies/RQCreateTransactionRules"
      responses:
        "200":
          $ref: "#/components/responses/RS200"
        "400":
          $ref: "#/components/responses/RSTransactionRules400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
    get:
      tags:
        - Settings
      summary: List Transaction Rules
      description: >
        Allows the cardholder to retrieve and view the transactional rules
        associated with a card.


        This operation makes it easier for users to understand what
        restrictions or security settings are applied to their transactions.


        Using the cardId, NovoPayment will return a list of active transaction
        rules associated with a specific card.

      operationId: ListTransactionRules
      parameters:
        - $ref: "#/components/parameters/cardId"
      responses:
        "200":
          $ref: "#/components/responses/RSListTransactionRules200"
        "400":
          $ref: "#/components/responses/RSListTransactionRules400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
    patch:
      tags:
        - Settings
      summary: Update Transaction Rules
      description: >
        Allows the cardholder to activate or deactivate specific transactional
        rules associated with a card.


        This operation provides the ability to dynamically manage
        transaction permissions, improving security and control over
        card usage.


        With the cardId, NovoPayment will update the status of the specified
        transactional rules, determining whether transactions in categories
        such as: e-commerce, ATMs, or Points of Sale (POS) are allowed or
        restricted.

      operationId: EnableDisableTransactionalRules
      parameters:
        - $ref: "#/components/parameters/cardId"
      requestBody:
        $ref: "#/components/requestBodies/RQUpdateTransactionRules"
      responses:
        "200":
          $ref: "#/components/responses/RS200"
        "400":
          $ref: "#/components/responses/RSEnableDisableTransactionalRules400"
        "401":
          $ref: "#/components/responses/RS401"
        "500":
          $ref: "#/components/responses/RS500"
security:
  - oAuth2ClientCredentials: []
components:
  securitySchemes:
    oAuth2ClientCredentials:
      type: oauth2
      description: >
        See [Oauth2
        API](https://developer.novopayment.com/api/authentication-method-and-encryption/oauth2-api)
      flows:
        clientCredentials:
          tokenUrl: https://sandbox-api.novopayment.com/oauth2/token
          scopes: {}
  examples:
    TransactionSummaryOK:
      value:
        code: 200.01.000
        message: Process Ok
        datetime: "2020-01-03T16:05:56.517Z"
        data:
          - transactionCode: "05"
            transactionName: cashin
            totalAmount: 1000
            totalCommissionFee: 20
            dateFrom: "2020-12-01"
            dateTo: "2020-12-31"
            transactionType: C
            totalTransactions: 10
          - transactionCode: "06"
            transactionName: cashout
            totalAmount: 1000
            totalCommissionFee: 20
            dateFrom: "2020-12-01"
            dateTo: "2020-12-31"
            transactionType: D
            totalTransactions: 5
          - transactionCode: "07"
            transactionName: cashout reverse
            totalAmount: 1000
            totalCommissionFee: 20
            dateFrom: "2020-12-01"
            dateTo: "2020-12-31"
            transactionType: C
            totalTransactions: 5
    TransactionMovementsQueryOK:
      value:
        code: 200.01.000
        message: Process Ok
        datetime: "2020-01-03T16:05:56.517Z"
        data:
          - originName: JOHN DOE
            originAccount: "1900"
            referenceNumber: "32

# --- truncated at 32 KB (187 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/novopayment/refs/heads/main/openapi/novopayment-cards-openapi.yml