| GET | /api/settlement/{Id} | Get specific Settlement by Settlement Id |
|---|
namespace DX.STF.Application.ClientApi.Messages.Settlement
open System
open System.IO
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations
[<DataContract>]
[<AllowNullLiteral>]
type DocumentIdentification() =
[<DataMember(Name="identifier")>]
member val Identifier:String = null with get,set
[<DataMember(Name="type")>]
member val Type:String = null with get,set
[<DataMember(Name="creationDateAndTime")>]
member val CreationDateAndTime:DateTime = new DateTime() with get,set
[<DataContract>]
[<AllowNullLiteral>]
type Identifier() =
[<DataMember(Name="authority")>]
member val Authority:String = null with get,set
[<DataMember(Name="text")>]
member val Text:String = null with get,set
[<DataContract>]
[<AllowNullLiteral>]
type ContactInformation() =
class end
[<DataContract>]
[<AllowNullLiteral>]
type Partner() =
[<DataMember(Name="identifier")>]
member val Identifier:Identifier = null with get,set
[<DataMember(Name="contactInformation")>]
member val ContactInformation:ResizeArray<ContactInformation> = null with get,set
[<DataContract>]
[<AllowNullLiteral>]
type Header() =
[<DataMember(Name="documentIdentification")>]
member val DocumentIdentification:DocumentIdentification = null with get,set
[<DataMember(Name="sender")>]
member val Sender:Partner = null with get,set
[<DataMember(Name="receiver")>]
member val Receiver:Partner = null with get,set
type DocumentAction =
| ADD = 0
| CHANGE_BY_REFRESH = 1
| DELETE = 2
| REJECTED = 3
type DocumentStatus =
| ADDITIONAL_TRANSMISSION = 0
| COPY = 1
| ORIGINAL = 2
[<AllowNullLiteral>]
type AvpList() =
member val Code:String = null with get,set
member val Value:String = null with get,set
[<AllowNullLiteral>]
type BaseDocument() =
member val CurrencyCode:String = null with get,set
member val CreationDateTime:DateTime = new DateTime() with get,set
member val DocumentActionCode:DocumentAction = new DocumentAction() with get,set
member val DocumentStatusCode:DocumentStatus = new DocumentStatus() with get,set
member val DocumentStructureVersion:String = null with get,set
member val LastUpdateDateTime:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val RevisionNumber:Nullable<Int64> = new Nullable<Int64>() with get,set
member val AvpList:ResizeArray<AvpList> = null with get,set
[<AllowNullLiteral>]
type PaymentMethod() =
member val AutomatedClearingHousePaymentFormat:String = null with get,set
member val PaymentMethodCode:String = null with get,set
member val PaymentMethodIdentification:String = null with get,set
[<AllowNullLiteral>]
type Ecom_PartyIdentificationType() =
member val Gln:String = null with get,set
member val Name:String = null with get,set
member val AdditionalPartyIdentification:ResizeArray<AvpList> = null with get,set
[<AllowNullLiteral>]
type CommunicationChannel() =
member val CommunicationChannelCode:String = null with get,set
member val CommunicationChannelName:String = null with get,set
member val CommunicationValue:String = null with get,set
[<AllowNullLiteral>]
type Contact() =
member val ContactTypeCode:String = null with get,set
member val PersonName:String = null with get,set
member val DepartmentName:String = null with get,set
member val JobTitle:String = null with get,set
member val Responsibility:String = null with get,set
member val CommunicationChannel:ResizeArray<CommunicationChannel> = null with get,set
[<AllowNullLiteral>]
type Address() =
member val StreetAddressOne:String = null with get,set
member val StreetAddressTwo:String = null with get,set
member val StreetAddressThree:String = null with get,set
member val City:String = null with get,set
member val PostalCode:String = null with get,set
member val ProvinceCode:String = null with get,set
member val CountryCode:String = null with get,set
[<AllowNullLiteral>]
type FinancialRoutingNumber() =
member val Number:String = null with get,set
member val NumberTypeCode:String = null with get,set
[<AllowNullLiteral>]
type FinancialAccount() =
member val Number:String = null with get,set
member val NumberTypeCode:String = null with get,set
member val Name:String = null with get,set
[<AllowNullLiteral>]
type FinancialInstitutionInformation() =
member val FinancialInstitutionBranchName:String = null with get,set
member val FinancialInstitutionName:String = null with get,set
member val FinancialRoutingNumber:FinancialRoutingNumber = null with get,set
member val FinancialAccount:FinancialAccount = null with get,set
member val SwiftCode:String = null with get,set
member val ExportersCode:String = null with get,set
[<AllowNullLiteral>]
type TransactionalParty() =
inherit Ecom_PartyIdentificationType()
member val Contact:ResizeArray<Contact> = null with get,set
member val Address:Address = null with get,set
member val CommunicationChannel:ResizeArray<AvpList> = null with get,set
member val FinancialInstitutionInformation:FinancialInstitutionInformation = null with get,set
member val DutyFeeTaxRegistration:String = null with get,set
member val EntityIdentification:String = null with get,set
[<AllowNullLiteral>]
type DocumentReference() =
member val CreationDateTime:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val RevisionNumber:Nullable<Int64> = new Nullable<Int64>() with get,set
member val LineItemNumber:Nullable<Int64> = new Nullable<Int64>() with get,set
member val EntityIdentification:String = null with get,set
[<AllowNullLiteral>]
type TransactionalReference() =
inherit DocumentReference()
member val TransactionalReferenceTypeCode:String = null with get,set
[<AllowNullLiteral>]
type SettlementAdjustment() =
member val AdjustmentAmount:Nullable<Decimal> = new Nullable<Decimal>() with get,set
member val FinancialAdjusmentReasonPartyRoleCode:String = null with get,set
member val FinancialAdjustmentReasonCode:String = null with get,set
member val TransactionalReference:TransactionalReference = null with get,set
[<AllowNullLiteral>]
type ContentOwner() =
member val Gln:String = null with get,set
member val AdditionalPartyIdentification:ResizeArray<AvpList> = null with get,set
[<AllowNullLiteral>]
type InvoiceDocumentReference() =
inherit DocumentReference()
member val InvoiceTypeCode:String = null with get,set
member val ContentOwner:ContentOwner = null with get,set
[<AllowNullLiteral>]
type Ecom_PartyIdentification() =
member val AdditionalPartyIdentification:ResizeArray<AvpList> = null with get,set
member val Gln:String = null with get,set
[<AllowNullLiteral>]
type SettlementParty() =
inherit Ecom_PartyIdentification()
member val PartyRoleCode:String = null with get,set
[<AllowNullLiteral>]
type SettlementLineItem() =
member val AmountPaid:Nullable<Decimal> = new Nullable<Decimal>() with get,set
member val LineItemNumber:Int64 = new Int64() with get,set
member val OriginalAmount:Nullable<Decimal> = new Nullable<Decimal>() with get,set
member val SettlementAdjustment:ResizeArray<SettlementAdjustment> = null with get,set
member val AvpList:AvpList = null with get,set
member val DebitCreditAdvice:DocumentReference = null with get,set
member val Invoice:InvoiceDocumentReference = null with get,set
member val RequestForPayment:DocumentReference = null with get,set
member val SettlementParty:ResizeArray<SettlementParty> = null with get,set
[<AllowNullLiteral>]
type SettlementExtensionLineItem() =
member val Number:Int32 = new Int32() with get,set
member val DocumentType:String = null with get,set
member val DocumentNumber:String = null with get,set
member val ItemText:String = null with get,set
[<AllowNullLiteral>]
type AdjustmentAndDiscountSummary() =
member val AmountTotal:Decimal = new Decimal() with get,set
member val AmountNett:Decimal = new Decimal() with get,set
member val AmountVat:Decimal = new Decimal() with get,set
member val ReasonMessage:String = null with get,set
[<AllowNullLiteral>]
type TotalAmountSplit() =
member val AmountTotal:Decimal = new Decimal() with get,set
member val AmountNett:Decimal = new Decimal() with get,set
member val AmountVat:Decimal = new Decimal() with get,set
[<AllowNullLiteral>]
type SettlementExtension() =
member val SettlementExtensionLineItem:ResizeArray<SettlementExtensionLineItem> = null with get,set
member val AdjustmentAndDiscountSummary:ResizeArray<AdjustmentAndDiscountSummary> = null with get,set
member val TotalAmountSplit:TotalAmountSplit = null with get,set
[<AllowNullLiteral>]
type Settlement() =
inherit BaseDocument()
member val BatchIdentification:String = null with get,set
member val PaymentEffectiveDate:DateTime = new DateTime() with get,set
member val SettlementCurrency:String = null with get,set
member val SettlementHandlingTypeCode:String = null with get,set
member val TotalAmount:Nullable<Decimal> = new Nullable<Decimal>() with get,set
member val PaymentMethod:PaymentMethod = null with get,set
member val Payee:TransactionalParty = null with get,set
member val Payer:TransactionalParty = null with get,set
member val RemitTo:TransactionalParty = null with get,set
member val settlementIdentification:String = null with get,set
member val SettlementLineItem:ResizeArray<SettlementLineItem> = null with get,set
member val Extension:SettlementExtension = null with get,set
[<AllowNullLiteral>]
type SettlementMessage() =
member val Header:Header = null with get,set
member val Settlement:Settlement = null with get,set
///<summary>
///Settlement
///</summary>
[<Api(Description="Settlement")>]
[<ApiResponse(Description="Settlement data", IsDefaultResponse=true, StatusCode=200)>]
[<ApiResponse(Description="No Content", ResponseType=typeof<IReturnVoid>, StatusCode=204)>]
[<ApiResponse(Description="Specified argument was out of the range of valid values.", ResponseType=typeof<ArgumentOutOfRangeException>, StatusCode=400)>]
[<AllowNullLiteral>]
type GetSettlementById() =
///<summary>
///Settlement ID or Token
///</summary>
[<ApiMember(Description="Settlement ID or Token", ExcludeInSchema=true, ParameterType="path")>]
member val Id:Guid = new Guid() with get,set
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /api/settlement/{Id} HTTP/1.1
Host: stf-api-uat.data-xchange.co.za
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
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
}
]
}
}