> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ecrypt.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Dynamic Checkout



## OpenAPI

````yaml swagger-001.json POST /v1/dynamiccheckout
openapi: 3.0.4
info:
  title: Ecrypt API
  description: Ecrypt API
  termsOfService: https://ecrypt.com
  contact:
    name: Dev Support
    url: https://developer.ecrypt.com
    email: devsupport@ecrypt.com
  version: v1
servers:
  - url: https://api.ecrypt.com
    description: Live
security:
  - x-api-key: []
paths:
  /v1/dynamiccheckout:
    post:
      tags:
        - Dynamic Checkout
      summary: Create Dynamic Checkout
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.DynamicCheckoutCreateRequest
          text/json:
            schema:
              $ref: >-
                #/components/schemas/Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.DynamicCheckoutCreateRequest
          application/*+json:
            schema:
              $ref: >-
                #/components/schemas/Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.DynamicCheckoutCreateRequest
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.DynamicCheckoutCreateResponse
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '429':
          description: Too Many Requests
components:
  schemas:
    Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.DynamicCheckoutCreateRequest:
      required:
        - items
        - total
      type: object
      properties:
        customerInfo:
          $ref: >-
            #/components/schemas/Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.Customer
        appearance:
          $ref: >-
            #/components/schemas/Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.Appearance
        invoiceInfo:
          $ref: >-
            #/components/schemas/Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.Invoice
        iframe:
          type: boolean
          nullable: true
        oneTimePayment:
          type: boolean
          nullable: true
        currency:
          allOf:
            - $ref: >-
                #/components/schemas/Ecrypt.Gateway.Api.Core.Model.WebAPI.Enums.CurrencyCode
          nullable: true
        tax:
          maximum: 999999999.99
          minimum: 0
          type: number
          description: ''
          format: double
          nullable: true
        surcharge:
          maximum: 999999999.99
          minimum: 0
          type: number
          description: ''
          format: double
          nullable: true
        discount:
          maximum: 999999999.99
          minimum: 0
          type: number
          description: ''
          format: double
          nullable: true
        subtotal:
          maximum: 999999999.99
          minimum: 0
          type: number
          format: double
          nullable: true
        total:
          maximum: 999999999.99
          minimum: 0.01
          type: number
          description: Discount Percentage
          format: double
        collectShipping:
          type: boolean
          description: ''
          nullable: true
        sendReceipt:
          type: boolean
          description: "\r\nDefault: false\r\n\r\nExample: false"
        items:
          type: array
          items:
            $ref: >-
              #/components/schemas/Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.Item
          description: At least one is required
          nullable: true
        thankYouUrl:
          type: string
          description: >-
            The Thank You Url to show when an order is placed at the end of the
            checkout flow.
          nullable: true
        subscription:
          $ref: >-
            #/components/schemas/Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.DynamicSubscription
        customerDefinedField:
          type: object
          additionalProperties:
            type: string
          nullable: true
        submitButtonText:
          type: string
          nullable: true
        allowAch:
          type: boolean
          nullable: true
      additionalProperties: false
      nullable: true
    Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.DynamicCheckoutCreateResponse:
      required:
        - requestId
      type: object
      properties:
        url:
          type: string
        requestId:
          maxLength: 100
          minLength: 1
          type: string
          default: '000000000000000000000'
        errors:
          type: array
          items:
            $ref: >-
              #/components/schemas/Ecrypt.Gateway.Api.Core.Model.ResponseBaseError
          nullable: true
      additionalProperties: false
      nullable: true
    Ecrypt.Gateway.Api.Core.Model.BadRequest:
      required:
        - requestId
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequestError'
          nullable: true
        requestId:
          maxLength: 100
          minLength: 1
          type: string
          default: '000000000000000000000'
      additionalProperties: false
      nullable: true
    Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.Customer:
      type: object
      properties:
        name:
          type: string
          description: The customer's name.
          nullable: true
        email:
          type: string
          description: The customer's email address.
          nullable: true
        address:
          type: string
          description: The customer's street address line 1.
          nullable: true
        address2:
          type: string
          description: The customer's street address line 2.
          nullable: true
        city:
          type: string
          description: The customer's city.
          nullable: true
        state:
          type: string
          description: The customer's state.
          nullable: true
        zip:
          type: string
          description: The customer's ZIP or postal code.
          nullable: true
        country:
          type: string
          description: The customer's country.
          nullable: true
        id:
          type: string
          description: The customer's country.
          nullable: true
      additionalProperties: false
      nullable: true
    Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.Appearance:
      type: object
      properties:
        invoiceBackgroundColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          description: Use `Color Guide`
          nullable: true
        invoiceButtonBackgroundColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          description: Use `Color Guide`
          nullable: true
        invoiceTextColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          description: Use `Color Guide`
          nullable: true
        invoiceAccentColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          description: Use `Color Guide`
          nullable: true
        invoiceBorderColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          description: Use `Color Guide`
          nullable: true
        invoiceButtonTextColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          description: Use `Color Guide`
          nullable: true
        formBackgroundColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          description: Use `Color Guide`
          nullable: true
        formTextColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          description: Use `Color Guide`
          nullable: true
        formAccentColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          description: Use `Color Guide`
          nullable: true
        formBorderColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          description: Use `Color Guide`
          nullable: true
        formButtonBackgroundColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          description: Use `Color Guide`
          nullable: true
        formButtonTextColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          description: Use `Color Guide`
          nullable: true
        alertColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          description: Use `Color Guide`
          nullable: true
        inputVariant:
          maxLength: 255
          minLength: 0
          pattern: ^[A-Za-z]*$
          type: string
          description: Use `Variant Guide`
          nullable: true
        inputColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          description: Use `Color Guide`
          nullable: true
        successColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          description: Use `Color Guide`
          nullable: true
        mobileBackgroundColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          description: Use `Color Guide`
          nullable: true
        invoiceMobileBackgroundColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          description: Use `Color Guide`
          nullable: true
        invoiceIconTheme:
          maxLength: 255
          minLength: 0
          pattern: ^[A-Za-z]*$
          type: string
          description: Use `Theme Guide`
          nullable: true
        invoiceMobileTextColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          description: Use `Color Guide`
          nullable: true
        mobileTextColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          description: Use `Color Guide`
          nullable: true
        mobileButtonBackgroundColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          description: Use `Color Guide`
          nullable: true
        mobileButtonTextColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          description: Use `Color Guide`
          nullable: true
        mobileIconTheme:
          maxLength: 255
          minLength: 0
          pattern: ^[A-Za-z]*$
          type: string
          description: Use `Theme Guide`
          nullable: true
        formIconTheme:
          maxLength: 255
          minLength: 0
          pattern: ^[A-Za-z]*$
          type: string
          description: Use `Theme Guide`
          nullable: true
        formInputTextColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          description: Use `Color Guide`
          nullable: true
        formInputBackgroundColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          description: Use `Color Guide`
          nullable: true
        mobileInputTextColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          description: Use `Color Guide`
          nullable: true
        mobileInputBackgroundColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          description: Use `Color Guide`
          nullable: true
        mobileInputBorderColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          description: Use `Color Guide`
          nullable: true
        mobileAccentColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          description: Use `Color Guide`
          nullable: true
        formTitleColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          nullable: true
        formLabelColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          nullable: true
        mobileTitleColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          nullable: true
        mobileLabelColor:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          nullable: true
        tabBackgroundSelected:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          nullable: true
        tabBackgroundDefault:
          maxLength: 255
          minLength: 0
          pattern: "^[0-9A-Za-z \\-\\.,%()\t#]*$"
          type: string
          nullable: true
      additionalProperties: false
      description: "The Appearance object includes various properties that define the appearance of the invoice and form. Each property is optional and should be a string representing a color code or a theme.\r\n\r\n`Color Guide`\r\n\r\nExample: #000000\r\n*** Supported Formats ***\r\n- `Hexadecimal Format` #000000\r\n- `RGB Format` rgb(0, 0, 0)\r\n- `RGBA Format` rgba(0, 0, 0, 1)\r\n- `HSL Format` hsl(0, 0%, 0%)\r\n- `HSLA Format` hsla(0, 0%, 0%, 1)\r\n- `Named Colors` black\r\n            \r\n`Theme Guide`\r\n\r\nDefault: dark\r\n*** Supported Values ***\r\n- `dark`\r\n- `light`\r\n            \r\n`Variant Guide`\r\n\r\nDefault: standard\r\n*** Supported Values ***\r\n- `filled`\r\n- `outlined`\r\n- `standard`"
      nullable: true
    Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.Invoice:
      required:
        - dueDate
        - invoiceDate
        - number
      type: object
      properties:
        number:
          maxLength: 20
          minLength: 0
          pattern: ^[0-9A-Za-z _\-\.\/]*$
          type: string
          description: The invoice number from the merchants data system.
        invoiceDate:
          maxLength: 14
          minLength: 0
          pattern: ^[0-9A-Za-z _\-\.\/]*$
          type: string
          description: "The date the invoice was issued.\r\n\r\nExample: 02/01/2025\r\nExample: 02-01-2025\r\nExample: 2.1.2025\r\nExample: Jan 1 2030\r\nExample: Jan 1 2030"
        dueDate:
          maxLength: 14
          minLength: 0
          type: string
          description: "The due date for payment.\r\n\r\nExample: 02/01/2025 = January 1 2030\r\nExample: 02/01/2025 = January 1 2030\r\nExample: 02/01/2025 = January 1 2030"
      additionalProperties: false
      description: "Invoice details\r\n\r\nIf `null` invoice information will not display."
      nullable: true
    Ecrypt.Gateway.Api.Core.Model.WebAPI.Enums.CurrencyCode:
      enum:
        - 8
        - 12
        - 32
        - 36
        - 44
        - 48
        - 50
        - 51
        - 52
        - 60
        - 64
        - 68
        - 72
        - 84
        - 90
        - 96
        - 104
        - 108
        - 116
        - 124
        - 132
        - 136
        - 144
        - 152
        - 156
        - 170
        - 174
        - 188
        - 192
        - 203
        - 208
        - 214
        - 222
        - 230
        - 232
        - 238
        - 242
        - 262
        - 270
        - 292
        - 320
        - 324
        - 328
        - 332
        - 340
        - 344
        - 348
        - 352
        - 356
        - 360
        - 364
        - 368
        - 376
        - 388
        - 392
        - 398
        - 400
        - 404
        - 408
        - 410
        - 414
        - 417
        - 418
        - 422
        - 426
        - 430
        - 434
        - 446
        - 454
        - 458
        - 462
        - 480
        - 484
        - 496
        - 498
        - 504
        - 512
        - 516
        - 524
        - 532
        - 533
        - 548
        - 554
        - 558
        - 566
        - 578
        - 586
        - 590
        - 598
        - 600
        - 604
        - 608
        - 634
        - 643
        - 646
        - 654
        - 682
        - 690
        - 702
        - 704
        - 706
        - 710
        - 728
        - 748
        - 752
        - 756
        - 760
        - 764
        - 776
        - 780
        - 784
        - 788
        - 800
        - 807
        - 818
        - 826
        - 834
        - 840
        - 858
        - 860
        - 882
        - 886
        - 901
        - 925
        - 926
        - 929
        - 930
        - 931
        - 932
        - 933
        - 934
        - 936
        - 937
        - 938
        - 940
        - 941
        - 943
        - 944
        - 946
        - 947
        - 948
        - 949
        - 950
        - 951
        - 952
        - 953
        - 960
        - 965
        - 967
        - 968
        - 969
        - 970
        - 971
        - 972
        - 973
        - 975
        - 976
        - 977
        - 978
        - 979
        - 980
        - 981
        - 984
        - 985
        - 986
        - 990
        - 994
        - 997
      type: integer
      format: int32
      x-enumNames:
        - ALL
        - DZD
        - ARS
        - AUD
        - BSD
        - BHD
        - BDT
        - AMD
        - BBD
        - BMD
        - BTN
        - BOB
        - BWP
        - BZD
        - SBD
        - BND
        - MMK
        - BIF
        - KHR
        - CAD
        - CVE
        - KYD
        - LKR
        - CLP
        - CNY
        - COP
        - KMF
        - CRC
        - CUP
        - CZK
        - DKK
        - DOP
        - SVC
        - ETB
        - ERN
        - FKP
        - FJD
        - DJF
        - GMD
        - GIP
        - GTQ
        - GNF
        - GYD
        - HTG
        - HNL
        - HKD
        - HUF
        - ISK
        - INR
        - IDR
        - IRR
        - IQD
        - ILS
        - JMD
        - JPY
        - KZT
        - JOD
        - KES
        - KPW
        - KRW
        - KWD
        - KGS
        - LAK
        - LBP
        - LSL
        - LRD
        - LYD
        - MOP
        - MWK
        - MYR
        - MVR
        - MUR
        - MXN
        - MNT
        - MDL
        - MAD
        - OMR
        - NAD
        - NPR
        - ANG
        - AWG
        - VUV
        - NZD
        - NIO
        - NGN
        - NOK
        - PKR
        - PAB
        - PGK
        - PYG
        - PEN
        - PHP
        - QAR
        - RUB
        - RWF
        - SHP
        - SAR
        - SCR
        - SGD
        - VND
        - SOS
        - ZAR
        - SSP
        - SZL
        - SEK
        - CHF
        - SYP
        - THB
        - TOP
        - TTD
        - AED
        - TND
        - UGX
        - MKD
        - EGP
        - GBP
        - TZS
        - USD
        - UYU
        - UZS
        - WST
        - YER
        - TWD
        - SLE
        - VED
        - MRU
        - STN
        - CUC
        - ZWL
        - BYN
        - TMT
        - GHS
        - VEF
        - SDG
        - UYI
        - RSD
        - MZN
        - AZN
        - RON
        - CHE
        - CHW
        - TRY
        - XAF
        - XCD
        - XOF
        - XPF
        - XDR
        - XUA
        - ZMW
        - SRD
        - MGA
        - COU
        - AFN
        - TJS
        - AOA
        - BGN
        - CDF
        - BAM
        - EUR
        - MXV
        - UAH
        - GEL
        - BOV
        - PLN
        - BRL
        - CLF
        - XSU
        - USN
    Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.Item:
      required:
        - name
        - price
        - quantity
      type: object
      properties:
        name:
          maxLength: 1000
          minLength: 0
          pattern: ^[0-9A-Za-z _\-\.,`'()@#!?\/\\:;|+=@%&]*$
          type: string
        price:
          maximum: 999999999.99
          minimum: 0
          type: number
          format: double
        quantity:
          maximum: 2147483647
          minimum: 0
          type: integer
          format: int32
        description:
          maxLength: 2000
          minLength: 0
          pattern: ^[0-9A-Za-z _\-\.,`'()@#!?\/\\:;|+=@%&]*$
          type: string
          nullable: true
      additionalProperties: false
      nullable: true
    Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.DynamicSubscription:
      type: object
      properties:
        billingCycle:
          $ref: >-
            #/components/schemas/Ecrypt.Gateway.Api.Core.Model.WebAPI.Enums.SubscriptionCycleType
        billingDate:
          type: string
          format: date-time
          nullable: true
        label:
          type: string
          nullable: true
      additionalProperties: false
      nullable: true
    Ecrypt.Gateway.Api.Core.Model.ResponseBaseError:
      type: object
      properties:
        type:
          type: string
        message: {}
      additionalProperties: false
      nullable: true
    Ecrypt.Gateway.Api.Core.Model.BadRequestError:
      type: object
      properties:
        type:
          type: string
        message: {}
      additionalProperties: false
      nullable: true
    Ecrypt.Gateway.Api.Core.Model.WebAPI.Enums.SubscriptionCycleType:
      enum:
        - 10
        - 20
        - 30
        - 50
        - 52
        - 70
        - 71
        - 73
        - 79
        - 90
        - 95
      type: integer
      description: "\r\nSubscription cycle intervals\r\n\r\nDAILY = 10 Cycle runs everyday</br>\r\n\r\nWEEKLY = 20 Run the same day every week</br>\r\n\r\nBI_WEEKLY = 30 Run on Monday and Wednesday in the Merchant Timezone</br>\r\n\r\nSEMI_MONTHLY_FIRST_AND_FIFTEENTH = 50 Run Every 1st and 15th</br>\r\n\r\nSEMI_MONTHLY_FIFTEENTH_AND_LAST = 52 Run Every 15th and Last Day of the month</br>\r\n\r\nMONTHLY = 70 Run the same day every month</br>\r\n\r\nMONTHLY_FIRST = 71 Run on the first of the month</br>\r\n\r\nMONTHLY_LAST = 79 Run on the last day of the month</br>\r\n\r\nQUARTERLY = 73 Run the same day of month every 3 months, use Monthly logic for validation</br>\r\n\r\nSEMI_ANNUALLY = 90 Run every 6 months</br>\r\n\r\nANNUALLY = 95 Run the same day of the year, use Monthly logic for validation</br>"
      format: int32
      x-enumNames:
        - Daily
        - Weekly
        - BiWeekly
        - SemiMonthlyFirstAndFifteenth
        - SemiMonthlyFifteenthAndLast
        - Monthly
        - MonthlyFirst
        - Quarterly
        - MonthlyLast
        - SemiAnnually
        - Annually
  securitySchemes:
    x-api-key:
      type: apiKey
      description: Authorization by x-api-key inside request's header
      name: x-api-key
      in: header

````