Cards & Wallets · Your payment page

Repeat Payments

Take further payments from a card using the Repeat request. Use recurring payments for subscriptions and instalment payments for a fixed series, such as repaying a loan.

The first payment or authorisation must establish the series by setting either transaction.recurring or transaction.instalment to true. Each subsequent Repeat request references the transactionId returned for that original transaction:

POST /acceptor/rest/transactions/{instId}/{transactionId}/repeat

We automatically classify the initial and subsequent transactions under the Stored Credentials Framework. If the card scheme returns a scheme reference, we store it with the original transaction and presents it on subsequent repeats.

You are responsible for obtaining the cardholder's agreement and managing the timing of recurring and instalment payments. You can do this in your own system or include a schedule in the request.

Recurring payments

Use recurring payments when the number or total value of payments is not fixed in advance, such as an ongoing subscription.

Set transaction.recurring to true on the initial payment, pre-authorisation or account verification. For a transaction that initiates a recurring series using 3D Secure 2, also provide continuousAuthorityAgreement.expiry and continuousAuthorityAgreement.minFrequency.

Payment initiating a recurring series
EndpointDefinition
POST /acceptor/rest/transactions/{instId}/payment
Request body
{
  "transaction": {
    "currency": "GBP",
    "amount": 100.00,
    "description": "Monthly subscription",
    "merchantRef": "SUB-0001",
    "commerceType": "ECOM",
    "recurring": true,
    "continuousAuthorityAgreement": {
      "expiry": "2030-12-31",
      "minFrequency": 30
    }
  },
  "paymentMethod": {
    "card": {
      "pan": "9902000000000018",
      "cv2": "456",
      "expiryDate": "1230",
      "cardHolderName": "John Smith"
    },
    "billingAddress": {
      "line1": "21 A Street",
      "city": "Bath",
      "postcode": "BA1 234",
      "countryCode": "GBR"
    }
  }
}
cURL
curl -X POST "{targetEnvironmentPath}/acceptor/rest/transactions/{instId}/payment" \
  -u "{apiUser}:{apiPassword}" \
  -H "Content-Type: application/json" \
  -d '{
  "transaction": {
    "currency": "GBP",
    "amount": 100.00,
    "description": "Monthly subscription",
    "merchantRef": "SUB-0001",
    "commerceType": "ECOM",
    "recurring": true,
    "continuousAuthorityAgreement": {
      "expiry": "2030-12-31",
      "minFrequency": 30
    }
  },
  "paymentMethod": {
    "card": {
      "pan": "9902000000000018",
      "cv2": "456",
      "expiryDate": "1230",
      "cardHolderName": "John Smith"
    },
    "billingAddress": {
      "line1": "21 A Street",
      "city": "Bath",
      "postcode": "BA1 234",
      "countryCode": "GBR"
    }
  }
}'
Response
HTTP/1.1 201 Created

{
  "processing": {
    "model": "MANAGE",
    "authResponse": {
      "statusCode": "00",
      "acquirerName": "Barclays Merchant Services",
      "message": "AUTH CODE:136518",
      "authCode": "136518",
      "gatewayReference": "b9f958fc2682eed12ae6ce7288c5712a",
      "gatewayMessage": "AUTH CODE:136518",
      "avsAddressCheck": "FULL_MATCH",
      "avsPostcodeCheck": "FULL_MATCH",
      "cv2Check": "MATCHED",
      "status": "AUTHORISED"
    },
    "route": "CPE"
  },
  "paymentMethod": {
    "registered": false,
    "card": {
      "cardFingerprint": "l313hfHapXJiLXyROD3X6P75k9E=",
      "new": true,
      "cardType": "VISA_DEBIT",
      "cardUsageType": "DEBIT",
      "cardScheme": "VISA",
      "cardCategory": "DEBIT",
      "maskedPan": "990200******0018",
      "expiryDate": "1230",
      "issuer": "PAY360 TESTING",
      "issuerCountry": "GBR",
      "cardHolderName": "John Smith"
    },
    "billingAddress": {
      "line1": "21 A Street",
      "city": "Bath",
      "postcode": "BA1 234",
      "country": "United Kingdom",
      "countryCode": "GBR"
    },
    "paymentClass": "CARD",
    "reuse": {
      "storage": "NEW",
      "agreement": "RECURRING",
      "receivedSchemeReference": "YJK9YTUKIJRW13"
    }
  },
  "customFields": {
    "fieldState": []
  },
  "threeDSecure": {
    "versionsAttempted": [
      {
        "version": 2,
        "availability": "ISSUER_NO_3DS"
      }
    ]
  },
  "transaction": {
    "transactionId": "10253950366",
    "recurring": true,
    "merchantRef": "SUB-0001",
    "merchantDescription": "Monthly subscription",
    "status": "SUCCESS",
    "stage": "COMPLETE",
    "type": "PAYMENT",
    "amount": 100.0,
    "consumerSpend": 100.0,
    "currency": "GBP",
    "transactionTime": "2026-09-02T17:16:48.240+01:00",
    "receivedTime": "2026-09-02T17:16:48.240+01:00",
    "customerInitiated": true,
    "continuousAuthorityAgreement": {
      "minFrequency": 30,
      "expiry": "2030-12-31"
    }
  },
  "outcome": {
    "status": "SUCCESS",
    "reasonCode": "S100",
    "reasonMessage": "Authorised"
  },
  "strongCustomerAuthentication": {
    "transactionType": "GOODS_OR_SERVICES"
  },
  "trace": "Tkm52OsnheYES7bQBdRj1qA",
  "link": [
    {
      "href": "https://api.mite.pay360.com/acceptor/rest/transactions/5315271/10253950366",
      "rel": "transaction"
    }
  ]
}

The same applies to a pre-authorisation, which adds transaction.deferred, and to an account verification, which is sent to /verify with verification.acquirerPaymentMethod and carries no amount.

