Gateway Managed Recurring
What is Gateway Managed Recurring
NetValve enables merchants to create and manage recurring schedules, while handling the execution of recurring payments on their behalf. This allows merchants to simply subscribe customers to recurring schedules, with the payment gateway taking full care of managing and processing the recurring transactions.
What can you do with Gateway Managed Recurring?
- Create recurring schedules
- Update or pause existing schedules
- Fetch schedule status and associated recurring transactions
- Disable schedules once they are no longer required.
Creating a Recurring Schedule
NetValve provides multiple ways to create recurring schedules within the system.
- Clients can create a recurring schedule for an existing transaction using the Create Subscription API.
- Clients can set up a recurring schedule while processing an Authorization or Sale transaction.
- Clients can create a recurring schedule during HPP Order creation.
- Clients can also set up a recurring schedule when creating a token.
Create a Subscription for Existing Transaction
API URL: paymentApiUrl /subscription/create
HTTP Method: POST
Request Body: JSON
{
"transactionId": 12345, // Transaction ID of the Auth or Sale
"recurringSchedule": {
"subscriptionName": "Creative Cloud Subscription", // Name of the subscription
"recurringPeriod": 30, // Time interval in days at which the recurring payment is charged
"startDate": "2025-12-17 10:31:00", // First rebill date
"endDate": null, // Null = perpetual; if a date is provided, the recurring schedule ends on that date
"recurringAmount": 50.00 // Amount to be charged in each recurring cycle
}
}
{
"id": 1,
"transactionId": 12345,
"clientId": 12,
"status": "ACTIVE",
"createdDatetime": "2025-12-17T05:00:59.06905048",
"updatedDatetime": null,
"nextAttemptDate": "2025-12-18T10:31:00",
"recurringType": "DAYS",
"recurringPeriod": 30,
"recurringAmount": 50.00,
"failureAttempts": 0,
"subscriptionName": "Creative Cloud Subscription",
"description": "Creative Cloud Subscription",
"recurringTransactionStatus": "NEW",
"endDate": null,
"startDate": "2025-12-17 10:31:00",
"traceID": "73754b5f-43be-454f-9076-7eef185a039d",
"responseTimestamp": "2025-12-17 05:00:59.10",
"responseCode": "GTW_1004",
"responseMessage": "Managed recurring subscription created successfully.",
"transactions": null
}
Setup a Recurring Schedule while Processing Auth or Sale Transaction
API URL: paymentApiUrl /sale
HTTP Method: POST
Request Body: JSON
{
"amount": 10.00,
"cardExpireMonth": "12",
"cardExpireYear": "2030",
"cardHolderName": "John Doe",
"cardSecurityCode": "123",
"cardNumber": "4012000098765439",
"clientOrderId": 12345,
"currency": "USD",
"customerAddress": "123 Main St",
"customerCity": "New York",
"customerCountryCode": "US",
"customerEmail": "docs@netvalve.com",
"customerIp": "203.0.113.1",
"customerName": "John",
"customerLastName": "Doe",
"customerPhone": "+12025551234",
"customerState": "NY",
"customerZipCode": "10001",
"midId": 4,
"recurringSchedule": {
"subscriptionName": "Creative Cloud Subscription", // Name of the subscription
"recurringPeriod": 30, // Time interval in days at which the recurring payment is charged
"startDate": "2025-12-17 10:31:00", // First rebill date
"endDate": null, // Null = perpetual; if a date is provided, the recurring schedule ends on that date
"recurringAmount": 50.00 // Amount to be charged in each recurring cycle
}
}
{
"traceID": "7db60365-9ecf-4ca5-a44b-e81436da1f22",
"responseTimestamp": "2025-12-19T05:18:54.790+00:00",
"transactionID": 8469,
"responseCode": "GTW_1000",
"responseMessage": "Transaction Approved/ Request Successful.",
"responseCodeType": "APPROVED",
"paymentMethod": "CARD",
"cardNumber": "410000******0100",
"cardType": "VISA",
"bankTransactionId": "6944e03ea2c56",
"authCode": "4b9f90",
"midId": 488,
"netvalveMidId": "336715f7-ca39-44b1-83a7-4c1502166db9",
"transactionType": "REBILL",
"subscriptionId": 14
}
Set up a Recurring Schedule when Creating a Token
API URL: paymentApiUrl /createToken
HTTP Method: POST
Request Body: JSON
{
"amount": 10,
"cardExpireMonth": "12",
"cardExpireYear": "2030",
"cardSecurityCode": "123",
"cardHolderName": "John Doe",
"cardNumber": "4012000098765439",
"currency": "USD",
"customerAddress": "123 Main St",
"customerCity": "New York",
"customerCountryCode": "US",
"customerEmail": "docs@netvalve.com",
"customerIp": "203.0.113.1",
"customerName": "John",
"customerLastName": "Doe",
"customerPhone": "+12025551234",
"customerState": "NY",
"customerZipCode": "10001",
"midId" : 459,
"verify":true,
"recurringSchedule": {
"subscriptionName": "Creative Cloud Subscription", // Name of the subscription
"recurringPeriod": 30, // Time interval in days at which the recurring payment is charged
"startDate": "2025-12-17 10:31:00", // First rebill date
"endDate": null, // Null = perpetual; if a date is provided, the recurring schedule ends on that date
"recurringAmount": 50.00 // Amount to be charged in each recurring cycle
}
}
{
"traceID": "7db60365-9ecf-4ca5-a44b-e81436da1f22",
"responseTimestamp": "2025-12-19T05:18:54.790+00:00",
"transactionID": 8469,
"responseCode": "GTW_1000",
"responseMessage": "Transaction Approved/ Request Successful.",
"responseCodeType": "APPROVED",
"paymentMethod": "CARD",
"cardNumber": "410000******0100",
"cardType": "VISA",
"bankTransactionId": "6944e03ea2c56",
"authCode": "4b9f90",
"midId": 488,
"netvalveMidId": "336715f7-ca39-44b1-83a7-4c1502166db9",
"transactionType": "REBILL",
"subscriptionId": 14
}
Create a Recurring Schedule during HPP Order Creation
API URL: hppApiUrl /hpp/order
HTTP Method: POST
Request Body: JSON
{
"amount": 44.00,
"currency": "USD",
"midId" : 40,
"clientOrderId": "YD_HPP_{{clientOrderId}}",
"orderDesc": "Test order",
"successUrl": "https://amazon.com/succss.html",
"cancelUrl": "https://amazon.com/cancle.html",
"failedUrl": "https://amazon.com/failed.html",
"recurringSchedule": {
"subscriptionName": "subscription from HPP Create Order",
"recurringPeriod": 30,
"startDate": "2025-10-29 00:00:00",
"endDate": null,
"recurringAmount": 50.00
}
}
{
"traceID": "1a37fb72-b4eb-4bdb-b18e-aa685a3d2e56",
"responseTimestamp": "2025-12-19T05:52:06.535+00:00",
"orderId": 7191,
"transactionID": 8470,
"responseCode": "GTW_1000",
"responseMessage": "Transaction Approved/ Request Successful.",
"orderState": "CREATED",
"redirectUrl": "https://checkout.dev.sandbox-netvalve.com?paymentToken=eyJlcGsiOnsia3R5IjoiRUMiLCJjcnYiOiJQLTI1NiIsIngiOiJUdXpNdUtzcVlwaXB2TUFqNVdleFJ1NGo4R0d1c0VhZm03OFM1bGEydDA0IiwieSI6InFWZmZ1eFlGX3Y5NmlSYlFZSXVJNkFaX0UzSzVPU0VaTWE3bWtPWXhKZTgifSwiZW5jIjoiQTI1NkdDTSIsImFsZyI6IkVDREgtRVMrQTI1NktXIn0.FJjWQtSRIgx-vc39IV2KXZx9wrota7ggp1eiz2Tx16Rz7QCzMw4W2w.8oJDHM-qN7tJBgLT.G4j8J2Dy8LHFvx4MxhWXJeISi8fWWMRa94x1a1ootQ8Qzy-kr6LL35wRw5yMdasyX5VTKRBcHUeffvtjM58B5iQi53LEdRTY8PmnNFWYjNjgNGi5MpLA3e391L8M4ebpHPpB-B7BfIZmtjKm2EubjlhWqdUZnnBWC5hdVtLY5fYRoMSPLFdjQPxTiB9Rf4dT_iM2tn-sKi8lRTsi-s7ZEAOFxb-EWUy3hBfPV-d_cy9BB5zGECJpOoc2ScdJfFhAsDJpqkImSRTROiKElf9uCcaxUmoN7q8zOZ9WGSA5-1lruzLQgNB348AKiwMvBKsYnphJZrgtZqXDenL4JicYKIQrx7aIroTst6sn8ScHqwUdz8fleLYbxrYgxqDFKqggmXE3gl5LfiHkyRhPk9mx9IOnUfMqm39Oq8erkTCR5EyGaxsJJunuA0hhNmntkm8oGdnOuQNA_uDeC3MEX49PRqANdTMfUjc2Kn4ol4mslJOTmDzGxEVksTH6ZcV9RyPtBlJmWtJkJPHbG60Nqz4dY_x9kQOwmcczrSpD97Cn-L-A4vKGoEL_Eu1uH4O4I61xST7qxr_IV9O-fAvF5kDdq9yiIg9n7rGFKmbLirtVI3_sooDUFZ7On5wNIUGRBsilcHm3eZeKmyTqszVxU1nI45ldJmI7ORETcotN95LzHiFAi9autb2TuNbDOiZPuQB-mGc72WQzc_xVsndjpVchVUoeB0pXUFEk_6LWCkyHgy_Kj4jNEP8Kq5VU87HxTQf1bh93d8Htql36aRjfvI9hQ4zvVnc3zL8zwpoCQdQ8S8g7kKNQ4UeDubvxlIcIBePbVLNhH0UktAgTPwqGe7HGuOobGSxqtMnzmlUcdy9oHlfTXwuEQeSn7va8Z41L_klqSSIvS2EqbcBbOAQf8z1uc2Ya8vlS5q2Md7Vw1qeKPcaMoEORsJosrmYw-lpg6PSef_KdMlS8i4C6WjX6icJ4DDF9xXeeT8pBH9vQyVxVXWCqopvnh6T9aS8WRVNeZqGWLT1_Zgri2_zSvMJs7wb5KfA_J7PW4H35ipCaG4Wznly5-hDfc5uE6JaDvo7PCMzsLniqlWnIM0RFH0DYyg8gqoWLz5xn4UhWqpdeDJeu91etmiW9EzXZdczaK1rgmg7LTue83w_LKSD2i0vjLD3pDaN3CbR3A09qnMN0lGZAuWdHo1DP-bUZ54-5oWBAmbiAylR2UMslkgR6V5wVzsQ4MresNzVf8n-KjAmGV1D82UA.a_80V49h2SsoqQbMr5ye0Q&language=en",
"midId": 488,
"netvalveMidId": "336715f7-ca39-44b1-83a7-4c1502166db9",
"subscriptionId": 14
}
Update a Recurring Schedule
API URL: paymentApiUrl /subscription/update
HTTP Method: PUT
Request Body: JSON
{
"subscriptionId": 13,
"reason": "Updates to Creative Cloud schedule",
"recurringSchedule": {
"subscriptionName": "Updated creative cloud subscription",
"recurringPeriod": 15,
"dateNextAttempt": "2026-01-10 00:00:00",
"endDate": null,
"recurringAmount": 41.00,
"status": "ACTIVE"
}
}
{
"id": 13,
"transactionId": 8466,
"clientId": 65,
"status": "ACTIVE",
"createdDatetime": "2025-12-19T04:47:41",
"updatedDatetime": "2025-12-19T04:52:44.620326713",
"nextAttemptDate": "2026-01-10T00:00:00",
"recurringType": "DAYS",
"recurringPeriod": 15,
"recurringAmount": 41.0,
"failureAttempts": 0,
"subscriptionName": "Updated creative cloud subscription",
"description": "Updates to Creative Cloud schedule",
"recurringTransactionStatus": "NEW",
"endDate": null,
"startDate": "2025-12-19T12:31:00",
"traceID": "7ad56918-e203-4e70-b57d-ec76bda5face",
"responseTimestamp": "2025-12-19T04:52:44.699+00:00",
"responseCode": "GTW_1005",
"responseMessage": "Managed recurring subscription updated successfully.",
"transactions": null
}
Cancel a Recurring Schedule
API URL: paymentApiUrl /subscription/cancel
HTTP Method: PUT
Request Body: JSON
{
"subscriptionId": 13,
"reason": "Subscription not required"
}
{
"id": 13,
"transactionId": 8466,
"clientId": 65,
"status": "INACTIVE",
"createdDatetime": "2025-12-19T04:47:41",
"updatedDatetime": "2025-12-19T05:01:24.725072003",
"nextAttemptDate": "2026-01-10T00:00:00",
"recurringType": "DAYS",
"recurringPeriod": 15,
"recurringAmount": 41.00,
"failureAttempts": 0,
"subscriptionName": "Updated creative cloud subscription",
"description": "Subscription not required",
"recurringTransactionStatus": "NEW",
"endDate": null,
"startDate": "2025-12-19T12:31:00",
"traceID": "8b800021-349b-4fcb-86a8-4bcd85f085f2",
"responseTimestamp": "2025-12-19T05:01:24.750+00:00",
"responseCode": "GTW_1006",
"responseMessage": "Managed recurring subscription cancelled successfully.",
"transactions": null
}
Instant Payment of Managed Recurring Schedule
You can process a payment for a managed recurring, also if the payment has failed. If this payment is approved, automatic recurring is re-activated and next charge will be done at nextAttemptDate
API URL: paymentApiUrl /subscription/pay
HTTP Method: PUT
Request Body: JSON
{
"subscriptionId": 14,
"amount": 50.00,
"nextAttemptDate": "2026-01-17 10:42:00"
}
{
"traceID": "e4699a9a-ecf3-44ef-b129-67e51d26f469",
"responseTimestamp": "2025-12-19T05:16:43.258+00:00",
"transactionID": 8468,
"responseCode": "GTW_1000",
"responseMessage": "Transaction Approved/ Request Successful.",
"responseCodeType": "APPROVED",
"paymentMethod": "CARD",
"cardNumber": "410000******0100",
"cardType": "VISA",
"bankTransactionId": "6944dfbb232cc",
"authCode": "8ec7d1",
"midId": 488,
"netvalveMidId": "336715f7-ca39-44b1-83a7-4c1502166db9",
"transactionType": "REBILL",
"subscriptionId": 14
}
Fetch Details for Subscription
Get Details for a Specific Subscription
NetValve allows clients to retrieve details of a specific subscription that has been created. Clients must provide either the subscriptionId or the transactionId associated with the subscription to fetch its details.
Additionally, NetValve provides the ability to view recurring transactions that have been executed as part of the subscription’s recurring schedule. Clients can choose whether or not to include these transactions in the response by using the showRelatedTransactions parameter in the request.
API URL:
paymentApiUrl /subscription?transactionId=682&subscriptionId=14&showRelatedTransactions=true
HTTP Method: GET
Request Body: JSON
[
{
"id": 14,
"transactionId": 8467,
"clientId": 65,
"status": "ACTIVE",
"createdDatetime": "2025-12-19T05:16:22",
"updatedDatetime": "2025-12-19T05:18:55",
"nextAttemptDate": "2026-01-17T10:42:00",
"recurringType": "DAYS",
"recurringPeriod": 30,
"recurringAmount": 50.00,
"failureAttempts": 0,
"subscriptionName": "Spotify Subscription",
"description": "Spotify Subscription",
"recurringTransactionStatus": "COMPLETED",
"endDate": null,
"startDate": "2025-12-19T12:31:00",
"transactions": [
{
"createdDate": "2025-12-19T05:18:53",
"transactionType": "REBILL",
"amount": 50.0,
"status": "Rebilled",
"settlementStatus": null,
"transactionId": 8469,
"currency": "USD",
"authCode": "4b9f90",
"responseCode": "GTW_1000",
"responseMessage": "Transaction Approved/ Request Successful.",
"responseCodeType": "APPROVED",
"bankTransactionId": "6944e03ea2c56",
"bankResponseCode": "00",
"bankResponseMessage": "SUCCESS",
"transactionReference": 8467,
"sourceOfTransaction": "API",
"threeDsTransaction": false,
"smartRoutingTransaction": false
},
{
"createdDate": "2025-12-19T05:16:41",
"transactionType": "REBILL",
"amount": 50.0,
"status": "Rebilled",
"settlementStatus": null,
"transactionId": 8468,
"currency": "USD",
"authCode": "8ec7d1",
"responseCode": "GTW_1000",
"responseMessage": "Transaction Approved/ Request Successful.",
"responseCodeType": "APPROVED",
"bankTransactionId": "6944dfbb232cc",
"bankResponseCode": "00",
"bankResponseMessage": "SUCCESS",
"transactionReference": 8467,
"sourceOfTransaction": "API",
"threeDsTransaction": false,
"smartRoutingTransaction": false
}
]
}
]
Get All Subscriptions Associated with the Client
NetValve allows clients to fetch a paginated list of subscriptions based on the provided filter criteria. The API supports optional query parameters to filter subscriptions by date range, status, transaction ID, and subscription ID. If no filter parameters are provided, all subscriptions are returned based on pagination.
API URL: paymentApiUrl /subscriptions?page=0&pageSize=10
HTTP Method: GET
Request Body: JSON
{
"content": [
{
"id": 13,
"transactionId": 8466,
"clientId": 65,
"status": "ACTIVE",
"createdDatetime": "2025-12-19T04:47:41",
"updatedDatetime": "2025-12-19T05:06:03",
"nextAttemptDate": "2026-01-10T00:00:00",
"recurringType": "DAYS",
"recurringPeriod": 25,
"recurringAmount": 41.00,
"failureAttempts": 0,
"subscriptionName": "Updated creative cloud subscription",
"description": "Updates to Creative Cloud schedule",
"recurringTransactionStatus": "FAILED",
"endDate": null,
"startDate": "2025-12-19T12:31:00",
"transactions": null
},
{
"id": 14,
"transactionId": 8467,
"clientId": 65,
"status": "ACTIVE",
"createdDatetime": "2025-12-19T05:16:22",
"updatedDatetime": "2025-12-19T05:18:55",
"nextAttemptDate": "2026-01-17T10:42:00",
"recurringType": "DAYS",
"recurringPeriod": 30,
"recurringAmount": 50.00,
"failureAttempts": 0,
"subscriptionName": "Spotify Subscription",
"description": "Spotify Subscription",
"recurringTransactionStatus": "COMPLETED",
"endDate": null,
"startDate": "2025-12-19T12:31:00",
"transactions": null
}
],
"pageable": {
"sort": {
"unsorted": true,
"sorted": false,
"empty": true
},
"pageNumber": 0,
"pageSize": 10,
"offset": 0,
"paged": true,
"unpaged": false
},
"totalPages": 1,
"totalElements": 2,
"last": true,
"numberOfElements": 2,
"size": 10,
"number": 0,
"sort": {
"unsorted": true,
"sorted": false,
"empty": true
},
"first": true,
"empty": false
}