| Requires any of the roles: | bookingsupplier-administrator-write, superadmin |
| POST | /rebatecodes | Create RebateCode. | Create RebateCode. |
|---|
// @ts-nocheck
export class DaysOfWeekResponse
{
public Id: number;
public DayOfWeek: string;
public DayOfWeekTranslation: string;
public DayOfWeekActive?: boolean;
public DayOfWeekSortOrder?: number;
public constructor(init?: Partial<DaysOfWeekResponse>) { (Object as any).assign(this, init); }
}
export class RebateCodeServiceResponse
{
public Id: number;
public Name: string;
public Description: string;
public Active: boolean;
public constructor(init?: Partial<RebateCodeServiceResponse>) { (Object as any).assign(this, init); }
}
export class BaseModel
{
public constructor(init?: Partial<BaseModel>) { (Object as any).assign(this, init); }
}
export class ArticleServiceRelation extends BaseModel
{
// @Required()
public CompanyId: string;
public Id: number;
// @Required()
public ServiceId: number;
// @Required()
public ArticleId: number;
public constructor(init?: Partial<ArticleServiceRelation>) { super(init); (Object as any).assign(this, init); }
}
export class ArticleResponse
{
public CompanyId: string;
public Id: number;
public Name: string;
public ArticleTypeId: number;
public Description: string;
public ImageUrl: string;
public Active: boolean;
public Amount: number;
public Price: number;
public CurrencyId: string;
public SortOrder: number;
public UpdatedDate: string;
public CreatedDate: string;
public Duration: number;
public Services: ArticleServiceRelation[] = [];
public ServiceIds: number[] = [];
public PriceSign: string;
public VAT?: number;
public ValidDays: number;
public SendNotification: boolean;
public NotificationEmail: string;
public constructor(init?: Partial<ArticleResponse>) { (Object as any).assign(this, init); }
}
export class RebateCodeCustomerResponse
{
public Id: string;
public Firstname: string;
public Lastname: string;
public Email: string;
public Phone: string;
public ImageUrl: string;
public constructor(init?: Partial<RebateCodeCustomerResponse>) { (Object as any).assign(this, init); }
}
export class RebateCodeTransactionQueryResponse
{
public Id: number;
public CompanyId: string;
public Note: string;
public RebateCodeId: number;
public RebateCodeSign: string;
public RebateCodeTypeId?: number;
public RebateCodeTypeName: string;
public Amount: number;
public Usage: string;
public BookingId?: number;
public UpdatedDate: string;
public CreatedDate: string;
public Service: RebateCodeServiceResponse;
public Customer: RebateCodeCustomerResponse;
public PriceSign: string;
public constructor(init?: Partial<RebateCodeTransactionQueryResponse>) { (Object as any).assign(this, init); }
}
export class RebateCodeCompanyResponse
{
public SitePath: string;
public PaymentProviderId?: number;
public constructor(init?: Partial<RebateCodeCompanyResponse>) { (Object as any).assign(this, init); }
}
export class PaymentLogResponse
{
public Id: number;
public Amount?: number;
public AmountCredited?: number;
public CurrencyId: string;
public Comments: string;
public Created: string;
public Updated: string;
public constructor(init?: Partial<PaymentLogResponse>) { (Object as any).assign(this, init); }
}
export class RebateCodeResponse
{
public Id: number;
public CompanyId?: string;
public ValidFrom: string;
public ValidTo: string;
/** @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. */
// @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.")
public FromTime: string;
/** @description 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.")
public ToTime: string;
public CreatedBy: string;
public Created: string;
public UpdatedBy: string;
public Updated: string;
public PersonalNote: string;
public RebateCodeSign: string;
public RebateCodeValue: number;
public RebateCodeTypeId: number;
public Name: string;
public RebateCodeStatusId: number;
public StatusName: string;
public MaxNumberOfUses: number;
public MaxNumberOfUsesPerCustomer: number;
public NumberOfUsesUsed: number;
public DaysOfWeek: DaysOfWeekResponse[] = [];
public Services: RebateCodeServiceResponse[] = [];
public Article: ArticleResponse;
public Transactions: RebateCodeTransactionQueryResponse[] = [];
public RemainingAmount?: number;
public RemainingUsage?: number;
public Customers: RebateCodeCustomerResponse[] = [];
public ResponseStatus: ResponseStatus;
public PaymentReceived: boolean;
public RebateCodeCurrencySign: string;
public ActiveByStatus: boolean;
public PriceSign: string;
public RebateCodeTypeName: string;
public Company: RebateCodeCompanyResponse;
public PaymentLog: PaymentLogResponse[] = [];
public constructor(init?: Partial<RebateCodeResponse>) { (Object as any).assign(this, init); }
}
export class PromoCodeReceiver
{
public CustomerId?: string;
public Firstname: string;
public Lastname: string;
public Email: string;
public ReceiverMessage: string;
public constructor(init?: Partial<PromoCodeReceiver>) { (Object as any).assign(this, init); }
}
export class InvoiceAddressToHandle implements IInvoiceAddress
{
public CorporateIdentityNumber: string;
public InvoiceAddress1: string;
public InvoiceAddress2: string;
public InvoiceCity: string;
public InvoicePostalCode: string;
public InvoiceCountryCode: string;
public constructor(init?: Partial<InvoiceAddressToHandle>) { (Object as any).assign(this, init); }
}
// @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
// @ValidateRequest(Validator="IsAuthenticated")
export class CreateRebateCode
{
/** @description */
// @ApiMember(Description="")
public CompanyId?: string;
/** @description The default value is 9999 */
// @ApiMember(Description="The default value is 9999")
public MaxNumberOfUses?: number;
/** @description The default value is 1 */
// @ApiMember(Description="The default value is 1")
public MaxNumberOfUsesPerCustomer?: number;
/** @description */
// @ApiMember(Description="", IsRequired=true)
public ValidFrom: string;
/** @description */
// @ApiMember(Description="", IsRequired=true)
public ValidTo: string;
/** @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. */
// @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.")
public FromTime?: string;
/** @description 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.")
public ToTime?: string;
/** @description 1 - Percent, 2 - Сurrency, 3 - PunchTicket, 4 - ValueCard, 5 - GiftCard */
// @ApiMember(Description="1 - Percent, 2 - Сurrency, 3 - PunchTicket, 4 - ValueCard, 5 - GiftCard", IsRequired=true)
public RebateCodeTypeId: number;
/** @description 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.")
public ArticleId?: number;
/** @description */
// @ApiMember(Description="", IsRequired=true)
public RebateCodeValue: number;
/** @description If AutoGenerateRebateCodeSign=false - more than four letters, unique among active codes */
// @ApiMember(Description="If AutoGenerateRebateCodeSign=false - more than four letters, unique among active codes")
public RebateCodeSign: string;
/** @description AutoGenerateRebateCodeSign=true - random generate code */
// @ApiMember(Description="AutoGenerateRebateCodeSign=true - random generate code")
public AutoGenerateRebateCodeSign: boolean;
/** @description */
// @ApiMember(Description="")
public PersonalNote: string;
/** @description */
// @ApiMember(Description="")
public DaysOfWeek: number[] = [];
/** @description */
// @ApiMember(Description="")
public Services: number[] = [];
/** @description */
// @ApiMember(Description="")
public Customers: string[] = [];
/** @description The price */
// @ApiMember(Description="The price")
public PriceVat?: number;
/** @description The price VAT in percent */
// @ApiMember(Description="The price VAT in percent")
public VAT?: number;
/** @description The price currency */
// @ApiMember(Description="The price currency")
public CurrencyId: string;
/** @description Promo code receiver information */
// @ApiMember(Description="Promo code receiver information")
public PromoCodeReceiver: PromoCodeReceiver;
/** @description 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.")
public InvoiceAddress?: InvoiceAddressToHandle;
/** @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. */
// @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.")
public Paid?: boolean;
public constructor(init?: Partial<CreateRebateCode>) { (Object as any).assign(this, init); }
}
TypeScript 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
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"}]}