Pre-authorisation initiating a recurring series
EndpointDefinition
POST /acceptor/rest/transactions/{instId}/payment
Request body
{
  "transaction": {
    "currency": "GBP",
    "amount": 100.00,
    "description": "Monthly subscription",
    "merchantRef": "SUB-0001",
    "commerceType": "ECOM",
    "recurring": true,
    "continuousAuthorityAgreement": {
      "expiry": "2030-12-31",
      "minFrequency": 30
    },
    "deferred": true
  },
  "paymentMethod": {
    "card": {
      "pan": "9902000000000018",
      "cv2": "456",
      "expiryDate": "1230",
      "cardHolderName": "John Smith"
    },
    "billingAddress": {
      "line1": "21 A Street",
      "city": "Bath",
      "postcode": "BA1 234",
      "countryCode": "GBR"
    }
  }
}
cURL
curl -X POST "{targetEnvironmentPath}/acceptor/rest/transactions/{instId}/payment" \
  -u "{apiUser}:{apiPassword}" \
  -H "Content-Type: application/json" \
  -d '{
  "transaction": {
    "currency": "GBP",
    "amount": 100.00,
    "description": "Monthly subscription",
    "merchantRef": "SUB-0001",
    "commerceType": "ECOM",
    "recurring": true,
    "continuousAuthorityAgreement": {
      "expiry": "2030-12-31",
      "minFrequency": 30
    },
    "deferred": true
  },
  "paymentMethod": {
    "card": {
      "pan": "9902000000000018",
      "cv2": "456",
      "expiryDate": "1230",
      "cardHolderName": "John Smith"
    },
    "billingAddress": {
      "line1": "21 A Street",
      "city": "Bath",
      "postcode": "BA1 234",
      "countryCode": "GBR"
    }
  }
}'
Response
HTTP/1.1 201 Created

{
  "processing": {
    "model": "MANAGE",
    "authResponse": {
      "statusCode": "00",
      "acquirerName": "Barclays Merchant Services",
      "message": "AUTH CODE:365856",
      "authCode": "365856",
      "gatewayReference": "0b5dd229b0b3e99a3b0d552d233a2eae",
      "gatewayMessage": "AUTH CODE:365856",
      "avsAddressCheck": "FULL_MATCH",
      "avsPostcodeCheck": "FULL_MATCH",
      "cv2Check": "MATCHED",
      "status": "AUTHORISED"
    },
    "route": "CPE"
  },
  "paymentMethod": {
    "registered": false,
    "card": {
      "cardFingerprint": "l313hfHapXJiLXyROD3X6P75k9E=",
      "new": true,
      "cardType": "VISA_DEBIT",
      "cardUsageType": "DEBIT",
      "cardScheme": "VISA",
      "cardCategory": "DEBIT",
      "maskedPan": "990200******0018",
      "expiryDate": "1230",
      "issuer": "PAY360 TESTING",
      "issuerCountry": "GBR",
      "cardHolderName": "John Smith"
    },
    "billingAddress": {
      "line1": "21 A Street",
      "city": "Bath",
      "postcode": "BA1 234",
      "country": "United Kingdom",
      "countryCode": "GBR"
    },
    "paymentClass": "CARD",
    "reuse": {
      "storage": "NEW",
      "agreement": "RECURRING",
      "receivedSchemeReference": "ZETBYOQFJ2X9C6"
    }
  },
  "customFields": {
    "fieldState": []
  },
  "threeDSecure": {
    "versionsAttempted": [
      {
        "version": 2,
        "availability": "ISSUER_NO_3DS"
      }
    ]
  },
  "transaction": {
    "transactionId": "10253950367",
    "deferred": true,
    "recurring": true,
    "merchantRef": "SUB-0001",
    "merchantDescription": "Monthly subscription",
    "status": "SUCCESS",
    "stage": "AUTHORISATION",
    "type": "PREAUTH",
    "amount": 100.0,
    "consumerSpend": 0,
    "currency": "GBP",
    "transactionTime": "2026-09-02T17:16:49.061+01:00",
    "receivedTime": "2026-09-02T17:16:49.061+01:00",
    "customerInitiated": true,
    "continuousAuthorityAgreement": {
      "minFrequency": 30,
      "expiry": "2030-12-31"
    }
  },
  "outcome": {
    "status": "SUCCESS",
    "reasonCode": "S100",
    "reasonMessage": "Authorised"
  },
  "strongCustomerAuthentication": {
    "transactionType": "GOODS_OR_SERVICES"
  },
  "trace": "TVL6ySKWM4Bq1Rl9RVtNkaA",
  "link": [
    {
      "href": "https://api.mite.pay360.com/acceptor/rest/transactions/5315271/10253950367",
      "rel": "transaction"
    }
  ]
}
Account verification initiating a recurring series
EndpointDefinition
POST /acceptor/rest/transactions/{instId}/verify
Request body
{
  "transaction": {
    "currency": "GBP",
    "description": "Monthly subscription",
    "merchantRef": "SUB-0001",
    "commerceType": "ECOM",
    "recurring": true,
    "continuousAuthorityAgreement": {
      "expiry": "2030-12-31",
      "minFrequency": 30
    }
  },
  "paymentMethod": {
    "card": {
      "pan": "9902000000000018",
      "cv2": "456",
      "expiryDate": "1230",
      "cardHolderName": "John Smith"
    },
    "billingAddress": {
      "line1": "21 A Street",
      "city": "Bath",
      "postcode": "BA1 234",
      "countryCode": "GBR"
    }
  },
  "verification": {
    "acquirerPaymentMethod": true
  }
}
cURL
curl -X POST "{targetEnvironmentPath}/acceptor/rest/transactions/{instId}/verify" \
  -u "{apiUser}:{apiPassword}" \
  -H "Content-Type: application/json" \
  -d '{
  "transaction": {
    "currency": "GBP",
    "description": "Monthly subscription",
    "merchantRef": "SUB-0001",
    "commerceType": "ECOM",
    "recurring": true,
    "continuousAuthorityAgreement": {
      "expiry": "2030-12-31",
      "minFrequency": 30
    }
  },
  "paymentMethod": {
    "card": {
      "pan": "9902000000000018",
      "cv2": "456",
      "expiryDate": "1230",
      "cardHolderName": "John Smith"
    },
    "billingAddress": {
      "line1": "21 A Street",
      "city": "Bath",
      "postcode": "BA1 234",
      "countryCode": "GBR"
    }
  },
  "verification": {
    "acquirerPaymentMethod": true
  }
}'
Response
HTTP/1.1 201 Created

