Nigma is built on top of a powerful XML based API that you can connect to from any application using almost any programming language. The API can not only receive and respond to XML messages; it can also send notifications of important events from within the system. You as developers can plug into this system and extend its already powerful functionality in any way you desire.
WHAT IS AN API?
Developers use Application Programming Interfaces (API) to simplify complex processes. Take for example the act of placing an order.
- First a shopping cart is created.
- The user data is collected and stored temporarily.
- A connection to a payment processor is established, the credit card is attempted to be billed and a response is received.
- A number of actions could be taken based on this response, but assuming that it is approved, the cart is converted to an order.
- To do this a database connection must be established.
- The data is then fed into the database.
- Any errors are handled and fixed.
- The user data is then inserted and results are returned.
This is obviously a ton of processing and would be unreliable to code from scratch each time you wished to develop this kind of process; not to mention the type of database or payment gateway could change. Imagine adding new requirements ontop of this such as order confirmation emails, sales tracking, affiliate tracking, order fullfillment systems and it can quickly get out of hand. An API dramatically simplifies this process by subtracing as many of the complex and reptitive processes as possible.
In the below diagram, you can see how the Nigma API provides a simple interface for performing and connecting to banks and credit card gateways, databases, email, shipping carriers and third party applications. It also handles data processing such as order processing.

Every function that Nigma is capable of performing can be called using the remote API. Each call accepts an XML message as its paramaters. Each message is formatted in the same basic way and it is possible to send multiple messages at once to create more complex search queries.
MESSAGE STRUCTURE
A message consists of a header, paramaters, and navigation options. The header tells Nigma which call you are attempting to make. The paramaters specify the actual instructions of your call. And finally, the navigation section tells Nigma which results you wish to have it return (ie. page 5 given page size is 30) and in what order. Below is an outline of how the message is formatted. Notice that the entire message is encased in a <bbv2> node.
- <bbv2>
- <header>
- <remoteAccessHash>API Password</remoteAccessHash>
- <command>Type of Command to Execute</command>
- </header>
- <params>search xml goes here</params>
- <navigation>params to aid in navigation of results</navigation>
- </bbv2>
Click here for an introduction on how to get started.
Below is a growing list of all the current API calls you can make. Click the name to view the details of the function and to see samples.
| Name of Command | Brief Description |
| Authenticate | Authenticates user logins (both admins and clients). |
| GetAdmins | Returns admin data. |
| GetArticleCategories | Returns article categories. |
| GetArticles | Returns articles. |
| GetAttributes | Returns product attributes and corresponding options (if options are present). |
| GetCardTypes | Returns available credit card types. |
| GetCarriers | Returns supported shipping carriers. |
| GetCarts | Returns shopping carts (including product data). |
| GetCatalogs | Returns product catalog (optionally the products). |
| GetCategory | Returns product categories (one level at a time). |
| GetClients | Returns client data. |
| GetCommands | Returns a list of supported commands (may be more recent than this list) |
| GetCountries | Returns countries and abbreviations. |
| GetCycle | Returns available product cycles. |
| GetDepartments | Returns admin panel departments. |
| GetFAQCategories | Returns categories for FAQs |
| GetFAQs | Returns FAQ data. |
| GetGatewayInfo | Returns data regarding implementations of a payment gateway. |
| GetGateways | Returns available payment gateways. |
| GetImages | Returns product images and related data (ie. file name, date, alt text, etc). |
| GetInvoices | Returns invoice data. |
| GetMessages | Returns messages (currently just email messages). |
| GetNotes | Returns notes regarding clients, invoices or orders. |
| GetOrders | Returns order data. |
| GetProducts | Returns product data. |
| GetReports | Returns a real-time report. |
| GetReviews | Returns review data. |
| GetSettings | Returns admin panel settings data. |
| GetShipments | Returns information about shipments made for invoices. |
| GetShipping | Returns shipping calculations for a cart, order or an invoice. |
| GetShippingFlags | Returns rules used for calculating shipping. |
| GetTasks | Returns task data. |
| GetTaxes | Returns tax rules. |
| GetTemplates | Returns email template data. |
| GetTickets | Returns support ticket data. |
| ProcessInvoices | Processes invoices marked as due (one or many). |
| ProcessMessages | Processes messages (currently email messages). Send/Receive. |
| ProcessOrders | Processes active/pending orders into invoices to be billed. |
| ResetPassword | Resets a clients password. |
| SetAdmins | Saves admin data. |
| SetArticleCategories | Saves article category data. |
| SetArticles | Saves article data. |
| SetAttributes | Saves product attribute data. |
| SetCarriers | Saves shipping carrier data. |
| SetCarts | Saves cart data. |
| SetCatalogs | Saves product catalog data. |
| SetCategory | Saves category data. |
| SetClients | Saves client data. |
| SetCountries | Saves country data. |
| SetDepartments | Saves admin panel department data. |
| SetFAQCategories | Saves FAQ category data. |
| SetFAQs | Saves FAQ data. |
| SetGatewayInfo | Saves implementation of payment gateway data. |
| SetInvoices | Saves invoice data. |
| SetNotes | Saves note data. |
| SetOrders | Saves order data. |
| SetPermissions | Saves admins' permssions data. |
| SetProducts | Saves product data. |
| SetReviews | Saves review data. |
| SetSettings | Saves settings data. |
| SetShipments | Saves shipping slips data. |
| SetShippingFlags | Saves shipping flag rule data. |
| SetTasks | Saves task data. |
| SetTaxes | Saves tax rule data. |
| SetTemplates | Saves email message template data. |
| SetTickets | Saves support ticket data. |
