BokaMera.API.Host

<back to all web services

CreateRebateCode

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin
The following routes are available for this service:
POST/rebatecodesCreate RebateCode.Create RebateCode.
import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*


@ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
@ValidateRequest(Validator="IsAuthenticated")
open class CreateRebateCode
{
    /**
    * 
    */
    @ApiMember(Description="")
    open var CompanyId:UUID? = null

    /**
    * The default value is 9999
    */
    @ApiMember(Description="The default value is 9999")
    open var MaxNumberOfUses:Int? = null

    /**
    * The default value is 1
    */
    @ApiMember(Description="The default value is 1")
    open var MaxNumberOfUsesPerCustomer:Int? = null

    /**
    * 
    */
    @ApiMember(Description="", IsRequired=true)
    open var ValidFrom:Date? = null

    /**
    * 
    */
    @ApiMember(Description="", IsRequired=true)
    open var ValidTo:Date? = null

    /**
    * If the price is only valid for specific days in week add a comma separated list of which days this day price belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update.
    */
    @ApiMember(Description="If the price is only valid for specific days in week add a comma separated list of which days this day price belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update.")
    open var FromTime:TimeSpan? = null

    /**
    * If the price is only valid for a specific time span during a time of day enter the FromTime and ToTime parameters.
    */
    @ApiMember(Description="If the price is only valid for a specific time span during a time of day enter the FromTime and ToTime parameters.")
    open var ToTime:TimeSpan? = null

    /**
    * 1 - Percent, 2 - Сurrency, 3 - PunchTicket, 4 - ValueCard, 5 - GiftCard
    */
    @ApiMember(Description="1 - Percent, 2 - Сurrency, 3 - PunchTicket, 4 - ValueCard, 5 - GiftCard", IsRequired=true)
    open var RebateCodeTypeId:Int? = null

    /**
    * If it's connected to an Article, add the Article Id here.
    */
    @ApiMember(Description="If it's connected to an Article, add the Article Id here.")
    open var ArticleId:Int? = null

    /**
    * 
    */
    @ApiMember(Description="", IsRequired=true)
    open var RebateCodeValue:Int? = null

    /**
    * If AutoGenerateRebateCodeSign=false - more than four letters, unique among active codes
    */
    @ApiMember(Description="If AutoGenerateRebateCodeSign=false - more than four letters, unique among active codes")
    open var RebateCodeSign:String? = null

    /**
    * AutoGenerateRebateCodeSign=true - random generate code
    */
    @ApiMember(Description="AutoGenerateRebateCodeSign=true - random generate code")
    open var AutoGenerateRebateCodeSign:Boolean? = null

    /**
    * 
    */
    @ApiMember(Description="")
    open var PersonalNote:String? = null

    /**
    * 
    */
    @ApiMember(Description="")
    open var DaysOfWeek:ArrayList<Int>? = null

    /**
    * 
    */
    @ApiMember(Description="")
    open var Services:ArrayList<Int>? = null

    /**
    * 
    */
    @ApiMember(Description="")
    open var Customers:ArrayList<UUID>? = null

    /**
    * The price
    */
    @ApiMember(Description="The price")
    open var PriceVat:BigDecimal? = null

    /**
    * The price currency
    */
    @ApiMember(Description="The price currency")
    open var CurrencyId:String? = null

    /**
    * Promo code receiver information
    */
    @ApiMember(Description="Promo code receiver information")
    open var PromoCodeReceiver:PromoCodeReceiver? = null

    /**
    * If you wish to save some invoice address information for the rebate code, you can do so here. This is optional.
    */
    @ApiMember(Description="If you wish to save some invoice address information for the rebate code, you can do so here. This is optional.")
    open var InvoiceAddress:InvoiceAddressToHandle? = null
}

open class PromoCodeReceiver
{
    open var CustomerId:UUID? = null
    open var Firstname:String? = null
    open var Lastname:String? = null
    open var Email:String? = null
    open var ReceiverMessage:String? = null
}

