> ## Documentation Index
> Fetch the complete documentation index at: https://developers.teampascal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Integrate with Pascal

> Make content from your own systems available in Pascal.

## Custom Source API (Beta)

The Custom Source Upload API makes content from internal tools and on-premises systems available in Pascal across Pascal's suite of applications. Use it to manage datasources and upload content.

Use Custom Source when your purchase orders or invoices live in a system you operate, such as an on-premise ERP. An admin creates a connector and gives your job credentials for one named datasource. Your job exchanges a signed assertion for an access token, stages records in an upload, closes it, and polls for the result.

The base URL is `https://app.teampascal.com/api/v1/custom-source`. All data routes require `Authorization: Bearer <access_token>`.

| Pattern | Mode | What to send |
| - | - | - |
| Full snapshot | `full` | Every record of one document type that should remain |
| Change feed | `incremental` | New or changed records |
| One-off backfill | `incremental` | Historical records to add or update |

Both modes upsert records by id. Only `full` deletes: it removes records of its own document type that the upload omits. It never touches other types, so give each type its own full upload. An incremental upload leaves omitted records in place. Full uploads have a deletion brake that stops unexpectedly large removals.

A record has an `id` and a `data` object in your own field layout. You declare the document type once per upload, not per record. `purchase_order` and `invoice` are mapped types whose fields Pascal reads by what they represent; Pascal stores any other type your connector declares as sent.

> [card] [Quickstart](https://developers.teampascal.com/quickstart.md)
>
> Create a connector, install the client libraries, and exchange your first access token.

> [card] [Authentication](https://developers.teampascal.com/authentication.md)
>
> Sign an RFC 7523 assertion, create a connector, and rotate the signing key.

> [card] [Uploads](https://developers.teampascal.com/uploads.md)
>
> Open an upload, stage records in batches, close it, and poll for the result.

> [card] [Errors and recovery](https://developers.teampascal.com/errors.md)
>
> Interpret request errors and asynchronous upload failures.

> [card] [Test the API](https://developers.teampascal.com/test-the-api.md)
>
> Dry-run an upload before scheduling a job.

> [card] [Endpoints](https://developers.teampascal.com/api-reference/exchange-token.md)
>
> Request and response reference for every route.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.