# Customer initiated sale using card on file Use our card on file sale resource when your customer is initiating a payment using stored card details, and you want to instantly trigger the settlement process Endpoint: POST /payments/sales/migrateCardOnFile Version: 5 Security: BasicAuth ## Request fields (application/vnd.worldpay.payments-v5+json): - `instruction` (object, required) - `instruction.value` (object, required) - `instruction.value.amount` (integer, required) - `instruction.value.currency` (string, required) - `instruction.narrative` (object, required) - `instruction.narrative.line1` (string, required) - `instruction.narrative.line2` (string) - `instruction.paymentInstrument` (any, required) - `instruction.debtRepayment` (boolean) - `merchant` (object, required) - `merchant.entity` (string, required) - `merchant.mcc` (string) - `merchant.paymentFacilitator` (object) - `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.state` (string) - `merchant.paymentFacilitator.subMerchant.taxId` (string) - `merchant.paymentFacilitator.isoId` (string) - `transactionReference` (string, required) - `channel` (string) Enum: "moto" - `customer` (object) - `customer.authentication` (object, required) - `customer.authentication.eci` (string, required) - `customer.authentication.type` (string, required) - `customer.authentication.authenticationValue` (string) - `customer.authentication.version` (string) - `customer.authentication.transactionId` (string) ## Response 201 fields (application/vnd.worldpay.payments-v5.hal+json): - `outcome` (string, required) - `issuer` (object) - `issuer.authorizationCode` (string, required) - `paymentInstrument` (object) - `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.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.risk` (string, required) Enum: "not_checked", "not_matched", "not_supplied" - `riskFactors.detail` (string) Enum: "address", "postcode" - `scheme` (object) - `scheme.reference` (string, required)