{
  "processing": {
    "model": "MANAGE",
    "authResponse": {
      "statusCode": "00",
      "acquirerName": "Barclays Merchant Services",
      "message": "AUTH CODE:462543",
      "authCode": "462543",
      "gatewayReference": "67f3b6ff97cdcacb73770ef3e75d6936",
      "gatewayMessage": "AUTH CODE:462543",
      "avsAddressCheck": "FULL_MATCH",
      "avsPostcodeCheck": "FULL_MATCH",
      "cv2Check": "MATCHED",
      "status": "AUTHORISED"
    },
    "route": "CPE"
  },
  "paymentMethod": {
    "registered": false,
    "card": {
      "cardFingerprint": "l313hfHapXJiLXyROD3X6P75k9E=",
      "new": true,
      "cardType": "VISA_DEBIT",
      "cardUsageType": "DEBIT",
      "cardScheme": "VISA",
      "cardCategory": "DEBIT",
      "maskedPan": "990200******0018",
      "expiryDate": "1230",
      "issuer": "PAY360 TESTING",
      "issuerCountry": "GBR",
      "cardHolderName": "John Smith"
    },
    "billingAddress": {
      "line1": "21 A Street",
      "city": "Bath",
      "postcode": "BA1 234",
      "country": "United Kingdom",
      "countryCode": "GBR"
    },
    "paymentClass": "CARD",
    "reuse": {
      "storage": "NEW",
      "agreement": "RECURRING",
      "receivedSchemeReference": "0U0H7E6CSYRFZQ"
    }
  },
  "customFields": {
    "fieldState": []
  },
  "threeDSecure": {
    "versionsAttempted": [
      {
        "version": 2,
        "availability": "ISSUER_NO_3DS"
      }
    ]
  },
  "transaction": {
    "transactionId": "10253950368",
    "recurring": true,
    "merchantRef": "SUB-0001",
    "merchantDescription": "Monthly subscription",
    "status": "SUCCESS",
    "stage": "AUTHORISATION",
    "type": "VERIFY",
    "currency": "GBP",
    "transactionTime": "2026-09-02T17:16:49.877+01:00",
    "receivedTime": "2026-09-02T17:16:49.877+01:00",
    "customerInitiated": true,
    "continuousAuthorityAgreement": {
      "minFrequency": 30,
      "expiry": "2030-12-31"
    }
  },
  "outcome": {
    "status": "SUCCESS",
    "reasonCode": "S100",
    "reasonMessage": "Authorised"
  },
  "strongCustomerAuthentication": {
    "transactionType": "GOODS_OR_SERVICES"
  },
  "trace": "TJQoO8um_cAW-7HUZ-ZW0Sw",
  "link": [
    {
      "href": "https://api.mite.pay360.com/acceptor/rest/transactions/5315271/10253950368",
      "rel": "transaction"
    }
  ]
}

The agreement is echoed back in transaction.continuousAuthorityAgreement, and paymentMethod.reuse reports the stored-credential agreement as RECURRING along with the receivedSchemeReference we keep for later repeats.

minFrequency is the minimum expected number of days between payments and must be at least 1. expiry is the future date, in YYYY-MM-DD format, when the agreement expires or must be authenticated again. If the agreement details are omitted, 3D Secure 2 is not available for the transaction.

Instalment payments

Use instalment payments when the cardholder agrees to a fixed number of payments, such as repaying a loan.

Set transaction.instalment to true on the initial payment, pre-authorisation or account verification. For a transaction that initiates an instalment series using 3D Secure 2, provide continuousAuthorityAgreement.expiry, continuousAuthorityAgreement.minFrequency and continuousAuthorityAgreement.numberOfInstalments.

Payment initiating an instalment series
EndpointDefinition
POST /acceptor/rest/transactions/{instId}/payment
Request body
{
  "transaction": {
    "currency": "GBP",
    "amount": 25.00,
    "description": "Sample Payment",
    "merchantRef": "TXN-0002",
    "commerceType": "ECOM",
    "instalment": true,
    "continuousAuthorityAgreement": {
      "numberOfInstalments": 3,
      "expiry": "2030-12-31",
      "minFrequency": 30
    }
  },
  "paymentMethod": {
    "card": {
      "pan": "9902000000000018",
      "cv2": "456",
      "expiryDate": "1229",
      "cardHolderName": "John Smith"
    }
  }
}
cURL
curl -X POST "{targetEnvironmentPath}/acceptor/rest/transactions/{instId}/payment" \
  -u "{apiUser}:{apiPassword}" \
  -H "Content-Type: application/json" \
  -d '{
  "transaction": {
    "currency": "GBP",
    "amount": 25.00,
    "description": "Sample Payment",
    "merchantRef": "TXN-0002",
    "commerceType": "ECOM",
    "instalment": true,
    "continuousAuthorityAgreement": {
      "numberOfInstalments": 3,
      "expiry": "2030-12-31",
      "minFrequency": 30
    }
  },
  "paymentMethod": {
    "card": {
      "pan": "9902000000000018",
      "cv2": "456",
      "expiryDate": "1229",
      "cardHolderName": "John Smith"
    }
  }
}'
Response
HTTP/1.1 201 Created

