# Authorize using card on file, no verification

Use our card on file authorize resource when your customer is initiating a payment using stored card details (without verifying their account first)

Endpoint: POST /payments/authorizations/migrateCardOnFile
Version: 6
Security: BasicAuth

## Header parameters:

  - `Content-Type` (string, required)
    Example: "application/vnd.worldpay.payments-v6+json"

  - `Accept` (string)
    Example: "application/vnd.worldpay.payments-v6.hal+json"

## Request fields (application/vnd.worldpay.payments-v6+json):

  - `instruction` (object, required)
    An object that contains all information related to the payment.

  - `instruction.narrative` (object, required)
    The text that appears on your customer's statement. Used to identify the merchant.

  - `instruction.narrative.line1` (string, required)
    The first line of the narrative which appears on your customer's statement (24 characters max. If character is not supported it is replaced with a space).

  - `instruction.narrative.line2` (string)
    Additional details about the payment e.g. order number, telephone number.

  - `instruction.paymentInstrument` (object, required) — one of (discriminator: type):
    - card/plain:
      - `cardExpiryDate` (object, required)
        Contains your customer's card expiry date.
      - `cardExpiryDate.month` (integer, required)
      - `cardExpiryDate.year` (integer, required)
      - `type` (string, required)
        An identifier for the paymentInstrument being used.
        Enum: "card/plain"
      - `cardNumber` (string, required)
        Contains your customer's card number.
      - `billingAddress` (object)
        Contains the billing address information.
      - `billingAddress.address1` (string)
      - `billingAddress.address2` (string)
      - `billingAddress.address3` (string)
      - `billingAddress.city` (string)
      - `billingAddress.postalCode` (string, required)
      - `billingAddress.state` (string)
      - `billingAddress.countryCode` (string, required)
      - `cardHolderName` (string)
        The cardholder's name as it appears on their card.
      - `cvc` (string)
        CVC is a unique set of 3 or 4 numbers on the back of the card. Our API checks to see if the CVC supplied matches the CVC held by the issuing bank.
    - card/token:
      - `type` (string, required)
        Enum: "card/token"
      - `href` (string, required)
        An http address that contains your link to an Access Token
    - card/checkout:
      - `type` (string, required)
        Enum: "card/checkout"
      - `tokenHref` (string, required)
      - `cvcHref` (string)
    - card/networkToken+applepay:
      - `dpan` (string, required)
      - `cardExpiryDate` (object, required)
      - `cardExpiryDate.month` (integer, required)
      - `cardExpiryDate.year` (integer, required)
      - `type` (string, required)
        Enum: "card/networkToken+applepay"
      - `billingAddress` (object)
      - `billingAddress.postalCode` (string, required)
      - `billingAddress.countryCode` (string, required)
      - `billingAddress.city` (string)
      - `billingAddress.address2` (string)
      - `billingAddress.state` (string)
      - `billingAddress.address3` (string)
      - `billingAddress.address1` (string)
      - `cardHolderName` (string)

  - `instruction.value` (object, required)
    An object that contains information about the value of the payment.

  - `instruction.value.amount` (integer, required)
    The payment amount. This is a whole number with an exponent e.g. if exponent is two, 250 is 2.50.

  - `instruction.value.currency` (string, required)
    The three digit currency code.

  - `instruction.debtRepayment` (boolean)
    DRI is a flag which identifies a payment as being for the purpose of repaying a debt.

  - `instruction.intent` (string)
    A parameter detailing the reason for this particular card on file agreement.
    Enum: "instalment", "subscription"

  - `instruction.scheme` (object)

  - `instruction.scheme.reference` (string, required)

  - `merchant` (object, required)
    An object that contains information about the merchant.

  - `merchant.entity` (string, required)
    Direct your payment to assist with billing, reporting and reconciliation. This is mandatory for authentication and queries.

  - `merchant.mcc` (string)
    You can apply a merchant category code mcc to an individual request. You can only provide an mcc if we have enabled the dynamic mcc feature during boarding. If enabled but not provided, merchant.mcc defaults to a configured value.

  - `merchant.paymentFacilitator` (object)
    An object containing Payment Facilitator information. This information is required for every authorization only if you are a Payment Facilitator.

  - `merchant.paymentFacilitator.pfId` (string, required)

  - `merchant.paymentFacilitator.subMerchant` (object, required)

  - `merchant.paymentFacilitator.subMerchant.city` (string, required)

  - `merchant.paymentFacilitator.subMerchant.name` (string, required)

  - `merchant.paymentFacilitator.subMerchant.postalCode` (string, required)

  - `merchant.paymentFacilitator.subMerchant.merchantId` (string, required)

  - `merchant.paymentFacilitator.subMerchant.countryCode` (string, required)

  - `merchant.paymentFacilitator.subMerchant.street` (string, required)

  - `merchant.paymentFacilitator.subMerchant.telephone` (string)

  - `merchant.paymentFacilitator.subMerchant.taxId` (string)

  - `merchant.paymentFacilitator.subMerchant.email` (string)

  - `merchant.paymentFacilitator.subMerchant.state` (string)

  - `merchant.paymentFacilitator.isoId` (string)

  - `transactionReference` (string, required)
    A unique reference generated by you that is used to identify a payment throughout its lifecycle.

  - `channel` (string)
    The payment channel indicates the interaction of the cardholder with the merchant. Supply a value of moto to process an authorization as a Mail Order or Telephone Order (MOTO) transaction. If channel is not provided, the authorization will be processed as ecommerce by default
    Enum: "moto"

  - `customer` (object)
    An object that contains riskProfile and authentication of the customer.

  - `customer.riskProfile` (string)

  - `customer.authentication` (any) — one of (discriminator: type):
    An object containing 3DS or Network Token authentication of the customer
    - 3DS:
      - `version` (string, required)
        The version of 3DS used to process the transaction.
        Enum: "1", "2"
      - `eci` (string, required)
        Electronic Commerce Indicator (ECI).
      - `type` (string, required)
        Enum: "3DS"
      - `authenticationValue` (string)
        Required, if authentication.eci value is 01, 02, 05 or 06.  A cryptographic value that provides evidence of the outcome of a 3DS verification..
      - `transactionId` (string)
        Required, if authentication.eci value is 01, 02, 05 or 06.  A unique authentication transaction identifier, generated by the issuer.
    - networkToken:
      - `type` (string, required)
        Enum: "card/networkToken"
      - `authenticationValue` (string, required)
      - `eci` (string)