open class InvoiceAddressToHandle
{
    open var CorporateIdentityNumber:String? = null
    open var InvoiceAddress1:String? = null
    open var InvoiceAddress2:String? = null
    open var InvoiceCity:String? = null
    open var InvoicePostalCode:String? = null
    open var InvoiceCountryCode:String? = null
}

open class RebateCodeResponse
{
    open var Id:Int? = null
    open var CompanyId:UUID? = null
    open var ValidFrom:Date? = null
    open var ValidTo:Date? = null
    /**
    * If the price is only valid for specific days in week add a comma separated list of which days this day price belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update.
    */
    @ApiMember(Description="If the price is only valid for specific days in week add a comma separated list of which days this day price belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update.")
    open var FromTime:TimeSpan? = null

    /**
    * If the price is only valid for a specific time span during a time of day enter the FromTime and ToTime parameters.
    */
    @ApiMember(Description="If the price is only valid for a specific time span during a time of day enter the FromTime and ToTime parameters.")
    open var ToTime:TimeSpan? = null

    open var CreatedBy:String? = null
    open var Created:Date? = null
    open var UpdatedBy:String? = null
    open var Updated:Date? = null
    open var PersonalNote:String? = null
    open var RebateCodeSign:String? = null
    open var RebateCodeValue:Int? = null
    open var RebateCodeTypeId:Int? = null
    open var Name:String? = null
    open var RebateCodeStatusId:Int? = null
    open var StatusName:String? = null
    open var MaxNumberOfUses:Int? = null
    open var MaxNumberOfUsesPerCustomer:Int? = null
    open var NumberOfUsesUsed:Int? = null
    open var DaysOfWeek:ArrayList<DaysOfWeekResponse>? = null
    open var Services:ArrayList<RebateCodeServiceResponse>? = null
    open var Article:ArticleResponse? = null
    open var Transactions:ArrayList<RebateCodeTransactionQueryResponse>? = null
    open var RemainingAmount:Double? = null
    open var RemainingUsage:Int? = null
    open var Customers:ArrayList<RebateCodeCustomerResponse>? = null
    open var ResponseStatus:ResponseStatus? = null
    open var PaymentReceived:Boolean? = null
    open var RebateCodeCurrencySign:String? = null
    open var ActiveByStatus:Boolean? = null
    open var PriceSign:String? = null
    open var RebateCodeTypeName:String? = null
    open var Company:RebateCodeCompanyResponse? = null
}

open class DaysOfWeekResponse
{
    open var Id:Int? = null
    open var DayOfWeek:String? = null
    open var DayOfWeekTranslation:String? = null
    open var DayOfWeekActive:Boolean? = null
    open var DayOfWeekSortOrder:Short? = null
}

open class RebateCodeServiceResponse
{
    open var Id:Int? = null
    open var Name:String? = null
    open var Description:String? = null
    open var Active:Boolean? = null
}

open class ArticleResponse
{
    open var CompanyId:UUID? = null
    open var Id:Int? = null
    open var Name:String? = null
    open var ArticleTypeId:Int? = null
    open var Description:String? = null
    open var ImageUrl:String? = null
    open var Active:Boolean? = null
    open var Amount:Int? = null
    open var Price:Double? = null
    open var CurrencyId:String? = null
    open var UpdatedDate:Date? = null
    open var CreatedDate:Date? = null
    open var Services:ArrayList<ArticleServiceRelation>? = null
    open var ServiceIds:ArrayList<Int>? = null
    open var PriceSign:String? = null
    open var VAT:BigDecimal? = null
}

open class ArticleServiceRelation : BaseModel()
{
    @Required()
    open var CompanyId:UUID? = null

    open var Id:Int? = null
    @Required()
    open var ServiceId:Int? = null

    @Required()
    open var ArticleId:Int? = null
}

open class BaseModel
{
}

