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

# Embedded Documents

> Display a client-hosted document to recipients inside the Digital Payment Center during the disbursement flow — configured with an AWS S3 pre-signed URL and CORS. Available for Notify — Classic and Notify — Managed Parties.

Embedded Documents lets you present a document you host — for example, an explanation of benefits, a policy summary, or terms — to the recipient inside the Digital Payment Center (DPC). The document renders early in the acceptance flow, before the recipient selects how they want to receive their disbursement, and remains accessible from the payment confirmation screen.

The mechanism is the same for **Notify — Classic** and **Notify — Managed Parties**: you host a single document, generate a time-limited pre-signed URL, and configure CORS so Ingo hosts can load it. Ingo enables the service and places the document at a fixed point in the flow.

<Info>
  This feature **displays a document only**. It does not capture or report recipient acknowledgement or consent, and it does not provide e-signature or document generation. If you need proof of acknowledgement, that is a separate requirement — talk to your Integration Manager.
</Info>

***

## How it works

<Steps>
  <Step title="Host your document and generate a pre-signed link">
    Host the document in an AWS S3 bucket and generate a single time-limited pre-signed URL. You control the link's lifetime at generation time.
  </Step>

  <Step title="Configure CORS">
    Add the Ingo host URLs to your bucket's CORS `AllowedOrigins` list (GET method) so Ingo can load the document.
  </Step>

  <Step title="Ingo enables the service">
    Provide Ingo the hosted URL and your chosen display presentation. Ingo enables the Embedded Document service on your Notify configuration and places the document at the fixed point in the flow.
  </Step>

  <Step title="The recipient sees the document">
    At disbursement time the recipient is shown the document early in the flow, then proceeds to select their payment method. The document is also reachable from the payment confirmation screen.
  </Step>
</Steps>

***

## What you configure vs. what Ingo configures

<CardGroup cols={2}>
  <Card title="Your responsibility (AWS)">
    Host the document, generate the pre-signed URL, combine multiple documents into one file, set link expiration to meet or exceed your payment expiration window, and add Ingo hosts to CORS `AllowedOrigins`.
  </Card>

  <Card title="Ingo's responsibility">
    Provide the exact Ingo host URLs for whitelisting, confirm your payment expiration window, enable the Embedded Document service, place the document at the fixed flow position, and configure your selected display presentation.
  </Card>
</CardGroup>

<Note>
  Placement in the flow is fixed and not configurable. You choose the **display presentation** (below); you do not choose where in the flow the document appears.
</Note>

***

## Single document only

The feature renders **one** hosted URL. To display multiple documents, combine them into a single file (for example, one PDF) and provide Ingo with one hosted URL.

***

## AWS S3 configuration

<Info>
  AWS S3 is the only validated hosting path. A non-AWS solution must support time-limited pre-signed URLs and a CORS-equivalent origin allowlist; supporting it may require additional Ingo assessment before it can be enabled. Confirm your hosting solution with your Integration Manager early.
</Info>

### Pre-signed links

Generate a single time-limited pre-signed link for the document. The maximum lifetime depends on how you sign it:

| Signing method                      | Maximum link lifetime |
| ----------------------------------- | --------------------- |
| S3 Console (temporary credentials)  | Up to 12 hours        |
| S3 CLI / SDK (IAM user credentials) | Up to 7 days          |

You own the expiration and any refresh cadence. See the AWS guides on [sharing a pre-signed URL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ShareObjectPreSignedURL.html) and [using pre-signed URLs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-presigned-url.html).

<Warning>
  **Align link expiration with your payment expiration window.** The S3 link expiration (which you own) must meet or exceed the payment expiration window (a configuration Ingo holds for you). If the link expires before the payment does, a recipient who returns later will not be able to view the document. Confirm your payment expiration window with your Integration Manager and set your link lifetime — and any refresh approach — to match or exceed it.
</Warning>

### CORS

