Mangopay Card Registrations API

The cardRegistrations API from Mangopay — 3 operation(s) for cardregistrations.

Operations 4

POST /v2.01/{ClientId}/cardregistrations Create a Card Registration #
POST /{CardRegistrationUrl} Tokenize the card #
PUT /v2.01/{ClientId}/cardregistrations/{CardRegistrationId} Update a Card Registration #
GET /v2.01/{ClientId}/cardregistrations/{CardRegistrationId} View a Card Registration #

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/mangopay:mangopay-cardregistrations-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 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

mangopay-cardregistrations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Reference Card Registrations API
  version: 1.0.0
servers:
- url: https://api.sandbox.mangopay.com
  description: Sandbox
- url: https://api.mangopay.com
  description: Production
- url: https://api-mtls.sandbox.mangopay.com
  description: mTLS Sandbox
- url: https://api-mtls.mangopay.com
  description: mTLS Production
- url: '%7BCardRegistrationUrl%7D'
  description: "The full dynamic URL returned by the Create a Card Registration call, including host, path, and query parameters. \n"
- url: '%7BSettlementFileUploadUrl%7D'
  description: 'The unique URL returned by the [POST Create a Settlement and secure URL](/api-reference/settlements/create-settlement) endpoint.


    **Note:** Use the full dynamic URL including the host, path, and all query parameters. The URL is already authenticated, so this call does not require an Authorization header.

    '
tags:
- name: cardRegistrations
paths:
  /v2.01/{ClientId}/cardregistrations:
    post:
      operationId: cardRegistrations_create_card_registration
      summary: Create a Card Registration
      description: 'Create a Card Registration


        Read more about the Card Registration object →'
      tags:
      - cardRegistrations
      parameters:
      - name: ClientId
        in: path
        description: Platform's API account identifier, associated with the API key.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardRegistrationResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateACardRegistrationRequest'
      security:
      - oauth2: []
  /{CardRegistrationUrl}:
    post:
      operationId: cardRegistrations_tokenize_card
      summary: Tokenize the card
      description: 'Send card details to a PCI-DSS-compliant tokenization server without reaching Mangopay''s servers.


        The URL to use for this endpoint is returned in the `CardRegistrationURL` parameter on the POST Create a Card Registration endpoint.


        The request must be made using the “application/x-www-form-urlencoded” content type.


        **Note – Do not hardcode the URL**


        The `CardRegistrationURL` is specific to each payment. You must rely on the returned URL in full (host, path, and queries) and not hardcode any part of it.


        **Caution – Card details must never pass via your server**


        For security reasons, it is strictly forbidden to send the card details to your own server. You must rely on the dedicated PCI-DSS-compliant tokenization server by using the endpoint provided.'
      tags:
      - cardRegistrations
      parameters:
      - name: CardRegistrationUrl
        in: path
        description: The variable URL is only documented as a path parameter on this path for documentation reasons. I allows it to be rendered visiablly on the page, and because there are two dynamic server URLs in the spec (so both would be on the / path). The variable URL is the server for this request, and it has a variable host and path and query parameters. You do not need to add anything to it.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: "The string returned by the tokenization server. \n\nSend this string in full as the `RegistrationData` value on the [PUT Update a Card Registration](/api-reference/card-registrations/update-card-registration) endpoint to create the Card object."
          content:
            application/json:
              schema:
                type: object
                properties: {}
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                accessKeyRef:
                  type: string
                  description: The `AccessKey` returned by the [POST Create a Card Registration](/api-reference/card-registrations/create-card-registration) call.
                data:
                  type: string
                  description: The `PreregistrationData` returned by the [POST Create a Card Registration](/api-reference/card-registrations/create-card-registration) call.
                cardNumber:
                  type: string
                  description: The full PAN (card number) of the card.
                cardExpirationDate:
                  type: string
                  description: 'The expiration date of the card in MMYY format, for example: `1229`.'
                cardCvx:
                  type: string
                  description: 'The card verification code (CVC) or card verification value (CVV), typically 3 digits found on the back of the card.


                    AMEX codes are 4 digits and are called card identification (CID) numbers.


                    For cards that don''t have a CVC, such as Maestro, use `000` or `999`.'
              required:
              - accessKeyRef
              - data
              - cardNumber
              - cardExpirationDate
              - cardCvx
      security:
      - oauth2: []
  /v2.01/{ClientId}/cardregistrations/{CardRegistrationId}:
    put:
      operationId: cardRegistrations_update_card_registration
      summary: Update a Card Registration
      description: 'Update a Card Registration


        This call is used to add the string acquired from the tokenization to the Card Registration object in the parameter `RegistrationData`, thereby validating the registration.


        As a result, the Card object is created and the corresponding `CardId` returned.


        Platforms should also send the cardholder''s name as it appears on the payment card. The `CardHolderName` parameter is sent on this call but not returned in the response; it is added to the Card object.'
      tags:
      - cardRegistrations
      parameters:
      - name: ClientId
        in: path
        description: Platform's API account identifier, associated with the API key.
        required: true
        schema:
          type: string
      - name: CardRegistrationId
        in: path
        description: The unique identifier of the Card Registration object.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardRegistrationResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateACardRegistrationRequest'
      security:
      - oauth2: []
    get:
      operationId: cardRegistrations_view_card_registration
      summary: View a Card Registration
      tags:
      - cardRegistrations
      parameters:
      - name: ClientId
        in: path
        description: Platform's API account identifier, associated with the API key.
        required: true
        schema:
          type: string
      - name: CardRegistrationId
        in: path
        description: The unique identifier of the Card Registration object.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardRegistrationResponse'
      security:
      - oauth2: []
