# Set up and receive Notifications

**Payment API - Notifications - API specifications -**&#x20;

**Step 1.** Configure your Notifications URL by configuring your Notification Configuration using our Payment API PUT `/api/notificationConfig`  .

**Key Details:**

* **API Version:** v1
* **Endpoint:** [`/api/notificationConfig`](/welcome-to-our-payment-api/api-references/test-payment-api-features/each-api-reference-specifics/notifications.md#put-api-notificationconfig)
* **Method:** PUT
* **Purpose:** To configure an Integration Sources Notification URL to accept our FrontStream transaction notification status payloads as transactions are updated or newly processed for example recurring contracts .

**Responses:**

* **200 (Success)**: Returns saved notification config.
* **400 (Bad Request):** Throws exception if the notification config was not saved.

#### Example PUT request

```
PUT /api/notificationConfig
{
  "NotificationConfigs": [
    {
      "NotificationConfigurationTypeId": "1", // This should always be equal to "1"
      "NotificationProtocolTypeId": "1", // Use only "1" (WEB) for now. "2" (Email) not yet supported
      "NotificationUrl": "string", // Url to post our notification to. Example: https://{yourenvironment.yourdomain}.com/api/yourNotification endpoint
      "Retries": 0, // number of retries to try again failed notifications - currently retries 10 times by default or set to 0
      "AccessToken": "string", // optional - if access token needed to hit your notification url
      "IsDeleted": false // set to true if you wish to soft-delete configuration, otherwise set to false
    }
  ]
}
```

**Step 2.** Test your Notifications URL can retrieve a transactions notification payload by using our Payment API POST `/api/notificationTest`  .

**Key Details:**

* **API Version:** v1
* **Endpoint:** [`/api/notificationTest`](/welcome-to-our-payment-api/api-references/test-payment-api-features/each-api-reference-specifics/notifications.md#post-api-notificationtest)
* **Method:** POST
* **Purpose:** To test a configured Integration Sources Notification URL can accept our FrontStream transaction notification status payloads as transactions are updated or newly processed for example recurring contracts .
* **Parameters:**
  * **Url:** Integration Source endpoint to post notification payload to. Example: https\://{yourenvironment.yourdomain}.com/api/yourNotification endpoint..
  * **Payload:** test payload posting over to Url
  * **AccessToken:** optional if access token is required to hit notification url.

**Responses:**

* **200 (Success)**:&#x20;
* **400 (Bad Request):** Throws exception if unable to send notification.

#### Example POST notificationTest request

```
POST /api/notificationTest
{
  ?Url = "", // your URL to post notification to.
  &AccessToken=testToken // optional if required to hit notification URL.
  &Payload = {
  "PaymentId": 55514,
  "PaymentGuid": "4f2835cb-1afe-482b-aea6-bf6ea7061828",
  "PaymentDate": "2026-01-20T15:20:07.948",
  "PaymentExternalId": "19498411",
  "OriginalExternalID": "19498411",
  "RecurringProfileId": null,
  "RecurringProfileGuid": null,
  "NextBillDate": null,
  "ProcessStatus": 2,
  "ProcessStatusValue": "Awaiting Authorization",
  "PaymentResult": 3,
  "PaymentResultValue": "Successful",
  "Amount": 105.53,
  "DistributionType": null,
  "DistributionTypeValue": null,
  "DistributionStatus": "Processing",
  "DistributionId": null,
  "SourceGuid": "12345678-9012-1234-5678-123456789012",
  "SourceName": "DonationForm",
  "CharityId": null,
  "OrganizationGuid": "12345678-9012-1234-5678-123456789012",
  "OrganizationName": "TEST SOCIETY",
  "Ein": "00-0000000",
  "SalesforceAccountId": null,
  "FgExternalId": null,
  "BfgExternalId": null,
  "ArtezExternalId": null,
  "ArtezInstanceGuid": null,
  "ExternalConstituentId": null,
  "FirstName": "TEST",
  "LastName": "NAME",
  "Email": "test@testemail.com",
  "CardHolderName": "Test name",
  "CCLastDigits": "2222",
  "CCType": "Visa",
  "IpAddress": "127.0.0.1",
  "ExternalEventId": "9922",
  "ExternalEventGuid": null,
  "ExternalEventName": null,
  "ShippingFee": 0,
  "TaxableBenefit": 0,
  "TranId": "885ecade-735c-4b8c-9cfd-2870ebca049f",
  "Tip": 0,
  "VoidRequestDate": null,
  "VoidReason": null,
  "RefundRequestDate": null,
  "RefundReason": null,
  "ProcessorId": 1,
  "ProcessorGuid": "12345678-9012-1234-5678-123456789012",
  "PaymentMethodTypeId": 3,
  "Surcharge": null,
  "IsSurchargeEligible": false,
  "CheckLastDigits": null,
  "CheckNumber": null,
  "CheckTypeId": null,
  "CheckAccountTypeId": null,
  "FsApplicationFee": null,
  "EpfSessionId": "c2bdd62b-0f22-45fe-83f6-119a24e54f82",
  "PaymentLines": [
    {
      "PaymentLineId": 50256,
      "PaymentId": 55514,
      "CreatedDate": "2026-01-20T15:20:09.5520567Z",
      "ModifiedDate": "2026-01-20T15:20:09.45",
      "IsDeleted": false,
      "Amount": 100,
      "CardFeeAmount": 3.49,
      "CardTypeFeeAmount": 0,
      "CommissionAmount": 1.5,
      "PayFee": true,
      "TransactionSourceGroupId": 1,
      "CardFeeRate": 3.49,
      "TotalCommissionRate": 1.5,
      "TotalCommissionAmount": 1.5,
      "PartnerCommissionRate": 0,
      "PartnerCommissionAmount": 0,
      "FsCommissionRate": 1.5,
      "FsCommissionAmount": 1.5,
      "TotalFees": 5.53,
      "PerTransFee": 0.35,
      "ExternalLineId": null,
      "Tip": 0,
      "CommissionRateOverride": null,
      "CardFeeOnFeeAmount": 0.19,
      "Tax": 0
    }
  ]
}
}
```

**Step 3. Optional:** If you would like to retrieve previous notifications by Payment identifier please use our Payment API GET `/api/notifications`.

**Key Details:**

* **API Version:** v1
* **Endpoint:** [`/api/notification`](/welcome-to-our-payment-api/api-references/test-payment-api-features/each-api-reference-specifics/notifications.md#get-api-notifications)
* **Method:** GET
* **Purpose:** Check your notifications by Payment idenfiers.
* **Parameters:**
  * **PaymentId:** Payment API Payment Id.
  * **PaymentExternalId:** Payment Gateway TransactionId.

**Responses:**

* **200 (Success)**: Returns all Notifications by PaymentId or PaymentExternalId.
* **400 (Bad Request):** Throws exception If the Notifications are not found.

#### Example GET Notifications request

```
GET api/notifications?paymentId=12345
```

### Create, configure, and test your Notifications

See how to create, configure, and test Notifications here:

{% content-ref url="/pages/4db80e18f611a59f5d4f47cec31dde81f4be38f6" %}
[Notifications](/welcome-to-our-payment-api/api-references/test-payment-api-features/each-api-reference-specifics/notifications.md)
{% endcontent-ref %}


---

# 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://developers.frontstream.com/welcome-to-our-payment-api/api-references/set-up-and-receive-notifications.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.