{
  "processing": {
    "model": "MANAGE",
    "authResponse": {
      "acquirerName": "RBS Worldpay",
      "message": "Approved",
      "gatewayReference": "111gbpcdb4e8e005b6fdcAMeeee25z00",
      "gatewayCode": "000.000.000",
      "gatewayMessage": "Transaction succeeded",
      "cv2Check": "MATCHED",
      "status": "AUTHORISED"
    },
    "decision": {
      "decisionResult": "PROCEED",
      "decisionSource": "RULE",
      "requestedType": "PAYMENT",
      "decidedType": "PAYMENT",
      "rulesTriggered": [],
      "decisionReason": "NO_RULES_TRIGGERED"
    },
    "route": "PAYON"
  },
  "paymentMethod": {
    "registered": false,
    "card": {
      "cardFingerprint": "Q1MtNzhlNjFjMDUtMWRkZC00ODExLTgzOTMtYTRmM2E0ZWM1MWM1",
      "new": true,
      "cardType": "VISA_DEBIT",
      "cardUsageType": "DEBIT",
      "cardScheme": "VISA",
      "cardCategory": "DEBIT",
      "maskedPan": "990200******0018",
      "expiryDate": "1229",
      "issuer": "PAY360 TESTING",
      "issuerCountry": "GBR",
      "cardHolderName": "John Smith"
    },
    "billingAddress": {},
    "paymentClass": "CARD",
    "reuse": {
      "storage": "NEW",
      "agreement": "INSTALMENT"
    }
  },
  "customFields": {
    "fieldState": []
  },
  "threeDSecure": {
    "versionsAttempted": [
      {
        "version": 2,
        "availability": "ISSUER_NO_3DS"
      }
    ]
  },
  "transaction": {
    "transactionId": "13420710645",
    "instalment": true,
    "merchantRef": "TXN-0002",
    "merchantDescription": "Sample Payment",
    "status": "SUCCESS",
    "stage": "COMPLETE",
    "type": "PAYMENT",
    "amount": 25.0,
    "consumerSpend": 25.0,
    "currency": "GBP",
    "transactionTime": "2026-09-02T17:32:23.764+01:00",
    "receivedTime": "2026-09-02T17:32:23.764+01:00",
    "customerInitiated": true,
    "continuousAuthorityAgreement": {
      "minFrequency": 30,
      "expiry": "2030-12-31",
      "numberOfInstalments": 3
    }
  },
  "outcome": {
    "status": "SUCCESS",
    "reasonCode": "S100",
    "reasonMessage": "Authorised"
  },
  "strongCustomerAuthentication": {
    "transactionType": "GOODS_OR_SERVICES"
  },
  "trace": "TMcBJNlAiXF3bPInQ3ll7MQ",
  "link": [
    {
      "href": "https://api.mite.pay360.com/acceptor/rest/transactions/200000/13420710645",
      "rel": "transaction"
    }
  ]
}
Pre-authorisation initiating an instalment series
EndpointDefinition
POST /acceptor/rest/transactions/{instId}/payment
Request body
{
  "transaction": {
    "currency": "GBP",
    "amount": 25.00,
    "description": "Sample Payment",
    "merchantRef": "TXN-0002",
    "commerceType": "ECOM",
    "instalment": true,
    "continuousAuthorityAgreement": {
      "numberOfInstalments": 3,
      "expiry": "2030-12-31",
      "minFrequency": 30
    },
    "deferred": true
  },
  "paymentMethod": {
    "card": {
      "pan": "9902000000000018",
      "cv2": "456",
      "expiryDate": "1229",
      "cardHolderName": "John Smith"
    }
  }
}
cURL
curl -X POST "{targetEnvironmentPath}/acceptor/rest/transactions/{instId}/payment" \
  -u "{apiUser}:{apiPassword}" \
  -H "Content-Type: application/json" \
  -d '{
  "transaction": {
    "currency": "GBP",
    "amount": 25.00,
    "description": "Sample Payment",
    "merchantRef": "TXN-0002",
    "commerceType": "ECOM",
    "instalment": true,
    "continuousAuthorityAgreement": {
      "numberOfInstalments": 3,
      "expiry": "2030-12-31",
      "minFrequency": 30
    },
    "deferred": true
  },
  "paymentMethod": {
    "card": {
      "pan": "9902000000000018",
      "cv2": "456",
      "expiryDate": "1229",
      "cardHolderName": "John Smith"
    }
  }
}'
Response
HTTP/1.1 201 Created

{
  "processing": {
    "model": "MANAGE",
    "authResponse": {
      "acquirerName": "RBS Worldpay",
      "message": "Approved",
      "gatewayReference": "101gbp06b450508276a7bAMeeee25z00",
      "gatewayCode": "000.000.000",
      "gatewayMessage": "Transaction succeeded",
      "cv2Check": "MATCHED",
      "status": "AUTHORISED"
    },
    "decision": {
      "decisionResult": "PROCEED",
      "decisionSource": "RULE",
      "requestedType": "PREAUTH",
      "decidedType": "PREAUTH",
      "rulesTriggered": [],
      "decisionReason": "NO_RULES_TRIGGERED"
    },
    "route": "PAYON"
  },
  "paymentMethod": {
    "registered": false,
    "card": {
      "cardFingerprint": "Q1MtNzhlNjFjMDUtMWRkZC00ODExLTgzOTMtYTRmM2E0ZWM1MWM1",
      "new": true,
      "cardType": "VISA_DEBIT",
      "cardUsageType": "DEBIT",
      "cardScheme": "VISA",
      "cardCategory": "DEBIT",
      "maskedPan": "990200******0018",
      "expiryDate": "1229",
      "issuer": "PAY360 TESTING",
      "issuerCountry": "GBR",
      "cardHolderName": "John Smith"
    },
    "billingAddress": {},
    "paymentClass": "CARD",
    "reuse": {
      "storage": "NEW",
      "agreement": "INSTALMENT"
    }
  },
  "customFields": {
    "fieldState": []
  },
  "threeDSecure": {
    "versionsAttempted": [
      {
        "version": 2,
        "availability": "ISSUER_NO_3DS"
      }
    ]
  },
  "transaction": {
    "transactionId": "13420710646",
    "deferred": true,
    "instalment": true,
    "merchantRef": "TXN-0002",
    "merchantDescription": "Sample Payment",
    "status": "SUCCESS",
    "stage": "AUTHORISATION",
    "type": "PREAUTH",
    "amount": 25.0,
    "consumerSpend": 0,
    "currency": "GBP",
    "transactionTime": "2026-09-02T17:33:20.121+01:00",
    "receivedTime": "2026-09-02T17:33:20.121+01:00",
    "customerInitiated": true,
    "continuousAuthorityAgreement": {
      "minFrequency": 30,
      "expiry": "2030-12-31",
      "numberOfInstalments": 3
    }
  },
  "outcome": {
    "status": "SUCCESS",
    "reasonCode": "S100",
    "reasonMessage": "Authorised"
  },
  "strongCustomerAuthentication": {
    "transactionType": "GOODS_OR_SERVICES"
  },
  "trace": "TUKkkRiI_ClbYjUj72b3m4g",
  "link": [
    {
      "href": "https://api.mite.pay360.com/acceptor/rest/transactions/200000/13420710646",
      "rel": "transaction"
    }
  ]
}
Account verification initiating an instalment series
EndpointDefinition
POST /acceptor/rest/transactions/{instId}/verify
Request body
{
  "transaction": {
    "currency": "GBP",
    "commerceType": "ECOM",
    "instalment": true,
    "continuousAuthorityAgreement": {
      "numberOfInstalments": 3,
      "expiry": "2030-12-31",
      "minFrequency": 30
    }
  },
  "paymentMethod": {
    "card": {
      "pan": "9902000000000018",
      "cv2": "456",
      "expiryDate": "1230",
      "cardHolderName": "John Smith"
    }
  },
  "verification": {
    "acquirerPaymentMethod": true
  }
}
cURL
curl -X POST "{targetEnvironmentPath}/acceptor/rest/transactions/{instId}/verify" \
  -u "{apiUser}:{apiPassword}" \
  -H "Content-Type: application/json" \
  -d '{
  "transaction": {
    "currency": "GBP",
    "commerceType": "ECOM",
    "instalment": true,
    "continuousAuthorityAgreement": {
      "numberOfInstalments": 3,
      "expiry": "2030-12-31",
      "minFrequency": 30
    }
  },
  "paymentMethod": {
    "card": {
      "pan": "9902000000000018",
      "cv2": "456",
      "expiryDate": "1230",
      "cardHolderName": "John Smith"
    }
  },
  "verification": {
    "acquirerPaymentMethod": true
  }
}'
Response
HTTP/1.1 201 Created

