DX STF Client API

<back to all web services

AddSettlement

Settlement Requests

Settlement

Requires Authentication
The following routes are available for this service:
POST/api/settlementAdd new Settlement
Imports System
Imports System.IO
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports DX.STF.Application.ClientApi.Messages.Settlement
Imports DX.STF.Models.Dto.GS1
Imports DX.Framework.Core.Commands.Dto

Namespace Global

    Namespace DX.Framework.Core.Commands.Dto

        Public Partial Class TokenDto
            Implements ICommandResponse
            Public Overridable Property Token As Guid
        End Class
    End Namespace

    Namespace DX.STF.Application.ClientApi.Messages.Settlement

        '''<Summary>
        '''Settlement
        '''</Summary>
        <Api(Description:="Settlement")>
        <ApiResponse(Description:="Add Settlement request received", IsDefaultResponse:=true, StatusCode:=200)>
        <ApiResponse(Description:="Settlement not accepted, Confirm Sender GLN", ResponseType:=GetType(UnauthorizedAccessException), StatusCode:=403)>
        Public Partial Class AddSettlement
            Implements IPost
            '''<Summary>
            '''Settlement model containing all of the Settlement data
            '''</Summary>
            <ApiMember(Description:="Settlement model containing all of the Settlement data", ParameterType:="model")>
            Public Overridable Property Settlement As SettlementMessage
        End Class
    End Namespace

    Namespace DX.STF.Models.Dto.GS1

        Public Partial Class Address
            Public Overridable Property StreetAddressOne As String
            Public Overridable Property StreetAddressTwo As String
            Public Overridable Property StreetAddressThree As String
            Public Overridable Property City As String
            Public Overridable Property PostalCode As String
            Public Overridable Property ProvinceCode As String
            Public Overridable Property CountryCode As String
        End Class

        Public Partial Class AdjustmentAndDiscountSummary
            Public Overridable Property AmountTotal As Decimal
            Public Overridable Property AmountNett As Decimal
            Public Overridable Property AmountVat As Decimal
            Public Overridable Property ReasonMessage As String
        End Class

        Public Partial Class AvpList
            Public Overridable Property Code As String
            Public Overridable Property Value As String
        End Class

        Public Partial Class BaseDocument
            Public Overridable Property CurrencyCode As String
            Public Overridable Property CreationDateTime As Date
            Public Overridable Property DocumentActionCode As DocumentAction
            Public Overridable Property DocumentStatusCode As DocumentStatus
            Public Overridable Property DocumentStructureVersion As String
            Public Overridable Property LastUpdateDateTime As Date?
            Public Overridable Property RevisionNumber As Long?
            Public Overridable Property AvpList As List(Of AvpList) = New List(Of AvpList)
        End Class

        Public Partial Class CommunicationChannel
            Public Overridable Property CommunicationChannelCode As String
            Public Overridable Property CommunicationChannelName As String
            Public Overridable Property CommunicationValue As String
        End Class

        Public Partial Class Contact
            Public Overridable Property ContactTypeCode As String
            Public Overridable Property PersonName As String
            Public Overridable Property DepartmentName As String
            Public Overridable Property JobTitle As String
            Public Overridable Property Responsibility As String
            Public Overridable Property CommunicationChannel As List(Of CommunicationChannel) = New List(Of CommunicationChannel)
        End Class

        <DataContract>
        Public Partial Class ContactInformation
        End Class

        Public Partial Class ContentOwner
            Public Overridable Property Gln As String
            Public Overridable Property AdditionalPartyIdentification As List(Of AvpList) = New List(Of AvpList)
        End Class

        Public Enum DocumentAction
            ADD
            CHANGE_BY_REFRESH
            DELETE
            REJECTED
        End Enum

        <DataContract>
        Public Partial Class DocumentIdentification
            <DataMember(Name:="identifier")>
            Public Overridable Property Identifier As String

            <DataMember(Name:="type")>
            Public Overridable Property Type As String

            <DataMember(Name:="creationDateAndTime")>
            Public Overridable Property CreationDateAndTime As Date
        End Class

        Public Partial Class DocumentReference
            Public Overridable Property CreationDateTime As Date?
            Public Overridable Property RevisionNumber As Long?
            Public Overridable Property LineItemNumber As Long?
            Public Overridable Property EntityIdentification As String
        End Class

        Public Enum DocumentStatus
            ADDITIONAL_TRANSMISSION
            COPY
            ORIGINAL
        End Enum

        Public Partial Class Ecom_PartyIdentification
            Public Overridable Property AdditionalPartyIdentification As List(Of AvpList) = New List(Of AvpList)
            Public Overridable Property Gln As String
        End Class

        Public Partial Class Ecom_PartyIdentificationType
            Public Overridable Property Gln As String
            Public Overridable Property Name As String
            Public Overridable Property AdditionalPartyIdentification As List(Of AvpList) = New List(Of AvpList)
        End Class

        Public Partial Class FinancialAccount
            Public Overridable Property Number As String
            Public Overridable Property NumberTypeCode As String
            Public Overridable Property Name As String
        End Class

        Public Partial Class FinancialInstitutionInformation
            Public Overridable Property FinancialInstitutionBranchName As String
            Public Overridable Property FinancialInstitutionName As String
            Public Overridable Property FinancialRoutingNumber As FinancialRoutingNumber
            Public Overridable Property FinancialAccount As FinancialAccount
            Public Overridable Property SwiftCode As String
            Public Overridable Property ExportersCode As String
        End Class

        Public Partial Class FinancialRoutingNumber
            Public Overridable Property Number As String
            Public Overridable Property NumberTypeCode As String
        End Class

        <DataContract>
        Public Partial Class Header
            <DataMember(Name:="documentIdentification")>
            Public Overridable Property DocumentIdentification As DocumentIdentification

            <DataMember(Name:="sender")>
            Public Overridable Property Sender As Partner

            <DataMember(Name:="receiver")>
            Public Overridable Property Receiver As Partner
        End Class

        <DataContract>
        Public Partial Class Identifier
            <DataMember(Name:="authority")>
            Public Overridable Property Authority As String

            <DataMember(Name:="text")>
            Public Overridable Property Text As String
        End Class

        Public Partial Class InvoiceDocumentReference
            Inherits DocumentReference
            Public Overridable Property InvoiceTypeCode As String
            Public Overridable Property ContentOwner As ContentOwner
        End Class

        <DataContract>
        Public Partial Class Partner
            <DataMember(Name:="identifier")>
            Public Overridable Property Identifier As Identifier

            <DataMember(Name:="contactInformation")>
            Public Overridable Property ContactInformation As List(Of ContactInformation) = New List(Of ContactInformation)
        End Class

        Public Partial Class PaymentMethod
            Public Overridable Property AutomatedClearingHousePaymentFormat As String
            Public Overridable Property PaymentMethodCode As String
            Public Overridable Property PaymentMethodIdentification As String
        End Class

        Public Partial Class Settlement
            Inherits BaseDocument
            Public Overridable Property BatchIdentification As String
            Public Overridable Property PaymentEffectiveDate As Date
            Public Overridable Property SettlementCurrency As String
            Public Overridable Property SettlementHandlingTypeCode As String
            Public Overridable Property TotalAmount As Decimal?
            Public Overridable Property PaymentMethod As PaymentMethod
            Public Overridable Property Payee As TransactionalParty
            Public Overridable Property Payer As TransactionalParty
            Public Overridable Property RemitTo As TransactionalParty
            Public Overridable Property settlementIdentification As String
            Public Overridable Property SettlementLineItem As List(Of SettlementLineItem) = New List(Of SettlementLineItem)
            Public Overridable Property Extension As SettlementExtension
        End Class

        Public Partial Class SettlementAdjustment
            Public Overridable Property AdjustmentAmount As Decimal?
            Public Overridable Property FinancialAdjusmentReasonPartyRoleCode As String
            Public Overridable Property FinancialAdjustmentReasonCode As String
            Public Overridable Property TransactionalReference As TransactionalReference
        End Class

        Public Partial Class SettlementExtension
            Public Overridable Property SettlementExtensionLineItem As List(Of SettlementExtensionLineItem) = New List(Of SettlementExtensionLineItem)
            Public Overridable Property AdjustmentAndDiscountSummary As List(Of AdjustmentAndDiscountSummary) = New List(Of AdjustmentAndDiscountSummary)
            Public Overridable Property TotalAmountSplit As TotalAmountSplit
        End Class

        Public Partial Class SettlementExtensionLineItem
            Public Overridable Property Number As Integer
            Public Overridable Property DocumentType As String
            Public Overridable Property DocumentNumber As String
            Public Overridable Property ItemText As String
        End Class

        Public Partial Class SettlementLineItem
            Public Overridable Property AmountPaid As Decimal?
            Public Overridable Property LineItemNumber As Long
            Public Overridable Property OriginalAmount As Decimal?
            Public Overridable Property SettlementAdjustment As List(Of SettlementAdjustment) = New List(Of SettlementAdjustment)
            Public Overridable Property AvpList As AvpList
            Public Overridable Property DebitCreditAdvice As DocumentReference
            Public Overridable Property Invoice As InvoiceDocumentReference
            Public Overridable Property RequestForPayment As DocumentReference
            Public Overridable Property SettlementParty As List(Of SettlementParty) = New List(Of SettlementParty)
        End Class

        Public Partial Class SettlementMessage
            Public Overridable Property Header As Header
            Public Overridable Property Settlement As Settlement
        End Class

        Public Partial Class SettlementParty
            Inherits Ecom_PartyIdentification
            Public Overridable Property PartyRoleCode As String
        End Class

        Public Partial Class TotalAmountSplit
            Public Overridable Property AmountTotal As Decimal
            Public Overridable Property AmountNett As Decimal
            Public Overridable Property AmountVat As Decimal
        End Class

        Public Partial Class TransactionalParty
            Inherits Ecom_PartyIdentificationType
            Public Overridable Property Contact As List(Of Contact) = New List(Of Contact)
            Public Overridable Property Address As Address
            Public Overridable Property CommunicationChannel As List(Of AvpList) = New List(Of AvpList)
            Public Overridable Property FinancialInstitutionInformation As FinancialInstitutionInformation
            Public Overridable Property DutyFeeTaxRegistration As String
            Public Overridable Property EntityIdentification As String
        End Class

        Public Partial Class TransactionalReference
            Inherits DocumentReference
            Public Overridable Property TransactionalReferenceTypeCode As String
        End Class
    End Namespace
