| POST | /CoreBanking/TransferFunds |
|---|
import Foundation
import ServiceStack
// @DataContract
public class TransferFunds : ServiceRequestBase
{
/**
* The account number for the account which will have funds removed from it
*/
// @DataMember
// @ApiMember(DataType="long", Description="The account number for the account which will have funds removed from it", IsRequired=true)
public var sourceAccount:Int?
/**
* OBSOLETE
*/
// @DataMember
// @ApiMember(DataType="int", Description="OBSOLETE")
public var sourceAccountType:Int?
/**
* The account number for the account which will have funds added to it
*/
// @DataMember
// @ApiMember(DataType="long", Description="The account number for the account which will have funds added to it", IsRequired=true)
public var destinationAccount:Int?
/**
* The account type ID of the destination account. 1='Checking/DDA', 2='Savings', 3='COD'
*/
// @DataMember
// @ApiMember(DataType="int", Description="The account type ID of the destination account. 1='Checking/DDA', 2='Savings', 3='COD'")
public var destinationAccountType:Int?
/**
* The USD amount which to transfer between the two accounts
*/
// @DataMember
// @ApiMember(DataType="double", Description="The USD amount which to transfer between the two accounts", IsRequired=true)
public var transferAmount:Double?
/**
* A comment related to the tranferring away of funds from the source account
*/
// @DataMember
// @ApiMember(DataType="string", Description="A comment related to the tranferring away of funds from the source account")
public var sourceAccountTransferNote:String?
/**
* A comment related to the tranferring in of funds to the destination account
*/
// @DataMember
// @ApiMember(DataType="string", Description="A comment related to the tranferring in of funds to the destination account")
public var destinationAccountTransferNote:String?
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case sourceAccount
case sourceAccountType
case destinationAccount
case destinationAccountType
case transferAmount
case sourceAccountTransferNote
case destinationAccountTransferNote
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
sourceAccount = try container.decodeIfPresent(Int.self, forKey: .sourceAccount)
sourceAccountType = try container.decodeIfPresent(Int.self, forKey: .sourceAccountType)
destinationAccount = try container.decodeIfPresent(Int.self, forKey: .destinationAccount)
destinationAccountType = try container.decodeIfPresent(Int.self, forKey: .destinationAccountType)
transferAmount = try container.decodeIfPresent(Double.self, forKey: .transferAmount)
sourceAccountTransferNote = try container.decodeIfPresent(String.self, forKey: .sourceAccountTransferNote)
destinationAccountTransferNote = try container.decodeIfPresent(String.self, forKey: .destinationAccountTransferNote)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if sourceAccount != nil { try container.encode(sourceAccount, forKey: .sourceAccount) }
if sourceAccountType != nil { try container.encode(sourceAccountType, forKey: .sourceAccountType) }
if destinationAccount != nil { try container.encode(destinationAccount, forKey: .destinationAccount) }
if destinationAccountType != nil { try container.encode(destinationAccountType, forKey: .destinationAccountType) }
if transferAmount != nil { try container.encode(transferAmount, forKey: .transferAmount) }
if sourceAccountTransferNote != nil { try container.encode(sourceAccountTransferNote, forKey: .sourceAccountTransferNote) }
if destinationAccountTransferNote != nil { try container.encode(destinationAccountTransferNote, forKey: .destinationAccountTransferNote) }
}
}
// @DataContract
public class ServiceRequestBase : IHasVersion, Codable
{
required public init(){}
}
// @DataContract
public class ServiceResponseBase : Codable
{
/**
* Identifies whether the request executed successfully, however does not indicated requested data was found
*/
// @DataMember
// @ApiMember(Description="Identifies whether the request executed successfully, however does not indicated requested data was found")
public var isSuccessful:Bool?
/**
* The status code returned by the service
*/
// @DataMember
// @ApiMember(Description="The status code returned by the service")
public var statusCode:Int?
/**
* The status message returned by the service
*/
// @DataMember
// @ApiMember(Description="The status message returned by the service")
public var statusMessage:String?
// @DataMember
// @ApiMember(ExcludeInSchema=true)
public var serviceDebugFields:[String:String] = [:]
required public init(){}
}
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.
POST /CoreBanking/TransferFunds HTTP/1.1
Host: services.allianceassociationbank.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
SourceAccount: 0,
SourceAccountType: 0,
DestinationAccount: 0,
DestinationAccountType: 0,
TransferAmount: 0,
SourceAccountTransferNote: String,
DestinationAccountTransferNote: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
IsSuccessful: False,
StatusCode: 0,
StatusMessage: String,
ServiceDebugFields:
{
ApiServiceHost: WAB-WEBPW02,
ApiServiceHostVersion: 1.0.0.0
}
}