{
  "processing": {
    "model": "MANAGE",
    "authResponse": {
      "acquirerName": "RBS Worldpay",
      "message": "Approved",
      "gatewayReference": "101gbp7d11c60f13322f4AMeeeeeeee0",
      "gatewayCode": "000.000.000",
      "gatewayMessage": "Transaction succeeded",
      "cv2Check": "MATCHED",
      "status": "AUTHORISED"
    },
    "route": "PAYON"
  },
  "paymentMethod": {
    "registered": false,
    "card": {
      "cardFingerprint": "Q1MtNzhlNjFjMDUtMWRkZC00ODExLTgzOTMtYTRmM2E0ZWM1MWM1",
      "new": true,
      "cardType": "VISA_DEBIT",
      "cardUsageType": "DEBIT",
      "cardScheme": "VISA",
      "cardCategory": "DEBIT",
      "maskedPan": "990200******0018",
      "expiryDate": "1230",
      "issuer": "PAY360 TESTING",
      "issuerCountry": "GBR",
      "cardHolderName": "John Smith"
    },
    "billingAddress": {},
    "paymentClass": "CARD",
    "reuse": {
      "storage": "NEW",
      "agreement": "INSTALMENT"
    }
  },
  "customFields": {
    "fieldState": []
  },
  "threeDSecure": {
    "versionsAttempted": [
      {
        "version": 2,
        "availability": "ISSUER_NO_3DS"
      }
    ]
  },
  "transaction": {
    "transactionId": "13420710643",
    "instalment": true,
    "status": "SUCCESS",
    "stage": "AUTHORISATION",
    "type": "VERIFY",
    "currency": "GBP",
    "transactionTime": "2026-09-02T17:27:41.425+01:00",
    "receivedTime": "2026-09-02T17:27:41.425+01:00",
    "customerInitiated": true,
    "continuousAuthorityAgreement": {
      "minFrequency": 30,
      "expiry": "2030-12-31",
      "numberOfInstalments": 3
    }
  },
  "outcome": {
    "status": "SUCCESS",
    "reasonCode": "S100",
    "reasonMessage": "Authorised"
  },
  "strongCustomerAuthentication": {
    "transactionType": "GOODS_OR_SERVICES"
  },
  "trace": "TTxcGPmn1snec340SiEUrBg",
  "link": [
    {
      "href": "https://api.mite.pay360.com/acceptor/rest/transactions/200000/13420710643",
      "rel": "transaction"
    }
  ]
}

paymentMethod.reuse.agreement comes back as INSTALMENT, and the agreement, including the number of instalments, is echoed in transaction.continuousAuthorityAgreement.

numberOfInstalments is the total number of payments in the series, including the initial payment, and must be between 2 and 999.

3D Secure and new sequences

continuousAuthorityAgreement is what makes 3D Secure 2 available when you establish a sequence, and setting one up is a case where a challenge is required: we override any strongCustomerAuthentication.challengeRequested you send, and the transaction that initiates the sequence suspends on U100 for the cardholder to be authenticated.

Initial recurring payment suspended for 3D Secure
EndpointDefinition
POST /acceptor/rest/transactions/{instId}/payment
Request body
{
  "transaction": {
    "currency": "GBP",
    "amount": 15.00,
    "commerceType": "ECOM",
    "recurring": true,
    "continuousAuthorityAgreement": {
      "minFrequency": 7,
      "expiry": "2030-12-31"
    }
  },
  "paymentMethod": {
    "card": {
      "pan": "9900000000005159",
      "cv2": "456",
      "expiryDate": "1229",
      "cardHolderName": "John Smith"
    }
  }
}
cURL
curl -X POST "{targetEnvironmentPath}/acceptor/rest/transactions/{instId}/payment" \
  -u "{apiUser}:{apiPassword}" \
  -H "Content-Type: application/json" \
  -d '{
  "transaction": {
    "currency": "GBP",
    "amount": 15.00,
    "commerceType": "ECOM",
    "recurring": true,
    "continuousAuthorityAgreement": {
      "minFrequency": 7,
      "expiry": "2030-12-31"
    }
  },
  "paymentMethod": {
    "card": {
      "pan": "9900000000005159",
      "cv2": "456",
      "expiryDate": "1229",
      "cardHolderName": "John Smith"
    }
  }
}'
Response
HTTP/1.1 201 Created

