# Integrating with your e-services

{% hint style="info" %}
**Expected inputs and sample responses for each endpoint can be found** [**here**](https://api-staging.pay.gov.sg/external/api)**.**&#x20;
{% endhint %}

{% hint style="info" %}
Integration FAQs can be found [here](/faq/api-integration.md).
{% endhint %}

## Integrated payment flow&#x20;

<figure><img src="/files/kUaLsp0n1vmgitkvBDQ6" alt=""><figcaption><p>Sample integrated payment flow</p></figcaption></figure>

The following describes the overall flow of how a successful payment integration would work when a payer enters your e-service to make a payment.

#### Creating a payment

1. The payer accesses your e-service.
2. Your e-service initiates a payment on PaySG through a POST API call to the relevant endpoint to create a new payment. If necessary, your team can include a `return_url` which will be used to redirect users after successful payment. Please note that the `return_url` must be a valid HTTPS URL, otherwise, the payment creation will be blocked by PaySG.
3. The PaySG server returns a payment object to your e-service.
4. Your e-service then needs to redirect the payer to the `payment_url`, found in the payment object, which leads to PaySG's payment page.
5. The payer completes the payment on the PaySG payment page. Payment links **will remain valid** until cancelled on the dashboard/via API or when payment succeeds.

#### (Optional) Redirecting payers back after successful payment

1. Upon successful payment, the PaySG payment page redirects the payer back to the `return_url` provided by your team. Please note that the `return_url` must be a valid HTTPS URL, otherwise, the payment creation will be blocked by PaySG.
2. Your e-service receives the `paysg_payment_id` and `paysg_payment_service_id` and makes a GET API call to PaySG to verify the payment status. [Webhooks](/webhooks/introduction.md) are also available.
3. The PaySG server responds by returning the payment status.
4. If the payment status is confirmed as paid, your e-service marks the payment as paid and allows the payer to continue with their e-service flow.

#### Checking Payment Status

* Send a GET request using the `id` and `payment_service_id.` &#x20;
* Alternatively, set up a [webhook](/webhooks/introduction.md) to receive updates of successful payments.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://guide.pay.gov.sg/start-an-api-integration/integrating-with-your-e-services.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
