BokaMera.API.Host

<back to all web services

CreateRebateCodeTransaction

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin
The following routes are available for this service:
POST/rebatecodes/transactionsCreate transaction for the rebate codeCreate transaction for the rebate code
namespace BokaMera.API.ServiceModel.Dtos

open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    [<AllowNullLiteral>]
    type RebateCodeServiceResponse() = 
        member val Id:Int32 = new Int32() with get,set
        member val Name:String = null with get,set
        member val Description:String = null with get,set
        member val Active:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type RebateCodeCustomerResponse() = 
        member val Id:Guid = new Guid() with get,set
        member val Firstname:String = null with get,set
        member val Lastname:String = null with get,set
        member val Email:String = null with get,set
        member val Phone:String = null with get,set
        member val ImageUrl:String = null with get,set

    [<AllowNullLiteral>]
    type RebateCodeTransactionQueryResponse() = 
        member val Id:Int32 = new Int32() with get,set
        member val CompanyId:Guid = new Guid() with get,set
        member val Note:String = null with get,set
        member val RebateCodeId:Int32 = new Int32() with get,set
        member val RebateCodeSign:String = null with get,set
        member val RebateCodeTypeId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val RebateCodeTypeName:String = null with get,set
        member val Amount:Double = new Double() with get,set
        member val BookingId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val UpdatedDate:DateTime = new DateTime() with get,set
        member val CreatedDate:DateTime = new DateTime() with get,set
        member val Service:RebateCodeServiceResponse = null with get,set
        member val Customer:RebateCodeCustomerResponse = null with get,set
        member val PriceSign:String = null with get,set

    [<AllowNullLiteral>]
    type RebateCodeTransactionResponse() = 
        member val ResponseStatus:ResponseStatus = null with get,set
        member val RebateCodeTransactionItem:RebateCodeTransactionQueryResponse = null with get,set

    type AmountChangeType =
        | Increase = 0
        | Decrease = 1

    [<ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)>]
    [<ValidateRequest(Validator="IsAuthenticated")>]
    [<AllowNullLiteral>]
    type CreateRebateCodeTransaction() = 
        ///<summary>
        ///
        ///</summary>
        [<ApiMember(Description="", IsRequired=true)>]
        member val CompanyId:Nullable<Guid> = new Nullable<Guid>() with get,set

        ///<summary>
        ///Rebate code id to which you wish to add transaction
        ///</summary>
        [<ApiMember(Description="Rebate code id to which you wish to add transaction", IsRequired=true)>]
        member val RebateCodeId:Int32 = new Int32() with get,set

        [<ApiMember(IsRequired=true)>]
        member val Amount:Double = new Double() with get,set

        [<ApiMember(IsRequired=true)>]
        member val Usage:Int32 = new Int32() with get,set

        [<ApiMember>]
        member val BookingId:Nullable<Int32> = new Nullable<Int32>() with get,set

        ///<summary>
        ///If you want to Increase = 0 or Decrease = 1 the value
        ///</summary>
        [<ApiMember(Description="If you want to Increase = 0 or Decrease = 1 the value", IsRequired=true)>]
        member val ChangeType:AmountChangeType = new AmountChangeType() with get,set

F# CreateRebateCodeTransaction 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 /rebatecodes/transactions HTTP/1.1 
Host: api.bokamera.se 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	CompanyId: 00000000-0000-0000-0000-000000000000,
	RebateCodeId: 0,
	Amount: 0,
	Usage: 0,
	BookingId: 0,
	ChangeType: Increase
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	},
	RebateCodeTransactionItem: 
	{
		Id: 0,
		Note: String,
		RebateCodeId: 0,
		RebateCodeSign: String,
		RebateCodeTypeId: 0,
		RebateCodeTypeName: String,
		Amount: 0,
		BookingId: 0,
		Service: 
		{
			Id: 0,
			Name: String,
			Description: String,
			Active: False
		},
		Customer: 
		{
			Firstname: String,
			Lastname: String,
			Email: String,
			Phone: String,
			ImageUrl: String
		},
		PriceSign: String
	}
}