cancel
Showing results forย 
Search instead forย 
Did you mean:ย 

Accept Hosted - Auth Only capture and Customer Profiles

We are using the Accept Hosted form to process Auth Only transactions, to be captured at a later date.

 

1. If we create a Customer Profile for each new customer and associate their profile with the hosted form transaction, do we need the Customer Profile ID to later do the capture?

 

2. If we implement this scheme (create Profile and associate it with the request to the hosted form), is a Payment Profile also created associated with this transaction? And if so, can that Payment Profile information later be retrieved and identified as being associated with a specific transaction?

lance_dev
Member
5 REPLIES 5

 

1. If we create a Customer Profile for each new customer and associate their profile with the hosted form transaction, do we need the Customer Profile ID to later do the capture?

[Bhavana]:  we dont need customer profile ID to do the capture only transaction.

We just need referenceID of the auth-only transaction for capture request. Please check Capture_Request.

 

2. If we implement this scheme (create Profile and associate it with the request to the hosted form), is a Payment Profile also created associated with this transaction? And if so, can that Payment Profile information later be retrieved and identified as being associated with a specific transaction?

[Bhavana]: yes,  we do associate transactions with customer profile. So, you should be able to retrive the same by using the customerProfileTransaction API - here

bhav
Authorize.Net Expert Authorize.Net Expert
Authorize.Net Expert

Thanks a lot Bhavana, regarding point 2, is there an option on the hosted form request we have to enable or specify to be able to retrieve the transaction list for a customer profile?

 

If the customer does not opt to save their payment information on the form (using the checkbox) is a payment profile created for them or is it simply handled as a "one-off" transaction?

Follow-up to this after some investigation:

 

It appears with the customer profile ID alone we cannot retrieve a transaction report through the API, nor get a payment profile ID.

(using getTransactionListForCustomerRequest)

 

The only way to get a non-empty transaction list (and any corresponding payment profile ID) is when the customer selects the option in the hosted form to save the payment information (Save this Credit Card information for the future) and then uses that saved payment method in a future transaction.

 

The transaction does not get returned in their transaction list and no payment profile information is returned.

 

We would like if possible for a payment profile to be created and associated with the transaction automatically, on the first run-through with any given payment method.

regarding point 2, is there an option on the hosted form request we have to enable or specify to be able to retrieve the transaction list for a customer profile?

 

[Bhavana]
You dont need to specify anything. Just call the following API when hosted payment form has transaction succeeded.
https://developer.authorize.net/api/reference/#transaction-reporting-get-customer-profile-transactio...

<getTransactionListForCustomerRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
<merchantAuthentication>
<name>78BZ5Xprry</name>
<transactionKey>8s2F95Q7brhHd7Tn</transactionKey>
</merchantAuthentication>
<customerProfileId>10000</customerProfileId>
<customerPaymentProfileId>20000</customerPaymentProfileId>
<sorting>
<orderBy>submitTimeUTC</orderBy>
<orderDescending>true</orderDescending>
</sorting>
<paging>
<limit>100</limit>
<offset>1</offset>
</paging>
</getTransactionListForCustomerRequest>


If the customer does not opt to save their payment information on the form (using the checkbox) is a payment profile created for them or is it simply handled as a "one-off" transaction?

 

[Bhavana] I believe, that the option to create payment profile is controlled by you so, if there is uncheck in the checkbox, you would not proceed in creating new payment profile.
Do you mean on-off transaction as validation mode field where we can set live mode and can make transaction ? https://developer.authorize.net/api/reference/#customer-profiles-create-customer-payment-profile ?

bhav
Authorize.Net Expert Authorize.Net Expert
Authorize.Net Expert

It appears with the customer profile ID alone we cannot retrieve a transaction report through the API, nor get a payment profile ID.
(using getTransactionListForCustomerRequest)


[Bhavana] We do support currently to retirve transaction report based on CustomerProfileID only OR CustomerPaymentProfile
Try

<getTransactionListForCustomerRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
<merchantAuthentication>
<name>78BZ5Xprry</name>
<transactionKey>8s2F95Q7brhHd7Tn</transactionKey>
</merchantAuthentication>
<customerProfileId>1813212446</customerProfileId>
<sorting>
<orderBy>submitTimeUTC</orderBy>
<orderDescending>true</orderDescending>
</sorting>
<paging>
<limit>100</limit>
<offset>1</offset>
</paging>
</getTransactionListForCustomerRequest>

For CustomerPayment Profile transactionList, you need to use the following payload

<getTransactionListForCustomerRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
<merchantAuthentication>
<name>78BZ5Xprry</name>
<transactionKey>8s2F95Q7brhHd7Tn</transactionKey>
</merchantAuthentication>
<customerProfileId>1813212446</customerProfileId>
<customerPaymentProfileId>1807870001</customerPaymentProfileId>
<sorting>
<orderBy>submitTimeUTC</orderBy>
<orderDescending>true</orderDescending>
</sorting>
<paging>
<limit>100</limit>
<offset>1</offset>
</paging>
</getTransactionListForCustomerRequest>

The only way to get a non-empty transaction list (and any corresponding payment profile ID) is when the customer selects the option in the hosted form to save the payment information (Save this Credit Card information for the future) and then uses that saved payment method in a future transaction.


The transaction does not get returned in their transaction list and no payment profile information is returned.

We would like if possible for a payment profile to be created and associated with the transaction automatically, on the first run-through with any given payment method.


[Bhavana] For this scenario, you can use the createTransaction request with profile tag set to true, the request would create customerProfile and customerPayment profile by default along with the transaction. Make sure to have the CustomerID and email unique for each customer you are having transaction for the first time. 

<createTransactionRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
<merchantAuthentication>
<name>78BZ5Xprry</name>
<transactionKey>8s2F95Q7brhHd7Tn</transactionKey>
</merchantAuthentication>
<refId>123456</refId>
<transactionRequest>
<transactionType>authCaptureTransaction</transactionType>
<amount>5</amount>
<payment>
<creditCard>
<cardNumber>5424000000000015</cardNumber>
<expirationDate>2020-12</expirationDate>
<cardCode>999</cardCode>
</creditCard>
</payment>
<profile>
<createProfile>true</createProfile>
</profile>
<order>
<invoiceNumber>INV-12345</invoiceNumber>
<description>Product Description</description>
</order>
<lineItems>
<lineItem>
<itemId>1</itemId>
<name>vase</name>
<description>Cannes logo </description>
<quantity>18</quantity>
<unitPrice>45.00</unitPrice>
</lineItem>
</lineItems>
<tax>
<amount>4.26</amount>
<name>level2 tax name</name>
<description>level2 tax</description>
</tax>
<duty>
<amount>8.55</amount>
<name>duty name</name>
<description>duty description</description>
</duty>
<shipping>
<amount>4.26</amount>
<name>level2 tax name</name>
<description>level2 tax</description>
</shipping>
<poNumber>456654</poNumber>
<customer>
<id>999994566543</id>
</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>
<shipTo>
<firstName>China</firstName>
<lastName>Bayles</lastName>
<company>Thyme for Tea</company>
<address>12 Main Street</address>
<city>Pecan Springs</city>
<state>TX</state>
<zip>44628</zip>
<country>USA</country>
</shipTo>
<customerIP>192.168.1.1</customerIP>
<userFields>
<userField>
<name>MerchantDefinedFieldName1</name>
<value>MerchantDefinedFieldValue1</value>
</userField>
<userField>
<name>favorite_color</name>
<value>blue</value>
</userField>
</userFields>
</transactionRequest>
</createTransactionRequest>

 

bhav
Authorize.Net Expert Authorize.Net Expert
Authorize.Net Expert