> ## Documentation Index
> Fetch the complete documentation index at: https://docs.enfuce.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Cardholder by Cardholder ID from C2P

> Send a request to this endpoint to retrieve a cardholder’s details from their C2P account.



## OpenAPI

````yaml wallet post /v1/click2pay/VISA/customer/{customerId}
openapi: 3.0.3
info:
  version: '1'
  title: Wallet operations
  contact:
    name: Enfuce Financial Services
    url: https://enfuce.com
    email: info@enfuce.com
  x-logo:
    url: resources/enfuce.svg
    altText: Enfuce logo
  description: >
    Wallet API enables getting needed data for tokenization and enablement in
    programs like

    Apple Pay and Google Pay, and Visa Click to Pay.


    #### Terms used

    <table>
      <tr>
        <th>Term</th>
        <th>Definition</th>
      <tr>
        <td>Customer</td>
        <td>End customer using financial institution's mobile application</td>
      </tr>
      <tr>
        <td>In-app activation</td>
        <td>Wallet provisioning using financial institution app as authentication method</td>
      </tr>
      <tr>
        <td>In-app provisioning</td>
        <td>Mastercard's term for push provisioning</td>
      </tr>
      <tr>
        <td>Push provisioning</td>
        <td>VISA's term for pushing card details from within mobile application. This term will be used in this document</td>
      </tr>
      <tr>
        <td>Wallet provider</td>
        <td>Such as Apple Pay, Google Pay or Samsung Pay </td>
      </tr>
    </table>


    It's called in two cases:

    - *Push provisioning* - this is usually done within issuers own application
    and card holder does

    not need to enter any information. Then the different endpoints for push
    provisioning must be used.

    - *In-app activation* - activating a card by manually adding information,
    then endpoint for generate activation

    data must be used after authentication of end customer is completed.


    ![ Provisioning example
    ](https://enfuce-public-resources.s3.eu-central-1.amazonaws.com/public/wallet_push_prov.svg)


    In above case the difference between push provisioning and in-app activation
    is which endpoint that is

    called in step 3.

    Note that diagram above is a simplification of full flow in order to explain
    it from a developer point of view.
servers:
  - url: >-
      https://integration-api-cat2.{{environment}}.ext.{{realm}}.cia.enfuce.com/wallet
  - url: https://integration-api-cat2.live.ext.prod.cia.enfuce.com/wallet
    description: Live environment
security: []
tags:
  - name: Push Provision
  - name: Activation data
  - name: Get tokens
  - name: Visa Click2Pay Enrol and Manage
  - name: Token Management
paths:
  /v1/click2pay/VISA/customer/{customerId}:
    post:
      tags:
        - Visa Click2Pay Enrol and Manage
      summary: Get Cardholder by Cardholder ID from C2P
      description: >-
        Send a request to this endpoint to retrieve a cardholder’s details from
        their C2P account.
      operationId: getCustomer1UsingPOST
      parameters:
        - name: customerId
          in: path
          description: The customer id of which customer you want to get.
          required: true
          schema:
            type: string
            format: biginteger
        - name: auditUser
          in: query
          description: The audit user to log the request.
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetCustomerRequest'
      responses:
        '200':
          description: Successful Get
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCustomerResponse'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '500':
          $ref: '#/components/responses/error500'
components:
  schemas:
    GetCustomerRequest:
      type: object
      properties:
        customerBID:
          $ref: '#/components/schemas/CustomerBID'
    GetCustomerResponse:
      type: object
      properties:
        customerInformation:
          type: object
          properties:
            email:
              description: Customer's email address
              items:
                example: alex123@hotmail.com
                maxLength: 256
                type: string
              type: array
            locale:
              description: >-
                Language and country in which the product communicates with the
                customer
              example: en_US
              format: iso-639-1
              type: string
            phone:
              description: >-
                Customer's phone number according to ITU-T E.164 (2010) number
                structure. Do not use the "+" symbol.
              items:
                example: '16504005555'
                maxLength: 16
                minLength: 1
                type: string
              type: array
            lastName:
              description: Customer's last name
              example: Miller
              type: string
            firstName:
              description: Customer's first name
              example: Alex
              type: string
            middleName:
              description: Customer's middle name
              example: Robert
              type: string
            countryCode:
              description: >-
                Country code using 3-character ISO 3166 (Alpha 3) format. For
                Visa Click to Pay, French overseas territories such as REU, GLP,
                MTQ, GUF and MYT are normalized to FRA.
              example: USA
              type: string
            status:
              description: Card status on C2P
              enum:
                - ACTIVE
                - DISABLED
              example: ACTIVE
              type: string
        paymentInstruments:
          type: array
          items:
            $ref: '#/components/schemas/PaymentInstrumentResponse'
    CustomerBID:
      type: string
      example: '123456'
      description: >
        Unique identifier assigned to each issuer.

        Note: If you are using our BIN sponsorship, we provide you the
        **customerBID**; else, Visa provides you the **customerBID**.
    PaymentInstrumentResponse:
      type: object
      properties:
        tokenDetails:
          description: Token details
          example:
            tokenReferenceID: hflasdhflsdkfhoin3y038yfwn
            tokenRequestorID: '1234567890'
          properties:
            tokenReferenceID:
              description: Token reference ID
              example: hflasdhflsdkfhoin3y038yfwn
              maxLength: 50
              minLength: 1
              type: string
            tokenRequestorID:
              description: Token requestor ID
              example: '1234567890'
              maxLength: 11
              minLength: 1
              type: string
          required:
            - tokenReferenceID
            - tokenRequestorID
          type: object
        cardId:
          type: string
          description: The card id of which card you want to enroll with
        status:
          description: Card status on C2P
          enum:
            - ACTIVE
            - DISABLED
          example: ACTIVE
          type: string
        nameOnCard:
          description: >-
            Name that appears on the card. Resolved from the cardholder's first
            and last name; falls back to the company name embossed on the card
            when these are not present. Characters not allowed by Visa ([, ], {,
            }, :, &, $, ^, !, =, ;, *, #, `, <, >, ", ”) are removed before the
            name is forwarded to Visa. The value returned in this field reflects
            the sanitized name.
          example: John Doe
          maxLength: 120
          minLength: 1
          type: string
        billingAddress:
          description: Billing Address details
          example:
            country: USA
          properties:
            city:
              description: City
              example: San Francisco
              maxLength: 32
              minLength: 1
              type: string
            country:
              description: Country code using 3-character ISO 3166 (Alpha 3) format
              example: USA
              format: ISO 3166-1-alpha3
              maxLength: 3
              minLength: 3
              type: string
            postalCode:
              description: Postal code of the address
              example: '94105'
              maxLength: 9
              minLength: 1
              type: string
            addressLine1:
              description: Address Line 1
              example: 1000 Market Street
              maxLength: 64
              minLength: 1
              type: string
            addressLine2:
              description: Address line 2
              example: Building 56
              maxLength: 64
              minLength: 1
              type: string
            addressLine3:
              description: Address line 3
              example: Suite 101
              maxLength: 64
              minLength: 1
              type: string
          required:
            - country
          type: object
    errorResponse:
      type: object
      properties:
        code:
          type: string
          description: An error code indicating what kind of error. I.e. HTTP error code
        message:
          type: string
          description: Error message in human-readable format
        id:
          type: string
          format: uuid
          description: Unique error identifier
        errorCode:
          type: string
          description: Enfuce code for a specific error type
        errorType:
          type: string
          description: Error type
          enum:
            - STATIC_VALIDATION_ERROR
            - DYNAMIC_VALIDATION_ERROR
            - INTEGRATION_ERROR
            - SECURITY_ERROR
            - UNEXPECTED_ERROR
        errorReason:
          type: string
          description: Free-form text explaining the error reason
        timestamp:
          type: string
          format: date-time
          description: Datetime when error occurred
  responses:
    error401:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/errorResponse'
    error403:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/errorResponse'
    error500:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/errorResponse'

````