## Response 201 fields (application/vnd.worldpay.payments-v6.hal+json):

  - `body` (any) — one of (discriminator: outcome):
    - authorized:
      - `outcome` (string, required)
        Outcome of the request.
      - `exemption` (object)
        An exemption result and reason if a risk profile was included in your authorization request.
      - `exemption.result` (string, required)
      - `exemption.reason` (string, required)
      - `issuer` (object)
        An object containing information returned by the issuer.
      - `issuer.authorizationCode` (string, required)
      - `paymentInstrument` (object)
        Full details of the paymentInstrument used.
      - `paymentInstrument.type` (string)
      - `paymentInstrument.card` (object)
      - `paymentInstrument.card.number` (object)
      - `paymentInstrument.card.number.bin` (string)
      - `paymentInstrument.card.number.last4Digits` (string)
      - `paymentInstrument.card.number.dpan` (string)
      - `paymentInstrument.card.issuer` (object)
      - `paymentInstrument.card.issuer.name` (string)
      - `paymentInstrument.card.paymentAccountReference` (string)
      - `paymentInstrument.card.countryCode` (string)
      - `paymentInstrument.card.fundingType` (string)
      - `paymentInstrument.card.brand` (string)
      - `paymentInstrument.card.expiryDate` (object)
      - `paymentInstrument.card.expiryDate.month` (integer)
      - `paymentInstrument.card.expiryDate.year` (integer)
      - `riskFactors` (array)
        Any risk factors which have been identified for the authorization. This section will not appear if no risks are identified.
      - `riskFactors.type` (string, required)
        Enum: "avs", "cvc", "riskProfile"
      - `riskFactors.risk` (string, required)
        Enum: "not_checked", "not_matched", "not_supplied", "verificationFailed"
      - `riskFactors.detail` (string)
        Enum: "address", "postcode"
      - `scheme` (object)
        An object containing information returned by the scheme.
      - `scheme.reference` (string, required)
    - refused:
      - `outcome` (string, required)
        Outcome of the request.
      - `exemption` (object)
        An exemption result and reason if a risk profile was included in your authorization request.
      - `exemption.result` (string, required)
      - `exemption.reason` (string, required)
      - `description` (string)
        Additional context on the refusal.
      - `rawCode` (string)
        If enabled, the returned rawCode contains the unmodified response code received either directly from the card scheme or third-party acquirers.
      - `issuer` (object)
        An object containing information returned by the issuer.
      - `issuer.authorizationCode` (string, required)
      - `paymentInstrument` (object)
        Full details of the paymentInstrument used.
      - `paymentInstrument.type` (string)
      - `paymentInstrument.card` (object)
      - `paymentInstrument.card.number` (object)
      - `paymentInstrument.card.number.bin` (string)
      - `paymentInstrument.card.number.last4Digits` (string)
      - `paymentInstrument.card.number.dpan` (string)
      - `paymentInstrument.card.issuer` (object)
      - `paymentInstrument.card.issuer.name` (string)
      - `paymentInstrument.card.paymentAccountReference` (string)
      - `paymentInstrument.card.countryCode` (string)
      - `paymentInstrument.card.fundingType` (string)
      - `paymentInstrument.card.category` (any)
        Enum: "commercial", "consumer"
      - `paymentInstrument.card.brand` (string)
      - `paymentInstrument.card.expiryDate` (object)
      - `paymentInstrument.card.expiryDate.month` (integer)
      - `paymentInstrument.card.expiryDate.year` (integer)
      - `code` (string)
        Response code for the request.
      - `riskFactors` (array)
        Any risk factors which have been identified for the authorization. This section will not appear if no risks are identified.
      - `riskFactors.type` (string, required)
        Enum: same as `riskFactors.type` in "authorized" (3 values)
      - `riskFactors.risk` (string, required)
        Enum: same as `riskFactors.risk` in "authorized" (4 values)
      - `riskFactors.detail` (string)
        Enum: same as `riskFactors.detail` in "authorized" (2 values)
      - `refusalAdvice` (object)
      - `refusalAdvice.code` (string, required)
      - `updatedPaymentInstrument` (object)
      - `updatedPaymentInstrument.type` (string, required)
      - `updatedPaymentInstrument.tokenNumber` (string, required)


