BokaMera.API.Host

<back to all web services

QvicklyCheckoutIpnCallBack

The following routes are available for this service:
POST/payment/billmate/v1/ipncallbackIPN callback for Qvickly checkout 1.0IPN callback for Qvickly checkout 1.0
import Foundation
import ServiceStack

public class QvicklyCheckoutIpnCallBack : ICompany, Codable
{
    /**
    * The company id, if empty will use the company id for the user you are logged in with.
    */
    // @ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.")
    public var companyId:String?

    /**
    * Internal reference id (Could be booking, could be Article..)
    */
    // @ApiMember(Description="Internal reference id (Could be booking, could be Article..)")
    public var bookingId:String

    /**
    * The payment credentials.
    */
    // @ApiMember(Description="The payment credentials.")
    public var credentials:CredentialsResponse

    /**
    * The payment ipn callback data.
    */
    // @ApiMember(Description="The payment ipn callback data.")
    public var data:QvicklyIpnCallbackResponseData

    /**
    * Article type (Could be Service, rebate code types, etc..
    */
    // @ApiMember(Description="Article type (Could be Service, rebate code types, etc..", IsRequired=true)
    public var articleTypeId:Int

    required public init(){}
}

public class CredentialsResponse : Codable
{
    public var hash:String
    public var id:String
    public var version:String
    public var client:String
    public var serverdata:ServerDataResponse
    public var time:String
    public var test:String
    public var language:String

    required public init(){}
}

public class ServerDataResponse : Codable
{
    public var httP_HOST:String
    public var httP_CONNECTION:String
    public var httP_CACHE_CONTROL:String
    public var httP_ACCEPT:String
    public var httP_USER_AGENT:String
    public var httP_ACCEPT_ENCODING:String
    public var httP_ACCEPT_LANGUAGE:String
    public var path:String
    public var serveR_SOFTWARE:String
    public var serveR_NAME:String
    public var serveR_ADDR:String
    public var serveR_PORT:String
    public var remotE_ADDR:String
    public var remotE_PORT:String
    public var gatewaY_INTERFACE:String
    public var serveR_PROTOCOL:String
    public var requesT_METHOD:String
    public var querY_STRING:String
    public var requesT_TIME:String

    required public init(){}
}

public class QvicklyIpnCallbackResponseData : Codable
{
    public var number:String
    public var status:String
    public var orderid:String
    public var url:String

    required public init(){}
}

public class IpnCallBackResponse : Codable
{
    public var message:String
    public var success:Bool

    required public init(){}
}


Swift QvicklyCheckoutIpnCallBack DTOs

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

HTTP + JSV

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

POST /payment/billmate/v1/ipncallback HTTP/1.1 
Host: api.bokamera.se 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	CompanyId: 00000000-0000-0000-0000-000000000000,
	BookingId: String,
	credentials: 
	{
		hash: String,
		id: String,
		version: String,
		client: String,
		serverdata: 
		{
			HTTP_HOST: String,
			HTTP_CONNECTION: String,
			HTTP_CACHE_CONTROL: String,
			HTTP_ACCEPT: String,
			HTTP_USER_AGENT: String,
			HTTP_ACCEPT_ENCODING: String,
			HTTP_ACCEPT_LANGUAGE: String,
			PATH: String,
			SERVER_SOFTWARE: String,
			SERVER_NAME: String,
			SERVER_ADDR: String,
			SERVER_PORT: String,
			REMOTE_ADDR: String,
			REMOTE_PORT: String,
			GATEWAY_INTERFACE: String,
			SERVER_PROTOCOL: String,
			REQUEST_METHOD: String,
			QUERY_STRING: String,
			REQUEST_TIME: String
		},
		time: String,
		test: String,
		language: String
	},
	data: 
	{
		number: String,
		status: String,
		orderid: String,
		url: String
	},
	ArticleTypeId: 0
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Message: String,
	Success: False
}