{
  "clientRedirect": {
    "type": "THREEDSECURE_V2_REDIRECT",
    "url": "https://dev.mite.pay360.com/threedsv2/handover",
    "threeDSServerTransId": "a94e6291-6f6c-49f4-a21e-3b872b43a74e"
  },
  "paymentMethod": {
    "registered": false,
    "card": {
      "cardFingerprint": "IkNwdkR7LUV6VNjJVFeTg+mfPQc=",
      "new": true,
      "cardType": "MC_DEBIT",
      "cardUsageType": "DEBIT",
      "cardScheme": "MASTERCARD",
      "cardCategory": "DEBIT",
      "maskedPan": "990000******5159",
      "expiryDate": "1229",
      "issuer": "PAY360 TESTING",
      "issuerCountry": "GBR",
      "cardHolderName": "John Smith"
    },
    "billingAddress": {},
    "paymentClass": "CARD",
    "reuse": {
      "storage": "NEW",
      "agreement": "RECURRING"
    }
  },
  "customFields": {
    "fieldState": []
  },
  "threeDSecure": {
    "scheme": "MASTERCARD_IDENTITY_CHECK",
    "status": "INCOMPLETE",
    "version": 2,
    "protocolVersion": "2.2.0",
    "threeDSServerTransId": "a94e6291-6f6c-49f4-a21e-3b872b43a74e",
    "challengeRequest": "CHALLENGE_MANDATED",
    "versionsAttempted": [
      {
        "version": 2,
        "availability": "AVAILABLE"
      }
    ]
  },
  "transaction": {
    "transactionId": "10254739610",
    "recurring": true,
    "status": "PENDING",
    "stage": "THREE_D_SECURE",
    "type": "PAYMENT",
    "amount": 15.00,
    "consumerSpend": 0,
    "currency": "GBP",
    "transactionTime": "2026-09-07T19:05:44.702+01:00",
    "receivedTime": "2026-09-07T19:05:44.702+01:00",
    "customerInitiated": true,
    "continuousAuthorityAgreement": {
      "minFrequency": 7,
      "expiry": "2030-12-31"
    }
  },
  "outcome": {
    "status": "SUCCESS",
    "reasonCode": "U100",
    "reasonMessage": "Suspended pending Three D Secure process"
  },
  "strongCustomerAuthentication": {
    "transactionType": "GOODS_OR_SERVICES",
    "accountInfo": {
      "accountOpened": {
        "period": "THIS_TRANSACTION"
      }
    }
  },
  "trace": "TrbqevC04Jd3kO8uonzLJbQ",
  "link": [
    {
      "href": "https://api.mite.pay360.com/acceptor/rest/transactions/5315271/10254739610",
      "rel": "transaction"
    }
  ]
}
Notes:
  • Setting up a new recurring sequence is one of the cases where a challenge is required, so threeDSecure.challengeRequest comes back as CHALLENGE_MANDATED whatever preference was sent — see Challenge vs. frictionless.
  • continuousAuthorityAgreement is what makes 3DSv2 available for the sequence: without it the transaction may proceed unauthenticated, or be declined by the issuer. The agreement is echoed in transaction.continuousAuthorityAgreement, and the payment suspends on U100 like any other 3D Secure payment. An instalment sequence is the same request with instalment and numberOfInstalments in place of recurring.

Complete it exactly as any other suspended payment — hand the cardholder over, receive them back, and resume — as described in 3D Secure payments. The resume is what establishes the sequence, so the stored-credential agreement and the scheme reference for later repeats are in its response.

Resume establishing a recurring sequence
EndpointDefinition
POST /acceptor/rest/transactions/{instId}/{transactionId}/resume
Request body
{}
cURL
curl -X POST "{targetEnvironmentPath}/acceptor/rest/transactions/{instId}/{transactionId}/resume" \
  -u "{apiUser}:{apiPassword}" \
  -H "Content-Type: application/json" \
  -d '{}'
Response
HTTP/1.1 201 Created

{
  "processing": {
    "model": "MANAGE",
    "authResponse": {
      "statusCode": "00",
      "acquirerName": "Barclays Merchant Services",
      "message": "AUTH CODE:570831",
      "authCode": "570831",
      "gatewayReference": "1bd9e60788d5b2d4012095e275e95edc",
      "gatewayMessage": "AUTH CODE:570831",
      "avsAddressCheck": "NOT_CHECKED",
      "avsPostcodeCheck": "NOT_CHECKED",
      "cv2Check": "MATCHED",
      "status": "AUTHORISED"
    },
    "route": "CPE"
  },
  "paymentMethod": {
    "registered": false,
    "card": {
      "cardFingerprint": "IkNwdkR7LUV6VNjJVFeTg+mfPQc=",
      "new": true,
      "cardType": "MC_DEBIT",
      "cardUsageType": "DEBIT",
      "cardScheme": "MASTERCARD",
      "cardCategory": "DEBIT",
      "maskedPan": "990000******5159",
      "expiryDate": "1229",
      "issuer": "PAY360 TESTING",
      "issuerCountry": "GBR",
      "cardHolderName": "John Smith"
    },
    "billingAddress": {},
    "paymentClass": "CARD",
    "reuse": {
      "storage": "NEW",
      "agreement": "RECURRING",
      "receivedSchemeReference": "1HMGP1PDQJESGO"
    }
  },
  "customFields": {
    "fieldState": []
  },
  "threeDSecure": {
    "scheme": "MASTERCARD_IDENTITY_CHECK",
    "status": "AUTHENTICATED",
    "eci": "02",
    "version": 2,
    "protocolVersion": "2.2.0",
    "threeDSServerTransId": "a94e6291-6f6c-49f4-a21e-3b872b43a74e",
    "dsTransactionId": "95023b78-c6b2-4137-891e-d8b4a156c011",
    "acsTransactionId": "ca4449ca-bf96-4043-b609-ef40df491433",
    "challengeRequest": "CHALLENGE_MANDATED",
    "frictionless": false,
    "versionsAttempted": [
      {
        "version": 2,
        "availability": "AVAILABLE"
      }
    ]
  },
  "transaction": {
    "transactionId": "10254739610",
    "recurring": true,
    "status": "SUCCESS",
    "stage": "COMPLETE",
    "type": "PAYMENT",
    "amount": 15.00,
    "consumerSpend": 15.00,
    "currency": "GBP",
    "transactionTime": "2026-09-07T19:05:44.702+01:00",
    "receivedTime": "2026-09-07T19:05:44.702+01:00",
    "customerInitiated": true,
    "continuousAuthorityAgreement": {
      "minFrequency": 7,
      "expiry": "2030-12-31"
    }
  },
  "outcome": {
    "status": "SUCCESS",
    "reasonCode": "S100",
    "reasonMessage": "Authorised"
  },
  "strongCustomerAuthentication": {
    "transactionType": "GOODS_OR_SERVICES",
    "accountInfo": {
      "accountOpened": {
        "period": "THIS_TRANSACTION"
      }
    }
  },
  "trace": "Toho-k5UuhQ26WgR673ANGQ",
  "link": [
    {
      "href": "https://api.mite.pay360.com/acceptor/rest/transactions/5315271/10254739610",
      "rel": "transaction"
    }
  ]
}
Notes:
  • The resume that completes the initiating transaction is what establishes the sequence: paymentMethod.reuse reports the agreement as RECURRING and carries the receivedSchemeReference we present on each later repeat.
  • threeDSecure.status is AUTHENTICATED, and the authentication belongs to this transaction alone — the repeats that follow are merchant-initiated and are not authenticated again.

