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> = ArrayList<Int>()

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

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

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

    /**
    * The price VAT in percent
    */
    @ApiMember(Description="The price VAT in percent")
    open var VAT: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

    /**
    * Determines if the rebate code is active on creation or if it should await payment. If you set this to true, make sure to mark the code as payed when you receive the payment, by using the MarkRebateCodeAsPayed endpoint. The default value is false.
    */
    @ApiMember(Description="Determines if the rebate code is active on creation or if it should await payment. If you set this to true, make sure to mark the code as payed when you receive the payment, by using the MarkRebateCodeAsPayed endpoint. The default value is false.")
    open var Paid:Boolean? = 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 : IInvoiceAddress
{
    override var CorporateIdentityNumber:String? = null
    override var InvoiceAddress1:String? = null
    override var InvoiceAddress2:String? = null
    override var InvoiceCity:String? = null
    override var InvoicePostalCode:String? = null
    override 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> = ArrayList<DaysOfWeekResponse>()
    open var Services:ArrayList<RebateCodeServiceResponse> = ArrayList<RebateCodeServiceResponse>()
    open var Article:ArticleResponse? = null
    open var Transactions:ArrayList<RebateCodeTransactionQueryResponse> = ArrayList<RebateCodeTransactionQueryResponse>()
    open var RemainingAmount:Double? = null
    open var RemainingUsage:Int? = null
    open var Customers:ArrayList<RebateCodeCustomerResponse> = ArrayList<RebateCodeCustomerResponse>()
    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 var PaymentLog:ArrayList<PaymentLogResponse> = ArrayList<PaymentLogResponse>()
}

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 SortOrder:Int? = null
    open var UpdatedDate:Date? = null
    open var CreatedDate:Date? = null
    open var Duration:Int? = null
    open var Services:ArrayList<ArticleServiceRelation> = ArrayList<ArticleServiceRelation>()
    open var ServiceIds:ArrayList<Int> = ArrayList<Int>()
    open var PriceSign:String? = null
    open var VAT:BigDecimal? = null
    open var ValidDays:Int? = null
    open var SendNotification:Boolean? = null
    open var NotificationEmail:String? = 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
}

open class PaymentLogResponse
{
    open var Id:Int? = null
    open var Amount:Double? = null
    open var AmountCredited:Double? = null
    open var CurrencyId:String? = null
    open var Comments:String? = null
    open var Created:Date? = null
    open var Updated:Date? = null
}

Kotlin CreateRebateCode DTOs

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

HTTP + JSON

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

POST /rebatecodes HTTP/1.1 
Host: testapi.bokamera.se 
Accept: application/json
Content-Type: application/json
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,"VAT":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"},"Paid":false}
HTTP/1.1 200 OK
Content-Type: application/json
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","SortOrder":0,"Duration":0,"Services":[{"Id":0,"ServiceId":0,"ArticleId":0}],"ServiceIds":[0],"PriceSign":"String","VAT":0,"ValidDays":0,"SendNotification":false,"NotificationEmail":"String"},"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},"PaymentLog":[{"Id":0,"Amount":0,"AmountCredited":0,"CurrencyId":"String","Comments":"String"}]}