Billing and Distribution Support

What should my app do when reading a subscription change, cancel or user assignment event if the account identifier does not exist in my records?

Your app should return a result xml with success=false and errorcode=account_not_found. It should not crash or return 404/5xx http error codes.

What should my app do when reading a user unassignment event when the account identifier provided does not exist in my records?

Your app should return a result xml with success=false and errorcode=user_not_found. It should not crash or return 404/5xx http error codes. Alternatively, you can also return a success result.

Can I reliably identify an appdirect user with a user email address?

No. Email addresses are not always reliable because users can update them. Instead, use openid urls to identify users in appdirect and map them to users in your app.

The user who creates a subscription for my app has a special role and cannot be removed. What should my app do when receiving a user unassignment event targeting that user?

Your app should return a result xml with success=false and errorcode=unauthorized along with a message explaining the situation.  It should not crash or return 404/5xx http error codes.

My app occasionally receives notifications from appdirect for "dummy" events with tokens like dummyorder, dummyassign, etc. is this normal?

Yes. We have an automated test process that periodically sends these messages to app endpoints to verify they are up and running. When you receive such an event notification (or a notification for a event that has a stateless flag in its xml), please return a valid result xml (with success=true). You don't have to do anything else on your end.

To add a user to an existing account in my app, I need to know x (where x = favorite color, date of birth, etc.) about that user, but this information is not passed in the event xml. How can I obtain this information?

AppDirect does not fully support this scenario. An alternative approach would be to have users supply that information after logging in (for example, they could fill in a profile). If that information needs to be provided or configured by the admin assigning that user, we do offer support for some custom attributes.

How does the billing process work?

AppDirect handles every stage of billing, from sending invoices to customers to processing your payments. We bill customers using our billing engine and collect payments. We do this based on your pricing specifications, either starting at check out or at the end of a set trial period. We will then deposit revenue share into your merchant account on the fifth day of every month. See selling on the market for more details.

How does appdirect treat overdue payments?

Within five business days of a missed payment, we block the customer’s access to the application on the portal. We notify customers by both email and phone. We cancel subscription within 30 days of an overdue payment.

How does appdirect deal with cancellations?

All payments are made at the start of the month. Customers who cancel during the billing period will not receive pro-rated refunds.
When a customer cancels, we block access to the application for 30 days. Then, we cancel the subscription.

How does appdirect deal with upgrades and downgrades?

When a customer purchases an upgrade, the order is processed that day. The billing cycle resets, which means the customer will receive the next bill 30 days after the upgrade checkout date. AppDirect processes downgrades at the end of a billing cycle. This means customers will retain access to all features until the end of the 30-day cycle. On the first day of the new billing cycle, appdirect will downgrade the customer and begin charging at the new rate.

How do I track my customers and payments?

AppDirect provides with full transparency into the billing cycle. Through our developer portal, you can manage your storefront and track customers and payments.

How do I create pricing plans?

You can easily create pricing plans for you applications in the pricing and editions section of the developer portal. We accommodate most on-demand pricing plans, including both flat and usage rate plans. If we do not accommodate your pricing plan, please contact us to discuss. Please note that all your prices and editions must match your market rates and offerings.

Why does appdirect offer single sign-on (sso) to applications on our network?

SSO simplifies access management. It also improves security by requiring customers to only manage one—rather than multiple—passwords.

How does single sign-on work?

AppDirect is both a saml and an openid provider. Currently, we only offer single sign on to applications bought on the appdirect network via openid. We work with you to implement openid at no cost. You can then offer openid as a feature to your customers as an additional benefit.

Where do I get the right openid library?

You should use an existing openid library rather than implement your own. Libraries supporting the openid appdirect apps discovery extensions are available in a number of languages, and the libraries (or extensions)

Provide instructions for getting started:

Java: http://code.google.com/p/jopenid/
PHP: http://www.phpclasses.org/package/3290-php-authenticate-users-with-openid-single-sign-on.html
C#: http://code.google.com/p/dotnetopenid/
Ruby: http://www.janrain.com/openid-enabled

For more information on the openid framework, refer to the following specifications: http://openid.net/developers/specs/

How do I provision an account to a new customer?

Customers can subscribe to your application directly from our partners’ application marketplaces. We provision new users to your application using our subscription management api. This way, companies can buy seats to your application through any of our distribution channels. To allow users to purchase seats, you need to tie to appdirect's subscription management api. The api allows appdirect to send you all of the customer information needed to sign up a new account. 

How do my customers upgrade or downgrade editions?

Customers can upgrade or downgrade editions from the account section of their business portal. To downgrade editions or usage levels, the customer must first de-provision users individually to reach a usage level covered by the new edition or usage rate plan.

How do my customers cancel subscriptions?

Customers can cancel subscriptions from the account section of their business portal. however, customers must first revoke access to your application to all their employees before cancelling. This ensures that they willingly deprovision each user and confirms that they understand the implications of cancelling their subscription—i.e., all of their users will lose access to your application.

Do I need to modify UI to make this work?

Yes, you need to hide and disable all subscription management sections of your application including any buy, upgrade/downgrade, or cancel functions. You also need to block customer attempts to buy or upgrade editions from your company website by redirecting them to appdirect.

How do my customers invite and assign new users to an account?

Customers can invite and assign new users to your application on the appdirect business portal. First, they add users to their appdirect portal, then they assign them to your application. They can only assign users to fill the number of seats they have purchased. If they want to add additional users, they will have to purchase more seats.

How does user management work?

Customers can assign seats using our access management api, which sends all the user information needed to provision that user an account.

I’m done developing, how do I test my app and integration?

First, follow the publication approval checklist. Then, privately publish your app from the developer portal. Finally, when you are done testing, please contact appdirect support.