Mastercard Carbon Calculator Experience API

The Carbon Calculator Experience API enables issuers to provide their cardholders with visibility into their environmental impact and carbon footprint based on their spending habits. This API also provides cardholders with the option to make donations in support of environmental causes like forest restoration projects and support a positive impact on the environment.

OpenAPI Specification

mastercard-carbon-calculator-experience-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Mastercard Carbon Calculator Experience API
  description: >-
    The Carbon Calculator Experience API enables issuers to provide their
    cardholders with visibility into their environmental impact and carbon
    footprint based on their spending habits. This API also provides cardholders
    with the option to make donations in support of environmental causes like
    forest restoration projects and support a positive impact on the
    environment.
  contact:
    name: API Support
    url: https://developer.mastercard.com/support
    email: [email protected]
  version: 1.0.0
servers:
- url: https://api.mastercard.com/cts
  description: Production
- url: https://sandbox.api.mastercard.com/cts
  description: Sandbox
tags:
- name: Aggregate
- name: Carbon
- name: Dashboards
- name: Deletions
- name: Issuer
  description: Contains APIs which will be consumed by the Issuer's backend system.
- name: Scores
- name: Users
paths:
  /issuers:
    get:
      tags:
      - Issuer
      summary: Mastercard Fetches the Issuer Details.
      description: >-
        Allows fetching the Issuer details onboarded on the Carbon Calculator
        Experience. This API returns the Issuer's available details like a
        supported account range, currency code, and country code along with the
        color theme.
      operationId: getIssuer
      responses:
        '200':
          $ref: '#/components/responses/IssuerProfileDetails'
        '401':
          $ref: '#/components/responses/IssuerUnauthorisedError'
        '404':
          $ref: '#/components/responses/IssuerNotFoundError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      tags:
      - Issuer
      summary: >-
        Mastercard Allows Issuer to Update the Issuer Details to the Carbon Calculator Experience Platform.
      description: >-
        Allows a registered Issuer to update the configuration details to the
        Carbon Calculator Experience API.
      operationId: updateIssuer
      requestBody:
        $ref: '#/components/requestBodies/IssuerConfiguration'
      responses:
        '200':
          $ref: '#/components/responses/IssuerProfile'
        '400':
          $ref: '#/components/responses/UpdateIssuerBadRequestError'
        '401':
          $ref: '#/components/responses/UpdateIssuerUnauthorisedError'
        '404':
          $ref: '#/components/responses/IssuerNotFoundError'
        '415':
          $ref: '#/components/responses/UnsupportedMediaTypeError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /issuers/users:
    post:
      tags:
      - Issuer
      - Users
      summary: >-
        Mastercard Allows Issuer to Enroll Cardholders to the Carbon Calculator Experience Platform.
      description: >
        Used to enroll users for the Carbon Calculator Experience API so that

        they can track the carbon usage for their transactions and provides

        them with an option to donate towards tree plantation.


        **Note-**

        * If the issuer has opted for the Donation feature then the fields -
        *name, billing address, email, locale, cardholder name, card number,
        card base currency and card expiry date* fields are **mandatory** in the
        payload.

        * This endpoint uses the Mastercard payload
          encryption. Refer to the **[Payload
          Encryption](https://developer.mastercard.com/platform/documentation/security-and-authentication/securing-sensitive-data-using-payload-encryption/#mastercard-encryption)**
          page for implementation details.
      operationId: userRegistration
      x-mastercard-api-encrypted: true
      requestBody:
        $ref: '#/components/requestBodies/UserProfile'
      responses:
        '200':
          $ref: '#/components/responses/UserReference'
        '400':
          $ref: '#/components/responses/UserEnrolmentBadRequestError'
        '401':
          $ref: '#/components/responses/UserEnrolmentUnauthorisedError'
        '404':
          $ref: '#/components/responses/IssuerNotFoundError'
        '415':
          $ref: '#/components/responses/UnsupportedMediaTypeError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /issuers/users/{userid}:
    put:
      tags:
      - Issuer
      - Users
      summary: >-
        Mastercard Allows Issuer to Update Enrolled User Information Onto Carbon Calculator Experience Platform.
      description: Used to update the user's information for Carbon Calculator Experience.
      operationId: updateUser
      parameters:
      - $ref: '#/components/parameters/UserID'
      x-mastercard-api-encrypted: true
      requestBody:
        $ref: '#/components/requestBodies/UpdateUserProfile'
      responses:
        '200':
          $ref: '#/components/responses/UpdateUserReference'
        '400':
          $ref: '#/components/responses/UserEnrolmentBadRequestError'
        '401':
          $ref: '#/components/responses/UpdateUserUnauthorisedError'
        '404':
          $ref: '#/components/responses/IssuerNotFoundError'
        '415':
          $ref: '#/components/responses/UnsupportedMediaTypeError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /issuers/users/{userid}/dashboards:
    get:
      tags:
      - Dashboards
      - Issuer
      - Users
      summary: >-
        Mastercard Used to Retrieve the Short-lived Url of a User's Dashboard to View Their Carbon Footprints and Contributions to Priceless Planet.
      description: >-
        It allows issuers to retrieve a short-lived URL for an enrolled user. An
        Issuer needs to load this URL within their application so that the user
        can view the dashboard in their preferred language. Currently, four
        languages are supported, including English, Spanish (Latin America),
        Swedish, and Polish.
      operationId: getAuthToken
      parameters:
      - $ref: '#/components/parameters/UserID'
      - $ref: '#/components/parameters/Lang'
      responses:
        '200':
          $ref: '#/components/responses/Dashboard'
        '400':
          $ref: '#/components/responses/DashboardBadRequestError'
        '401':
          $ref: '#/components/responses/DashboardsUnauthorisedError'
        '404':
          $ref: '#/components/responses/DashboardNotFoundError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /issuers/users/{userid}/aggregate-carbon-scores:
    get:
      tags:
      - Aggregate
      - Carbon
      - Issuer
      - Scores
      - Users
      summary: >-
        Mastercard Fetches Monthly Aggregate Carbon Score for the Transactions Made for the Current Month.
      description: >-
        Allows Issuers to retrieve an aggregate carbon footprint for the
        transactions done by a user.
      operationId: getAggregateCarbonScore
      parameters:
      - $ref: '#/components/parameters/UserID'
      responses:
        '200':
          $ref: '#/components/responses/AggregateCarbonScore'
        '400':
          $ref: '#/components/responses/AggregateCarbonScoreBadRequestError'
        '401':
          $ref: '#/components/responses/AggregateCarbonScoreUnauthorisedError'
        '404':
          $ref: '#/components/responses/AggregateCarbonScoreNotFoundError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /issuers/user-deletions:
    post:
      tags:
      - Deletions
      - Issuer
      - Users
      summary: Mastercard Delete One or More Users.
      description: >-
        <ul><li>Allows a registered Service Provider to delete one or more
        users.</li> <li>Payment cards associated with the user will also be
        deleted.</li> <li>On a successful response from the Server, the Service
        Provider should remove all the requested users and associated payment
        cards from the system.</li></ul>
      operationId: deleteUsers
      requestBody:
        $ref: '#/components/requestBodies/UserIDs'
      responses:
        '202':
          $ref: '#/components/responses/UserIDs'
        '400':
          $ref: '#/components/responses/DeleteUserBadRequestError'
        '401':
          $ref: '#/components/responses/DeleteUserUnauthorisedError'
        '404':
          $ref: '#/components/responses/DeleteUserNotFoundError'
        '415':
          $ref: '#/components/responses/UnsupportedMediaTypeError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  requestBodies:
    UserProfile:
      description: >-
        User's Personal and Card information needs to be registered to the
        Carbon Calculator Experience API.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UserProfile'
    IssuerConfiguration:
      description: >-
        Configuration details for Issuer which need to be updated. It should
        contain only those parameters which you want to update.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/IssuerConfiguration'
    UserIDs:
      description: List of user ids
      required: true
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/UserID'
            minItems: 1
            maxItems: 500
          examples:
            UserIDs:
              $ref: '#/components/examples/UserIDs'
    UpdateUserProfile:
      description: >-
        The request object for updating a enrolled user onto Carbon Calculator
        Experience platform. This endpoint uses the Mastercard payload
        encryption. Refer to the **[Payload
        Encryption](https://developer.mastercard.com/platform/documentation/security-and-authentication/securing-sensitive-data-using-payload-encryption/#mastercard-encryption)**
        page for implementation details.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UpdateUserProfile'
  schemas:
    IssuerProfileDetails:
      title: IssuerProfileDetails
      type: object
      description: Information about an Issuer as available on the server.
      required:
      - clientId
      - supportedAccountRange
      - status
      - email
      - currencyCode
      - countryCode
      - countryName
      - termsAndConditionURL
      - privacyNoticeURL
      - optOutURL
      - preferredTheme
      properties:
        clientId:
          type: string
          minLength: 1
          maxLength: 200
          pattern: ^[\w\d\-\_]{1,200}
          description: Unique Issuer identifier from the Mastercard Developers.
          example: fjl2fxzsYl1OpvxkBItC9nVw1PSQc_b-eQMcmQFg011ab4b5
        customerId:
          type: string
          minLength: 1
          maxLength: 200
          pattern: ^[\w\d]{1,200}
          description: >-
            Unique Issuer identifier assigned by Mastercard which remains the
            same across all Mastercard systems.
          example: customerid1
        supportedAccountRange:
          type: string
          pattern: ^[0-9]{4,8}(,[0-9]{4,8})*$
          description: >-
            Comma separated account range must be between 4 and 8 supported by
            an Issuer.
          example: 534403,518145,518152,5403,5424
        status:
          type: string
          minLength: 6
          maxLength: 9
          description: >-
            Status of an Issuer on the server. Possible values are Active and
            Suspended.
          example: ACTIVE
        email:
          type: string
          minLength: 1
          maxLength: 100
          description: Issuers email address
          example: [email protected]
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        countryCode:
          title: countryCode
          type: string
          description: >-
            DE 19 (Acquiring Institution Country Code) is the code of the
            country where the acquiring institution is located.
          maxLength: 3
          minLength: 3
          example: USA
        countryName:
          $ref: '#/components/schemas/CountryName'
        privacyNoticeURL:
          type: string
          description: Privacy Notice URL.
          example: https://www.issuer.privacy-policy-url.html
        termsAndConditionURL:
          type: string
          description: Terms and conditions URL for the given user.
          example: https://www.issuer.term-and-conditions.html
        optOutURL:
          type: string
          description: OPT out URL for the given user.
          example: https://www.issuer.opt-out-url.html
        preferredTheme:
          $ref: '#/components/schemas/PreferredTheme'
    UserProfile:
      title: UserProfile
      type: object
      description: >-
        The request object for enrolling a new user to Carbon Calculator
        Experience API.
      required:
      - cardNumber
      - email
      - expiryInfo
      - cardBaseCurrency
      - cardholderName
      properties:
        email:
          $ref: '#/components/schemas/Email'
        name:
          $ref: '#/components/schemas/UserName'
        cardholderName:
          type: string
          description: Name of the card-holder. (format- First Name Last Name)
          minLength: 1
          maxLength: 100
          example: John Doe
        cardNumber:
          $ref: '#/components/schemas/CardNumber'
        cardBaseCurrency:
          $ref: '#/components/schemas/CurrencyCode'
        expiryInfo:
          $ref: '#/components/schemas/CardExpiry'
        billingAddress:
          $ref: '#/components/schemas/Address'
        locale:
          type: string
          description: User locale which is registered with Issuer.
          minLength: 1
          maxLength: 100
          example: en-US
    CurrencyCode:
      title: currencyCode
      type: string
      description: Currency code as per ISO 4217
      pattern: ^[A-Za-z]{3}$
      example: EUR
    CardExpiry:
      type: object
      properties:
        month:
          type: string
          example: '10'
          description: Denotes a month by when the card will be expired.
          pattern: ^[0-9]{2}$
        year:
          type: string
          description: Denotes a year by when the card will be expired.
          example: '2024'
          pattern: ^[0-9]{4}$
      title: CardExpiry
    CardNumber:
      type: string
      pattern: ^\d{16}$
      description: Original payment card number in full.
      example: '5344035171224363'
    Address:
      type: object
      required:
      - countryCode
      - type
      properties:
        countryCode:
          description: Denotes three-character country code.
          type: string
          example: USA
          minLength: 3
          maxLength: 3
        locality:
          description: Neighborhood.
          type: string
          minLength: 3
          maxLength: 30
          example: Rly Station
        postalCode:
          description: >-
            <p> The postal code in the address is the ZIP code or equivalent and
            can be an alphanumeric value including whitespace (for example, PE7
            8FT). <br><b> Note - Special characters and only whitespace
            characters are not allowed. </b></p>
          type: string
          example: '11746'
          maxLength: 12
        state:
          type: string
          description: The state or region or province to which the address belongs.
          example: New York
          minLength: 3
          maxLength: 20
        city:
          type: string
          description: City.
          example: Brooklyn
          minLength: 3
          maxLength: 20
        line1:
          type: string
          description: Street Address line1.
          minLength: 3
          maxLength: 20
          example: 83 Mayfair Street
        line2:
          type: string
          description: Street Address line2.
          minLength: 3
          maxLength: 20
          example: Main Road
        line3:
          type: string
          description: Street Address line3.
          minLength: 3
          maxLength: 20
          example: Snake Hill Ave
        type:
          type: string
          description: Denotes the type of address. (For example, home or work)
          example: work
          minLength: 3
          maxLength: 20
      title: Address
    Email:
      type: object
      properties:
        type:
          type: string
          description: Denotes the  type of email (For example, home)
          minLength: 1
          maxLength: 10
          example: home
        value:
          type: string
          description: Denotes email address.
          minLength: 5
          maxLength: 100
          example: [email protected]
      title: Email
    UserName:
      type: object
      required:
      - firstName
      - lastName
      properties:
        firstName:
          type: string
          example: John
          minLength: 1
          maxLength: 100
          description: Denotes the first name of the user.
        lastName:
          type: string
          description: Denotes the last name of the user.
          minLength: 1
          maxLength: 100
          example: Doe
      title: Username
    UpdateUserProfile:
      title: UpdateUserProfile
      type: object
      description: >-
        The request object for updating a enrolled user onto Carbon Calculator
        Experience platform.
      required:
      - name
      - locale
      properties:
        name:
          $ref: '#/components/schemas/UserName'
        billingAddress:
          $ref: '#/components/schemas/Address'
        locale:
          type: string
          description: Updating User locale which is registered with issuer.
          minLength: 1
          maxLength: 100
          example: en-US
    IssuerProfile:
      title: IssuerProfile
      type: object
      description: Information about an Issuer as available on the server.
      required:
      - clientId
      - supportedAccountRange
      - status
      properties:
        clientId:
          type: string
          minLength: 1
          maxLength: 200
          pattern: ^[\w\d\-\_]{1,200}
          description: Unique Issuer identifier from the Mastercard Developer Portal.
          example: fjl2fxzsYl1OpvxkBItC9nVw1PSQc_b-eQMcmQFg011ab4b5
        customerId:
          type: string
          minLength: 1
          maxLength: 200
          pattern: ^[\w\d]{1,200}
          description: >-
            Unique Issuer identifier assigned by Mastercard which remains the
            same across all Mastercard systems.
          example: customerid1
        supportedAccountRange:
          type: string
          pattern: ^\s*[0-9]{4,8}(\s*,\s*[0-9]{4,8})*\s*$
          description: >-
            Comma separated account range must be between 4 and 8 supported by
            an Issuer.
          example: 534403,518145,518152,5403,5424
        status:
          type: string
          minLength: 6
          maxLength: 9
          description: >-
            Status of an Issuer on the server. Possible values are Active and
            Suspended.
          example: ACTIVE
        privacyNoticeURL:
          type: string
          description: Privacy Notice URL.
          example: https://www.issuer.privacy-policy-url.html
        termsAndConditionURL:
          type: string
          description: Terms and conditions URL for the given user.
          example: https://www.issuer.term-and-conditions.html
        optOutURL:
          type: string
          description: Opt out URL for the given user.
          example: https://www.issuer.opt-out-url.html
        preferredTheme:
          $ref: '#/components/schemas/PreferredTheme'
    IssuerConfiguration:
      title: IssuerConfiguration
      type: object
      description: Configuration details for an Issuer.
      properties:
        supportedAccountRange:
          type: string
          pattern: ^\s*[0-9]{4,8}(\s*,\s*[0-9]{4,8})*\s*$
          description: >-
            Comma separated account range must be between 4 and 8 supported by
            an Issuer.
          example: 534403,518145,518152,5403,5424
        privacyNoticeURL:
          type: string
          description: Privacy Notice URL.
          example: https://www.issuer.privacy-policy-url.html
        termsAndConditionURL:
          type: string
          description: Terms and conditions URL for the given user.
          example: https://www.issuer.term-and-conditions.html
        optOutURL:
          type: string
          description: Opt out URL for the given user.
          example: https://www.issuer.opt-out-url.html
        preferredTheme:
          $ref: '#/components/schemas/PreferredTheme'
    CountryName:
      type: string
      description: ISO 3166 country short name
      pattern: ^[a-zA-Z\s\\(\\),\\.]+$
      minLength: 3
      maxLength: 50
      example: Brazil
    UserReference:
      title: UserReference
      type: object
      description: Successful user enrollment response
      required:
      - cardNumberLastFourDigits
      - status
      - userid
      properties:
        userid:
          $ref: '#/components/schemas/UserID'
        cardNumberLastFourDigits:
          type: string
          minLength: 4
          maxLength: 4
          pattern: ^\d{4}$
          description: >-
            Last 4 digits of a full payment card number which were provided as
            enrollment request.
          example: '4363'
        status:
          type: string
          minLength: 6
          maxLength: 7
          description: >-
            Status of the user on Carbon Calculator Experience API. Possible
            values are ACTIVE and INACTIVE.
          example: ACTIVE
    UserID:
      type: string
      minLength: 36
      maxLength: 36
      pattern: ^[0-9A-Fa-f-]{36}
      description: >-
        Unique identifier for a user enrolled in the Carbon Calculator
        Experience platform.
      example: f5d88571-ac15-465a-a0d8-1ad1327b9a06
    Lang:
      type: string
      description: Language for the issuer.
      example: en-US
    Dashboard:
      type: object
      required:
      - url
      - expiryInMillis
      properties:
        url:
          type: string
          description: >-
            This is the URL that needs to be rendered in web view with language
            code send by the issuer appended at the end of the URL.
          minLength: 1
          maxLength: 5000
          example: >-
            https://ppctwebview.b221.net/home/?auth_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c&lang=en-US
        expiryInMillis:
          type: string
          description: Denotes expiry limit for the URL.
          minLength: 1
          maxLength: 10
          example: '300000'
    AggregateCarbonScore:
      type: object
      required:
      - carbonEmissionInGrams
      - aggregateDate
      properties:
        carbonEmissionInGrams:
          type: string
          description: An aggregate value of CO2 emission in grams.
          minLength: 1
          maxLength: 10
          example: '3245'
        aggregateDate:
          type: string
          description: Denotes aggregate duration.
          minLength: 1
          maxLength: 20
          example: november-2020
    ErrorWrapper:
      title: ErrorWrapper
      type: object
      description: The error response object gets returned in case of error.
      required:
      - Errors
      properties:
        Errors:
          $ref: '#/components/schemas/Errors'
    Errors:
      title: Errors
      type: object
      description: Error object which contains a list of error objects.
      required:
      - Error
      properties:
        Error:
          type: array
          items:
            $ref: '#/components/schemas/Error'
          example: []
    Error:
      title: Error
      type: object
      description: Error object which contains details about a single error.
      required:
      - Source
      - ReasonCode
      - Description
      - Recoverable
      properties:
        Source:
          type: string
          description: >-
            The application name that generated this error. If an error is
            generated and returned by the gateway, then this field will have
            value as `Gateway`. Other possible values are `CARBON CALCULATOR`,
            `DONATE`, `CARBON_CALCULATOR_EXPERIENCE` or `PRICELESS PLANET`.
          minLength: 1
          maxLength: 100
          example: CARBON_CALCULATOR_EXPERIENCE
        ReasonCode:
          type: string
          description: >-
            A unique constant identifying the error case encountered during
            request processing.
          minLength: 1
          maxLength: 100
          example: INVALID_REQUEST_PARAMETER
        Description:
          type: string
          description: Short description of the `ReasonCode` field.
          minLength: 10
          maxLength: 1000
          example: >-
            One of the request parameters is invalid, try again with correct
            request.
        Recoverable:
          type: boolean
          description: >-
            Indicates whether this error will always be returned for this
            request, or retrying could change the outcome.
          example: false
        Details:
          type: string
          description: >-
            (Optional) Where appropriate, indicates detailed information about
            data received and calculated during the request processing, to help
            the user with diagnosing errors.
          minLength: 0
          maxLength: 5000
          example: email must not be null.
    PreferredTheme:
      type: object
      additionalProperties:
        type: string
      description: Color hex code to set preferred colors for webview.
      example:
        backgroundColor: '#FFFFFF'
        widgetBackgroundColor: '#FFFFFF'
        fontColor: '#000000'
        buttonColor: '#999999'
        barGraphColor: '#111111'
        buttonTextColor: '#FFFFFF'
        titleFontType: Mark Offc For MC
        titleFontSize: 28px
        subTitleFontType: Mark Offc For MC
        subTitleFontSize: 20px
        paragraphFontType: Mark Offc For MC
        paragraphFontSize: 15px
        buttonTextFontType: Mark Offc For MC
        buttonTextFontSize: 15px
        linkFontType: Mark Offc For MC
        linkFontSize: 15px
  parameters:
    UserID:
      in: path
      name: userid
      description: >-
        Unique identifier for a user enrolled into Carbon Calculator Experience
        platform.
      required: true
      example: f5d88571-ac15-465a-a0d8-1ad1327b9a06
      schema:
        $ref: '#/components/schemas/UserID'
    Lang:
      in: query
      name: lang
      description: >-
        Language preference (en-US - English, es-cr - Spanish (Costa Rica),
        es-cl - Spanish (Chile), sv - Swedish, pl-PL - Polish (Poland))
      required: false
      example: en-US
      schema:
        $ref: '#/components/schemas/Lang'
  responses:
    Dashboard:
      description: >-
        The response object after decryption contains a short-lived URL along
        with an authentication token and its expiry time.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Dashboard'
    IssuerProfile:
      description: >-
        The response object that contains the latest information of an Issuer as
        available on the server.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/IssuerProfile'
          examples:
            UpdateIssuerDetails:
              $ref: '#/components/examples/UpdateIssuerDetails'
    IssuerProfileDetails:
      description: >-
        The response object contains the latest information of an Issuer as
        available on the server.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/IssuerProfileDetails'
          examples:
            IssuerDetails:
              $ref: '#/components/examples/IssuerDetails'
    UserReference:
      description: >-
        The response object contains Payment Card information after a successful
        registration.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UserReference'
    UpdateUserReference:
      description: >-
        The response object that contains userID and Payment Card information
        after successful updation of users personal information.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UserReference'
    AggregateCarbonScore:
      description: The response object contains an aggregation of carbon footprint.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AggregateCarbonScore'
          examples:
            AggregateCarbonScores:
              $ref: '#/components/examples/AggregateCarbonScore'
    UserIDs:
      description: The response object contains a list of deleted user IDs
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/UserID'
          examples:
            DeletedUserIds:
              $ref: '#/components/examples/UserIDs'
    UserEnrolmentBadRequestError:
      description: >-
        This response code is returned when a request is invalid or data in the
        request is not valid or a card user is already registered on the server.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorWrapper'
          examples:
            BadRequestError:
              $ref: '#/components/examples/BadRequestError'
            InvalidNameError:
              $ref: '#/components/examples/InvalidUserNameError'
            InvalidFirstNameError:
              $ref: '#/components/examples/InvalidUserNameError'
            InvalidLastNameError:
              $ref: '#/components/examples/InvalidUserNameError'
            InvalidCardHolderNameError:
              $ref: '#/components/examples/InvalidCardHolderNameError'
            EncryptedDataLengthError:
              $ref: '#/components/examples/EncryptedDataLengthError'
            RequestDecryptionError:
              $ref: '#/components/examples/RequestDecryptionError'
    IssuerUnauthorisedError:
      description: >-
        This response code is returned when a user and the Issuer are
        unauthorized.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorWrapper'
          examples:
            IssuerInactiveError:
              $ref: '#/components/examples/IssuerInactiveError'
            IssuerSuspendedError:
              $ref: '#/components/examples/IssuerSuspendedError'
            IssuerTerminatedError:
              $ref: '#/components/examples/IssuerTerminatedError'
    UserEnrolmentUnauthorisedError:
      description: This response code is returned for unauthorized Issuer.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorWrapper'
          examples:
            IssuerInactiveError:
              $ref: '#/components/examples/IssuerInactiveError'
            IssuerSuspendedError:
              $ref: '#/components/examples/IssuerSuspendedError'
            IssuerTerminatedError:
              $ref: '#/components/examples/IssuerTerminatedError'
    UpdateUserUnauthorisedError:
      description: This response code is returned for unauthorized Issuer and User.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorWrapper'
          examples:
            IssuerInactiveError:
              $ref: '#/components/examples/IssuerInactiveError'
            IssuerSuspendedError:
              $ref: '#/components/examples/IssuerSuspendedError'
            IssuerTerminatedError:
              $ref: '#/components/examples/IssuerTerminatedError'
            UpdateUserNotAccessible:
              $ref: '#/components/examples/UpdateUserNotAccessible'
    UpdateIssuerBadRequestError:
      description: >-
        This response code is returned when either a request is invalid or data
        provided in the request is in invalid format.
      content:
        application/json:
          schema:
           

# --- truncated at 32 KB (50 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mastercard/refs/heads/main/openapi/mastercard-carbon-calculator-experience-api-openapi.yml