Skip to main content
Aria Knowledge Central

Create an Account with a Contract and a Destination Contact

Overview

In this use case, we will create an account with an annual contract for a monthly subscription. In addition, we will assign a custom rate to the subscription. We will also confirm that the customer's credit card can cover all of the invoice charges before collecting the payment.

Example: A customer signs up for an online streaming service plan at a promotional introductory rate for 1 year. Optionally, the customer may choose to order a non-subscription offering (or inventory item) such as a DVR (digital video recorder).

Based on your business model, you may need to calculate taxes on a service and/or inventory item based on an origin address (or shipping address). Depending on your business needs, you can specify the origin address by using a destination contact or service location.

Example: You sell the same product/service from multiple origin addresses and you want to calculate the taxes based on the origin address specific to each customer.

In the example shown below, we will have the taxes for a service calculated based on a destination contact.

Notes:

  • The type of tax calculation described above is available to you if you use one of the tax engines identified in the destination contact and service location documentation.
  • Please check your tax engine documentation for any additional configuration required to support tax calculation based on the destination contact or service location.

This use case involves 3 key steps:

  1. Create the Account
  2. Authorize the Payment
  3. Collect the Payment

Instructions

A. Create the Account

Back to top

Sample Call

Call the create_acct_complete_m API using the fields in the basic registration use case and pass values into the additional fields described below:

  1. Create a pending invoice so that you can complete an authorization before collecting the payment, as described below:
    clipboard_e68d0010dfc05cc85f282f9402e130834.png
  2. Create a 1-year (12-month) contract for the customer's plan, as described below:clipboard_edf7b252fa1511aed7d3edb8894eac481.png
  3. Specify the plan to which the contract applies, as described below:
    clipboard_e4fbea2cecc6b5e3cb6b6fab4113d4044.png
  4. Identify the service whose taxes will be calculated based on your specified address, as described below:clipboard_e171f7022bd38cbb6d15608bfaae4f7b4.png
  5. Optionally, if the customer is also ordering a non-subscription offering, you can add the order and its destination contact identifier as described below.

    Note: If you are adding an order in the create_acct_complete_m call, the requested inventory item must be associated with the plan the customer is subscribing to. If the item is not associated with the plan, you can complete the order using the create_order_m API.
    clipboard_e60f0ff4efed4b16a165b68108668a731.png

  6. Assign promotional rates to the plan, as described below:
    clipboard_ebc4765d236b9683284f7f1e8780d8ca7.png
  7. Pass in the details of the destination contact that should be used for calculating the taxes on the service that you identified in step 4:clipboard_e06af8677799036e571ba7d5df2802449.png

Sample Response

clipboard_e03495b2212a1f7ce5be96cae9bb9176f.png

clipboard_e313822d830df8087c771852dc04d38be.png

clipboard_e5d8af1a3b3b0029ed74600aa0e0c495b.png

B. Authorize the Payment

Back to top

Sample Call

Call the authorize_electronic_payment_m API to confirm that the customer's credit card can cover all of the invoice charges, as described below:

  1. Pass in your client number and authorization key:
    <lit:client_no>12345_sample_client_no</lit:client_no>
    <lit:auth_key>AbCdEfG_sample_auth_key</lit:auth_key>
    
  1. Pass values into the additional fields described below:
    1. Identify the customer whose authorization you are completing, as described below:
      clipboard_e8065f34a902e3d11e4e0435f1115bb7d.png
    2. Identify the amount of the authorization. Obtain the amount from the <invoice_total_amount> field returned by the create_acct_complete_m API call that you made in part A above:
      clipboard_e324703ae9264ba27a6efc4d04e693393.png
    3. Identify the credit card details and billing address for the authorization. This billing information should be the same as what you associated with the payment method in the create_acct_complete_m API call that you made in part A above.clipboard_ee55a31f42b5e4da85756c249f2636daf.png
    4. Identify the plan for whose payment method you are completing an authorization. Obtain the plan instance's identifier from the <plan_instance_no> field returned by the create_acct_complete_m API call that you made in part A above.clipboard_ef99c9fa1ef2ea624d02d7d3ff0516e9a.png

If the authorization is successful, you can then approve the corresponding invoice and collect the payment as described in part C below. If the authorization is not successful, you may need to ask the customer to re-enter payment information in your registration application.

Sample Response

