BokaMera.API.Host

<back to all web services

StripeV1CreateCheckout

The following routes are available for this service:
POST/payment/stripe/v1/checkoutCreate an checkout for Payble entity. Note if existing checkouts already exists, it will invalidate those.Create Stripe checkout (requires settings for Stripe Checkout 1.0)
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using BokaMera.API.ServiceModel.Dtos;

namespace BokaMera.API.ServiceModel.Dtos
{
    public partial class ArticleToCreate
    {
        public virtual int ArticleId { get; set; }
        public virtual int ArticleTypeId { get; set; }
        public virtual int Quantity { get; set; }
    }

    public partial class StripeCheckoutQueryResponse
    {
        ///<summary>
        ///The checkout session id
        ///</summary>
        [ApiMember(Description="The checkout session id")]
        public virtual string SessionId { get; set; }

        ///<summary>
        ///The url for checkout module to be placed in a iframe
        ///</summary>
        [ApiMember(Description="The url for checkout module to be placed in a iframe")]
        public virtual string Url { get; set; }

        ///<summary>
        ///The checkout status
        ///</summary>
        [ApiMember(Description="The checkout status")]
        public virtual string Status { get; set; }

        ///<summary>
        ///Client secret to be used when initializing Stripe.js embedded checkout.
        ///</summary>
        [ApiMember(Description="Client secret to be used when initializing Stripe.js embedded checkout.")]
        public virtual string ClientSecret { get; set; }

        ///<summary>
        ///(ID of the Customer) The ID of the customer for this Session. For Checkout Sessions in subscription mode or Checkout Sessions with customer_creation set as always in payment mode, Checkout will create a new customer object based on information provided during the payment flow unless an existing customer was provided when the Session was created.
        ///</summary>
        [ApiMember(Description="(ID of the Customer) The ID of the customer for this Session. For Checkout Sessions in subscription mode or Checkout Sessions with customer_creation set as always in payment mode, Checkout will create a new customer object based on information provided during the payment flow unless an existing customer was provided when the Session was created.")]
        public virtual string CustomerId { get; set; }

        ///<summary>
        ///The client secret of this PaymentIntent. Used for client-side retrieval using a publishable key. The client secret can be used to complete a payment from your frontend. It should not be stored, logged, or exposed to anyone other than the customer. Make sure that you have TLS enabled on any page that includes the client secret. Refer to our docs to accept a payment   and learn about how client_secret should be handled.
        ///</summary>
        [ApiMember(Description="The client secret of this PaymentIntent. Used for client-side retrieval using a publishable key. The client secret can be used to complete a payment from your frontend. It should not be stored, logged, or exposed to anyone other than the customer. Make sure that you have TLS enabled on any page that includes the client secret. Refer to our docs to accept a payment   and learn about how client_secret should be handled.")]
        public virtual string PaymentIntentClientSecret { get; set; }

        public virtual string PaymentIntentId { get; set; }
        public virtual string StripeAccount { get; set; }
    }

    public partial class StripeV1CreateCheckout
        : ICompany
    {
        public StripeV1CreateCheckout()
        {
            Articles = new ArticleToCreate[]{};
        }

        ///<summary>
        ///The company id.
        ///</summary>
        [ApiMember(Description="The company id.", IsRequired=true)]
        public virtual Guid? CompanyId { get; set; }

        ///<summary>
        ///Country code for checkout
        ///</summary>
        [ApiMember(Description="Country code for checkout", IsRequired=true)]
        public virtual string CountryCode { get; set; }

        ///<summary>
        ///Articles (Could be Service, rebate code types, etc..
        ///</summary>
        [ApiMember(Description="Articles (Could be Service, rebate code types, etc..", IsRequired=true)]
        public virtual ArticleToCreate[] Articles { get; set; }

        ///<summary>
        ///An internal reference id (Could be booking, rebate code etc.)
        ///</summary>
        [ApiMember(Description="An internal reference id (Could be booking, rebate code etc.)", IsRequired=true)]
        public virtual string InternalReferenceId { get; set; }

        ///<summary>
        ///Optional to set your own confirmation url after payment completed.
        ///</summary>
        [ApiMember(Description="Optional to set your own confirmation url after payment completed.")]
        public virtual string ConfirmationUrl { get; set; }

        ///<summary>
        ///If set, Checkout displays a back button and customers will be directed to this URL if they decide to cancel payment and return to your website. This parameter is not allowed if ui_mode is <c>embedded</c>.
        ///</summary>
        [ApiMember(Description="If set, Checkout displays a back button and customers will be directed to this URL if they decide to cancel payment and return to your website. This parameter is not allowed if ui_mode is <c>embedded</c>.")]
        public virtual string CancelUrl { get; set; }

        ///<summary>
        ///The UI mode of the Session. Defaults to <c>hosted</c>; One of: <c>embedded</c>, or <c>hosted</c>
        ///</summary>
        [ApiMember(Description="The UI mode of the Session. Defaults to <c>hosted</c>; One of: <c>embedded</c>, or <c>hosted</c>", IsRequired=true)]
        public virtual string UiMode { get; set; }
    }

}

C# StripeV1CreateCheckout 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 /payment/stripe/v1/checkout HTTP/1.1 
Host: api.bookmore.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	CompanyId: 00000000-0000-0000-0000-000000000000,
	CountryCode: String,
	Articles: 
	[
		{
			ArticleId: 0,
			ArticleTypeId: 0,
			Quantity: 0
		}
	],
	InternalReferenceId: String,
	ConfirmationUrl: String,
	CancelUrl: String,
	UiMode: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	SessionId: String,
	Url: String,
	Status: String,
	ClientSecret: String,
	CustomerId: String,
	PaymentIntentClientSecret: String,
	PaymentIntentId: String,
	StripeAccount: String
}