# Notifications

## GET /api/notifications

> Get Notifications History per Integration Source by PaymentId or PaymentExternalId

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"paths":{"/api/notifications":{"get":{"tags":["Notifications"],"summary":"Get Notifications History per Integration Source by PaymentId or PaymentExternalId","description":"","parameters":[{"name":"paymentId","in":"query","schema":{"type":"integer","format":"int32"}},{"name":"paymentExternalId","in":"query","schema":{"type":"string"}},{"name":"AccessToken","in":"header","description":"access token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Returns all Notifications history by PaymentId or PaymentExternalId","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/NotificationsResponse"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BrokenRule"}}}}},"404":{"description":"If the Notifications are not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}}},"components":{"schemas":{"NotificationsResponse":{"type":"object","properties":{"NotificationId":{"type":"integer","description":"Notification Id","format":"int32"},"NotificationGuid":{"type":"string","description":"Unique Notification identifier","format":"uuid"},"NotificationConfigId":{"type":"integer","description":"Notification Configuration Id set up per Integration Source","format":"int32"},"CreatedDate":{"type":"string","description":"Notification Created date","format":"date-time"},"ModifiedDate":{"type":"string","format":"date-time","nullable":true},"Payload":{"type":"string","description":"Notification payload sent out for transaction status","nullable":true},"RetryCount":{"type":"integer","description":"Number of retry attempts to send Notification payload to configured Notification URL","format":"int32","nullable":true},"Postdate":{"type":"string","description":"if available - the date the Notification was posted to configured Notification URL successfully","format":"date-time","nullable":true},"NotificationStatus":{"$ref":"#/components/schemas/NotificationStatus"},"NotificationUrl":{"type":"string","description":"Url configure to post notifications to. The Integration Source endpoint to post notification payload to.","nullable":true},"PaymentId":{"type":"integer","description":"Payment API PaymentId associated with the Notification","format":"int32","nullable":true},"PaymentExternalId":{"type":"string","description":"Payment API PaymentExternalId associated with the Notification","nullable":true}},"additionalProperties":false},"NotificationStatus":{"enum":[1,2,3,4,5],"type":"integer","format":"int32"},"BrokenRule":{"type":"object","properties":{"ErrorCode":{"type":"integer","format":"int32"},"Message":{"type":"string","nullable":true},"LoggerMessage":{"type":"string","nullable":true}},"additionalProperties":false},"ProblemDetails":{"type":"object","properties":{"type":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"status":{"type":"integer","format":"int32","nullable":true},"detail":{"type":"string","nullable":true},"instance":{"type":"string","nullable":true}},"additionalProperties":{}}}}}
```

## Used to test sending over a transaction notification payload to the notification url endpoint configured per an Integration Source

> &#x20;Parameters:> \
> &#x20;> \
> &#x20;Url - Integration Source endpoint to post payload to. Example: https\://{yourenvironment.yourdomain}.com/api/yourNotification endpoint> \\
>
> \
> &#x20;AccessToken - optional if access token needed to hit notification url> \
> &#x20;> \
> &#x20;Payload - test payload posting over to Url> \\
>
> \\
>
> \
> &#x20;Example notification test with payload sent out for transaction status:> \\
>
> \
> &#x9;POST /api/notificationTest> \
> &#x9;{> \
> &#x9;  ?Url = "", // your URL to post notification to.> \
> &#x9;  AccessToken=testToken, // optional if required to hit notification URL.> \
> &#x9;  Payload = {> \
> &#x9;  "PaymentId": 55514,> \
> &#x9;  "PaymentGuid": "4f2835cb-1afe-482b-aea6-bf6ea7061828",> \
> &#x9;  "PaymentDate": "2026-01-20T15:20:07.948",> \
> &#x9;  "PaymentExternalId": "19498411",> \
> &#x9;  "OriginalExternalID": "19498411",> \
> &#x9;  "RecurringProfileId": null,> \
> &#x9;  "RecurringProfileGuid": null,> \
> &#x9;  "NextBillDate": null,> \
> &#x9;  "ProcessStatus": 2, // possible values: NotProcessed = 1 "Not Processed", Authorized = 2 "Awaiting Authorization", Settled = 4 "Authorized", Rejected = 5 "Rejected", RefundRequired = 6 "Refund Required", AwaitingRefund = 7 "Awaiting Refund", Refunded = 8 "Refunded", Cancelled = 9 "Cancelled", Chargeback = 10 "Chargeback", RefundRejected = 11 "Refund Rejected"> \
> &#x9;  "ProcessStatusValue": "Awaiting Authorization",> \
> &#x9;  "PaymentResult": 3, // possible values: Pending = 1, Processing = 2, Successful = 3, Failed = 4, Refunded = 5, Cancelled = 6> \
> &#x9;  "PaymentResultValue": "Successful",> \
> &#x9;  "Amount": 105.53,> \
> &#x9;  "DistributionType": null, // possible values: null, or "Direct Deposit" or "Check"> \
> &#x9;  "DistributionTypeValue": null, // possible values: null, or 1 - Direct Deposit or 2 - Check> \
> &#x9;  "DistributionStatus": "Processing", possible values: null, or "Processing", "Settled", "Refunded", "Voided"> \
> &#x9;  "DistributionId": null,> \
> &#x9;  "SourceGuid": "12345678-9012-1234-5678-123456789012",> \
> &#x9;  "SourceName": "DonationForm",> \
> &#x9;  "CharityId": null,> \
> &#x9;  "OrganizationGuid": "12345678-9012-1234-5678-123456789012",> \
> &#x9;  "OrganizationName": "TEST SOCIETY",> \
> &#x9;  "Ein": "00-0000000",> \
> &#x9;  "SalesforceAccountId": null,> \
> &#x9;  "FgExternalId": null,> \
> &#x9;  "BfgExternalId": null,> \
> &#x9;  "ArtezExternalId": null,> \
> &#x9;  "ArtezInstanceGuid": null,> \
> &#x9;  "ExternalConstituentId": null,> \
> &#x9;  "FirstName": "TEST",> \
> &#x9;  "LastName": "NAME",> \
> &#x9;  "Email": "<test@testemail.com>",> \
> &#x9;  "CardHolderName": "Test name",> \
> &#x9;  "CCLastDigits": "2222",> \
> &#x9;  "CCType": "Visa",> \
> &#x9;  "IpAddress": "127.0.0.1",> \
> &#x9;  "ExternalEventId": "9922",> \
> &#x9;  "ExternalEventGuid": null,> \
> &#x9;  "ExternalEventName": null,> \
> &#x9;  "ShippingFee": 0,> \
> &#x9;  "TaxableBenefit": 0,> \
> &#x9;  "TranId": "885ecade-735c-4b8c-9cfd-2870ebca049f",> \
> &#x9;  "Tip": 0,> \
> &#x9;  "VoidRequestDate": null,> \
> &#x9;  "VoidReason": null,> \
> &#x9;  "RefundRequestDate": null,> \
> &#x9;  "RefundReason": null,> \
> &#x9;  "ProcessorId": 1,> \
> &#x9;  "ProcessorGuid": "12345678-9012-1234-5678-123456789012",> \
> &#x9;  "PaymentMethodTypeId": 3,> \
> &#x9;  "Surcharge": null,> \
> &#x9;  "IsSurchargeEligible": false,> \
> &#x9;  "CheckLastDigits": null,> \
> &#x9;  "CheckNumber": null,> \
> &#x9;  "CheckTypeId": null,> \
> &#x9;  "CheckAccountTypeId": null,> \
> &#x9;  "FsApplicationFee": null,> \
> &#x9;  "EpfSessionId": "c2bdd62b-0f22-45fe-83f6-119a24e54f82",> \
> &#x9;  "PaymentLines": \[> \
> &#x9;    {> \
> &#x9;      "PaymentLineId": 50256,> \
> &#x9;      "PaymentId": 55514,> \
> &#x9;      "CreatedDate": "2026-01-20T15:20:09.5520567Z",> \
> &#x9;      "ModifiedDate": "2026-01-20T15:20:09.45",> \
> &#x9;      "IsDeleted": false,> \
> &#x9;      "Amount": 100,> \
> &#x9;      "CardFeeAmount": 3.49,> \
> &#x9;      "CardTypeFeeAmount": 0,> \
> &#x9;      "CommissionAmount": 1.5,> \
> &#x9;      "PayFee": true,> \
> &#x9;      "TransactionSourceGroupId": 1,> \
> &#x9;      "CardFeeRate": 3.49,> \
> &#x9;      "TotalCommissionRate": 1.5,> \
> &#x9;      "TotalCommissionAmount": 1.5,> \
> &#x9;      "PartnerCommissionRate": 0,> \
> &#x9;      "PartnerCommissionAmount": 0,> \
> &#x9;      "FsCommissionRate": 1.5,> \
> &#x9;      "FsCommissionAmount": 1.5,> \
> &#x9;      "TotalFees": 5.53,> \
> &#x9;      "PerTransFee": 0.35,> \
> &#x9;      "ExternalLineId": null,> \
> &#x9;      "Tip": 0,> \
> &#x9;      "CommissionRateOverride": null,> \
> &#x9;      "CardFeeOnFeeAmount": 0.19,> \
> &#x9;      "Tax": 0> \
> &#x9;    }> \
> &#x9;  ]> \
> &#x9;}> \
> &#x9;}

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"paths":{"/api/notificationTest":{"post":{"tags":["Notifications"],"summary":"Used to test sending over a transaction notification payload to the notification url endpoint configured per an Integration Source","description":" Parameters:\r\n \r\n Url - Integration Source endpoint to post payload to. Example: https://{yourenvironment.yourdomain}.com/api/yourNotification endpoint\r\n\r\n AccessToken - optional if access token needed to hit notification url\r\n \r\n Payload - test payload posting over to Url\r\n\r\n\r\n Example notification test with payload sent out for transaction status:\r\n\r\n\tPOST /api/notificationTest\r\n\t{\r\n\t  ?Url = \"\", // your URL to post notification to.\r\n\t  AccessToken=testToken, // optional if required to hit notification URL.\r\n\t  Payload = {\r\n\t  \"PaymentId\": 55514,\r\n\t  \"PaymentGuid\": \"4f2835cb-1afe-482b-aea6-bf6ea7061828\",\r\n\t  \"PaymentDate\": \"2026-01-20T15:20:07.948\",\r\n\t  \"PaymentExternalId\": \"19498411\",\r\n\t  \"OriginalExternalID\": \"19498411\",\r\n\t  \"RecurringProfileId\": null,\r\n\t  \"RecurringProfileGuid\": null,\r\n\t  \"NextBillDate\": null,\r\n\t  \"ProcessStatus\": 2, // possible values: NotProcessed = 1 \"Not Processed\", Authorized = 2 \"Awaiting Authorization\", Settled = 4 \"Authorized\", Rejected = 5 \"Rejected\", RefundRequired = 6 \"Refund Required\", AwaitingRefund = 7 \"Awaiting Refund\", Refunded = 8 \"Refunded\", Cancelled = 9 \"Cancelled\", Chargeback = 10 \"Chargeback\", RefundRejected = 11 \"Refund Rejected\"\r\n\t  \"ProcessStatusValue\": \"Awaiting Authorization\",\r\n\t  \"PaymentResult\": 3, // possible values: Pending = 1, Processing = 2, Successful = 3, Failed = 4, Refunded = 5, Cancelled = 6\r\n\t  \"PaymentResultValue\": \"Successful\",\r\n\t  \"Amount\": 105.53,\r\n\t  \"DistributionType\": null, // possible values: null, or \"Direct Deposit\" or \"Check\"\r\n\t  \"DistributionTypeValue\": null, // possible values: null, or 1 - Direct Deposit or 2 - Check\r\n\t  \"DistributionStatus\": \"Processing\", possible values: null, or \"Processing\", \"Settled\", \"Refunded\", \"Voided\"\r\n\t  \"DistributionId\": null,\r\n\t  \"SourceGuid\": \"12345678-9012-1234-5678-123456789012\",\r\n\t  \"SourceName\": \"DonationForm\",\r\n\t  \"CharityId\": null,\r\n\t  \"OrganizationGuid\": \"12345678-9012-1234-5678-123456789012\",\r\n\t  \"OrganizationName\": \"TEST SOCIETY\",\r\n\t  \"Ein\": \"00-0000000\",\r\n\t  \"SalesforceAccountId\": null,\r\n\t  \"FgExternalId\": null,\r\n\t  \"BfgExternalId\": null,\r\n\t  \"ArtezExternalId\": null,\r\n\t  \"ArtezInstanceGuid\": null,\r\n\t  \"ExternalConstituentId\": null,\r\n\t  \"FirstName\": \"TEST\",\r\n\t  \"LastName\": \"NAME\",\r\n\t  \"Email\": \"test@testemail.com\",\r\n\t  \"CardHolderName\": \"Test name\",\r\n\t  \"CCLastDigits\": \"2222\",\r\n\t  \"CCType\": \"Visa\",\r\n\t  \"IpAddress\": \"127.0.0.1\",\r\n\t  \"ExternalEventId\": \"9922\",\r\n\t  \"ExternalEventGuid\": null,\r\n\t  \"ExternalEventName\": null,\r\n\t  \"ShippingFee\": 0,\r\n\t  \"TaxableBenefit\": 0,\r\n\t  \"TranId\": \"885ecade-735c-4b8c-9cfd-2870ebca049f\",\r\n\t  \"Tip\": 0,\r\n\t  \"VoidRequestDate\": null,\r\n\t  \"VoidReason\": null,\r\n\t  \"RefundRequestDate\": null,\r\n\t  \"RefundReason\": null,\r\n\t  \"ProcessorId\": 1,\r\n\t  \"ProcessorGuid\": \"12345678-9012-1234-5678-123456789012\",\r\n\t  \"PaymentMethodTypeId\": 3,\r\n\t  \"Surcharge\": null,\r\n\t  \"IsSurchargeEligible\": false,\r\n\t  \"CheckLastDigits\": null,\r\n\t  \"CheckNumber\": null,\r\n\t  \"CheckTypeId\": null,\r\n\t  \"CheckAccountTypeId\": null,\r\n\t  \"FsApplicationFee\": null,\r\n\t  \"EpfSessionId\": \"c2bdd62b-0f22-45fe-83f6-119a24e54f82\",\r\n\t  \"PaymentLines\": [\r\n\t    {\r\n\t      \"PaymentLineId\": 50256,\r\n\t      \"PaymentId\": 55514,\r\n\t      \"CreatedDate\": \"2026-01-20T15:20:09.5520567Z\",\r\n\t      \"ModifiedDate\": \"2026-01-20T15:20:09.45\",\r\n\t      \"IsDeleted\": false,\r\n\t      \"Amount\": 100,\r\n\t      \"CardFeeAmount\": 3.49,\r\n\t      \"CardTypeFeeAmount\": 0,\r\n\t      \"CommissionAmount\": 1.5,\r\n\t      \"PayFee\": true,\r\n\t      \"TransactionSourceGroupId\": 1,\r\n\t      \"CardFeeRate\": 3.49,\r\n\t      \"TotalCommissionRate\": 1.5,\r\n\t      \"TotalCommissionAmount\": 1.5,\r\n\t      \"PartnerCommissionRate\": 0,\r\n\t      \"PartnerCommissionAmount\": 0,\r\n\t      \"FsCommissionRate\": 1.5,\r\n\t      \"FsCommissionAmount\": 1.5,\r\n\t      \"TotalFees\": 5.53,\r\n\t      \"PerTransFee\": 0.35,\r\n\t      \"ExternalLineId\": null,\r\n\t      \"Tip\": 0,\r\n\t      \"CommissionRateOverride\": null,\r\n\t      \"CardFeeOnFeeAmount\": 0.19,\r\n\t      \"Tax\": 0\r\n\t    }\r\n\t  ]\r\n\t}\r\n\t}","parameters":[{"name":"url","in":"query","description":"","schema":{"type":"string"}},{"name":"payload","in":"query","description":"","schema":{"type":"string"}},{"name":"accessToken","in":"query","description":"","schema":{"type":"string"}},{"name":"AccessToken","in":"header","description":"access token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success"},"400":{"description":"Failure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}}},"components":{"schemas":{"ProblemDetails":{"type":"object","properties":{"type":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"status":{"type":"integer","format":"int32","nullable":true},"detail":{"type":"string","nullable":true},"instance":{"type":"string","nullable":true}},"additionalProperties":{}}}}}
```

## PUT /api/notificationConfig

> Save Notification Configurations per an Integration Source

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"paths":{"/api/notificationConfig":{"put":{"tags":["Notifications"],"summary":"Save Notification Configurations per an Integration Source","description":"","parameters":[{"name":"AccessToken","in":"header","description":"access token","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/EditAllNotificationConfigSave"}},"application/json":{"schema":{"$ref":"#/components/schemas/EditAllNotificationConfigSave"}},"text/json":{"schema":{"$ref":"#/components/schemas/EditAllNotificationConfigSave"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/EditAllNotificationConfigSave"}}}},"responses":{"200":{"description":"Returns saved notification config","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/NotificationConfigurationDto"}}}}},"400":{"description":"If the notification config are not saved","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BrokenRule"}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}}},"components":{"schemas":{"EditAllNotificationConfigSave":{"required":["NotificationConfigs"],"type":"object","properties":{"IntegrationSourceGuid":{"type":"string","description":"internal use - Identifies integrated Product","nullable":true},"NotificationConfigs":{"maxItems":20,"type":"array","items":{"$ref":"#/components/schemas/EditNotificationConfigSave"},"description":"NotificationConfigs: 1 - n notification configs for an Integration Source"}},"additionalProperties":false,"description":""},"EditNotificationConfigSave":{"required":["NotificationConfigurationTypeId","NotificationProtocolTypeId","NotificationUrl","Retries"],"type":"object","properties":{"NotificationConfigurationTypeId":{"type":"string","description":"required - NotificationConfigurationTypeId: possible values -\r\n        1 - General"},"NotificationProtocolTypeId":{"type":"string","description":"required - NotificationProtocolTypeId: possible values -\r\n        1 - Web,\r\n        2 - Email - (Email currently not in use)"},"NotificationUrl":{"maxLength":250,"type":"string","description":"required - NotificationUrl - Url to post notification to. Integration Source endpoint to post payload to. Example: https://{yourenvironment.yourdomain}.com/api/yourNotification endpoint. Make sure to include Https://"},"NotificationEmailFrom":{"maxLength":250,"type":"string","description":"Not in use - NotificationEmailFrom – optional Notification Email from","format":"email","nullable":true},"NotificationEmailTo":{"maxLength":250,"type":"string","description":"Not in use - NotificationEmailTo – optional Notification Email to","format":"email","nullable":true},"Retries":{"type":"integer","description":"required - number of retries to try again failed notifications - currently retries 10 times by default or set to 0","format":"int32"},"AccessToken":{"maxLength":250,"type":"string","description":"optional (max: 250) - if access token needed to hit notification url","nullable":true},"IsDeleted":{"type":"boolean","description":"set to true if you wish to deactivate configuration, otherwise set to false"}},"additionalProperties":false,"description":""},"NotificationConfigurationDto":{"type":"object","properties":{"NotificationConfigId":{"type":"integer","format":"int32"},"NotificationConfigType":{"$ref":"#/components/schemas/NotificationConfigurationTypeDto"},"NotificationProtocolType":{"$ref":"#/components/schemas/NotificationProtocolTypeDto"},"IntegrationSourceId":{"type":"integer","format":"int32"},"NotificationUrl":{"type":"string","nullable":true},"NotificationEmailTo":{"type":"string","nullable":true},"NotificationEmailFrom":{"type":"string","nullable":true},"AccessToken":{"type":"string","nullable":true},"Retries":{"type":"integer","format":"int32"},"CreatedDate":{"type":"string","format":"date-time"},"ModifiedDate":{"type":"string","format":"date-time","nullable":true},"IsDeleted":{"type":"boolean"}},"additionalProperties":false},"NotificationConfigurationTypeDto":{"enum":[1,2,3,4,5,6,7,8],"type":"integer","format":"int32"},"NotificationProtocolTypeDto":{"enum":[1,2],"type":"integer","format":"int32"},"BrokenRule":{"type":"object","properties":{"ErrorCode":{"type":"integer","format":"int32"},"Message":{"type":"string","nullable":true},"LoggerMessage":{"type":"string","nullable":true}},"additionalProperties":false},"ProblemDetails":{"type":"object","properties":{"type":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"status":{"type":"integer","format":"int32","nullable":true},"detail":{"type":"string","nullable":true},"instance":{"type":"string","nullable":true}},"additionalProperties":{}}}}}
```


---

# 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/test-payment-api-features/each-api-reference-specifics/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.