End Namespace

VB.NET AddSettlement DTOs

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

HTTP + CSV

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

POST /api/settlement HTTP/1.1 
Host: stf-api-uat.data-xchange.co.za 
Accept: text/csv
Content-Type: text/csv
Content-Length: length

{"settlement":{"header":{"documentIdentification":{"identifier":"String","type":"String"},"sender":{"identifier":{"authority":"String","text":"String"},"contactInformation":[{}]},"receiver":{"identifier":{"authority":"String","text":"String"},"contactInformation":[{}]}},"settlement":{"batchIdentification":"String","settlementCurrency":"String","settlementHandlingTypeCode":"String","totalAmount":0,"paymentMethod":{"automatedClearingHousePaymentFormat":"String","paymentMethodCode":"String","paymentMethodIdentification":"String"},"payee":{"contact":[{"contactTypeCode":"String","personName":"String","departmentName":"String","jobTitle":"String","responsibility":"String","communicationChannel":[{"communicationChannelCode":"String","communicationChannelName":"String","communicationValue":"String"}]}],"address":{"streetAddressOne":"String","streetAddressTwo":"String","streetAddressThree":"String","city":"String","postalCode":"String","provinceCode":"String","countryCode":"String"},"communicationChannel":[{"code":"String","value":"String"}],"financialInstitutionInformation":{"financialInstitutionBranchName":"String","financialInstitutionName":"String","financialRoutingNumber":{"number":"String","numberTypeCode":"String"},"financialAccount":{"number":"String","numberTypeCode":"String","name":"String"},"swiftCode":"String","exportersCode":"String"},"dutyFeeTaxRegistration":"String","entityIdentification":"String","gln":"String","name":"String","additionalPartyIdentification":[{"code":"String","value":"String"}]},"payer":{"contact":[{"contactTypeCode":"String","personName":"String","departmentName":"String","jobTitle":"String","responsibility":"String","communicationChannel":[{"communicationChannelCode":"String","communicationChannelName":"String","communicationValue":"String"}]}],"address":{"streetAddressOne":"String","streetAddressTwo":"String","streetAddressThree":"String","city":"String","postalCode":"String","provinceCode":"String","countryCode":"String"},"communicationChannel":[{"code":"String","value":"String"}],"financialInstitutionInformation":{"financialInstitutionBranchName":"String","financialInstitutionName":"String","financialRoutingNumber":{"number":"String","numberTypeCode":"String"},"financialAccount":{"number":"String","numberTypeCode":"String","name":"String"},"swiftCode":"String","exportersCode":"String"},"dutyFeeTaxRegistration":"String","entityIdentification":"String","gln":"String","name":"String","additionalPartyIdentification":[{"code":"String","value":"String"}]},"remitTo":{"contact":[{"contactTypeCode":"String","personName":"String","departmentName":"String","jobTitle":"String","responsibility":"String","communicationChannel":[{"communicationChannelCode":"String","communicationChannelName":"String","communicationValue":"String"}]}],"address":{"streetAddressOne":"String","streetAddressTwo":"String","streetAddressThree":"String","city":"String","postalCode":"String","provinceCode":"String","countryCode":"String"},"communicationChannel":[{"code":"String","value":"String"}],"financialInstitutionInformation":{"financialInstitutionBranchName":"String","financialInstitutionName":"String","financialRoutingNumber":{"number":"String","numberTypeCode":"String"},"financialAccount":{"number":"String","numberTypeCode":"String","name":"String"},"swiftCode":"String","exportersCode":"String"},"dutyFeeTaxRegistration":"String","entityIdentification":"String","gln":"String","name":"String","additionalPartyIdentification":[{"code":"String","value":"String"}]},"settlementIdentification":"String","settlementLineItem":[{"amountPaid":0,"lineItemNumber":0,"originalAmount":0,"settlementAdjustment":[{"adjustmentAmount":0,"financialAdjusmentReasonPartyRoleCode":"String","financialAdjustmentReasonCode":"String","transactionalReference":{"transactionalReferenceTypeCode":"String","creationDateTime":"0001-01-01","revisionNumber":0,"lineItemNumber":0,"entityIdentification":"String"}}],"avpList":{"code":"String","value":"String"},"debitCreditAdvice":{"creationDateTime":"0001-01-01","revisionNumber":0,"lineItemNumber":0,"entityIdentification":"String"},"invoice":{"invoiceTypeCode":"String","contentOwner":{"gln":"String","additionalPartyIdentification":[{"code":"String","value":"String"}]},"creationDateTime":"0001-01-01","revisionNumber":0,"lineItemNumber":0,"entityIdentification":"String"},"requestForPayment":{"creationDateTime":"0001-01-01","revisionNumber":0,"lineItemNumber":0,"entityIdentification":"String"},"settlementParty":[{"partyRoleCode":"String","additionalPartyIdentification":[{"code":"String","value":"String"}],"gln":"String"}]}],"extension":{"settlementExtensionLineItem":[{"number":0,"documentType":"String","documentNumber":"String","itemText":"String"}],"adjustmentAndDiscountSummary":[{"amountTotal":0,"amountNett":0,"amountVat":0,"reasonMessage":"String"}],"totalAmountSplit":{"amountTotal":0,"amountNett":0,"amountVat":0}},"currencyCode":"String","documentActionCode":"ADD","documentStatusCode":"ADDITIONAL_TRANSMISSION","documentStructureVersion":"String","lastUpdateDateTime":"0001-01-01","revisionNumber":0,"avpList":[{"code":"String","value":"String"}]}}}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{}