The repeats that follow are merchant-initiated: they reference the stored credential rather than the cardholder, so they are not authenticated again.

Repeat the original transaction

Send an empty JSON object to repeat the original amount, currency and payment type. Use the original payment or pre-authorisation's transactionId, not the ID of a previous repeat.

Repeat a recurring payment
EndpointDefinition
POST /acceptor/rest/transactions/{instId}/{transactionId}/repeat
Request body
{}
cURL
curl -X POST "{targetEnvironmentPath}/acceptor/rest/transactions/{instId}/{transactionId}/repeat" \
  -u "{apiUser}:{apiPassword}" \
  -H "Content-Type: application/json" \
  -d '{}'
Response
HTTP/1.1 201 Created

{
  "processing": {
    "model": "MANAGE",
    "authResponse": {
      "statusCode": "00",
      "acquirerName": "Barclays Merchant Services",
      "message": "AUTH CODE:958261",
      "authCode": "958261",
      "gatewayReference": "d64a53c63da7e0831597a3441d2668bc",
      "gatewayMessage": "AUTH CODE:958261",
      "avsAddressCheck": "FULL_MATCH",
      "avsPostcodeCheck": "FULL_MATCH",
      "cv2Check": "NOT_CHECKED",
      "status": "AUTHORISED"
    },
    "route": "CPE"
  },
  "paymentMethod": {
    "registered": false,
    "card": {
      "cardFingerprint": "l313hfHapXJiLXyROD3X6P75k9E=",
      "new": false,
      "cardType": "VISA_DEBIT",
      "cardUsageType": "DEBIT",
      "cardScheme": "VISA",
      "cardCategory": "DEBIT",
      "maskedPan": "990200******0018",
      "expiryDate": "1230",
      "issuer": "PAY360 TESTING",
      "issuerCountry": "GBR",
      "cardHolderName": "John Smith"
    },
    "billingAddress": {
      "line1": "21 A Street",
      "city": "Bath",
      "postcode": "BA1 234",
      "country": "United Kingdom",
      "countryCode": "GBR"
    },
    "paymentClass": "CARD",
    "reuse": {
      "storage": "EXISTING",
      "agreement": "RECURRING",
      "originalSchemeReference": "YJK9YTUKIJRW13",
      "receivedSchemeReference": "A1OHYGY38NQG1Y"
    }
  },
  "customFields": {
    "fieldState": []
  },
  "transaction": {
    "transactionId": "10253950372",
    "deferred": false,
    "recurring": true,
    "status": "SUCCESS",
    "stage": "COMPLETE",
    "type": "REPEAT",
    "amount": 100.0,
    "consumerSpend": 100.0,
    "currency": "GBP",
    "transactionTime": "2026-09-02T17:16:52.874+01:00",
    "receivedTime": "2026-09-02T17:16:52.874+01:00",
    "relatedTransaction": {
      "transactionId": "10253950366",
      "merchantRef": "SUB-0001"
    },
    "customerInitiated": false
  },
  "outcome": {
    "status": "SUCCESS",
    "reasonCode": "S100",
    "reasonMessage": "Authorised"
  },
  "trace": "TRgYWhUuLhAuOWMeKKZVgfg",
  "link": [
    {
      "href": "https://api.mite.pay360.com/acceptor/rest/transactions/5315271/10253950372",
      "rel": "transaction"
    },
    {
      "href": "https://api.mite.pay360.com/acceptor/rest/transactions/5315271/10253950366",
      "rel": "related-transaction"
    }
  ]
}

A successful response has transaction type REPEAT, identifies the original transaction in transaction.relatedTransaction, and reports the stored-credential agreement as RECURRING or INSTALMENT in paymentMethod.reuse.agreement.

To change details for this repeat, include a transaction object. You can provide a different amount, currency, merchantRef, description, commerceType or channel. Values you omit are inherited from the original transaction.

In the case you started the sequence with an account verification, you will need to provide the amount for the repeat.

Repeat an instalment for a different amount
EndpointDefinition
POST /acceptor/rest/transactions/{instId}/{transactionId}/repeat
Request body
{
  "transaction": {
    "amount": 10
  }
}
cURL
curl -X POST "{targetEnvironmentPath}/acceptor/rest/transactions/{instId}/{transactionId}/repeat" \
  -u "{apiUser}:{apiPassword}" \
  -H "Content-Type: application/json" \
  -d '{
  "transaction": {
    "amount": 10
  }
}'
Response
HTTP/1.1 201 Created

