openapi: 3.0.1 info: title: Sezzle API v2 description: This Sezzle API is for merchants who want to accept Sezzle as a payment option termsOfService: 'https://legal.sezzle.com' # contact: # name: Sezzle Docs # url: 'docs.sezzle.com' version: 2.0.0 x-logo: url: 'https://media.sezzle.com/branding/2.0/png/Logo_WhiteWordmark_500x126.png' backgroundColor: '#392558' servers: - url: https://sandbox.gateway.sezzle.com/v2 description: development server, usa, ca - url: https://gateway.sezzle.com/v2 description: production server, usa, ca security: - Bearer: [] externalDocs: description: Sezzle API guides and tutorials url: https://docs.sezzle.com/sezzle-integration paths: /authentication: post: tags: - Bearer Authentication summary: Get a bearer authentication token operationId: postV1Authentication requestBody: description: Authentication request content: application/json: schema: type: object properties: private_key: type: string public_key: type: string required: true responses: '201': description: Successful operation content: application/json: schema: type: object properties: expiration_date: type: string format: date-time merchant_uuid: type: string token: type: string security: [] /session: post: tags: - Session summary: Create a new session description: Create new customer checkout and/or tokenize customer. operationId: postV2Session requestBody: description: Session request content: application/json: schema: $ref: '#/components/schemas/Session' required: true responses: '201': description: Successful operation content: application/json: schema: type: object properties: uuid: type: string links: type: array items: $ref: '#/components/schemas/Link' order: type: object properties: uuid: type: string checkout_url: type: string links: type: array items: $ref: '#/components/schemas/Link' tokenize: type: object properties: token: type: string expiration: type: string format: date-time approval_url: type: string links: type: array items: $ref: '#/components/schemas/Link' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '422': $ref: '#/components/responses/Unprocessable' '/session/{session_uuid}': get: tags: - Session summary: Get session status operationId: getV2Session parameters: - name: session_uuid in: path description: Session UUID required: true schema: type: string responses: '200': description: Successful operation content: application/json: schema: allOf: - $ref: '#/components/schemas/SessionStatus' - type: object properties: # links: # type: array # items: # $ref: '#/components/schemas/Link' order: type: object properties: intent: $ref: '#/components/schemas/Intent' uuid: type: string checkout_url: type: string links: type: array items: $ref: '#/components/schemas/Link' tokenize: type: object properties: token: type: string expiration: type: string format: date-time approval_url: type: string links: type: array items: $ref: '#/components/schemas/Link' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '/order/{order_uuid}': get: tags: - Order summary: Get order details operationId: getV2Order parameters: - name: order_uuid in: path description: Order UUID required: true schema: type: string responses: '200': description: Successful operation content: application/json: schema: allOf: - $ref: '#/components/schemas/SessionStatus' - type: object properties: intent: $ref: '#/components/schemas/Intent' reference_id: type: string description: type: string checkout_expiration: type: string format: date-time checkout_status: $ref: '#/components/schemas/CheckoutStatus' metadata: type: object additionalProperties: type: string order_amount: $ref: '#/components/schemas/Price' customer: $ref: '#/components/schemas/Customer' authorization: $ref: '#/components/schemas/OrderAuthorization' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' patch: tags: - Order summary: Update order operationId: patchV2Checkout parameters: - name: order_uuid in: path description: Order UUID required: true schema: type: string requestBody: description: Session request content: application/json: schema: type: object properties: reference_id: type: string required: true responses: '204': description: Updated '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/Unprocessable' # delete: # tags: # - Order # summary: WIP Cancel unauthorized order # operationId: deleteV2Checkout # parameters: # - name: order_uuid # in: path # description: Order UUID # required: true # schema: # type: string # responses: # '204': # description: Deleted # '400': # $ref: '#/components/responses/BadRequest' # '401': # $ref: '#/components/responses/Unauthorized' # '404': # $ref: '#/components/responses/NotFound' /customer: get: tags: - Customer summary: Get list of customers operationId: getV2CustomerList responses: '200': description: Successful operation content: application/json: schema: type: array items: type: object properties: uuid: type: string expiration: type: string format: date-time links: type: array items: $ref: '#/components/schemas/Link' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '/customer/{customer_uuid}': get: tags: - Customer summary: Get customer operationId: getV2Customer parameters: - name: customer_uuid in: path description: Customer UUID required: true schema: type: string responses: '200': description: Successful operation content: application/json: schema: allOf: - $ref: '#/components/schemas/SessionStatus' - $ref: '#/components/schemas/Customer' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' delete: tags: - Customer summary: Delete customer operationId: deleteV2Token parameters: - name: customer_uuid in: path description: Customer UUID required: true schema: type: string responses: '204': description: Deleted '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '/customer/{customer_uuid}/preapprove': post: tags: - Customer summary: Preapprove amount by customer operationId: preapproveV2Token parameters: - name: customer_uuid in: path description: Customer UUID required: true schema: type: string requestBody: description: Preapproval request content: application/json: schema: $ref: '#/components/schemas/Price' responses: '200': description: Successful operation content: application/json: schema: type: object properties: uuid: type: string approved: type: boolean '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/Unprocessable' '/customer/{customer_uuid}/order': post: tags: - Customer summary: Create order by customer operationId: postV2CustomerOrder parameters: - name: customer_uuid in: path description: Customer UUID required: true schema: type: string - name: Sezzle-Request-Id in: header description: Unique client-generated ID to enforce idempotency required: false schema: type: string requestBody: description: Order request content: application/json: schema: allOf: - type: object properties: intent: $ref: '#/components/schemas/Intent' reference_id: type: string order_amount: $ref: '#/components/schemas/Price' financing_options: description: | *The financing options of the order. Only one option can be included.* type: array items: $ref: '#/components/schemas/InstallmentPlan' responses: '200': description: Successful operation content: application/json: schema: allOf: - $ref: '#/components/schemas/SessionStatus' - type: object properties: intent: type: string reference_id: type: string order_amount: $ref: '#/components/schemas/Price' authorization: $ref: '#/components/schemas/OrderAuthorization' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/Unprocessable' '/token/{token}/session': get: tags: - Token summary: Get session token operationId: getV2SessionToken parameters: - name: token in: path description: 'Merchant initiated token' required: true schema: type: string responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/Token' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '/token/{token}/customer': get: tags: - Token summary: Get customer token operationId: getV2CustomerToken parameters: - name: token in: path description: 'Customer initiated token, e.g. generated in mobile app' required: true schema: type: string responses: '501': description: not implemented yet # '200': # description: Successful operation # content: # application/json: # schema: # type: object # properties: # customer_uuid: # type: string # status: # type: string # links: # type: array # items: # $ref: '#/components/schemas/Link' # '400': # $ref: '#/components/responses/BadRequest' # '401': # $ref: '#/components/responses/Unauthorized' # '404': # $ref: '#/components/responses/NotFound' '/order/{order_uuid}/release': post: tags: - Order summary: Release amount by order operationId: postV2ReleaseByOrder parameters: - name: order_uuid in: path description: Order UUID required: true schema: type: string - name: Sezzle-Request-Id in: header description: Unique client-generated ID to enforce idempotency required: false schema: type: string requestBody: description: Release request content: application/json: schema: $ref: '#/components/schemas/Price' responses: '200': description: Successful operation content: application/json: schema: type: object properties: uuid: type: string '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/Unprocessable' '/order/{order_uuid}/capture': post: tags: - Order summary: Capture amount by order operationId: postV2CaptureByOrder parameters: - name: order_uuid in: path description: Order UUID required: true schema: type: string - name: Sezzle-Request-Id in: header description: Unique client-generated ID to enforce idempotency required: false schema: type: string requestBody: description: Capture request content: application/json: schema: type: object properties: capture_amount: $ref: '#/components/schemas/Price' responses: '200': description: Successful operation content: application/json: schema: type: object properties: uuid: type: string '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/Unprocessable' '/order/{order_uuid}/refund': post: tags: - Order summary: Refund amount by order operationId: postV2RefundByOrder parameters: - name: order_uuid in: path description: Order UUID required: true schema: type: string - name: Sezzle-Request-Id in: header description: Unique client-generated ID to enforce idempotency required: false schema: type: string requestBody: description: Refund request content: application/json: schema: $ref: '#/components/schemas/Price' responses: '200': description: Successful operation content: application/json: schema: type: object properties: uuid: type: string '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/Unprocessable' '/order/{order_uuid}/reauthorize': post: tags: - Order summary: Reauthorize amount by order description: | - Allowed once the original order authorization has expired - Response will be a new order and its `uuid` can be used on the Order API endpoints operationId: postV2ReauthorizeByOrder parameters: - name: order_uuid in: path description: Order UUID required: true schema: type: string - name: Sezzle-Request-Id in: header description: Unique client-generated ID to enforce idempotency required: false schema: type: string requestBody: description: Reauthorize request content: application/json: schema: $ref: '#/components/schemas/Price' responses: '200': description: Successful operation content: application/json: schema: allOf: - $ref: '#/components/schemas/SessionStatus' - type: object properties: intent: type: string reference_id: type: string description: type: string metadata: type: object additionalProperties: type: string order_amount: $ref: '#/components/schemas/Price' authorization: $ref: '#/components/schemas/OrderAuthorization' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/Unprocessable' '/order/{order_uuid}/upcharge': post: tags: - Order summary: Upcharge amount by order description: | - Response will be a new order for the upcharge amount and its `uuid` can be used on the Order API endpoints operationId: postV2UpchargeByOrder parameters: - name: order_uuid in: path description: Order UUID required: true schema: type: string - name: Sezzle-Request-Id in: header description: Unique client-generated ID to enforce idempotency required: false schema: type: string requestBody: description: Upcharge request content: application/json: schema: type: object properties: intent: $ref: '#/components/schemas/Intent' upcharge_amount: $ref: '#/components/schemas/Price' responses: '200': description: Successful operation content: application/json: schema: allOf: - $ref: '#/components/schemas/SessionStatus' - type: object properties: intent: type: string reference_id: type: string description: type: string metadata: type: object additionalProperties: type: string order_amount: $ref: '#/components/schemas/Price' authorization: $ref: '#/components/schemas/OrderAuthorization' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/Unprocessable' '/order/{order_uuid}/checkout': delete: tags: - Order summary: Delete checkout by order operationId: deleteV2DeleteCheckoutByOrder parameters: - name: order_uuid in: path description: Order UUID required: true schema: type: string responses: '204': description: Successful operation '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/Unprocessable' /webhooks: post: tags: - Webhooks summary: Create webhooks operationId: postV2Webhooks requestBody: description: Webhooks request content: application/json: schema: $ref: '#/components/schemas/Webhook' required: true responses: '200': description: Successful operation content: application/json: schema: type: object properties: uuid: type: string links: type: array items: $ref: '#/components/schemas/Link' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '422': $ref: '#/components/responses/Unprocessable' get: tags: - Webhooks summary: List webhooks operationId: getV2Webhooks responses: '200': description: Successful operation content: application/json: schema: type: array items: allOf: - type: object properties: uuid: type: string links: type: array items: $ref: '#/components/schemas/Link' - $ref: '#/components/schemas/Webhook' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /webhooks/{webhooks_uuid}: get: tags: - Webhooks summary: Get webhook operationId: getV2Webhook parameters: - name: webhooks_uuid in: path description: Webhooks UUID required: true schema: type: string responses: '200': description: Successful operation content: application/json: schema: allOf: - type: object properties: uuid: type: string links: type: array items: $ref: '#/components/schemas/Link' - $ref: '#/components/schemas/Webhook' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' delete: tags: - Webhooks summary: Delete webhooks operationId: deleteV2Webhooks parameters: - name: webhooks_uuid in: path description: Webhooks UUID required: true schema: type: string responses: '204': description: Successful operation '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /webhooks/test: post: tags: - Webhooks summary: Trigger a test webhook operationId: postV2WebhookTest requestBody: description: request content: application/json: schema: $ref: '#/components/schemas/WebhookTest' required: true responses: '204': description: Successful operation '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /settlements/summaries: get: tags: - Reports summary: Settlement Summaries operationId: getSettlementSummaries parameters: - name: start-date in: query description: Start Date required: true schema: type: string format: yyyy-mm-dd - name: end-date in: query description: End Date schema: type: string format: yyyy-mm-dd - name: offset in: query description: Pagination Offset (Limit 20) schema: type: string format: int32 - name: currency-code in: query description: ISO-4217 Currency Code schema: type: string responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/Payout' '401': $ref: '#/components/responses/Unauthorized' /settlements/details/{payout_uuid}: get: tags: - Reports summary: Settlement Details operationId: getSettlementDetails parameters: - name: payout_uuid in: path description: Payout UUID required: true schema: type: string responses: '200': description: CSV file content: text/csv: schema: type: string example: > total_order_amount,total_refund_amount,total_fee_amount,total_returned_fee_amount,total_chargeback_amount,total_chargeback_reversal_amount,total_interest_transfer_amount,total_correction_amount,total_referral_revenue_transfer_amount,total_bank_account_withdrawals,total_bank_account_withdrawal_reversals,forex_fees,net_settlement_amount,payment_uuid,settlement_currency,payout_date,payout_status 703.20,-5.00,-43.80,.30,0.00,0.00,-4.30,1.71,10.00,100.00,-100.00,0.00,693.61,a5c13qt1-4126-41d3-2fq8-9ca431f51431,USD,2019-11-02 00:05:00 +0000 UTC,Complete type,order_capture_date,order_created_at,event_date,order_uuid,customer_order_id,external_reference_id,order_amount,amount,posting_currency,type_code,chargeback_code,sezzle_order_id ORDER,2019-11-01T19:09:50Z,2019-11-01T19:09:50Z,2019-10-22T19:09:50Z,bm99f-31vu1-kg00e-rae1g,1,12345,500.00,,USD,001,,66d78e86-fd96-4266-9217-b769c102a0a0 ORDER,2019-11-01T19:09:50Z,2019-11-01T19:09:50Z,2019-10-22T19:09:50Z,va13d-474s9-3000e-nungg,13,12346,200.00,,USD,001,,5e0d4886-8c3d-4d4e-901a-2046a06c1e0f ORDER,2019-11-01T20:00:01Z,2019-11-01T00:00:01Z,2019-11-01T00:00:01Z,as41g-4v4s9-3000e-nunh0,1,12347,1.40,,USD,001,,a2c1a142-96ad-48c9-93d2-1acaaee9f073 ORDER,2019-11-01T20:00:01Z,2019-11-01T20:00:01Z,2019-11-01T20:00:01Z,as62l-5ptqs-9g00e-pvk10,2,12348,1.80,,USD,001,,3f62dcba-f5a4-41be-ad8f-53e938b5f310 CAPTURE,2019-11-01T20:00:01Z,2019-11-01T20:00:01Z,2019-11-01T20:00:01Z,as62l-5ptqs-9g00e-pvk10,2,12348,,1.80,USD,001,,3f62dcba-f5a4-41be-ad8f-53e938b5f310 FEE,2019-11-01T19:09:50Z,2019-11-01T19:09:50Z,2019-11-01T19:09:50Z,bm99f-31vu1-kg00e-rae1g,1,12345,,-30.00,USD,003,,66d78e86-fd96-4266-9217-b769c102a0a0 FEE,2019-11-01T19:09:50Z,2019-11-01T19:09:50Z,2019-11-01T19:09:50Z,va13d-474s9-3000e-nungg,13,12346,,-12.00,USD,003,,5e0d4886-8c3d-4d4e-901a-2046a06c1e0f FEE,2019-11-01T20:00:01Z,2019-11-01T00:00:01Z,2019-11-01T20:00:01Z,as41g-4v4s9-3000e-nunh0,1,12347,,-1.20,USD,003,,a2c1a142-96ad-48c9-93d2-1acaaee9f073 FEE,2019-11-01T20:00:01Z,2019-11-01T20:00:01Z,2019-11-01T20:00:01Z,as62l-5ptqs-9g00e-pvk10,2,12348,,-0.60,USD,003,,3f62dcba-f5a4-41be-ad8f-53e938b5f310 REFUND,2019-10-22T19:09:50Z,2019-10-22T19:09:50Z,2019-11-01T19:09:50Z,bm5rm-vg2js-1tsky-c2dsky,8,12344,,5.00,USD,002,,e4194956-de70-4958-9da4-6c05f276fdab RETURNED_FEE,2019-10-22T19:09:50Z,2019-10-22T19:09:50Z,2019-11-01T19:09:50Z,bm5rm-vg2js-1tsky-c2dsky,7,12344,,.30,USD,004,,e4194956-de70-4958-9da4-6c05f276fdab CORRECTION,,,2019-11-01T17:00:01Z,,,,,-1.29,,007, CORRECTION,,,2019-11-01T17:00:01Z,,,,,3.00,,007, INTEREST_TRANSFER,,,2019-11-01T18:00:01Z,,,,,-4.30,,008, REFERRAL_REVENUE_TRANSFER,,,2019-11-01T15:00:01Z,,,,,10.00,,009, BANK_ACCOUNT_WITHDRAWAL,,,2019-11-02T00:05:00Z,,,,,100.00,,010, BANK_ACCOUNT_WITHDRAWAL_REVERSAL,,,2019-11-02T00:05:00Z,,,,,-100.00,,011, '401': $ref: '#/components/responses/Unauthorized' /interest/balance: get: tags: - Reports summary: Interest Account Balance operationId: getInterestAccountBalance parameters: - name: currency-code in: query description: ISO-4217 Currency Code schema: type: string responses: '200': description: Successful operation content: application/json: schema: type: object properties: interest_balance: type: number '401': $ref: '#/components/responses/Unauthorized' /interest/activity: get: tags: - Reports summary: Interest Account Activity operationId: getInterestAccountActivity parameters: - name: start-date in: query description: Start Date required: true schema: type: string format: yyyy-mm-dd - name: end-date in: query description: End Date schema: type: string format: yyyy-mm-dd - name: offset in: query description: Pagination Offset (Limit 20) schema: type: string format: int32 - name: currency-code in: query description: ISO-4217 Currency Code schema: type: string responses: '200': description: CSV file content: text/csv: schema: type: string example: > type,event_date,interest_account_change_amount,interest_account_balance_after_change INTEREST_PAYOUT,2019-12-21T19:10:00Z,122.8718,5101.4676 INTEREST_WITHDRAWAL,2019-12-21T19:20:00Z,-26.1000,5075.3676 INTEREST_ACCRUAL,2019-12-21T19:15:00Z,1.0702,5182.3922 INTEREST_ACCRUAL,2019-12-22T19:15:00Z,1.0702,5183.4624 '401': $ref: '#/components/responses/Unauthorized' components: responses: BadRequest: description: Invalid request content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: The specified resource was not found content: application/json: schema: $ref: '#/components/schemas/Error' Unprocessable: description: Unable to process the request entity content: application/json: schema: $ref: '#/components/schemas/Error' schemas: Intent: type: string enum: - AUTH - CAPTURE InstallmentPlan: type: string enum: - 4-pay-biweekly - 4-pay-monthly - 6-pay-monthly CheckoutStatus: type: string enum: - active - completed - deleted - denied Address: required: - city - country_code - postal_code - state - street type: object properties: city: type: string country_code: type: string name: type: string nullable: true phone: type: string nullable: true postal_code: type: string state: type: string street: type: string street2: type: string nullable: true Discount: required: - amount - name type: object properties: amount: $ref: '#/components/schemas/Price' name: type: string Session: required: - cancel_url - complete_url type: object properties: cancel_url: type: object properties: href: type: string method: type: string complete_url: type: object properties: href: type: string method: type: string customer: allOf: - type: object properties: tokenize: type: boolean - $ref: '#/components/schemas/Customer' order: allOf: - type: object properties: intent: $ref: '#/components/schemas/Intent' - $ref: '#/components/schemas/Order' - type: object properties: order_amount: $ref: '#/components/schemas/Price' checkout_financing_options: description: | *currently not supported, defaults to 4-pay-biweekly* type: array items: $ref: '#/components/schemas/InstallmentPlan' send_checkout_url: $ref: '#/components/schemas/Notification' locale: type: string # session_timeout: # type: integer # format: int32 SessionStatus: type: object properties: uuid: type: string # status_tbd: # type: string # created_at: # type: string # format: date-time links: type: array items: $ref: '#/components/schemas/Link' Authorization: allOf: - $ref: '#/components/schemas/SessionStatus' - $ref: '#/components/schemas/OrderAuthorization' OrderAuthorization: type: object properties: authorization_amount: $ref: '#/components/schemas/Price' approved: type: boolean expiration: type: string format: date-time financing_option: type: string sezzle_order_id: type: string description: Internal Sezzle Order ID (in Merchant Dashboard) releases: type: array items: $ref: '#/components/schemas/Capture' captures: type: array items: $ref: '#/components/schemas/Capture' refunds: type: array items: $ref: '#/components/schemas/Refund' Capture: type: object properties: uuid: type: string amount: $ref: '#/components/schemas/Price' LineItem: required: - name - price - quantity - sku type: object properties: name: type: string price: $ref: '#/components/schemas/Price' quantity: type: integer format: int32 sku: type: string Customer: type: object properties: email: type: string first_name: type: string last_name: type: string phone: type: string dob: type: string token_expiration: type: string format: date-time # status: # type: string # format: Active|NotApproved|InsufficientFunds billing_address: $ref: '#/components/schemas/Address' shipping_address: $ref: '#/components/schemas/Address' Refund: type: object properties: uuid: type: string amount: $ref: '#/components/schemas/Price' # is_full_refund: # type: boolean # nullable: true # order_reference_id: # type: string # nullable: true # reference_id: # type: string # reason: # type: string # nullable: true Order: type: object properties: reference_id: type: string description: type: string # store_name: # type: string requires_shipping_info: type: boolean items: type: array items: $ref: '#/components/schemas/LineItem' discounts: type: array items: $ref: '#/components/schemas/Discount' metadata: type: object additionalProperties: type: string shipping_amount: $ref: '#/components/schemas/Price' tax_amount: $ref: '#/components/schemas/Price' checkout_expiration: type: string format: date-time Token: type: object properties: token: type: string expiration: type: string format: date-time links: type: array items: $ref: '#/components/schemas/Link' customer: type: object properties: uuid: type: string expiration: type: string format: date-time links: type: array items: $ref: '#/components/schemas/Link' Price: required: - amount_in_cents - currency type: object properties: amount_in_cents: type: integer format: int32 currency: type: string Notification: type: object properties: to_sms_phone: type: string to_email: type: string language: type: string WebhookEvent: type: string enum: - customer.tokenized - order.authorized - order.captured - order.refunded Webhook: required: - url type: object properties: url: type: string events: type: array items: $ref: '#/components/schemas/WebhookEvent' Link: type: object properties: href: type: string method: type: string rel: type: string WebhookTest: required: - url type: object properties: url: type: string event: $ref: '#/components/schemas/WebhookEvent' Payout: type: array items: type: object properties: uuid: type: string payout_currency: type: string payout_date: type: string format: date-time net_settlement_amount: type: number forex_fees: type: integer status: type: string Error: type: array items: type: object properties: code: type: string location: type: string message: type: string debug_uuid: type: string securitySchemes: Bearer: type: apiKey name: Authorization in: header