open class RebateCodeTransactionQueryResponse
{
    open var Id:Int? = null
    open var CompanyId:UUID? = null
    open var Note:String? = null
    open var RebateCodeId:Int? = null
    open var RebateCodeSign:String? = null
    open var RebateCodeTypeId:Int? = null
    open var RebateCodeTypeName:String? = null
    open var Amount:Double? = null
    open var Usage:String? = null
    open var BookingId:Int? = null
    open var UpdatedDate:Date? = null
    open var CreatedDate:Date? = null
    open var Service:RebateCodeServiceResponse? = null
    open var Customer:RebateCodeCustomerResponse? = null
    open var PriceSign:String? = null
}

open class RebateCodeCustomerResponse
{
    open var Id:UUID? = null
    open var Firstname:String? = null
    open var Lastname:String? = null
    open var Email:String? = null
    open var Phone:String? = null
    open var ImageUrl:String? = null
}

open class RebateCodeCompanyResponse
{
    open var SitePath:String? = null
    open var PaymentProviderId:Int? = null
}

Kotlin CreateRebateCode DTOs

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

HTTP + OTHER

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

POST /rebatecodes HTTP/1.1 
Host: api.bookmore.com 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"CompanyId":"00000000-0000-0000-0000-000000000000","MaxNumberOfUses":0,"MaxNumberOfUsesPerCustomer":0,"FromTime":"00:00:00","ToTime":"00:00:00","RebateCodeTypeId":0,"ArticleId":0,"RebateCodeValue":0,"RebateCodeSign":"String","AutoGenerateRebateCodeSign":false,"PersonalNote":"String","DaysOfWeek":[0],"Services":[0],"Customers":["00000000-0000-0000-0000-000000000000"],"PriceVat":0,"CurrencyId":"String","PromoCodeReceiver":{"CustomerId":"00000000-0000-0000-0000-000000000000","Firstname":"String","Lastname":"String","Email":"String","ReceiverMessage":"String"},"InvoiceAddress":{"CorporateIdentityNumber":"String","InvoiceAddress1":"String","InvoiceAddress2":"String","InvoiceCity":"String","InvoicePostalCode":"String","InvoiceCountryCode":"String"}}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"Id":0,"CompanyId":"00000000-0000-0000-0000-000000000000","FromTime":"00:00:00","ToTime":"00:00:00","CreatedBy":"String","UpdatedBy":"String","PersonalNote":"String","RebateCodeSign":"String","RebateCodeValue":0,"RebateCodeTypeId":0,"Name":"String","RebateCodeStatusId":0,"StatusName":"String","MaxNumberOfUses":0,"MaxNumberOfUsesPerCustomer":0,"NumberOfUsesUsed":0,"DaysOfWeek":[{"Id":0,"DayOfWeek":"String","DayOfWeekTranslation":"String","DayOfWeekActive":false,"DayOfWeekSortOrder":0}],"Services":[{"Id":0,"Name":"String","Description":"String","Active":false}],"Article":{"Id":0,"Name":"String","ArticleTypeId":0,"Description":"String","ImageUrl":"String","Active":false,"Amount":0,"Price":0,"CurrencyId":"String","Services":[{"Id":0,"ServiceId":0,"ArticleId":0}],"ServiceIds":[0],"PriceSign":"String","VAT":0},"Transactions":[{"Id":0,"Note":"String","RebateCodeId":0,"RebateCodeSign":"String","RebateCodeTypeId":0,"RebateCodeTypeName":"String","Amount":0,"Usage":"String","BookingId":0,"Service":{"Id":0,"Name":"String","Description":"String","Active":false},"Customer":{"Firstname":"String","Lastname":"String","Email":"String","Phone":"String","ImageUrl":"String"},"PriceSign":"String"}],"RemainingAmount":0,"RemainingUsage":0,"Customers":[{"Firstname":"String","Lastname":"String","Email":"String","Phone":"String","ImageUrl":"String"}],"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}},"PaymentReceived":false,"RebateCodeCurrencySign":"String","ActiveByStatus":false,"PriceSign":"String","RebateCodeTypeName":"String","Company":{"SitePath":"String","PaymentProviderId":0}}