1Fetch Client API

<back to all web services

AddSubscription

The following routes are available for this service:
POST/subscription/{EventType}Subscribe to an event with a url we should post to
POST/subscriptionSubscribe to an event with a url we should post to
Imports System
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports WebService.ClientServiceModel
Imports WebService.ClientServiceModel.Base
Imports BusinessLogic.Entities

Namespace Global

    Namespace BusinessLogic.Entities

        Public Enum WebhookSubscriptionEventType
            DriverOnTheWay = 0
            ArrivedAtWaypoint = 1
            DepartedWaypoint = 2
            OrderCompleted = 3
            OrderCancelled = 4
        End Enum
    End Namespace

    Namespace WebService.ClientServiceModel

        Public Partial Class AddSubscription
            Inherits ApiServiceRequest
            Implements ILogRequest
            '''<Summary>
            '''The event type being subscribed to
            '''</Summary>
            <ApiMember(Description:="The event type being subscribed to", IsRequired:=true)>
            Public Overridable Property EventType As WebhookSubscriptionEventType

            '''<Summary>
            '''The URL we should post the event data to
            '''</Summary>
            <ApiMember(Description:="The URL we should post the event data to", IsRequired:=true)>
            Public Overridable Property SubscriptionUrl As String
        End Class
    End Namespace

    Namespace WebService.ClientServiceModel.Base

        Public Partial Class ApiServiceRequest
            Implements IServiceRequest
            Implements IHasApiKey
            '''<Summary>
            '''The API Key required for authentication
            '''</Summary>
            <ApiMember(DataType:="string", Description:="The API Key required for authentication", IsRequired:=true)>
            Public Overridable Property ApiKey As String
        End Class

        Public Partial Class ApiServiceResponse
            Implements IServiceResponse
            '''<Summary>
            '''Information about the response.
            '''</Summary>
            <ApiMember(Description:="Information about the response.", IsRequired:=true)>
            Public Overridable Property Description As String

            '''<Summary>
            '''Heading or summary of the response.
            '''</Summary>
            <ApiMember(Description:="Heading or summary of the response.", IsRequired:=true)>
            Public Overridable Property Heading As String

            '''<Summary>
            '''Did the intended operation for this response complete successfully?
            '''</Summary>
            <ApiMember(DataType:="boolean", Description:="Did the intended operation for this response complete successfully?", IsRequired:=true)>
            Public Overridable Property WasSuccessful As Boolean
        End Class
    End Namespace
End Namespace

VB.NET AddSubscription DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /subscription/{EventType} HTTP/1.1 
Host: api.1fetch.co.za 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<AddSubscription xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/WebService.ClientServiceModel">
  <ApiKey xmlns="http://schemas.datacontract.org/2004/07/WebService.ClientServiceModel.Base">String</ApiKey>
  <EventType>DriverOnTheWay</EventType>
  <SubscriptionUrl>String</SubscriptionUrl>
</AddSubscription>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<ApiServiceResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/WebService.ClientServiceModel.Base">
  <Description>String</Description>
  <Heading>String</Heading>
  <WasSuccessful>false</WasSuccessful>
</ApiServiceResponse>