#### [Abblix\.Oidc\.Server](https://www.abblix.com/en/docs/api/abblix-oidc-server 'index')
### [Abblix\.Oidc\.Server\.Features\.BackChannelAuthentication\.Interfaces](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces 'Abblix\.Oidc\.Server\.Features\.BackChannelAuthentication\.Interfaces')

## INotificationDeliveryService Interface

Provides HTTP\-based notification services for CIBA ping and push modes\.

```csharp
public interface INotificationDeliveryService
```

Derived  
↳ [HttpNotificationDeliveryService](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.BackChannelAuthentication.HttpNotificationDeliveryService 'Abblix\.Oidc\.Server\.Features\.BackChannelAuthentication\.HttpNotificationDeliveryService')

### Remarks

This interface supports both CIBA notification modes by sending HTTP POST requests
with a notification payload to the client's registered endpoint.
- <strong>Ping Mode</strong>: Sends auth_req_id to notify client that tokens are ready for retrieval.
- <strong>Push Mode</strong>: Delivers complete token response directly to client endpoint.
### Methods

## INotificationDeliveryService\.SendAsync\(Uri, string, IBackChannelNotificationRequest, string\) Method {#Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.INotificationDeliveryService.SendAsync(System.Uri,string,Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.IBackChannelNotificationRequest,string)}

Sends an HTTP POST notification to the client's registered endpoint\.

```csharp
System.Threading.Tasks.Task<bool> SendAsync(System.Uri clientNotificationEndpoint, string clientNotificationToken, Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.IBackChannelNotificationRequest payload, string mode);
```
#### Parameters

###### `clientNotificationEndpoint` [System\.Uri](https://learn.microsoft.com/en-us/dotnet/api/system.uri 'System\.Uri') {#Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.INotificationDeliveryService.SendAsync(System.Uri,string,Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.IBackChannelNotificationRequest,string).clientNotificationEndpoint}

The HTTPS URL of the client's notification endpoint\.

###### `clientNotificationToken` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.INotificationDeliveryService.SendAsync(System.Uri,string,Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.IBackChannelNotificationRequest,string).clientNotificationToken}

Bearer token for authenticating the notification request\.

###### `payload` [IBackChannelNotificationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.IBackChannelNotificationRequest 'Abblix\.Oidc\.Server\.Features\.BackChannelAuthentication\.Interfaces\.IBackChannelNotificationRequest') {#Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.INotificationDeliveryService.SendAsync(System.Uri,string,Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.IBackChannelNotificationRequest,string).payload}

The notification payload to send \(e\.g\., ping notification or push token delivery\)\.

###### `mode` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.INotificationDeliveryService.SendAsync(System.Uri,string,Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.IBackChannelNotificationRequest,string).mode}

The CIBA mode \(e\.g\., "ping" or "push"\) for logging purposes\.

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')  
`true` if the client endpoint accepted the notification \(2xx response\); `false` if
            delivery failed \(non\-success status or transport error\)\. Push mode relies on this to avoid
            discarding the grant when token delivery did not reach the client\.
