Have your own great idea for a new API feature?

or maybe a suggested improvement to an existing one? Share it and become a god of the developer world.

New Idea

Recently we had an issue where a merchant (we act as a service provider) had already refunded a transaction via the merchant portal then when attempting to refund it through our service we encountered error code 55.

We had no other way to determine if the transaction was refunded/settled other than walking our way back through settled batches closed after the initial capture's date (or calling A.net support).

So, my proposal is this: add an array of refund transaction IDs (complete/partial) to the `getTransactionDetailsRequest` response

It would be very helpful if the Accept Hosted payment form iFrame Communicator could send a communication indicating when the payment form is fully loaded in the iFrame.

 

We are seeing issues in some browsers (especially Safari) where scrolling while the form is still loading (before the iFrame has been resized) can result in portions of the form being hidden and no scroll bars to bring it back.

 

If we had notification of the form being fully loaded, we could block pointer events and scrolling for the iframe until after the the page is fully loaded.

Status: Under Review

Generating Client Public Key

Status: Delivered
by menudrive-myles on ‎09-10-2018 11:27 AM

Hello all,

 

We operate as a service provider, rather than a single merchant. A lot of our merchants are not too tech savvy so asking them to generate a public key (we're switching almost all merchants to Accept.JS from AIM) is like pulling teeth most of the time. Maybe when a merchant signs up a public client key is automatically generated for them or there could be an API request that generates a key for them so we can obtain the key from a 'getMerchantDetailsRequest'.

 

Also once again: love your service, your API is much better documented than a lot of your competitors, it's much more robust and the Accept.js library is easy to handle.

 

Myles

Status: Delivered

 Hi @menudrive-myles

 

 Just to update on it if you are calling the getMerchantDetailsRequest API .

 

and  if the public key is not generated , it will be generated automatically and returned in the response . 

 

You can call the getMerchantDetails API on behalf  of the merchant by using the  OAuth token 

 

https://developer.authorize.net/api/reference/features/oauth.html

 

 

Thanks

 

 

When a webhook notification is recieved there is no way to trace it back to a customer/event/action.

 

In the case of hosted forms (i.e. Accept Hosted), none of the values (e.g. invoice number) submitted in the request for a form validation token appear in the webhook notification, so there is no way to immediately know what the webhook notification is in regards to.

 

This forces us to always query authorize.net for the transaction details to see what the transaction applies to (e.g. invoice number) and confirm the transaction is completed.

 

I imagine that a webhook notification alone is not especially useful unless it provides access to a correlation token and status. Because these values are small in size and almost definitely required by any merchant software, I feel the very small increase in payload could greatly reduce the need for subsequent queries - saving merchants as well as Authorize.net a lot of extra processing and network traffic.

Status: Accepted

Webhooks for failed transactions

Status: Under Review
by schammy on ‎08-06-2018 12:21 AM

Please add a webhook for failed transactions, no matter the reason (expired, processing error, general error, whatever).

 

I'm not sure what kind of company wouldn't want to know immediately and automatically about a failed transaction, especially if it's for a subscription (ARB).

 

Silent Post does this and we're trying to migrate away from it per customer support advice but glaring omissions like this are making it near impossible.

 

The only solution is to either constantly query the API for unsettled txns to find failures (if we want to know about them immediately, which we do), or if we didn't mind waiting up to 24 hours then we could query once per day for the entire batch for the previous day to get all transactions and find the failed ones - but this is 2018 damnit, everything should be real time.

Status: Under Review

Subscription Transactions?

Status: Delivered
by dnsBuffaloNY on ‎04-12-2017 01:15 PM

Currently, there is no easy way to get a list of transactions for a given subscription id.  To get a list of transactions for a subscription id. I load the subscription to get the customerProfileId and payentProfileId, call getTransactionListForCustomerRequest(customerProfileId, paymentProfileId), loop over the transactions returned in the response, and evaluate if transaction.subscription.id is equal to the subsciptionId I am looking for.  Furthermore, getTransactionListForCustomerRequest() uses paging, so I may need to call that API multiple times to get the collection of transactions for a subscription.

 

I am requesting there be a new API to get a list of transactions for a subscription id.  The new method would implement the standard paging and sorting.

 

See this Community Forum Discussion

 

Thank you for your consideration.

 

NPM package for Accept.js

Status: New
by naringyro4 on ‎07-17-2018 08:55 AM

It would be convenient if Authorize.net would create and support an npm package that contained the production and sandbox versions of Accept.js.

I am implementing a solution in Angular and currently have copied and pasted the file contents and put them in my application.

When creating a customer profile and receiving the E000039 error that tells us there is a duplicate customer profile that already exists it would be useful to get that duplicate profile ID in the response other than inside the error text. While technically possible to pull it out of the error message it would be much easier and less prone to issue if we could get it back somewhere directly, such as the CustomerProfileID filed that already exists on the createCustomerProfileResponse object. 

Accepted Hosted

BillTo and ShipTo Fields that are submitted through the getHostedPaymentPageRequest are discarded if the BillingAddress or ShippingAddress is not shown on the form.

 

In my opinion, these form fields are redundant for implementations where the customer has already entered this information and do not need to be shown again. It also jumbles and overwhelms the page. What is the benefit or purpose in discarding this information when the fields are not shown?

 

The address details are critical for avs matching among other things. Also, if the customer makes changes to the shipping fields, it is important that those changes sync up on my server, which is no easy task. 

 

Please allow the BillTo and ShipTo information to pass to your system for avs processing, even if the BIlling and Shipping Fields are not shown on the Hosted Form. Thank you

 

 

Status: Delivered

As mentioned in the following post:

 

http://community.developer.authorize.net/t5/Integration-and-Testing/Masked-Expiration-Date-in-Hosted...

 

The card expiry date is masked when returned in the getCustomerProfileRequest.  As the card number is masked, there is no PCI requirement that the expiry date of the card also be masked.  Without the expiry date, it makes it impossible for us to automate the process of notifying our customer's clients that their card will be soon expiring.  The reason for us going this route is to offer an ARB solution managed completely from within our application.  It is imparative for us to have access to this date.

 

The idea is a simple one.  Return the expiry date in the CIM getCustomerProfileRequest unmasked.

 

Thanks.

Status: Delivered

There should be a way to retrieve transaction details by their invoice number. If there is a network failure the only identifying information we have is the invoice number (not the Authorize.net generated transaction id).

 

Using the getUnsettledTransactionListRequest call is a bad choose since it only returns the last 1000 records.

Status: Accepted

Changing to Accepted, also it is now possible to return more than 1000 rows using paging.

Test Opaque Token

Status: Under Review
by mlunn01 on ‎02-15-2017 12:55 PM

It would be great if there was a test token that could be used to test the server side code that transmits the AcceptJs token to the Gateway, similiar to the way one uses test credit card numbers.

Status: Under Review

Include ACH in Accept.Js

Status: Delivered
by dnsBuffaloNY on ‎10-01-2016 12:26 PM

Accept.Js works great!  It allows my website to capture Credit Card information without that data ever posting back to my servers.  I don't any PCI Compliance headaches.

 

My suggestion would be to enhance Accept.JS to also allow for ACH payments.  That is, have accept.JS allow for the capture of a Routing and Account Number.  It could look like this:

 

var secureData = {}, authData = {}, bankData = {};
	
	bankData.routingNumber = document.getElementById('ROUTINGNUMBER_ID').value;
	bankData.accountNumber = document.getElementById('ACCOUNTNUMBER_ID').value;

	secureData.bankData = bankData;

	authData.clientKey = '6WrfHGS76gHW3v7btBCE3HuuBukej96Ztfn5R32G5ep42vne7MCWZtAucY';
	authData.apiLoginID = 'my_api_login_id';
	secureData.authData = authData;
	
	Accept.dispatchData(secureData, 'responseHandler');

Here's a related communit post.

 

https://community.developer.authorize.net/t5/Integration-and-Testing/Accept-JS-and-ACH/m-p/55887#M30...

 

Thank you for your consideration!

Status: Delivered

For those who don't appreciate my efforts to build suspense and excitement, I'll come right out and say it:

 

We've enhanced Accept.js to be able to return a payment nonce incorporating bank account information (for eCheck) instead of just card information. This payment nonce can then be used in exactly the same way as any card-originated payment nonce.

 

The Accept.js documentation hasn't been updated to reflect this yet, but will in the next couple of weeks. In the meantime, the request works just like documented above. You submit a bankData object instead of a cardData object, and the bankData object contains four required parameters. accountType can be either checking, savings, or businessChecking.

Hello Authorize.net Community. We have recently implemented the new Accept hosted mobile optimized forms and we wanted to know if anyone has any success in hiding some of the following fields:

- City
- State
- Country
- Phone

 

Unfortuantely that function the option to show or not show the billing address options and that is by setting the property for hostedPaymentBillingAddressOptions https://developer.authorize.net/api/reference/features/accept_hosted.html#Requesting_a_Token allows us to disable all of the billing fields and our challenge is that we only want to enable the address fields that are required (i.e. Street Address, Zip & Phone). Based on our research and your responses from your forum, it looks like this is not possible. Hopefully your teams can consider these non-required fields as definable options separately in the future.

 

Thank you in advance for your consideration.

 

Best regards,

TS

I have implemented accept hosted form into iFrame and embeded that iFrame into my main payment page.

Now my payment page has a cancel and previous button itself. so, after integration of accept hosted form there are two cancel button in my page.

We are looking for such a feature by which we can show/hide cancel button in accept hosted payment page.

Hi Guys,

      Today We have faced one situatuion in my software for online payment process, i need to process the $102.00 amount using Authorize.net, but We need to get the $100.00 for One Merchant ID and $2.00 (Convenience Fee) for another Merchant ID.

 

Thanks,

Vijay.K

Status: Under Review

Soft Descriptor and Contact Information

Status: Accepted
by jbracken1973 on ‎11-18-2014 08:38 AM - last edited on ‎01-15-2015 11:23 AM by Administrator Administrator

The ability to set the soft descriptors for a transaction. 

 

These are the fields that a customer sees on their statements, it allows for the customer to quickly ID the transactions reducing disputes and customer service.  For obvious reasons I hope.

 

Dynamic Descriptors include:

Business Name

Phone (Best Practices says this should be a Customer service number)

City and/or State

Status: Accepted

We plan to support Soft Descriptors when supported by the processors we connect to, and have plans to add support for TSYS and Global Payments.

Since when you call the getCustomerProfileRequest and it will list all the payment profiles can you please add a field as to which one is the default one?

 

This would be extremely useful when showing a user a list of all their profiles and which one they have set as default. Otherwise it takes a lot more unecessary coding to show all the payment profiles and then have to determine which one is the default by making additional API calls.

Status: Delivered

Hi there, we absolutely LOVE the new online invoicing feature - its super simple and most importantly, it makes running our business easier!  

 

Are there plans to add a "recurring" feature - the ability to automatically send the same invoice, to the same person, on a monthly basis?  We have a category of payments that we collect on a monthly basis that having a recurring invoicing feature as part of the new invoicing tool would eliminate the manual re-entry every month.

For the developers if they want to control over showing pay, cancel option, they cannot currently.

When the pay option is clicked, customers are selecting cancel option. But, the form is not cancelling the transaction to proceed. But, customers are not unaware and they are submitting another transaction. More details here.

 

Can we have the following so that developers can have the option to hide in the form? this helps the merchant customers not to cancel after they click pay.  

<settingName>hostedCancelButtonOptions</settingName>
<settingValue>{"show": false}</settingValue>

 OR 

once the pay button is clicked, disable the cancel button so that end-user doesnt have an option to select cancel.

 

-Bhavana