BokaMera.API.Host

<back to all web services

AddPaymentSettings

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin
The following routes are available for this service:
POST/payment/settingsAdd payment settingsAdd payment settings for the logged in company
import 'package:servicestack/servicestack.dart';

class AdminPaymentOptionsResponse implements IConvertible
{
    /**
    * The payment options id
    */
    // @ApiMember(Description="The payment options id")
    int? Id;

    /**
    * The payment options name
    */
    // @ApiMember(Description="The payment options name")
    String? Name;

    /**
    * The payment options description
    */
    // @ApiMember(Description="The payment options description")
    String? Description;

    AdminPaymentOptionsResponse({this.Id,this.Name,this.Description});
    AdminPaymentOptionsResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Name = json['Name'];
        Description = json['Description'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Name': Name,
        'Description': Description
    };

    getTypeName() => "AdminPaymentOptionsResponse";
    TypeContext? context = _ctx;
}

class PaymentProviderOptionsResponse implements IConvertible
{
    /**
    * The payment provider id
    */
    // @ApiMember(Description="The payment provider id")
    int? Id;

    /**
    * The payment provider name
    */
    // @ApiMember(Description="The payment provider name")
    String? Name;

    /**
    * The payment provider description
    */
    // @ApiMember(Description="The payment provider description")
    String? Description;

    PaymentProviderOptionsResponse({this.Id,this.Name,this.Description});
    PaymentProviderOptionsResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Name = json['Name'];
        Description = json['Description'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Name': Name,
        'Description': Description
    };

    getTypeName() => "PaymentProviderOptionsResponse";
    TypeContext? context = _ctx;
}

class PaymentSettingsQueryResponse implements IConvertible
{
    /**
    * The company id
    */
    // @ApiMember(Description="The company id")
    String? CompanyId;

    /**
    * The payment is enabled
    */
    // @ApiMember(Description="The payment is enabled")
    bool? Enabled;

    /**
    * If there should be any fee added when customer selected invoice payment method
    */
    // @ApiMember(Description="If there should be any fee added when customer selected invoice payment method")
    int? InvoiceFee;

    /**
    * If allow credit card payment
    */
    // @ApiMember(Description="If allow credit card payment")
    bool? AllowCreditCardPayment;

    /**
    * If allow invoice payment
    */
    // @ApiMember(Description="If allow invoice payment")
    bool? AllowInvoicePayment;

    /**
    * If allow bank payment
    */
    // @ApiMember(Description="If allow bank payment")
    bool? AllowBankPayment;

    /**
    * Automatically refund customer on canceled booking
    */
    // @ApiMember(Description="Automatically refund customer on canceled booking")
    bool? RefundOnCancelBooking;

    /**
    * The default option when admin creates a new booking
    */
    // @ApiMember(Description="The default option when admin creates a new booking")
    int? DefaultPaymentOptionId;

    /**
    * What payment provider to use
    */
    // @ApiMember(Description="What payment provider to use")
    int? PaymentProviderId;

    /**
    * If you want to include the admin payment options to select from
    */
    // @ApiMember(DataType="boolean", Description="If you want to include the admin payment options to select from", ParameterType="query")
    List<AdminPaymentOptionsResponse>? AdminPaymentOptions;

    /**
    * If you want to include the payment provider options to select from
    */
    // @ApiMember(DataType="boolean", Description="If you want to include the payment provider options to select from", ParameterType="query")
    List<PaymentProviderOptionsResponse>? PaymentProviderOptions;

    /**
    * SendPaymentRequestDirectly
    */
    // @ApiMember(Description="SendPaymentRequestDirectly")
    bool? SendPaymentRequestDirectly;

    PaymentSettingsQueryResponse({this.CompanyId,this.Enabled,this.InvoiceFee,this.AllowCreditCardPayment,this.AllowInvoicePayment,this.AllowBankPayment,this.RefundOnCancelBooking,this.DefaultPaymentOptionId,this.PaymentProviderId,this.AdminPaymentOptions,this.PaymentProviderOptions,this.SendPaymentRequestDirectly});
    PaymentSettingsQueryResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CompanyId = json['CompanyId'];
        Enabled = json['Enabled'];
        InvoiceFee = json['InvoiceFee'];
        AllowCreditCardPayment = json['AllowCreditCardPayment'];
        AllowInvoicePayment = json['AllowInvoicePayment'];
        AllowBankPayment = json['AllowBankPayment'];
        RefundOnCancelBooking = json['RefundOnCancelBooking'];
        DefaultPaymentOptionId = json['DefaultPaymentOptionId'];
        PaymentProviderId = json['PaymentProviderId'];
        AdminPaymentOptions = JsonConverters.fromJson(json['AdminPaymentOptions'],'List<AdminPaymentOptionsResponse>',context!);
        PaymentProviderOptions = JsonConverters.fromJson(json['PaymentProviderOptions'],'List<PaymentProviderOptionsResponse>',context!);
        SendPaymentRequestDirectly = json['SendPaymentRequestDirectly'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CompanyId': CompanyId,
        'Enabled': Enabled,
        'InvoiceFee': InvoiceFee,
        'AllowCreditCardPayment': AllowCreditCardPayment,
        'AllowInvoicePayment': AllowInvoicePayment,
        'AllowBankPayment': AllowBankPayment,
        'RefundOnCancelBooking': RefundOnCancelBooking,
        'DefaultPaymentOptionId': DefaultPaymentOptionId,
        'PaymentProviderId': PaymentProviderId,
        'AdminPaymentOptions': JsonConverters.toJson(AdminPaymentOptions,'List<AdminPaymentOptionsResponse>',context!),
        'PaymentProviderOptions': JsonConverters.toJson(PaymentProviderOptions,'List<PaymentProviderOptionsResponse>',context!),
        'SendPaymentRequestDirectly': SendPaymentRequestDirectly
    };

