# Recurring sale using card on file

Use our recurring sale resource to authorize and settle merchant initiated transactions where you have stored the card details. You must verify your customer's account before submitting your first recurring payment for authorization.

Endpoint: POST /payments/sales/recurring/{linkData}
Version: 5
Security: BasicAuth

## Security:

  - `BasicAuth` (unknown)
    http basic

## Path parameters:

  - `linkData` (string, required)
    Action link that's received in your request

## Header parameters:

  - `Content-Type` (string, required)

  - `Accept` (string)

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

  - `transactionReference` (string, required)

  - `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)

  - `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.paymentInstrument.cardHolderName` (string, required)

  - `instruction.paymentInstrument.cardExpiryDate` (object, required)

  - `instruction.paymentInstrument.cardExpiryDate.month` (integer, required)

  - `instruction.paymentInstrument.cardExpiryDate.year` (integer, required)

  - `instruction.paymentInstrument.type` (string, required)
    Enum: "card/plain"

  - `instruction.paymentInstrument.cardNumber` (string, required)

  - `instruction.paymentInstrument.billingAddress` (object)

  - `instruction.paymentInstrument.billingAddress.city` (string, required)

  - `instruction.paymentInstrument.billingAddress.postalCode` (string, required)

  - `instruction.paymentInstrument.billingAddress.countryCode` (string, required)

  - `instruction.paymentInstrument.billingAddress.address1` (string, required)

  - `instruction.paymentInstrument.billingAddress.address2` (string)

  - `instruction.paymentInstrument.billingAddress.state` (string)

  - `instruction.paymentInstrument.billingAddress.address3` (string)

  - `instruction.paymentInstrument.href` (string, required)

  - `instruction.paymentInstrument.dpan` (string, required)

  - `instruction.debtRepayment` (boolean)

## Request examples:

  - `An example of a payment sale with all optional fields` (unknown)
    An example of a payment sale with all optional fields

## Response 201:

  - `201` (unknown)
    The recurring payment has been successfully created

## 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.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"

  - `riskFactors.risk` (string, required)
    Enum: "not_checked", "not_matched", "not_supplied"

  - `riskFactors.detail` (string)
    Enum: "address", "postcode"

  - `scheme` (object)

  - `scheme.reference` (string, required)

## Response 201 examples:

  - `An example of a payment sale with all optional fields` (unknown)
    An example of a payment sale with all optional fields

