# Percents Omni API

The Percents Omni API is a server-to-server integration for issuers and channel partners that need to:

- discover the merchants and card-linked offers available to their program;
- upload transaction files using an agreed public or private format; and
- receive a signed result webhook after automated processing and required human review are complete.


The production documentation site is intended to be published at `https://omni-api-docs.percents.com`.

## Public surface

The public API currently includes read-only merchant and offer endpoints, a presigned file-upload endpoint, the public `plaid-txn-stream` input format, and the `omni-txn-stream-result` webhook.

Some partners have privately agreed file formats. Those formats may be accepted for an enabled issuer, but a format is not part of the public contract unless it appears in this documentation and the [Percents API reference](/omni-api/api/openapi/omni-api).

## Choose a path

| If you need to... | Start with... |
|  --- | --- |
| Understand the integration lifecycle and environments | [Integration overview](/omni-api/overview/integration-overview) |
| Make your first authenticated sandbox calls | [Quickstart](/omni-api/overview/quickstart) |
| Configure credentials and issuer scope | [Authentication](/omni-api/overview/authentication) and [issuer setup](/omni-api/overview/issuer-channel-network) |
| Synchronize merchant and offer catalogs | [Offers and immutability](/omni-api/overview/offers/offers) |
| Submit transaction files | [File upload workflow](/omni-api/overview/file-uploads/overview) and [Plaid format](/omni-api/overview/file-uploads/plaid) |
| Receive final processing results | [Result webhooks](/omni-api/overview/webhooks/file-processing-results) and [signature verification](/omni-api/overview/webhooks/signatures) |
| Explore exact operations and schemas | [Percents API](/omni-api/api/openapi/omni-api) |
| Review contract changes | [Changelog](/omni-api/changelog) |


## Recommended implementation order

1. Read [Authentication](/omni-api/overview/authentication) and provide Percents with the source IPs that will call the API.
2. Complete the [Quickstart](/omni-api/overview/quickstart) using sandbox credentials.
3. Confirm the [issuer-to-channel-network association](/omni-api/overview/issuer-channel-network), then read [Offers](/omni-api/overview/offers/offers) before storing or displaying offer terms.
4. If uploading transactions, implement the [upload workflow](/omni-api/overview/file-uploads/overview) and [result webhook](/omni-api/overview/webhooks/file-processing-results) together.


Never expose an issuer API token or webhook signing token in a browser, mobile application, logs, or source control.