    getTypeName() => "PaymentSettingsQueryResponse";
    TypeContext? context = _ctx;
}

// @ValidateRequest(Validator="IsAuthenticated")
class AddPaymentSettings implements ICompany, IConvertible
{
    /**
    * 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.")
    String? CompanyId;

    /**
    * The payson payment is enabled
    */
    // @ApiMember(Description="The payson payment is enabled")
    bool? Enabled;

    /**
    * If there should be any fee added when customer selected invoice payment method
    */
    // @ApiMember(Description="If there should be any fee added when customer selected invoice payment method")
    int? InvoiceFee;

    /**
    * If allow credit card payment
    */
    // @ApiMember(Description="If allow credit card payment")
    bool? AllowCreditCardPayment;

    /**
    * If allow invoice payment
    */
    // @ApiMember(Description="If allow invoice payment")
    bool? AllowInvoicePayment;

    /**
    * If allow bank payment
    */
    // @ApiMember(Description="If allow bank payment")
    bool? AllowBankPayment;

    /**
    * Automatically refund customer on canceled booking
    */
    // @ApiMember(Description="Automatically refund customer on canceled booking")
    bool? RefundOnCancelBooking;

    /**
    * The default option when admin creates a new booking
    */
    // @ApiMember(Description="The default option when admin creates a new booking")
    int? DefaultAdminPaymentOptionsId;

    /**
    * What payment provider to use
    */
    // @ApiMember(Description="What payment provider to use")
    int? PaymentProviderId;

    AddPaymentSettings({this.CompanyId,this.Enabled,this.InvoiceFee,this.AllowCreditCardPayment,this.AllowInvoicePayment,this.AllowBankPayment,this.RefundOnCancelBooking,this.DefaultAdminPaymentOptionsId,this.PaymentProviderId});
    AddPaymentSettings.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CompanyId = json['CompanyId'];
        Enabled = json['Enabled'];
        InvoiceFee = json['InvoiceFee'];
        AllowCreditCardPayment = json['AllowCreditCardPayment'];
        AllowInvoicePayment = json['AllowInvoicePayment'];
        AllowBankPayment = json['AllowBankPayment'];
        RefundOnCancelBooking = json['RefundOnCancelBooking'];
        DefaultAdminPaymentOptionsId = json['DefaultAdminPaymentOptionsId'];
        PaymentProviderId = json['PaymentProviderId'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CompanyId': CompanyId,
        'Enabled': Enabled,
        'InvoiceFee': InvoiceFee,
        'AllowCreditCardPayment': AllowCreditCardPayment,
        'AllowInvoicePayment': AllowInvoicePayment,
        'AllowBankPayment': AllowBankPayment,
        'RefundOnCancelBooking': RefundOnCancelBooking,
        'DefaultAdminPaymentOptionsId': DefaultAdminPaymentOptionsId,
        'PaymentProviderId': PaymentProviderId
    };

    getTypeName() => "AddPaymentSettings";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'api.bokamera.se', types: <String, TypeInfo> {
    'AdminPaymentOptionsResponse': TypeInfo(TypeOf.Class, create:() => AdminPaymentOptionsResponse()),
    'PaymentProviderOptionsResponse': TypeInfo(TypeOf.Class, create:() => PaymentProviderOptionsResponse()),
    'PaymentSettingsQueryResponse': TypeInfo(TypeOf.Class, create:() => PaymentSettingsQueryResponse()),
    'List<AdminPaymentOptionsResponse>': TypeInfo(TypeOf.Class, create:() => <AdminPaymentOptionsResponse>[]),
    'List<PaymentProviderOptionsResponse>': TypeInfo(TypeOf.Class, create:() => <PaymentProviderOptionsResponse>[]),
    'AddPaymentSettings': TypeInfo(TypeOf.Class, create:() => AddPaymentSettings()),
});

Dart AddPaymentSettings DTOs

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

HTTP + CSV

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

POST /payment/settings HTTP/1.1 
Host: api.bokamera.se 
Accept: text/csv
Content-Type: text/csv
Content-Length: length

{"CompanyId":"00000000-0000-0000-0000-000000000000","Enabled":false,"InvoiceFee":0,"AllowCreditCardPayment":false,"AllowInvoicePayment":false,"AllowBankPayment":false,"RefundOnCancelBooking":false,"DefaultAdminPaymentOptionsId":0,"PaymentProviderId":0}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"Enabled":false,"InvoiceFee":0,"AllowCreditCardPayment":false,"AllowInvoicePayment":false,"AllowBankPayment":false,"RefundOnCancelBooking":false,"DefaultPaymentOptionId":0,"PaymentProviderId":0,"AdminPaymentOptions":[{"Id":0,"Name":"String","Description":"String"}],"PaymentProviderOptions":[{"Id":0,"Name":"String","Description":"String"}],"SendPaymentRequestDirectly":false}