Create a Subscription
Make sure you have your Merchant Configured on Portal with:
Payment Processor configured and an API Key in the header
Also make sure to have a ‘Recurring Strategy’ set on the portal with time and processor
Make 1 API call to set the recurring payment, user and payment method
Use API: {{Api Root}}/api/Subscriptions
For the {{Api Root}} variable:
Production:
https://api.revolv3.com>
Sandbox:
https://api-sandbox.revolv3.com
This is a POST request with a sample payload below. This call is also in the API docs. Additional calls around payments can also be found in the docs. Note this will create a customerId, or you can make the customer first and supply the customerId
{
"PaymentMethods": [
{
"Priority": 0,
"TaxAmount": null,
"OriginalNetworkTransactionId": null,
"BillingAddress": {
"AddressId": null,
"AddressLine1": "100 Main Street",
"AddressLine2": "",
"City": "Irvine",
"State": "CA",
"PostalCode": "92602",
"PhoneNumber": null,
"Email": null,
"Country": "US"
},
"BillingFirstName": "John",
"BillingLastName": "Doe",
"CreditCard": {
"PaymentAccountNumber": "4111111111111111",
"ExpirationDate": "1025",
"SecurityCode": null
},
"MerchantPaymentMethodRefId": "payment-method-ref-id_hgays-213-44d"
}
],
"ExistingPaymentMethod": null,
"MerchantSubscriptionRefId": "1234-5678-9101",
"BillingFrequencyType": "daily", //Daily, Weekly, Biweekly, Monthly, Bimonthly, Quarterly, Semiannually, Yearly
"SubscriptionStatusType": "current", //Current, Recycle, Cancelled, PendingCancellation
"SubscriptionCancelType": "immediate", //Immediate, EndOfCycle
"StartDate": "2024-04-26T00:00:00",
"TrialDuration": 0,
"TrialDurationType": "daily", //Daily, Weekly, Biweekly, Monthly, Bimonthly, Quarterly, Semiannually, Yearly
"Customer": {
"FirstName": "John",
"LastName": "Doe"
},
"SubscriptionBillingPlans": [
{
"Name": "Billing Plan 1",
"Value": 10.99,
"CycleCount": -1,
"ValueType": "Standard", //Standard, Discount, DiscountPercentage, FinalDiscount, PriceOverride
"StartCycleDelay": 0
}
],
"RecycleImmediatePayment": false
}
Response
{
"subscriptionId": 1899,
"customerId": 5409,
"merchantSubscriptionRefId": "1234-5678-9101",
"networkTransactionId": "111789899749482",
"billingFrequencyType": "Daily",
"subscriptionStatusType": "Current",
"subscriptionCancelType": "Immediate",
"initialBillDate": "4/26/2024",
"nextBillDate": "5/3/2024",
"taxAddress": null,
"paymentMethodIds": [
6064
],
"cancelledAt": null,
"billingPlans": [
{
"subscriptionBillingPlanId": 2300,
"subscriptionId": 1899,
"name": "Billing Plan 1",
"value": 10.99,
"startDate": "4/26/2024",
"cyclesRemaining": -1,
"cycleCount": -1,
"valueType": "Standard"
}
]
}
It’s possible, but optional to create a customerId first. You can use the same API call as above with empty place holders to get a customerId
{{Api Root}}/api/Customers
{
"FirstName": "Jonh",
"LastName": "White",
"MerchantCustomerRefId": "YourCustomerID-123"
}
Repsonse:
{
"customerId": 5405,
"merchantCustomerRefId": "YourCustomerID-123",
"firstName": "Jonh",
"lastName": "White",
"billingAddresses": [],
"shippingAddresses": [],
"taxAddresses": [],
"subscriptions": []
}
Then when you have the customer ID, use the ID variable in the customer object, instead of Firstname and Lastname
"Customer": {
"Id": 5405
},
Updated 2 months ago