<ns1:authorize_electronic_payment_mResponseElement>
         <ns1:error_code>0</ns1:error_code>
         <ns1:error_msg>OK</ns1:error_msg>
         <ns1:proc_cvv_response xsi:nil="true"/>
         <ns1:proc_avs_response xsi:nil="true"/>
         <ns1:proc_cavv_response xsi:nil="true"/>
         <ns1:proc_status_code>100</ns1:proc_status_code>
         <ns1:proc_status_text>pass</ns1:proc_status_text>
         <ns1:proc_payment_id>1569437371.20014</ns1:proc_payment_id>
         <ns1:proc_auth_code>1569437371</ns1:proc_auth_code>
         <ns1:proc_merch_comments>Oy, I'm a test!</ns1:proc_merch_comments>
         <ns1:proc_fraud_filtering_info xsi:nil="true"/>
         <ns1:proc_payer_auth_request xsi:nil="true"/>
         <ns1:proc_redirect_issuer_url xsi:nil="true"/>
         <ns1:proc_md xsi:nil="true"/>
         <ns1:proc_card_available_balance xsi:nil="true"/>
         <ns1:proc_prepaid_ind xsi:nil="true"/>
         <ns1:proc_prepaid_reloadable xsi:nil="true"/>
         <ns1:proc_prepaid_card_type xsi:nil="true"/>
         <ns1:proc_affluence_type xsi:nil="true"/>
         <ns1:proc_issuing_country xsi:nil="true"/>
         <ns1:proc_card_product_type xsi:nil="true"/>
         <ns1:proc_signature_debit_ind xsi:nil="true"/>
         <ns1:proc_pinless_debit_ind xsi:nil="true"/>
         <ns1:proc_durbin_regulated_ind xsi:nil="true"/>
         <ns1:proc_initial_auth_txn_id xsi:nil="true"/>
</ns1:authorize_electronic_payment_mResponseElement>

C. Collect the Payment

Back to top

Sample Call

Call the manage_pending_invoice_m API as described below to approve the pending invoice and collect a payment:

  1. Pass in your client number and authorization key:
    <lit:client_no>12345_sample_client_no</lit:client_no>
    <lit:auth_key>AbCdEfG_sample_auth_key</lit:auth_key>
    
  1. Identify the customer from whom you are collecting a payment, as described below:
    clipboard_e8065f34a902e3d11e4e0435f1115bb7d.png
  2. Identify the invoice that you are approving and for which you are collecting a payment. Obtain the invoice from the <invoice_no> field returned by the create_acct_complete_m API call that you made in part A above.
    clipboard_e10aa324c5df2a488bb4f653951e969e2.png
  3. Specify that you will collect a payment after the invoice is approved, as described below:
    clipboard_ea696de91fa6107deac7b51ac00220793.png

Sample Response

 <ns1:manage_pending_invoice_mResponseElement>
         <ns1:new_invoice_no>40565871</ns1:new_invoice_no>
         <ns1:acct_no>3926802</ns1:acct_no>
         <ns1:client_acct_id xsi:nil="true"/>
         <ns1:billing_group_no>1714261</ns1:billing_group_no>
         <ns1:client_billing_group_id>1714261</ns1:client_billing_group_id>
         <ns1:collection_error_code>0</ns1:collection_error_code>
         <ns1:collection_error_msg>OK</ns1:collection_error_msg>
         <ns1:statement_error_code>0</ns1:statement_error_code>
         <ns1:statement_error_msg>OK</ns1:statement_error_msg>
         <ns1:proc_cvv_response xsi:nil="true"/>
         <ns1:proc_avs_response xsi:nil="true"/>
         <ns1:proc_cavv_response xsi:nil="true"/>
         <ns1:proc_status_code>100</ns1:proc_status_code>
         <ns1:proc_status_text>pass</ns1:proc_status_text>
         <ns1:proc_payment_id>1569438274.13344</ns1:proc_payment_id>
         <ns1:proc_auth_code>1569438274</ns1:proc_auth_code>
         <ns1:proc_merch_comments>Oy, I'm a test!</ns1:proc_merch_comments>
         <ns1:proc_initial_auth_txn_id xsi:nil="true"/>
         <ns1:error_code>0</ns1:error_code>
         <ns1:error_msg>OK</ns1:error_msg>
         <ns1:collection_errors xsi:nil="true"/>
 </ns1:manage_pending_invoice_mResponseElement>

You can use the <acct_no> to search for the customer in the Aria application and confirm that the account was created correctly as described in the use case above.

You will see the destination contact that you created for the service on the customer's Account Contacts screen.

  • Was this article helpful?