Search code examples
payment-gatewayauthorize.net

Store customer information without charge in Authorize.net and Accept.js?


I'm using Authorize.net and have spent a couple days reviewing the documentation but for the life of me, I can't seem to figure out a way to store credit card information of a customer without the card hitting our server.

In the Accept.js documentation it appears that they grant a nonce that's available for 15 minutes but I don't see a way to use that nonce just to store the card. Is there any way to use their JS library for creating a customer?

This seems like something that should be so basic but for whatever reason, I can't find it.


Solution

  • The nonce or one-time token can be used to create a customer profile by replacing the payment object from specifying card data to use the nonce:

    When using createCustomerProfileRequest, change the payment object from specifying card data as below:

     <payment>
          <creditCard>
            <cardNumber>4111111111111111</cardNumber>
            <expirationDate>2020-12</expirationDate>
          </creditCard>
     </payment>
    

    and change the payment object to use the nonce:

      <payment>
         <opaqueData>
            <dataDescriptor>COMMON.ACCEPT.INAPP.PAYMENT</dataDescriptor>
            <dataValue>nonce_here</dataValue >
         </opaqueData>
      </payment>