components:
  schemas:
    UpdateACardRegistrationRequest:
      type: object
      properties:
        RegistrationData:
          type: string
          description: The string returned by the tokenization server on the <a href="/api-reference/card-registrations/tokenize-card">POST Tokenize the card</a> endpoint.
        CardHolderName:
          type: string
          description: 'Min. length: 2 characters; max. length: 45 characters passed to card network, 255 accepted by the API


            The cardholder''s name shown on the payment card. This value is passed to the card network for use in transaction risk analysis. The value should only contain unmarked alphabetic characters (A-Z, a-z), hyphens (-), apostrophes (''), and spaces. Letters with diacritics (e.g. É, Ü, ẞ), honorifics (e.g. MRS.) and other special characters are not recommended. The `CardHolderName` is not returned in the Card Registration object; it is added to the Card object.'
      required:
      - RegistrationData
      title: UpdateACardRegistrationRequest
    CardRegistrationResponse:
      type: object
      properties:
        Id:
          type: string
          description: The unique identifier of the Card Registration object.
        Tag:
          $ref: '#/components/schemas/Tag_CardRegistration'
        CreationDate:
          $ref: '#/components/schemas/CreationDate'
        UserId:
          type: string
          description: The unique identifier of the user the card belongs to.
        AccessKey:
          type: string
          description: The secure value to use when tokenizing the card via the dedicated endpoint.
        PreregistrationData:
          type: string
          description: The secure value to identify the registration when tokenizing the card via the dedicated endpoint.
        RegistrationData:
          type: string
          description: The string returned by the tokenization server, which must be sent in full as the `RegistrationData` on the <a href="/api-reference/card-registrations/update-card-registration">PUT Update a Card Registration</a> endpoint to create the Card object.
        CardId:
          type: string
          description: The unique identifier of the Card object, which is returned after updating the Card Registration object with the `RegistrationData`.
        CardType:
          type: string
          description: '**Returned values:** `CB_VISA_MASTERCARD`, `AMEX`, `MAESTRO`, `BCMC`


            **Default value:** `CB_VISA_MASTERCARD`


            The type of the card. If not supplied, the default value will be taken into account.'
        CardRegistrationURL:
          type: string
          description: 'The URL to make the card tokenization call.


            **Caution:** This variable URL is specific to each card registration. You must rely on the returned URL in full (host, path, and queries) and not hardcode any part of it.'
        ResultCode:
          $ref: '#/components/schemas/ResultCode'
        ResultMessage:
          $ref: '#/components/schemas/ResultMessage'
        Currency:
          type: string
          description: '**Returned values:** The three-letter <a href="/api-reference/overview/data-formats" target="_blank">ISO 4217 code</a> (EUR, GBP, etc.) of a <a href="/guides/currencies" target="_blank">supported currency</a> (depends on feature, contract, and activation settings).


            The currency of the card.'
        Status:
          type: string
          description: '**Returned values:** `CREATED`, `VALIDATED`, `ERROR`


            The status of the card registration:

            - `CREATED` – The card registration has been created, but no `RegistrationData` has been entered yet and the `CardId` value is `null`.

            - `VALIDATED` – The card registration has been successfully updated with the `RegistrationData` from the tokenization server.

            - `ERROR` – The card registration couldn''t be updated with the `RegistrationData` and no `CardId` was generated. For more information, refer to the `ResultCode` (<a href="/errors/codes/105206">105206</a>, <a href="/errors/codes/105299">105299</a>) and `ResultMessage`.'
      title: CardRegistrationResponse
    CreationDate:
      type: integer
      description: Unix timestamp (UTC) of the date and time the object was created.
      title: CreationDate
    ResultCode:
      type: string
      description: The code indicating the result of the operation. This information is mostly used to <a href="/errors/codes">handle errors</a> or for filtering purposes.
      title: ResultCode
    CreateACardRegistrationRequest:
      type: object
      properties:
        Tag:
          $ref: '#/components/schemas/Tag_CardRegistration'
        UserId:
          type: string
          description: The unique identifier of the user the card belongs to.
        CardType:
          type: string
          description: '**Allowed values:** `CB_VISA_MASTERCARD`, `AMEX`, `MAESTRO`, `BCMC`


            **Default value:** `CB_VISA_MASTERCARD`


            The type of the card. If not supplied, the default value will be taken into account.'
        Currency:
          type: string
          description: '**Allowed values:** The three-letter <a href="/api-reference/overview/data-formats" target="_blank">ISO 4217 code</a> (EUR, GBP, etc.) of a <a href="/guides/currencies" target="_blank">supported currency</a> (depends on feature, contract, and activation settings).


            The currency of the card.'
      required:
      - UserId
      - Currency
      title: CreateACardRegistrationRequest
    Tag_CardRegistration:
      type: string
      description: 'Max. length: 255 characters


        Custom data that you can add to this object, such as unique identifiers in your system. To store multiple values, you can serialize them into a single string, for example a JSON object: `"{\"id_1\":AB123,\"id_2\":DE456}"`.


        This value will also be inherited by the Card object''s `Tag` parameter and cannot be edited.'
      title: Tag_CardRegistration
    ResultMessage:
      type: string
      description: The explanation of the result code.
      title: ResultMessage
    Error:
      type: object
      properties:
        Message:
          type: string
          description: Description of the error.
        Type:
          type: string
          description: 'The category of the error.

            '
        Id:
          type: string
          description: Unique identifier of the error instance, useful when contacting Mangopay for support.
        Date:
          type: number
          format: double
          description: Unix timestamp (UTC) of the date and time the error was triggered.
        errors:
          type:
          - object
          - 'null'
          additionalProperties:
            type: string
          description: 'Object containing one or more field-level errors.

            '
      description: 'The error body typically returned by the Mangopay API for any non-2xx HTTP status code.

        '
      title: Error
  securitySchemes:
    oauth2:
      type: http
      scheme: bearer
      description: "Bearer authentication of the form `Bearer <token>`, where token is your auth token. \n\nIf your platform is using a [proxy](/guides/sca/proxy-management) to take SCA-triggering action on behalf of users, you also need to integrate [mTLS authentication](/guides/sca/platform) and use the `api-mtls` base URL."
x-provenance:
  method: harvested
  publisher: Mangopay
  source: https://docs.mangopay.com/openapi.json
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)