CORS lets a web application loaded on one domain (your Ingo Money host) load a resource from another domain (your S3 bucket). To display your document, your Ingo hosts must be whitelisted in the bucket's CORS configuration in the S3 **Permissions** console.

Add the Ingo host URLs to the `AllowedOrigins` array, each in quotes and comma-separated, with `GET` in `AllowedMethods`:

```json theme={null}
[
  {
    "AllowedHeaders": ["*"],
    "AllowedMethods": ["GET"],
    "AllowedOrigins": [
      "https://{ingo-host-url-1}",
      "https://{ingo-host-url-2}"
    ],
    "ExposeHeaders": []
  }
]
```

<Note>
  Request your exact Ingo host URLs (sandbox and production) from your Integration Manager. Whitelist the sandbox hosts for UAT and the production hosts before go-live. See the AWS [CORS configuration examples](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html).
</Note>

***

## Display presentations

Two display presentations are available. You choose one; placement in the flow is fixed regardless of the option.

<AccordionGroup>
  <Accordion title="Full Window (default)">
    The default mode. The document is hosted in a frame with controls to toggle between pages, download, print, and more.

    <Frame caption="Full Window presentation">
      <img src="https://mintcdn.com/ingopayments/qmB2egTD956Kd5LU/images/embedded-documents/full-window.png?fit=max&auto=format&n=qmB2egTD956Kd5LU&q=85&s=7027d85e65d5020798b4d884679fad01" alt="Digital Payment Center showing a document in a framed viewer with page, download, and print controls" width="320" data-path="images/embedded-documents/full-window.png" />
    </Frame>
  </Accordion>

  <Accordion title="In-Line">
    Displays all pages of the document in a vertical layout on the page.

    <Frame caption="In-Line presentation">
      <img src="https://mintcdn.com/ingopayments/qmB2egTD956Kd5LU/images/embedded-documents/in-line.png?fit=max&auto=format&n=qmB2egTD956Kd5LU&q=85&s=d5da3fb1762c21b6d29b80f81f93f084" alt="Digital Payment Center showing all pages of a document rendered vertically inline" width="320" data-path="images/embedded-documents/in-line.png" />
    </Frame>
  </Accordion>
</AccordionGroup>

<Note>
  Screenshots are illustrative using sample content; your recipients see your branded Digital Payment Center and your hosted document.
</Note>

<Note>
  Some browser components, such as ad blockers, can interfere with document display. If a recipient reports a blank or missing document, an extension is a likely cause.
</Note>

***

## Confirmation screen access

Regardless of the display presentation, the document is also reachable from the payment confirmation screen as a labeled link, so recipients can revisit it after completing their selection.

<Frame caption="Document accessible from the payment confirmation screen">
  <img src="https://mintcdn.com/ingopayments/qmB2egTD956Kd5LU/images/embedded-documents/confirmation.png?fit=max&auto=format&n=qmB2egTD956Kd5LU&q=85&s=120c573ba0e5c3488d81bbadb116392f" alt="Payment confirmation screen with a labeled button linking to the document" width="320" data-path="images/embedded-documents/confirmation.png" />
</Frame>

***

## Prerequisites

* A document hosting solution that supports time-limited pre-signed URLs (AWS S3 is the validated path).
* Ability to configure CORS to whitelist Ingo host URLs for GET requests.
* A single hosted document URL (multiple documents combined into one file).
* A confirmed display presentation (Full Window or In-Line).
* You are already live or in-flight on Notify — Classic or Notify — Managed Parties. Embedded Documents is a feature add, not a standalone integration.

***

## Testing

During UAT, validate that the document renders at the correct step before payment-method selection, across your entry points (email, SMS, and web). Confirm the pre-signed link resolves, CORS is correctly configured, link-expiry behavior matches your payment expiration window, and the selected display presentation renders as expected. Your Integration Manager provides a test plan and validation support.
