openapi: 3.2.0 info: description: 'Endpoints for doing various actions connected to the Card entity. All date-time fields adhere to the ISO 8601 standard unless specified otherwise. For example: 2024-05-31T06:55:17Z' version: '1' title: Get card API contact: name: Enfuce Financial Services url: https://enfuce.com email: info@enfuce.com servers: - url: https://api.{{tenant}}.ext-uat1-sandbox.mycore.enfuce.com/issuer description: UAT Sandbox - url: https://api.{{tenant}}.eu.live.prod.mycore.enfuce.com/issuer description: Production security: - bearerAuth: [] tags: - name: Get card description: Endpoints for fetching a card paths: /v1/cards: get: tags: - Get card summary: Get Card Applications for Main Card description: 'Send a request to this endpoint to return all card applications for a specific main card. If the main card does not exist, an empty array is returned.' operationId: getCards parameters: - name: mainCardId in: query description: Unique identifier of the main card for which you want to retrieve the list of card applications. required: true schema: type: string format: uuid - $ref: '#/components/parameters/x-audit-user' responses: '200': description: Successful retrieval of card applications. content: application/json: schema: type: array items: $ref: '#/components/schemas/CardResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalServerError' /v1/cards/{id}: get: tags: - Get card summary: Get Card operationId: getCard parameters: - name: id in: path description: Unique identifier of the card you want to retrieve. required: true schema: type: string format: uuid - $ref: '#/components/parameters/x-audit-user' responses: '200': description: The card details are successfully retrieved. content: application/json: schema: $ref: '#/components/schemas/CardResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' /v1/cards/{id}/controlToken: post: tags: - Get card summary: Initiate Card Data Retrieval description: 'Send a request to this endpoint when the cardholder wants to retrieve card data, such as PAN, expiry and CVV2/CVC2. If no sequence number is specified, the latest card version is used by default. Only card versions not in CLOSED status are allowed.' operationId: getCardDataControlToken parameters: - name: id in: path description: Unique identifier of the card. required: true schema: type: string format: uuid - $ref: '#/components/parameters/x-audit-user' requestBody: required: false content: application/json: schema: $ref: '#/components/schemas/ControlTokenRequestBody' responses: '200': description: Control token generated successfully content: application/json: schema: $ref: '#/components/schemas/CardDataControlTokenResponseBody' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' components: schemas: CardConfigurationType: type: string description: The type of card defined by this card configuration. enum: - DEBIT - CREDIT - COMBO example: CREDIT Id: type: string format: uuid description: Unique identifier of a resource. example: 20218aae-b15e-406c-9e9f-23735cd86a48 AdditionalValues: type: object description: 'You can include up to **30 additional key-value pairs** in the embossing file sent to the card manufacturer. - **Keys** must follow the pattern: `^[a-zA-Z0-9-]{1,36}$` (only letters, numbers, and hyphens, with a maximum length of 36 characters). - **Values** must follow the pattern: `^[a-zA-Z0-9|\-_ +.@éàèùçâêîôûëïü''/=]{1,1000}$`. Enfuce **does not perform any additional validation** on these key-value pairs beyond ensuring they match the specified patterns. These fields are intended for **storing data without further processing**. If you need to store a **complex structure**, you can **base64 encode** the value. The encoded value will be passed as entered, without modifications. ⚠ **Important:** Any usage of these fields should be agreed upon with the manufacturer. ' maxProperties: 30 additionalProperties: type: string example: keyWithPlainTextValue: value1 keyWithBase64Value: dmFsdWUyYmFzZTY0ZW5jb2RlZA== CardVersionStatus: type: string description: '- ACTIVE - The card is completely operational. You can perform all actions with the card. - ACTIVE_LIMITED - The card version is usable for digital transactions only. Provisioning, token payments and e-commerce transactions are allowed, while physical entry modes (chip, contactless, magstripe and ATM) are declined. - INITIAL - The specific card version is awaiting activation. During this state, the card can have limited usage, such as being added to a digital wallet or cardholder can view the PIN (if it is a plastic card). However, in the INITIAL state, the card cannot be used for payments. - CLOSED - The previous versions of the card are no longer valid as a new version is activated or the card is closed. ' enum: - ACTIVE - ACTIVE_LIMITED - INITIAL - CLOSED example: ACTIVE ErrorResponse: type: object properties: type: description: The problem type. type: string title: description: The reason phrase of HttpStatus. type: string status: description: HTTP problem status. type: number detail: description: The problem detail. type: string instance: description: The request path. type: string id: description: Unique error identifier. type: string format: uuid timestamp: description: Date-time when error occurred. type: string format: date-time CardConfigurationCode: type: string description: A unique code to identify the card configuration. Max character limit is 36. example: MC_DEBIT_1 minLength: 1 maxLength: 36 pattern: ^[A-Za-z0-9_-]+$ CardStatus: type: string description: '- ACTIVE - Card is active and is enabled for normal usage. - BLOCKED - Card is temporarily blocked. - BLOCKED_SUSPECTED_FRAUD - Card is temporarily blocked due to suspected fraud. - CLOSED_DUE_TO_FRAUD - Card has been closed due to fraud. - CLOSED_LOST - Card has been closed due to being lost. - CLOSED_STOLEN - Card has been closed due to being stolen. - CLOSED - Card has been manually closed. - CLOSED_EXPIRED - Card has no active or initial card versions and cannot be used. ' enum: - ACTIVE - BLOCKED - BLOCKED_SUSPECTED_FRAUD - CLOSED_DUE_TO_FRAUD - CLOSED_LOST - CLOSED_STOLEN - CLOSED - CLOSED_EXPIRED example: ACTIVE Printed: type: boolean description: 'Indicates whether the specific card would be printed or not. Only applicable to multi-application cards. Otherwise, the request will return 400 Bad Request. ' example: true ExternalLayoutCode: type: string description: Unique code forwarded to the embossing house; the code identifies the plastic layout to be used for printing the new card. Ensure beforehand, the selected embossing house is aligned with the code used for each layout. minLength: 1 maxLength: 32 pattern: ^[a-zA-Z0-9-_]+$ example: 1 ChipEnabled: type: boolean description: 'Whether the card should be visible in card terminal or not. Only applicable to multi-application cards. Otherwise, the request will return 400 Bad Request. ' example: true ControlTokenRequestBody: type: object properties: sequenceNumber: allOf: - $ref: '#/components/schemas/SequenceNumber' description: 'The sequence number of the card version to use. If not specified, the latest card version is used by default. Only card versions not in CLOSED status are allowed. ' title: ControlTokenRequestBody EmbossingName: type: string description: The name to be embossed on the card. Max character limit is 26. minLength: 1 maxLength: 26 pattern: ^[A-Za-z0-9 /.,&+'\- ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ ĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹ ĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰű ŲųŴŵŶŷŸŹźŻżŽžſǪǫȘșȚțȪȫȮȯȲȳḐḑṢṣẞỌọ]+$ example: John Doe UpdateCount: type: integer description: The version number of the entity. example: 1 CardVersion: type: object properties: status: $ref: '#/components/schemas/CardVersionStatus' expirationTime: $ref: '#/components/schemas/ExpirationTime' renewalDate: $ref: '#/components/schemas/RenewalDate' sequenceNumber: $ref: '#/components/schemas/SequenceNumber' keySetId: $ref: '#/components/schemas/KeySetId' createdAt: $ref: '#/components/schemas/Created' updatedAt: $ref: '#/components/schemas/Updated' Plastic: type: object properties: embossingName: $ref: '#/components/schemas/EmbossingName' preferredCardAddress: $ref: '#/components/schemas/Address' preferredCardDeliveryType: $ref: '#/components/schemas/CardDeliveryType' preferredPinAddress: $ref: '#/components/schemas/Address' preferredPinDeliveryType: $ref: '#/components/schemas/PinDeliveryType' manufacturerId: $ref: '#/components/schemas/Id' externalLayoutCode: $ref: '#/components/schemas/ExternalLayoutCode' createdAt: $ref: '#/components/schemas/Created' updatedAt: $ref: '#/components/schemas/Updated' Address: type: object properties: address1: description: First line of address. type: string minLength: 1 maxLength: 255 pattern: ^(?!\s)(?!.*\s$).+(?