POST | /OrderBoarding |
---|
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using Autoboarding.Common.Requests;
using BoardingGateway.Common.Requests.Orders;
using BoardingGateway.Common.Requests.Boarding.BusinessDetails;
using BoardingGateway.Common.Requests.Boarding.Acquiring;
using BoardingGateway.Common.Requests.Boarding.Products;
using Autoboarding.Common.Responses;
using Autoboarding.Common;
namespace Autoboarding.Common
{
[DataContract]
public enum ApplicationBoardingStatus
{
PENDING = 0,
IN_PROGRESS = 5,
FAILED = 9,
COMPLETED = 10,
}
[DataContract]
public enum ApplicationQueueStatus
{
Queued = 0,
StandardisedXML = 20,
ReadyToDistribute = 40,
AwaitingDistributeResponse = 60,
ReadyToAutoboard = 80,
ThrottleCheckPassed = 100,
EligibilityCheckPassed = 300,
SentToAutoboardService = 400,
AutoboardingSuspended = 450,
SuccessfullyBoarded = 500,
QueueError = 1000,
ThrottleCheckError = 1100,
XMLStandardisationError = 1200,
EligibilityCheckError = 1300,
AutoboardingError = 1400,
IneligibleThrottleLimit = 2100,
IneligibleApplication = 2300,
}
}
namespace Autoboarding.Common.Requests
{
public partial class OrderBoardingRequest
{
[ApiMember(IsRequired=true)]
public virtual Guid CorrelationId { get; set; }
[ApiMember(IsRequired=true)]
public virtual Order OrderJson { get; set; }
public virtual Guid? OnboardingRequestId { get; set; }
public virtual Guid? LocalEnterpriseId { get; set; }
public virtual string Audience { get; set; }
}
}
namespace Autoboarding.Common.Responses
{
public partial class InitiateBoardingResponse
{
public InitiateBoardingResponse()
{
ErrorMessages = new List<string>{};
}
public virtual Guid ApplicationGuid { get; set; }
public virtual int CSR { get; set; }
public virtual Guid? ApplicationQueueGuid { get; set; }
public virtual ApplicationQueueStatus QueueStatus { get; set; }
public virtual ApplicationBoardingStatus? BoardingStatus { get; set; }
public virtual List<string> ErrorMessages { get; set; }
}
}
namespace BoardingGateway.Common.Requests.Boarding.Acquiring
{
public partial class CardCharge
{
public virtual CardType CardType { get; set; }
public virtual RateChargePair Purchase { get; set; }
public virtual RateChargePair Refund { get; set; }
}
public enum CardType
{
VisaDebit,
VisaCredit,
VisaCommercial,
MastercardDebit,
MastercardCredit,
MastercardCommercial,
MastercardWorldSignia,
JcbCredit,
JcbDebit,
JcbCommercial,
DinersDiscoverCredit,
DinersDiscoverDebit,
DinersDiscoverCommercial,
Amex,
ChinaUnionPayCredit,
ChinaUnionPayDebit,
ChinaUnionPayCommercial,
VisaBusinessDebit,
MastercardBusiness,
}
public enum CurrencyCodeType
{
GBP,
EUR,
USD,
AED,
AFN,
ALL,
AMD,
ANG,
AOA,
ARS,
AUD,
AWG,
AZN,
BAM,
BBD,
BDT,
BGN,
BHD,
BIF,
BMD,
BND,
BOB,
BRL,
BSD,
BTN,
BWP,
BYR,
BZD,
CAD,
CDF,
CHF,
CLP,
CNY,
COP,
COU,
CRC,
CUC,
CUP,
CVE,
CZK,
DJF,
DKK,
DOP,
DZD,
EEK,
EGP,
ERN,
ETB,
FJD,
FKP,
GEL,
GHS,
GIP,
GMD,
GNF,
GTQ,
GYD,
HKD,
HNL,
HRK,
HTG,
HUF,
IDR,
ILS,
INR,
IQD,
IRR,
ISK,
JMD,
JOD,
JPY,
KES,
KGS,
KHR,
KMF,
KPW,
KRW,
KWD,
KYD,
KZT,
LAK,
LBP,
LKR,
LRD,
LSL,
LTL,
LVL,
LYD,
MAD,
MDL,
MGA,
MKD,
MMK,
MNT,
MOP,
MRO,
MUR,
MVR,
MWK,
MXN,
MYR,
MZN,
NAD,
NGN,
NIO,
NOK,
NPR,
NZD,
OMR,
PAB,
PEN,
PGK,
PHP,
PKR,
PLN,
PYG,
QAR,
RON,
RSD,
RUB,
RWF,
SAR,
SBD,
SCR,
SDG,
SEK,
SGD,
SHP,
SLL,
SOS,
SRD,
STD,
SYP,
SZL,
THB,
TJS,
TMT,
TND,
TOP,
TRY,
TTD,
TWD,
TZS,
UAH,
UGX,
UYU,
UZS,
VEF,
VND,
VUV,
WST,
YER,
ZAR,
ZMK,
ZWL,
}
public partial class PremiumTransactionCharge
{
public virtual PremiumTransactionChargeType Type { get; set; }
public virtual RateChargePair CreditCard { get; set; }
public virtual RateChargePair DebitCard { get; set; }
}
public enum PremiumTransactionChargeType
{
Magstripe,
CnpMoto,
Paper,
PanKeyEntry,
SecureEcom,
NonSecureEcom,
InterRegional,
IntraRegional,
NonAuth,
}
public partial class RateChargePair
{
public virtual decimal? Percent { get; set; }
public virtual decimal? Cost { get; set; }
}
public partial class TradingCurrency
{
public virtual IEnumerable<CurrencyCodeType> TransactionCurrencies { get; set; }
public virtual CurrencyCodeType SettlementCurrency { get; set; }
public virtual string SettlementBankSwift { get; set; }
public virtual string SettlementBankIban { get; set; }
}
}
namespace BoardingGateway.Common.Requests.Boarding.BusinessDetails
{
public partial class Address
{
public virtual string Address1 { get; set; }
public virtual string Address2 { get; set; }
public virtual string Address3 { get; set; }
public virtual string Postcode { get; set; }
public virtual string City { get; set; }
public virtual string State { get; set; }
public virtual string Countrycode { get; set; }
}
public enum PositionType
{
SoleTrader = 0,
Partner = 1,
Director = 2,
CompanySecretary = 3,
ChiefFinancialOfficer = 4,
Chairman = 5,
DesignatedBoardMember = 7,
Settlor = 8,
Treasurer = 9,
Trustee = 10,
ChiefExecutive = 11,
AuthorisedPersonWithConsent = 12,
NonExecutiveDirector = 13,
ContactPerson = 14,
Shareholder = 15,
}
public partial class Principal
{
public virtual string Title { get; set; }
public virtual string FirstName { get; set; }
public virtual string MiddleName { get; set; }
public virtual string LastName { get; set; }
public virtual DateTime DateOfBirth { get; set; }
public virtual string Nationality { get; set; }
public virtual IEnumerable<PrincipalAddress> HomeAddresses { get; set; }
public virtual decimal OwnershipPercentage { get; set; }
public virtual PositionType Position { get; set; }
public virtual bool? IsFinancialController { get; set; }
}
public partial class PrincipalAddress
: Address
{
public virtual DateTime StartDate { get; set; }
public virtual DateTime? EndDate { get; set; }
}
}
namespace BoardingGateway.Common.Requests.Boarding.Products
{
public partial class ProductFee
{
public virtual ProductFeeType Type { get; set; }
public virtual decimal Cost { get; set; }
}
public enum ProductFeeType
{
HireCost,
TransactionCost,
ServiceFee,
ManagedServiceSetup,
ManagedServiceMonthly,
}
}
namespace BoardingGateway.Common.Requests.Orders
{
public partial class AccessibilityOptions
{
public virtual bool? AudiotapeRequired { get; set; }
public virtual bool? LargePrintRequired { get; set; }
public virtual bool? UncontractedBrailleGrade1Required { get; set; }
public virtual bool? UncontractedBrailleGrade2Required { get; set; }
public virtual bool? NextGenerationTextRequired { get; set; }
}
public partial class Acquiring
{
public virtual int SettlementPeriod { get; set; }
public virtual string FundingMode { get; set; }
public virtual Rates Rates { get; set; }
public virtual IEnumerable<TradingCurrency> TradingCurrencies { get; set; }
}
public partial class AdditionalTariff
{
public virtual string Type { get; set; }
public virtual decimal Cost { get; set; }
}
public partial class Address
{
public virtual string Address1 { get; set; }
public virtual string Address2 { get; set; }
public virtual string Address3 { get; set; }
public virtual string Postcode { get; set; }
public virtual string City { get; set; }
public virtual string State { get; set; }
public virtual string CountryCode { get; set; }
}
public partial class AuthorisedSigner
: Contact
{
public virtual DateTime? DateOfBirth { get; set; }
public virtual string CountryCode { get; set; }
}
public partial class BankAccount
{
public virtual string SortCode { get; set; }
public virtual string AccountNumber { get; set; }
public virtual string BankName { get; set; }
public virtual string BankAccountName { get; set; }
public virtual string SwiftCode { get; set; }
public virtual string InternationalBankAccountNumber { get; set; }
}
public partial class ClearingDetails
{
public virtual string MerchantUrl { get; set; }
public virtual string Telephone { get; set; }
public virtual string Email { get; set; }
}
public partial class Contact
: Person
{
public virtual Guid? IdpGuid { get; set; }
public virtual string TelephoneNumber { get; set; }
public virtual string AltTelephoneNumber { get; set; }
public virtual string Email { get; set; }
public virtual string Position { get; set; }
public virtual string PreferredContactMethod { get; set; }
public virtual string PreferredContactBestTime { get; set; }
}
public partial class Deposits
{
public virtual int PerOfSalesWhereInitialDepositTaken { get; set; }
public virtual int SizePerTotalValue { get; set; }
public virtual int AvgTimeBeforeDeliveryDepositTaken { get; set; }
public virtual int AvgTimeBeforeDeliveryBalanceTaken { get; set; }
}
public partial class Financials
{
public virtual decimal Annual { get; set; }
public virtual decimal CardPercentage { get; set; }
public virtual decimal CreditCardPercentage { get; set; }
public virtual decimal AverageTransactionValue { get; set; }
public virtual decimal? CardNotPresentPercentage { get; set; }
}
public partial class GoodsAndServices
{
public virtual bool? GoodsProvidedByThirdParty { get; set; }
public virtual Deposits Deposits { get; set; }
public virtual WarrantiesAndGuarantees WarrantiesAndGuarantees { get; set; }
public virtual Prepayments Prepayments { get; set; }
public virtual MembershipsSubscriptionAndInsurancePremiums MembershipsSubscriptionAndInsurancePremiums { get; set; }
public virtual Address StockHeldAtAnotherAddressLocation { get; set; }
}
public partial class InvoiceContact
: Person
{
public virtual string Email { get; set; }
public virtual string Position { get; set; }
}
public partial class MembershipsSubscriptionAndInsurancePremiums
{
public virtual int PercCardTurnover { get; set; }
public virtual int AvgLengthInMonths { get; set; }
public virtual decimal MembershipCost { get; set; }
}
public partial class MerchantAddress
: Address
{
public virtual string AddressType { get; set; }
public virtual bool IsCommercial { get; set; }
}
public partial class MerchantCategory
{
public virtual string MerchantCategoryCode { get; set; }
public virtual string MerchantCategoryDescription { get; set; }
public virtual string DescriptionOfGoodsAndServices { get; set; }
}
public partial class Order
{
public virtual OrderMeta Meta { get; set; }
public virtual OrderPayload Payload { get; set; }
}
public partial class OrderMeta
{
public virtual string SourceSystem { get; set; }
public virtual string SourceSystemIdentifier { get; set; }
public virtual string Csr { get; set; }
public virtual string UltimateParentId { get; set; }
public virtual string OrderType { get; set; }
public virtual string CustomerType { get; set; }
public virtual Partner Partner { get; set; }
public virtual string SellerCode { get; set; }
public virtual string SellerEmail { get; set; }
public virtual string SpecialInstructions { get; set; }
public virtual AuthorisedSigner Contact { get; set; }
public virtual string OfferDetails { get; set; }
public virtual DateTime DateContractAccepted { get; set; }
public virtual bool? WorldpayBusinessFinanceInterest { get; set; }
public virtual bool? Sar { get; set; }
public virtual bool HasSupportingFiles { get; set; }
}
public partial class OrderPayload
{
public virtual string PartyId { get; set; }
public virtual string ParentPartyId { get; set; }
public virtual string LegalName { get; set; }
public virtual string TradingName { get; set; }
public virtual IEnumerable<MerchantAddress> Addresses { get; set; }
public virtual Contact TradingContact { get; set; }
public virtual InvoiceContact InvoiceContact { get; set; }
public virtual BankAccount SettlementBankAccount { get; set; }
public virtual BankAccount ChargesBankAccount { get; set; }
public virtual string DirectDebitCorrespondenceEmail { get; set; }
public virtual string WebsiteAddress { get; set; }
public virtual string CompanyType { get; set; }
public virtual string CompanyTypeOther { get; set; }
public virtual string CompanyRegistrationNumber { get; set; }
public virtual string CharityNumber { get; set; }
public virtual IEnumerable<MerchantCategory> MerchantCategories { get; set; }
public virtual string VatNumber { get; set; }
public virtual DateTime? DateStartedTrading { get; set; }
public virtual DateTime? AnticipatedGoLiveDate { get; set; }
public virtual string CountryOfIncorporation { get; set; }
public virtual string RegionOfIncorporation { get; set; }
public virtual Financials Financials { get; set; }
public virtual bool? NewToCards { get; set; }
public virtual TradeAssociation TradeAssociation { get; set; }
public virtual IEnumerable<Principal> Principals { get; set; }
public virtual GoodsAndServices GoodsAndServices { get; set; }
public virtual AccessibilityOptions AccessibilityOptions { get; set; }
public virtual ClearingDetails ClearingDetails { get; set; }
public virtual Acquiring Acquiring { get; set; }
public virtual IEnumerable<Subscription> Subscriptions { get; set; }
public virtual IEnumerable<OrderPayload> Children { get; set; }
}
public partial class Partner
{
public virtual string PartnerName { get; set; }
public virtual string PartnerId { get; set; }
}
public partial class Person
{
public virtual string Title { get; set; }
public virtual string FirstName { get; set; }
public virtual string MiddleName { get; set; }
public virtual string LastName { get; set; }
}
public partial class Prepayments
{
public virtual int PercGoodsWherePaymentTakenPriorToDelivery { get; set; }
public virtual int AvgDaysPaymentTakenInAdvance { get; set; }
}
public partial class Product
{
public virtual string Name { get; set; }
public virtual string Type { get; set; }
public virtual string Variant { get; set; }
public virtual int? Quantity { get; set; }
public virtual IEnumerable<ProductFee> RelatedFees { get; set; }
public virtual IEnumerable<ProductOption> Options { get; set; }
}
public partial class ProductOption
{
public virtual string Type { get; set; }
public virtual string Value { get; set; }
}
public partial class Rates
{
public virtual IEnumerable<CardCharge> CardCharges { get; set; }
public virtual IEnumerable<PremiumTransactionCharge> PremiumTransactionCharges { get; set; }
public virtual IEnumerable<AdditionalTariff> AdditionalTariffs { get; set; }
}
public partial class Subscription
{
public virtual string Proposition { get; set; }
public virtual string PricingPackage { get; set; }
public virtual int? Term { get; set; }
public virtual int? RenewalLength { get; set; }
public virtual Acquiring Acquiring { get; set; }
public virtual IEnumerable<Product> Products { get; set; }
}
public partial class TradeAssociation
{
public virtual string GroupName { get; set; }
public virtual string MemberNumber { get; set; }
}
public partial class WarrantiesAndGuarantees
{
public virtual int PercCardTurnover { get; set; }
public virtual int AvgLengthInMonths { get; set; }
public virtual int PercGoodsReturned { get; set; }
public virtual string ThirdPartyProviders { get; set; }
}
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json
To embed the response in a jsonp callback, append ?callback=myCallback
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /OrderBoarding HTTP/1.1
Host: abservice.worldpay.com
Accept: application/json
Content-Type: application/json
Content-Length: length
{"correlationId":"00000000000000000000000000000000","orderJson":{"meta":{"sourceSystem":"String","sourceSystemIdentifier":"String","csr":"String","ultimateParentId":"String","orderType":"String","customerType":"String","partner":{"partnerName":"String","partnerId":"String"},"sellerCode":"String","sellerEmail":"String","specialInstructions":"String","contact":{"dateOfBirth":"\/Date(-62135596800000-0000)\/","countryCode":"String","idpGuid":"00000000000000000000000000000000","telephoneNumber":"String","altTelephoneNumber":"String","email":"String","position":"String","preferredContactMethod":"String","preferredContactBestTime":"String","title":"String","firstName":"String","middleName":"String","lastName":"String"},"offerDetails":"String","dateContractAccepted":"\/Date(-62135596800000-0000)\/","worldpayBusinessFinanceInterest":false,"sar":false,"hasSupportingFiles":false},"payload":{"partyId":"String","parentPartyId":"String","legalName":"String","tradingName":"String","tradingContact":{"idpGuid":"00000000000000000000000000000000","telephoneNumber":"String","altTelephoneNumber":"String","email":"String","position":"String","preferredContactMethod":"String","preferredContactBestTime":"String","title":"String","firstName":"String","middleName":"String","lastName":"String"},"invoiceContact":{"email":"String","position":"String","title":"String","firstName":"String","middleName":"String","lastName":"String"},"settlementBankAccount":{"sortCode":"String","accountNumber":"String","bankName":"String","bankAccountName":"String","swiftCode":"String","internationalBankAccountNumber":"String"},"chargesBankAccount":{"sortCode":"String","accountNumber":"String","bankName":"String","bankAccountName":"String","swiftCode":"String","internationalBankAccountNumber":"String"},"directDebitCorrespondenceEmail":"String","websiteAddress":"String","companyType":"String","companyTypeOther":"String","companyRegistrationNumber":"String","charityNumber":"String","vatNumber":"String","dateStartedTrading":"\/Date(-62135596800000-0000)\/","anticipatedGoLiveDate":"\/Date(-62135596800000-0000)\/","countryOfIncorporation":"String","regionOfIncorporation":"String","financials":{"annual":0,"cardPercentage":0,"creditCardPercentage":0,"averageTransactionValue":0,"cardNotPresentPercentage":0},"newToCards":false,"tradeAssociation":{"groupName":"String","memberNumber":"String"},"goodsAndServices":{"goodsProvidedByThirdParty":false,"deposits":{"perOfSalesWhereInitialDepositTaken":0,"sizePerTotalValue":0,"avgTimeBeforeDeliveryDepositTaken":0,"avgTimeBeforeDeliveryBalanceTaken":0},"warrantiesAndGuarantees":{"percCardTurnover":0,"avgLengthInMonths":0,"percGoodsReturned":0,"thirdPartyProviders":"String"},"prepayments":{"percGoodsWherePaymentTakenPriorToDelivery":0,"avgDaysPaymentTakenInAdvance":0},"membershipsSubscriptionAndInsurancePremiums":{"percCardTurnover":0,"avgLengthInMonths":0,"membershipCost":0},"stockHeldAtAnotherAddressLocation":{"address1":"String","address2":"String","address3":"String","postcode":"String","city":"String","state":"String","countryCode":"String"}},"accessibilityOptions":{"audiotapeRequired":false,"largePrintRequired":false,"uncontractedBrailleGrade1Required":false,"uncontractedBrailleGrade2Required":false,"nextGenerationTextRequired":false},"clearingDetails":{"merchantUrl":"String","telephone":"String","email":"String"},"acquiring":{"settlementPeriod":0,"fundingMode":"String","rates":{}}}},"onboardingRequestId":"00000000000000000000000000000000","localEnterpriseId":"00000000000000000000000000000000","audience":"String"}
HTTP/1.1 200 OK Content-Type: application/json Content-Length: length {"applicationGuid":"00000000000000000000000000000000","csr":0,"applicationQueueGuid":"00000000000000000000000000000000","queueStatus":"Queued","boardingStatus":"PENDING","errorMessages":["String"]}