There are four main ways to connect a third-party Joomla extension to UserPoints, depending on how much control you have over the other extension's code. They are listed here in order of simplicity.
The simplest approach works when the other extension already fires Joomla plugin events. A UserPoints plugin can listen for those events and call the UserPoints API when they fire. These plugins are usually quite small and straightforward to write. If you need one for a commonly used Joomla extension, feel free to ask — they can often be provided on request.
If you are the developer of the extension you want to integrate, or can work with its developer, you can add dedicated plugin trigger calls at the relevant points in the extension's code. A UserPoints plugin then hooks into those triggers. This is a clean approach that keeps the integration logic in the plugin rather than in the extension itself.
An extension can call UserPoints directly using the PHP API. Basic operations such as awarding or deducting points require only a few lines of code. This is the most straightforward method when you control the extension's source. The full API is described in the API for Developers page. Any changes really should be made by the extension's original developer, otherwise you face the risk of your modifications being overwritten on each update.
Connecting a shop or payment extension so that purchases can be made with points is more complex. Different extension developers use different approaches to payment plugins, and sometimes different schemes within their own extensions. There are existing UserPoints payment plugins for some popular shops. Writing a new one for an unsupported extension is a substantial piece of work; a realistic estimate is around $500 for a bespoke payment plugin.
For the technical details of all API methods, XML rule files, and plugin events, see the API for Developers page.