cancel
Showing results for 
Search instead for 
Did you mean: 

Show Company field on Accept Hosted Payment Form?

Is it possible to show the Company field on the Accept Hosted Payment Form via the API when requesting a token?

 

The Hosted Form Parameter Settings documentation does not seem to include such an option.

 

As a side note, beware that setting Company to required on the payment form options in the Merchant Interface still causes the field to be required even though the field is not included on the payment form. (Show/Edit options in the Merchant Interface have no affect on the Accept Hosted payment form, but the Required options do?)

 

Thanks, Fritz

coppercup
Regular Contributor
9 REPLIES 9

Hi coppercup

 

You can include the company field with the request, as shown below from our Accept documentation with billTo elements, however it will not display on the Hosted Payment Form. 

 

<getHostedPaymentPageRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
<merchantAuthentication>
<name>API_LOGIN_ID</name>
<transactionKey>API_TRANSACTION_KEY</transactionKey>
</merchantAuthentication>
<transactionRequest>
<transactionType>authCaptureTransaction</transactionType>
<amount>20.00</amount>
<profile>
<customerProfileId>123456789</customerProfileId>
</profile>
<customer>
<email>ellen@mail.com</email>
</customer>
<billTo>
<firstName>Ellen</firstName>
<lastName>Johnson</lastName>
<company>Souveniropolis</company>
<address>14 Main Street</address>
<city>Pecan Springs</city>
<state>TX</state>
<zip>44628</zip>
<country>USA</country>
</billTo>
</transactionRequest>
<hostedPaymentSettings>
<setting>
<settingName>hostedPaymentReturnOptions</settingName>
<settingValue>{"showReceipt": true, "url": "https://mysite.com/receipt", "urlText": "Continue", "cancelUrl": "https://mysite.com/cancel", "cancelUrlText": "Cancel"}</settingValue>
</setting>
<setting>
<settingName>hostedPaymentButtonOptions</settingName>
<settingValue>{"text": "Pay"}</settingValue>
</setting>
<setting>
<settingName>hostedPaymentStyleOptions</settingName>
<settingValue>{"bgColor": "blue"}</settingValue>
</setting>
<setting>
<settingName>hostedPaymentPaymentOptions</settingName>
<settingValue>{"cardCodeRequired": false, "showCreditCard": true, "showBankAccount": true}</settingValue>
</setting>
<setting>
<settingName>hostedPaymentSecurityOptions</settingName>
<settingValue>{"captcha": false}</settingValue>
</setting>
<setting>
<settingName>hostedPaymentShippingAddressOptions</settingName>
<settingValue>{"show": false, "required": false}</settingValue>
</setting>
<setting>
<settingName>hostedPaymentBillingAddressOptions</settingName>
<settingValue>{"show": true, "required":false}</settingValue>
</setting>
<setting>
<settingName>hostedPaymentCustomerOptions</settingName>
<settingValue>{"showEmail": false, "requiredEmail": false, "addPaymentProfile": true}</settingValue>
</setting>
<setting>
<settingName>hostedPaymentOrderOptions</settingName>
<settingValue>{"show": true, "merchantName": "G and S Questions Inc."}</settingValue>
</setting>
<setting>
<settingName>hostedPaymentIFrameCommunicatorUrl</settingName>
<settingValue>{"url": "https://mysite.com/special"}</settingValue>
</setting>
</hostedPaymentSettings>
</getHostedPaymentPageRequest>

 

There are many different methods of integration that we currently support. The settings page you refer to within your account, where you can specify fields as viewable/editable/required, were originally created for our Server Integration Method hosted payment form, one of our legacy API connections, however at this time these settings are dynamic controls merchants can set to prevent users from submitting transactions without field data which they wish to require. These settings do not apply to the visual aspect of the form, but rather the functional aspect of the field data required (or not) with each transaction processed via API through the account itself. 

 

I hope this clarifies this subject for you. Please note that any field which does not display on the Accept Hosted Payment Form currently can be included with the token request to be submitted with the transaction for processing. 

 

Thank you,

Elaine

ElaineM
Moderator Moderator
Moderator

Hi,

 

I have kind of the same issue and my customer requires me to have the company name saved on the invoice generated by authorize.net

Even if I send <billTo><company>CompanyName</company></billTo> (my format is JSON but it's the same), this information is not shown/saved neither on the payment form, neither on the transaction details visible from the merchant's interface.

 

I really need a way for my customer to have this information stored on your interface.

 

Thank you for your help!

 

Regards,

Benjamin C.

@BCOmpany42

This is probably much more work than you want to do (or should have to do), but at least one of my clients has a good bit of information pertaining to their orders that cannot be passed to authorize. So they would have to process their orders on both the backend I built them and the merchant interface. I built them a new backend where they could do all payment processing without the need for the interface. They do everything from one place now. As part of this I designed them a custom invoice that is partially driven by API calls. If you pass this in the API call it can be retrieved for a custom invoice.

It would be a huge amount of work for you to do just for the sake of getting the company on there but thought I would share what I did anyways.

This approach is essentially what we have done as well. We process and save as much related information about the purchase/transaction as possible in our database, then pass the user into the payment form, then upon completion of payment update our records and generate a custom invoice.

Thank you very much both for your help on this!

 

Sadly, I do already have: this information stored in my database + a custom invoice which shows it as well...

My customer is willing to this the Company Name on the transaction details on the Autorize.Net interface... and they do not understand it is not feasible right now except if Authorize.Net is doing the needed change or if I do rebuild entirely the payment form by myself...

 

I do believe this is an important (but easy) development to be done by Authorize.Net.

It's been a month I'm trying to have them say that to me... in vain.

 

Regards,

Benjamin C.

I agree. It would be good if they were to add it back as an option, like it was on the old SIM form. Obviously, building out your own payment form puts you in an expanded PCI scope. Sounds like you are stuck between a rock and a hard place.

coppercup
Regular Contributor

I am working on this and have same issue. Have you found the sulution? 

I have the same problem, I'm using:

var order = new orderType();
order.invoiceNumber = inv;
order.description = amountLabel;

var billingAddress = new customerAddressType
{
firstName = "John",
lastName = "Doe",
address = "123 My St",
city = "OurTown",
zip = "98004",
company = "Name Company",
};

var transactionRequestType = new transactionRequestType();
transactionRequestType.order = order;
transactionRequestType.billTo = billingAddress;
...

All data is received except 'company'

Please I would like to know if anyone has a solution to this problem.

cesartest
Member

Hi Team,

I have the same problem, I'm using:

var order = new orderType();
order.invoiceNumber = inv;
order.description = amountLabel;

var billingAddress = new customerAddressType
{
firstName = "John",
lastName = "Doe",
address = "123 My St",
city = "OurTown",
zip = "98004",
company = "Name Company",
};

var transactionRequestType = new transactionRequestType();
transactionRequestType.order = order;
transactionRequestType.billTo = billingAddress;
...

All data is received except 'company'

Please I would like to know if anyone has a solution to this problem.

Regards

cesartest
Member