{
  "processing": {
    "model": "MANAGE",
    "authResponse": {
      "acquirerName": "RBS Worldpay",
      "message": "Approved",
      "gatewayReference": "111gbp5026c24a336797dACeeee10z00",
      "gatewayCode": "000.000.000",
      "gatewayMessage": "Transaction succeeded",
      "status": "AUTHORISED"
    },
    "decision": {
      "decisionResult": "PROCEED",
      "decisionSource": "RULE",
      "requestedType": "REPEAT",
      "decidedType": "REPEAT",
      "rulesTriggered": [],
      "decisionReason": "NO_RULES_TRIGGERED"
    },
    "route": "PAYON"
  },
  "paymentMethod": {
    "registered": false,
    "card": {
      "cardFingerprint": "Q1MtNzhlNjFjMDUtMWRkZC00ODExLTgzOTMtYTRmM2E0ZWM1MWM1",
      "new": false,
      "cardType": "VISA_DEBIT",
      "cardUsageType": "DEBIT",
      "cardScheme": "VISA",
      "cardCategory": "DEBIT",
      "maskedPan": "990200******0018",
      "expiryDate": "1229",
      "issuer": "PAY360 TESTING",
      "issuerCountry": "GBR",
      "cardHolderName": "John Smith"
    },
    "billingAddress": {},
    "paymentClass": "CARD",
    "reuse": {
      "storage": "EXISTING",
      "agreement": "INSTALMENT"
    }
  },
  "customFields": {
    "fieldState": []
  },
  "transaction": {
    "transactionId": "13420710647",
    "deferred": false,
    "instalment": true,
    "status": "SUCCESS",
    "stage": "COMPLETE",
    "type": "REPEAT",
    "amount": 10.0,
    "consumerSpend": 10.0,
    "currency": "GBP",
    "transactionTime": "2026-09-02T17:34:49.874+01:00",
    "receivedTime": "2026-09-02T17:34:49.874+01:00",
    "relatedTransaction": {
      "transactionId": "13420710645",
      "merchantRef": "TXN-0002"
    },
    "customerInitiated": false
  },
  "outcome": {
    "status": "SUCCESS",
    "reasonCode": "S100",
    "reasonMessage": "Authorised"
  },
  "trace": "TcwFUPzbBdfiCwHsRjtKs4Q",
  "link": [
    {
      "href": "https://api.mite.pay360.com/acceptor/rest/transactions/200000/13420710647",
      "rel": "transaction"
    },
    {
      "href": "https://api.mite.pay360.com/acceptor/rest/transactions/200000/13420710645",
      "rel": "related-transaction"
    }
  ]
}

Change the repeat type

A repeat from a recurring series can be processed as an instalment by setting transaction.instalment to true:

{
  "transaction": {
    "instalment": true
  }
}

A repeat from an instalment series can be processed as recurring by setting transaction.recurring to true:

{
  "transaction": {
    "recurring": true
  }
}

The override applies to that request. Continue to reference the original transaction when submitting later repeats.

Request a repeat with a schedule

Include a schedule when you want to automate future repeats rather than submitting each Repeat request from your own scheduling system.

Create Schedule while Requesting repeat
EndpointDefinition
POST /acceptor/rest/transactions/{instId}/{transactionId}/repeat
Request body
{
    "schedule" : {
        "startDate":"2031-09-15",
        "timeOfDay":"12:00:00",
        "fixed": ["2031-09-15","3031-11-15"],
        "terminator":{
            "episodeLimit":5,
            "endOn":"3031-11-15",
            "suspend":{
                "failureCount":3
             }
         },
        "retry":{
            "unit": "DAY",
            "quantity": 1,
            "maxRetries":3,
            "processWhileRetrying":false,
            "catchupAfterRetrying":true
        }
    }
}
cURL
curl -X POST "{targetEnvironmentPath}/acceptor/rest/transactions/{instId}/{transactionId}/repeat" \
  -u "{apiUser}:{apiPassword}" \
  -H "Content-Type: application/json" \
  -d '{
    "schedule" : {
        "startDate":"2031-09-15",
        "timeOfDay":"12:00:00",
        "fixed": ["2031-09-15","3031-11-15"],
        "terminator":{
            "episodeLimit":5,
            "endOn":"3031-11-15",
            "suspend":{
                "failureCount":3
             }
         },
        "retry":{
            "unit": "DAY",
            "quantity": 1,
            "maxRetries":3,
            "processWhileRetrying":false,
            "catchupAfterRetrying":true
        }
    }
}'
Response
HTTP/1.1 201

{
  "processing": {
    "model": "MANAGE",
    "authResponse": {
      "acquirerName": "FDMS International",
      "gatewayReference": "111gbpfa2941311412749ACee1000z00",
      "gatewayCode": "000.000.000",
      "gatewayMessage": "Transaction succeeded",
      "status": "AUTHORISED"
    },
    "route": "PAYON"
  },
  "paymentMethod": {
    "registered": false,
    "card": {
      "cardFingerprint": "Q1MtYTRiZGIzODYtYzQ2My00NTRlLTljZjYtYzY0OTEzZjUwMmVj",
      "new": false,
      "cardType": "VISA_CREDIT",
      "cardUsageType": "CREDIT",
      "cardScheme": "VISA",
      "cardCategory": "CREDIT",
      "maskedPan": "990300******5131",
      "expiryDate": "0130",
      "issuer": "PAY360 TESTING",
      "issuerCountry": "GBR",
      "cardHolderName": "John Smith"
    },
    "paymentClass": "CARD",
    "reuse": {
      "storage": "EXISTING",
      "agreement": "INSTALMENT",
      "originalSchemeReference": "111gbp2633976043a3f84FMee1000z00",
      "receivedSchemeReference": "111gbpfa2941311412749ACee1000z00"
    }
  },
  "transaction": {
    "transactionId": "10393828218",
    "deferred": false,
    "instalment": true,
    "status": "SUCCESS",
    "stage": "COMPLETE",
    "type": "REPEAT",
    "amount": 1000,
    "consumerSpend": 1000,
    "currency": "GBP",
    "transactionTime": "2020-11-13T16:02:32.261Z",
    "receivedTime": "2020-11-13T16:02:32.261Z",
    "relatedTransaction": {
      "transactionId": "10393828217"
    },
    "customerInitiated": false
  },
  "outcome": {
    "status": "SUCCESS",
    "reasonCode": "S100",
    "reasonMessage": "Authorised"
  },
  "schedule": {
      "scheduleId": "GUID123456789010"
  }
}

Some of the repeat options can also be handled from the merchant portal, so you can choose not to integrate these endpoints and use the UI instead.