- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have a form which includes:
- a sign up fee (one time fee)
- a monthly fee (recurring)
- a yearly fee (recurring)
- Every transaction will include a monthly fee.
- Every transaction may (or not) include a one-time fee and/or yearly fee (depending on what the user selects).
My question is:
Can I handle this with one request to the API? (my research suggests no thus far)
Originally I thought I could do this all through the ARB API by using the trialOccurrences + trialAmount fields to capture the first monthly fee and any one-time fee if applicable however whilst that may work for a one-time plus monthly recurring payment, if the user also selects an option that introduces a yearly charge then I'm out of luck it would seem since the "length" property can only be specified for one recurring type.
Does anyone have any thoughts on the best strategy to employ?
Thank you.
Solved! Go to Solution.
โ03-02-2017 03:59 PM
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello @bonafide2000
While you can't do it today with a single API Call, you can do it in a single set of steps:
- Use createTransactionRequest for the sign up fee, set the createProfile flag as true. If the transaction request is successful, it will create a customer which you'll use for the next step
- If you need to create a monthly fee, use Create a Subscription from Customer Profile from step 1
- If you need to create a yearly fee, use Create a Subscription from Customer Profile from step 1
If your want to reduce PCI Scope, check into using Accept.js or Accept Hosted for your initial payment.
You are welcome to post this as a new feature using our Ideas forum. This will allow others to vote on and make suggestions to improve the request.
Richard
โ03-02-2017 05:01 PM - edited โ03-02-2017 05:02 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello @bonafide2000
While you can't do it today with a single API Call, you can do it in a single set of steps:
- Use createTransactionRequest for the sign up fee, set the createProfile flag as true. If the transaction request is successful, it will create a customer which you'll use for the next step
- If you need to create a monthly fee, use Create a Subscription from Customer Profile from step 1
- If you need to create a yearly fee, use Create a Subscription from Customer Profile from step 1
If your want to reduce PCI Scope, check into using Accept.js or Accept Hosted for your initial payment.
You are welcome to post this as a new feature using our Ideas forum. This will allow others to vote on and make suggestions to improve the request.
Richard
โ03-02-2017 05:01 PM - edited โ03-02-2017 05:02 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi @RichardH
Thank you very much for your reply, I suspected this would be the case also thank you for the work flow suggestion.
I do have one question concerning the implementation of Accept.js; if I go down this route and issue the initial request via Accept.js to reduce PCI compliance exposure, what property do I assign the response data to in my server side method (I am using the PHP SDK).
Am I passed the data back to Authorize.net via a opaqueData/dataValue/dataDescriptor parameter using the PHP SDK?
Thank you.
โ03-07-2017 04:42 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
โ03-07-2017 05:51 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@RichardH thank you
โ03-07-2017 06:00 PM