POST | /payment/stripe/v1/checkout | Create 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) |
---|
namespace BokaMera.API.ServiceModel.Dtos
open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations
[<AllowNullLiteral>]
type StripeCheckoutQueryResponse() =
///<summary>
///The checkout session id
///</summary>
[<ApiMember(Description="The checkout session id")>]
member val SessionId:String = null with 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")>]
member val Url:String = null with get,set
///<summary>
///The checkout status
///</summary>
[<ApiMember(Description="The checkout status")>]
member val Status:String = null with 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.")>]
member val ClientSecret:String = null with 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.")>]
member val CustomerId:String = null with 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.")>]
member val PaymentIntentClientSecret:String = null with get,set
member val PaymentIntentId:String = null with get,set
member val StripeAccount:String = null with get,set
[<AllowNullLiteral>]
type StripeV1CreateCheckout() =
///<summary>
///The company id.
///</summary>
[<ApiMember(Description="The company id.", IsRequired=true)>]
member val CompanyId:Nullable<Guid> = new Nullable<Guid>() with get,set
///<summary>
///Country code for checkout
///</summary>
[<ApiMember(Description="Country code for checkout", IsRequired=true)>]
member val CountryCode:String = null with get,set
///<summary>
///Articles (Could be Service, rebate code types, etc..
///</summary>
[<ApiMember(Description="Articles (Could be Service, rebate code types, etc..", IsRequired=true)>]
member val Articles:ArticleToCreate[] = [||] with 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)>]
member val InternalReferenceId:String = null with 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.")>]
member val ConfirmationUrl:String = null with 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>.")>]
member val CancelUrl:String = null with 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)>]
member val UiMode:String = null with get,set
[<AllowNullLiteral>]
type ArticleToCreate() =
member val ArticleId:Int32 = new Int32() with get,set
member val ArticleTypeId:Int32 = new Int32() with get,set
member val Quantity:Int32 = new Int32() with get,set
F# StripeV1CreateCheckout DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv
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.bokamera.se
Accept: text/csv
Content-Type: text/csv
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/csv Content-Length: length {"SessionId":"String","Url":"String","Status":"String","ClientSecret":"String","CustomerId":"String","PaymentIntentClientSecret":"String","PaymentIntentId":"String","StripeAccount":"String"}