> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.solvimon.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.solvimon.com/_mcp/server.

# Complete a failed checkout session again

POST https://test.api.solvimon.com/v{version}/portal-urls/{resourceId}/complete

Resumes the completion of a paid checkout session that FAILED, once what failed it is fixed, or of a paid session still PROCESSING that no completion is running for any more. Only for a portal url of type CHECKOUT_SESSION; a session that is being completed is refused. Nothing that was already created is created again. Requires the PORTAL_URL.UPDATE permission.

Reference: https://docs.solvimon.com/api-docs/transaction-api/portal-urls/post-portal-urls-by-resource-id-complete

## Authentication

- `X-API-KEY` header (required) — API Key authentication via header
- `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Servers

- `https://test.api.solvimon.com` (The TEST environment for our API, default)
- `https://api.solvimon.com` (The live environment for our API)

## Request

### Path parameters

- `version` (string, required, default: 1) — version
- `resourceId` (string, required, default: ) — The ID of the resource for which the action is posted.

### Headers

- `x-platform-id` (string, optional) — Platform ID.

## Response

### 200

OK

- `object_type` (string, optional, nullable)
- `id` (string, optional, nullable)
- `type` (enum, optional, nullable)
  - Allowed values: `INVOICE`, `PAY_INVOICE`, `CUSTOMER`, `QUOTE_VERSION`, `INIT_PRICING_PLAN_SUBSCRIPTION`, `CHECKOUT_SESSION`
- `customer_id` (string, optional, nullable) — Resource ID of type CUSTOMER
- `status` (enum, optional, nullable) — The status of the link. PUBLISHED: the link can be used until `expires_at`. REVOKED: the platform revoked the link. EXPIRED: `expires_at` passed while the link was PUBLISHED. CLOSED: the checkout session of the link is done (COMPLETED or FAILED); the link accepts no more changes and does not expire.
  - Allowed values: `PUBLISHED`, `REVOKED`, `EXPIRED`, `CLOSED`
- `authentication` (enum, optional, nullable) — How the link authenticates the customer, derived from the type. A SIGNED_TOKEN link returns its `token` and `url` only when it is created.
  - Allowed values: `IDENTITY_TOKEN`, `SIGNED_TOKEN`
- `created_at` (string, optional, nullable)
- `updated_at` (string, optional, nullable)
- `expiry_period` (PortalUrlPeriod, optional) — How long the link stays valid after it is created; sets `expires_at`. For type CHECKOUT_SESSION at least 30 MINUTE and at most 1 HOUR, 1 HOUR when omitted, and it can not be changed afterwards.
- `expires_at` (string, optional, nullable)
- `embedded` (boolean, optional, nullable)
- `template_id` (string, optional, nullable)
- `token` (string, optional, nullable)
- `url` (string, optional, nullable)
- `widgets` (PortalUrlWidgets, optional, nullable)
- `invoice` (InvoicePortalUrl, optional)
- `customer` (CustomerPortalUrl, optional)
- `quote_version` (QuoteVersionPortalUrl, optional)
- `init_pricing_plan_subscription` (InitPricingPlanSubscriptionPortalUrl, optional)
- `checkout_session` (CheckoutSessionPortalUrl, optional) — The checkout session. Required for type CHECKOUT_SESSION.

## Errors

### 400 Bad Request Error

Bad Request

- `type` (enum, required)
  - Allowed values: `API_ERROR`, `INVALID_REQUEST`
- `code` (enum, required)
  - Allowed values: `RESOURCE_NOT_FOUND`, `RESOURCES_NOT_FOUND`, `UNABLE_TO_PROCESS_INSTRUCTIONS`, `BAD_REQUEST`, `UNSUPPORTED_MEDIA_TYPE`, `RESOURCE_ALREADY_EXISTS`, `CUSTOM_FIELD_VALUE_ALREADY_EXISTS`, `COULD_NOT_CREATE_RESOURCE`, `COULD_NOT_UPDATE_RESOURCE`, `COULD_NOT_DELETE_RESOURCE`, `MISSING_VERSION`, `UNSUPPORTED_VERSION`, `UNAUTHORISED`, `PORTAL_URL_EXPIRED`, `PORTAL_URL_REVOKED`, `CHECKOUT_SESSION_CLOSED`, `CUSTOMER_NOT_FOUND`, `PLATFORM_NOT_FOUND`, `PRICING_PLAN_NOT_FOUND`, `PRODUCT_NOT_FOUND`, `PRODUCT_ITEM_NOT_FOUND`, `PRICING_NOT_FOUND`, `PRICING_ITEM_NOT_FOUND`, `USER_NOT_FOUND`, `METER_NOT_FOUND`, `METER_VALUE_NOT_FOUND`, `METER_PROPERTY_NOT_FOUND`, `PRICING_ITEM_SUMMARIES_NOT_FOUND`, `MISSING_ID`, `INVALID_ID`, `MISSING_REFERENCE`, `MISSING_FIELD`, `INVALID_FIELD`, `INVALID_OPERATION`, `INTERNAL_ERROR`, `USER_NOT_ALLOWED`, `IDEMPOTENCY_CHECK_FAILED`, `INVALID_REQUEST`
- `message` (string, required)
- `field` (string, optional, nullable)
- `resource_id` (string, optional, nullable)
- `resource_type` (enum, optional, nullable)
  - Allowed values: `CUSTOMER`, `CUSTOM_FIELD`, `PLATFORM`, `PLATFORM_UPTODATE`, `METER`, `METER_VALUE`, `METER_PROPERTY`, `METER_PROPERTY_VARIABLE`, `METER_VALUE_CALCULATION`, `INGEST_DATA`, `METER_DATA`, `CHARGE_DATA`, `PERSIST_DATA`, `ADJUSTMENT_DATA`, `PRODUCT_CATEGORY`, `PRODUCT`, `PRODUCT_ITEM`, `PRICING`, `PRICING_GROUP`, `PRICING_ITEM`, `PRICING_ITEM_CONFIG`, `PRICING_PLAN_SUBSCRIPTION`, `PRICING_PLAN_SUBSCRIPTION_GROUP`, `PRICING_PLAN_SCHEDULE`, `SEAT_ASSIGNMENT`, `SHIPPING_ADDRESS`, `PRICING_PLAN`, `PRICING_PLAN_VERSION`, `PRICING_PLAN_GROUP`, `QUOTE`, `QUOTE_VERSION`, `QUOTE_TEMPLATE`, `QUOTE_VERSION_SUMMARY`, `API_KEY`, `USER`, `ROLE`, `PROXY_USER`, `EXTERNAL_CREDENTIALS`, `TOKEN`, `INVOICE`, `E_INVOICE`, `PDF`, `BILLING_ENTITY`, `FEATURE`, `MEMBERSHIP`, `PAYMENT`, `PAYMENT_ACCEPTOR`, `PAYMENT_METHOD`, `PAYMENT_METHOD_OPTIONS`, `PAYMENT_SCHEDULE`, `PAYMENT_REQUEST`, `INTEGRATION`, `WEBHOOK`, `WEBHOOK_EVENT`, `FILE`, `FILE_PROCESSING_SETTINGS`, `TEAM`, `DOWNLOAD_URL`, `CSV_REPORT`, `REPORT`, `REPORT_GENERATE_REQUEST`, `REPORT_CONFIGURATION`, `REPORT_SUBSCRIPTION`, `REPORT_DEFINITION`, `ACCOUNT_GROUP`, `ENTITY`, `EVENT_TRACE`, `EVENT_TRACE_LINK`, `PRICING_CATEGORY`, `CONTACT`, `ALERT_RULE`, `ALERT`, `USAGE_LIMIT`, `AUDIT_RECORD`, `PORTAL_URL`, `AUTHENTICATION_PROVIDER`, `REPROCESS`, `APPROVAL_POLICY`, `APPROVAL_REQUEST`, `BULK_ACTION`, `COUPON`, `PROMOTION_CODE`, `WALLET`, `WALLET_TYPE`, `WALLET_GRANT`, `AUTO_TOPUP_CONFIG`, `WORKFLOW`, `WORKFLOW_TRIGGER`, `WORKFLOW_ACTION`, `WORKFLOW_ACTION_EXECUTION`, `CREDIT_TYPE`, `SIGNATURE_REQUEST`, `ATTACHMENT`, `DOCUMENT`, `EXCHANGE_RATE`
- `reason` (enum, optional, nullable)
  - Allowed values: `MISSING_FIELDS`
- `missing_fields` (MissingFields, optional)

### 401 Unauthorized Error

Unauthorized

- `type` (enum, required)
  - Allowed values: `API_ERROR`, `INVALID_REQUEST`
- `code` (enum, required)
  - Allowed values: `RESOURCE_NOT_FOUND`, `RESOURCES_NOT_FOUND`, `UNABLE_TO_PROCESS_INSTRUCTIONS`, `BAD_REQUEST`, `UNSUPPORTED_MEDIA_TYPE`, `RESOURCE_ALREADY_EXISTS`, `CUSTOM_FIELD_VALUE_ALREADY_EXISTS`, `COULD_NOT_CREATE_RESOURCE`, `COULD_NOT_UPDATE_RESOURCE`, `COULD_NOT_DELETE_RESOURCE`, `MISSING_VERSION`, `UNSUPPORTED_VERSION`, `UNAUTHORISED`, `PORTAL_URL_EXPIRED`, `PORTAL_URL_REVOKED`, `CHECKOUT_SESSION_CLOSED`, `CUSTOMER_NOT_FOUND`, `PLATFORM_NOT_FOUND`, `PRICING_PLAN_NOT_FOUND`, `PRODUCT_NOT_FOUND`, `PRODUCT_ITEM_NOT_FOUND`, `PRICING_NOT_FOUND`, `PRICING_ITEM_NOT_FOUND`, `USER_NOT_FOUND`, `METER_NOT_FOUND`, `METER_VALUE_NOT_FOUND`, `METER_PROPERTY_NOT_FOUND`, `PRICING_ITEM_SUMMARIES_NOT_FOUND`, `MISSING_ID`, `INVALID_ID`, `MISSING_REFERENCE`, `MISSING_FIELD`, `INVALID_FIELD`, `INVALID_OPERATION`, `INTERNAL_ERROR`, `USER_NOT_ALLOWED`, `IDEMPOTENCY_CHECK_FAILED`, `INVALID_REQUEST`
- `message` (string, required)
- `field` (string, optional, nullable)
- `resource_id` (string, optional, nullable)
- `resource_type` (enum, optional, nullable)
  - Allowed values: `CUSTOMER`, `CUSTOM_FIELD`, `PLATFORM`, `PLATFORM_UPTODATE`, `METER`, `METER_VALUE`, `METER_PROPERTY`, `METER_PROPERTY_VARIABLE`, `METER_VALUE_CALCULATION`, `INGEST_DATA`, `METER_DATA`, `CHARGE_DATA`, `PERSIST_DATA`, `ADJUSTMENT_DATA`, `PRODUCT_CATEGORY`, `PRODUCT`, `PRODUCT_ITEM`, `PRICING`, `PRICING_GROUP`, `PRICING_ITEM`, `PRICING_ITEM_CONFIG`, `PRICING_PLAN_SUBSCRIPTION`, `PRICING_PLAN_SUBSCRIPTION_GROUP`, `PRICING_PLAN_SCHEDULE`, `SEAT_ASSIGNMENT`, `SHIPPING_ADDRESS`, `PRICING_PLAN`, `PRICING_PLAN_VERSION`, `PRICING_PLAN_GROUP`, `QUOTE`, `QUOTE_VERSION`, `QUOTE_TEMPLATE`, `QUOTE_VERSION_SUMMARY`, `API_KEY`, `USER`, `ROLE`, `PROXY_USER`, `EXTERNAL_CREDENTIALS`, `TOKEN`, `INVOICE`, `E_INVOICE`, `PDF`, `BILLING_ENTITY`, `FEATURE`, `MEMBERSHIP`, `PAYMENT`, `PAYMENT_ACCEPTOR`, `PAYMENT_METHOD`, `PAYMENT_METHOD_OPTIONS`, `PAYMENT_SCHEDULE`, `PAYMENT_REQUEST`, `INTEGRATION`, `WEBHOOK`, `WEBHOOK_EVENT`, `FILE`, `FILE_PROCESSING_SETTINGS`, `TEAM`, `DOWNLOAD_URL`, `CSV_REPORT`, `REPORT`, `REPORT_GENERATE_REQUEST`, `REPORT_CONFIGURATION`, `REPORT_SUBSCRIPTION`, `REPORT_DEFINITION`, `ACCOUNT_GROUP`, `ENTITY`, `EVENT_TRACE`, `EVENT_TRACE_LINK`, `PRICING_CATEGORY`, `CONTACT`, `ALERT_RULE`, `ALERT`, `USAGE_LIMIT`, `AUDIT_RECORD`, `PORTAL_URL`, `AUTHENTICATION_PROVIDER`, `REPROCESS`, `APPROVAL_POLICY`, `APPROVAL_REQUEST`, `BULK_ACTION`, `COUPON`, `PROMOTION_CODE`, `WALLET`, `WALLET_TYPE`, `WALLET_GRANT`, `AUTO_TOPUP_CONFIG`, `WORKFLOW`, `WORKFLOW_TRIGGER`, `WORKFLOW_ACTION`, `WORKFLOW_ACTION_EXECUTION`, `CREDIT_TYPE`, `SIGNATURE_REQUEST`, `ATTACHMENT`, `DOCUMENT`, `EXCHANGE_RATE`
- `reason` (enum, optional, nullable)
  - Allowed values: `MISSING_FIELDS`
- `missing_fields` (MissingFields, optional)

### 403 Forbidden Error

Forbidden

- `type` (enum, required)
  - Allowed values: `API_ERROR`, `INVALID_REQUEST`
- `code` (enum, required)
  - Allowed values: `RESOURCE_NOT_FOUND`, `RESOURCES_NOT_FOUND`, `UNABLE_TO_PROCESS_INSTRUCTIONS`, `BAD_REQUEST`, `UNSUPPORTED_MEDIA_TYPE`, `RESOURCE_ALREADY_EXISTS`, `CUSTOM_FIELD_VALUE_ALREADY_EXISTS`, `COULD_NOT_CREATE_RESOURCE`, `COULD_NOT_UPDATE_RESOURCE`, `COULD_NOT_DELETE_RESOURCE`, `MISSING_VERSION`, `UNSUPPORTED_VERSION`, `UNAUTHORISED`, `PORTAL_URL_EXPIRED`, `PORTAL_URL_REVOKED`, `CHECKOUT_SESSION_CLOSED`, `CUSTOMER_NOT_FOUND`, `PLATFORM_NOT_FOUND`, `PRICING_PLAN_NOT_FOUND`, `PRODUCT_NOT_FOUND`, `PRODUCT_ITEM_NOT_FOUND`, `PRICING_NOT_FOUND`, `PRICING_ITEM_NOT_FOUND`, `USER_NOT_FOUND`, `METER_NOT_FOUND`, `METER_VALUE_NOT_FOUND`, `METER_PROPERTY_NOT_FOUND`, `PRICING_ITEM_SUMMARIES_NOT_FOUND`, `MISSING_ID`, `INVALID_ID`, `MISSING_REFERENCE`, `MISSING_FIELD`, `INVALID_FIELD`, `INVALID_OPERATION`, `INTERNAL_ERROR`, `USER_NOT_ALLOWED`, `IDEMPOTENCY_CHECK_FAILED`, `INVALID_REQUEST`
- `message` (string, required)
- `field` (string, optional, nullable)
- `resource_id` (string, optional, nullable)
- `resource_type` (enum, optional, nullable)
  - Allowed values: `CUSTOMER`, `CUSTOM_FIELD`, `PLATFORM`, `PLATFORM_UPTODATE`, `METER`, `METER_VALUE`, `METER_PROPERTY`, `METER_PROPERTY_VARIABLE`, `METER_VALUE_CALCULATION`, `INGEST_DATA`, `METER_DATA`, `CHARGE_DATA`, `PERSIST_DATA`, `ADJUSTMENT_DATA`, `PRODUCT_CATEGORY`, `PRODUCT`, `PRODUCT_ITEM`, `PRICING`, `PRICING_GROUP`, `PRICING_ITEM`, `PRICING_ITEM_CONFIG`, `PRICING_PLAN_SUBSCRIPTION`, `PRICING_PLAN_SUBSCRIPTION_GROUP`, `PRICING_PLAN_SCHEDULE`, `SEAT_ASSIGNMENT`, `SHIPPING_ADDRESS`, `PRICING_PLAN`, `PRICING_PLAN_VERSION`, `PRICING_PLAN_GROUP`, `QUOTE`, `QUOTE_VERSION`, `QUOTE_TEMPLATE`, `QUOTE_VERSION_SUMMARY`, `API_KEY`, `USER`, `ROLE`, `PROXY_USER`, `EXTERNAL_CREDENTIALS`, `TOKEN`, `INVOICE`, `E_INVOICE`, `PDF`, `BILLING_ENTITY`, `FEATURE`, `MEMBERSHIP`, `PAYMENT`, `PAYMENT_ACCEPTOR`, `PAYMENT_METHOD`, `PAYMENT_METHOD_OPTIONS`, `PAYMENT_SCHEDULE`, `PAYMENT_REQUEST`, `INTEGRATION`, `WEBHOOK`, `WEBHOOK_EVENT`, `FILE`, `FILE_PROCESSING_SETTINGS`, `TEAM`, `DOWNLOAD_URL`, `CSV_REPORT`, `REPORT`, `REPORT_GENERATE_REQUEST`, `REPORT_CONFIGURATION`, `REPORT_SUBSCRIPTION`, `REPORT_DEFINITION`, `ACCOUNT_GROUP`, `ENTITY`, `EVENT_TRACE`, `EVENT_TRACE_LINK`, `PRICING_CATEGORY`, `CONTACT`, `ALERT_RULE`, `ALERT`, `USAGE_LIMIT`, `AUDIT_RECORD`, `PORTAL_URL`, `AUTHENTICATION_PROVIDER`, `REPROCESS`, `APPROVAL_POLICY`, `APPROVAL_REQUEST`, `BULK_ACTION`, `COUPON`, `PROMOTION_CODE`, `WALLET`, `WALLET_TYPE`, `WALLET_GRANT`, `AUTO_TOPUP_CONFIG`, `WORKFLOW`, `WORKFLOW_TRIGGER`, `WORKFLOW_ACTION`, `WORKFLOW_ACTION_EXECUTION`, `CREDIT_TYPE`, `SIGNATURE_REQUEST`, `ATTACHMENT`, `DOCUMENT`, `EXCHANGE_RATE`
- `reason` (enum, optional, nullable)
  - Allowed values: `MISSING_FIELDS`
- `missing_fields` (MissingFields, optional)

### 500 Internal Server Error

Internal Server Error

- `type` (enum, required)
  - Allowed values: `API_ERROR`, `INVALID_REQUEST`
- `code` (enum, required)
  - Allowed values: `RESOURCE_NOT_FOUND`, `RESOURCES_NOT_FOUND`, `UNABLE_TO_PROCESS_INSTRUCTIONS`, `BAD_REQUEST`, `UNSUPPORTED_MEDIA_TYPE`, `RESOURCE_ALREADY_EXISTS`, `CUSTOM_FIELD_VALUE_ALREADY_EXISTS`, `COULD_NOT_CREATE_RESOURCE`, `COULD_NOT_UPDATE_RESOURCE`, `COULD_NOT_DELETE_RESOURCE`, `MISSING_VERSION`, `UNSUPPORTED_VERSION`, `UNAUTHORISED`, `PORTAL_URL_EXPIRED`, `PORTAL_URL_REVOKED`, `CHECKOUT_SESSION_CLOSED`, `CUSTOMER_NOT_FOUND`, `PLATFORM_NOT_FOUND`, `PRICING_PLAN_NOT_FOUND`, `PRODUCT_NOT_FOUND`, `PRODUCT_ITEM_NOT_FOUND`, `PRICING_NOT_FOUND`, `PRICING_ITEM_NOT_FOUND`, `USER_NOT_FOUND`, `METER_NOT_FOUND`, `METER_VALUE_NOT_FOUND`, `METER_PROPERTY_NOT_FOUND`, `PRICING_ITEM_SUMMARIES_NOT_FOUND`, `MISSING_ID`, `INVALID_ID`, `MISSING_REFERENCE`, `MISSING_FIELD`, `INVALID_FIELD`, `INVALID_OPERATION`, `INTERNAL_ERROR`, `USER_NOT_ALLOWED`, `IDEMPOTENCY_CHECK_FAILED`, `INVALID_REQUEST`
- `message` (string, required)
- `field` (string, optional, nullable)
- `resource_id` (string, optional, nullable)
- `resource_type` (enum, optional, nullable)
  - Allowed values: `CUSTOMER`, `CUSTOM_FIELD`, `PLATFORM`, `PLATFORM_UPTODATE`, `METER`, `METER_VALUE`, `METER_PROPERTY`, `METER_PROPERTY_VARIABLE`, `METER_VALUE_CALCULATION`, `INGEST_DATA`, `METER_DATA`, `CHARGE_DATA`, `PERSIST_DATA`, `ADJUSTMENT_DATA`, `PRODUCT_CATEGORY`, `PRODUCT`, `PRODUCT_ITEM`, `PRICING`, `PRICING_GROUP`, `PRICING_ITEM`, `PRICING_ITEM_CONFIG`, `PRICING_PLAN_SUBSCRIPTION`, `PRICING_PLAN_SUBSCRIPTION_GROUP`, `PRICING_PLAN_SCHEDULE`, `SEAT_ASSIGNMENT`, `SHIPPING_ADDRESS`, `PRICING_PLAN`, `PRICING_PLAN_VERSION`, `PRICING_PLAN_GROUP`, `QUOTE`, `QUOTE_VERSION`, `QUOTE_TEMPLATE`, `QUOTE_VERSION_SUMMARY`, `API_KEY`, `USER`, `ROLE`, `PROXY_USER`, `EXTERNAL_CREDENTIALS`, `TOKEN`, `INVOICE`, `E_INVOICE`, `PDF`, `BILLING_ENTITY`, `FEATURE`, `MEMBERSHIP`, `PAYMENT`, `PAYMENT_ACCEPTOR`, `PAYMENT_METHOD`, `PAYMENT_METHOD_OPTIONS`, `PAYMENT_SCHEDULE`, `PAYMENT_REQUEST`, `INTEGRATION`, `WEBHOOK`, `WEBHOOK_EVENT`, `FILE`, `FILE_PROCESSING_SETTINGS`, `TEAM`, `DOWNLOAD_URL`, `CSV_REPORT`, `REPORT`, `REPORT_GENERATE_REQUEST`, `REPORT_CONFIGURATION`, `REPORT_SUBSCRIPTION`, `REPORT_DEFINITION`, `ACCOUNT_GROUP`, `ENTITY`, `EVENT_TRACE`, `EVENT_TRACE_LINK`, `PRICING_CATEGORY`, `CONTACT`, `ALERT_RULE`, `ALERT`, `USAGE_LIMIT`, `AUDIT_RECORD`, `PORTAL_URL`, `AUTHENTICATION_PROVIDER`, `REPROCESS`, `APPROVAL_POLICY`, `APPROVAL_REQUEST`, `BULK_ACTION`, `COUPON`, `PROMOTION_CODE`, `WALLET`, `WALLET_TYPE`, `WALLET_GRANT`, `AUTO_TOPUP_CONFIG`, `WORKFLOW`, `WORKFLOW_TRIGGER`, `WORKFLOW_ACTION`, `WORKFLOW_ACTION_EXECUTION`, `CREDIT_TYPE`, `SIGNATURE_REQUEST`, `ATTACHMENT`, `DOCUMENT`, `EXCHANGE_RATE`
- `reason` (enum, optional, nullable)
  - Allowed values: `MISSING_FIELDS`
- `missing_fields` (MissingFields, optional)

## Types

### PortalUrlPeriod

- `type` (enum, optional) — The unit of the period. MONTH and YEAR count in the timezone of the customer, or else of the platform.
  - Allowed values: `MINUTE`, `HOUR`, `DAY`, `WEEK`, `MONTH`, `YEAR`
- `value` (integer, optional, nullable) — The number of units after which the link expires.

### PortalUrlWidgets

- `usage` (string, optional, nullable)
- `invoices` (string, optional, nullable)
- `pricing_plan_subscriptions` (string, optional, nullable)

### InvoicePortalUrl

- `id` (string, optional) — Resource ID of type INVOICE
- `options` (InvoiceActionOptions, optional)

### CustomerPortalUrl

- `display` (DisplayConfig, optional)
- `options` (CustomerActionOptions, optional)

### QuoteVersionPortalUrl

- `id` (string, optional, nullable) — Resource ID of type QUOTE_VERSION

### InitPricingPlanSubscriptionPortalUrl

- `pricing_plan_subscription_id` (string, optional) — Resource ID of type PRICING_PLAN_SUBSCRIPTION
- `success_url` (string, optional, nullable)
- `use_shipping_addresses` (boolean, optional) — Whether the portal UI offers shipping address collection. Defaults to false. This is a UI hint only; the API does not enforce it when accepting shipping address details.
- `note` (string, optional, nullable)

### CheckoutSessionPortalUrl

- `status` (enum, optional, nullable) — The status of the session. A session can only be changed while OPEN.
  - Allowed values: `OPEN`, `PROCESSING`, `COMPLETED`, `FAILED`
- `payment_status` (enum, optional, nullable) — Whether the customer on the checkout page has paid.
  - Allowed values: `UNPAID`, `PAID`
- `version` (integer, optional, nullable) — Increases on every change of the session.
- `expected_version` (integer, optional, nullable) — On an update: the `version` the change is based on. The update is refused when the session has changed since.
- `completed_at` (string, optional, nullable) — When the session completed.
- `success_url` (string, optional, nullable) — Where the customer on the checkout page is sent after completing the session. An absolute http or https URL of at most 2048 characters; write an international domain in punycode (xn--).
- `cancel_url` (string, optional, nullable) — Where the customer on the checkout page is sent when leaving the session without completing it. An absolute http or https URL of at most 2048 characters; write an international domain in punycode (xn--).
- `locale` (string, optional, nullable) — The locale of the checkout page. Format is language-country (like en-US).
- `note` (string, optional, nullable) — A note shown to the customer on the checkout page.
- `metadata` (map from string to string, optional, nullable) — Key-value pairs stored with the session. At most 50 entries; a key is 1 to 40 characters and not blank, a value at most 500 characters.
- `display` (CheckoutSessionDisplay, optional) — What the customer on the checkout page may see and change, for every customer of the session. A customer's own `display` takes precedence.
- `customers` (list of CheckoutSessionCustomer, optional, nullable) — The customers of the session: existing ones by `customer_id`, or ones to create by `customer`. At most 10 entries.
- `pricing_plan_subscriptions` (list of CheckoutSessionPricingPlanSubscription, optional, nullable) — The pricing plan subscriptions to create when the session completes. At most 10 entries.
- `payment` (CheckoutSessionPayment, optional) — How the session is paid.
- `result` (CheckoutSessionResult, optional, nullable) — What the session created. Set once the session completes or fails.
- `missing_fields` (list of string, optional, nullable) — The fields the customer on the checkout page still has to fill in, as paths like `checkout_session.customers.0.customer.organization.registered_address.country`: the name of every customer the session creates, and the country of the customer it invoices when the session creates that customer. Only while the session is OPEN.

### MissingFields

- `fields` (list of string, required)

### InvoiceActionOptions

- `download_invoice` (boolean, optional, nullable)
- `pay_open_invoice` (boolean, optional, nullable)

### DisplayConfig

- `usage` (boolean, optional, nullable)
- `invoices` (boolean, optional, nullable)
- `pricing_plan_subscriptions` (boolean, optional, nullable)
- `payment_acceptors` (boolean, optional, nullable)

### CustomerActionOptions

- `edit_customer_details` (boolean, optional, nullable)
- `download_invoice` (boolean, optional, nullable)
- `pay_open_invoice` (boolean, optional, nullable)
- `combine_open_invoices` (boolean, optional, nullable)

### CheckoutSessionDisplay

- `customer_details` (enum, optional, nullable) — Visibility of the customer's name: the organization's legal name and registration number, or the individual's name. Defaults to READ_ONLY when supplied, else EDITABLE. HIDDEN requires a value.
  - Allowed values: `EDITABLE`, `READ_ONLY`, `HIDDEN`
- `address` (enum, optional, nullable) — Visibility of the registered or residential address. Defaults to READ_ONLY when supplied, else EDITABLE. HIDDEN requires a value.
  - Allowed values: `EDITABLE`, `READ_ONLY`, `HIDDEN`
- `tax_ids` (enum, optional, nullable) — Visibility of the tax ids, tax exemption and tax registrations. Defaults to READ_ONLY when supplied, else EDITABLE. May be HIDDEN without a value.
  - Allowed values: `EDITABLE`, `READ_ONLY`, `HIDDEN`
- `email` (enum, optional, nullable) — Visibility of the email address. Defaults to READ_ONLY when supplied, else EDITABLE. May be HIDDEN without a value.
  - Allowed values: `EDITABLE`, `READ_ONLY`, `HIDDEN`
- `custom_fields` (enum, optional, nullable) — Visibility of the custom fields. Defaults to READ_ONLY when supplied, else EDITABLE. May be HIDDEN without a value.
  - Allowed values: `EDITABLE`, `READ_ONLY`, `HIDDEN`

### CheckoutSessionCustomer

- `customer_id` (string, optional, nullable) — The ID of an existing customer to use in the session. Either `customer_id` or `customer` must be set.
- `customer` (CheckoutSessionNewCustomer, optional) — A customer to create when the session completes. `reference` and `type` are required; `reference` addresses it elsewhere in the session. Set the parent with `parent_customer`. Either `customer_id` or `customer` must be set.
- `parent_customer` (ResourceIdAndReference, optional) — The parent of the customer created in this session: an existing customer by `id`, or a customer of this session by `reference`. Only for a `customer` entry.
- `display` (CheckoutSessionDisplay, optional) — What the customer on the checkout page may see and change of this customer. Overrides the session's `display` per group. Only for a `customer` entry.
- `effective_display` (CheckoutSessionDisplay, optional, nullable) — What the checkout page shows of this customer, per group: its `display`, else the session's, else READ_ONLY for a group the platform supplied and EDITABLE for one still to be filled in. Only for a `customer` entry.

### CheckoutSessionPricingPlanSubscription

- `template_pricing_plan_subscription_id` (string, optional, nullable) — The ID of the template subscription to copy. Required; the template must be ACTIVE and of variant DEFAULT.
- `pricing_plan_subscription` (PricingPlanSubscriptionTemplateOverrides, optional) — Overrides on top of the template's copy. `reference` and `customer_id` or `customer_reference` are required.
- `pricing_plan_schedule_customizations` (list of CheckoutSessionScheduleCustomization, optional, nullable) — Customizations of the template's schedules. `seats_values` and `units` name the pricing plan version's configs of the schedule; a config the template overrides cannot be given a quantity.
- `options` (CheckoutSessionPricingPlanSubscriptionOptions, optional) — What the customer on the checkout page may change of this subscription. Not set: nothing.
- `starting_values` (list of CheckoutSessionStartingValues, optional, nullable) — Per schedule of the template, the seats and units the subscription starts with, worked out again on every change of the session. A schedule with nothing to list, such as a rate card schedule, is left out; left out altogether when no schedule has anything to list.

### CheckoutSessionPayment

- `customer_id` (string, optional, nullable) — The ID of the customer who pays and whose payment method is stored. Defaults to the invoice customer.
- `customer_reference` (string, optional, nullable) — The reference of the customer who pays and whose payment method is stored. Defaults to the invoice customer.
- `payment_acceptor_ids` (list of string, optional, nullable) — The IDs of the payment acceptors the customer on the checkout page can pay with, each of type `PAYMENT_GATEWAY`. The page offers those of them that the subscriptions have under the billing entity the session invoices under, so the renewal invoices can be charged the same way; when none of them is, it offers the subscriptions' payment acceptors. When the billing entity is chosen by the invoice customer's country, the list may name payment acceptors of each billing entity that country can select. Defaults to the subscriptions' payment acceptors of type `PAYMENT_GATEWAY`: a subscription's `payment_acceptor_ids`, else its template's when the subscription has the template's billing entity, else the default payment acceptors of the subscription's billing entity. With a billing entity that does not depend on the country, a payment acceptor of another billing entity or one no subscription has is refused. A session without any `PAYMENT_GATEWAY` payment acceptor to offer is refused.
- `store_payment_method` (boolean, optional, nullable) — Whether to store the payment method for later payments, such as renewals.

### CheckoutSessionResult

- `customers` (list of ResourceIdAndReference, optional, nullable) — The customers created or used by the session, by the reference they have in the session.
- `pricing_plan_subscriptions` (list of CheckoutSessionResultPricingPlanSubscription, optional, nullable) — The pricing plan subscriptions created by the session, by the reference they have in the session.
- `invoice_ids` (list of string, optional, nullable) — The IDs of the invoices created by the session.
- `payment_id` (string, optional, nullable) — The ID of the payment made in the session.
- `payment_method_id` (string, optional, nullable) — The ID of the payment method stored by the session.
- `failure` (CheckoutSessionResultFailure, optional) — Why the session failed. Only when the session's `status` is FAILED.

### CheckoutSessionNewCustomer

- `reference` (string, optional) — A custom reference assigned to the customer.
- `type` (enum, optional) — The type of customer entity.
  - Allowed values: `ORGANIZATION`, `INDIVIDUAL`
- `email` (string, optional, nullable) — The email of the customer.
- `locale` (string, optional, nullable) — The locale of the customer. Format is language-country (like en-US).
- `timezone` (string, optional, nullable)
- `roles` (list of enum, optional, nullable)
  - Allowed values: `DEFAULT`, `NON_PROCESSING`, `SELF_BILLING`, `SELLER`, `PROCESSING_ONLY`
- `custom_fields` (list of CustomFieldValue, optional, nullable)
- `individual` (Individual, optional) — Additional description of the individual customer type.
- `organization` (Organization, optional) — Additional description of the organization customer type.

### ResourceIdAndReference

- `id` (string, optional, nullable)
- `reference` (string, optional, nullable)

### PricingPlanSubscriptionTemplateOverrides

- `reference` (string, optional)
- `name` (string, optional, nullable)
- `purchase_order_number` (string, optional, nullable) — The uniquely assigned purchase order number.
- `customer_id` (string, optional) — The ID of the customer.
- `customer_reference` (string, optional) — The reference of the customer.
- `default_shipping_address_id` (string, optional, nullable) — The ID of an ACTIVE shipping address belonging to the subscription's customer. Set to null to clear the address.
- `billing_entity_id` (string, optional, nullable) — The resource ID of the billing entity that is assigned to the subscription. If not set, the default platform value will be taken.
- `billing_entity_reference` (string, optional, nullable) — The reference of the billing entity that is assigned to the subscription. If not set, the default platform value will be taken.
- `billing_currency` (enum, optional) — The alphabetic currency code representing the type of currency used for billing. If not set, the default (platform) value will be taken.
  - Allowed values: `AED`, `AFN`, `ALL`, `AMD`, `ANG`, `AOA`, `ARS`, `AUD`, `AWG`, `AZN`, `BAM`, `BBD`, `BDT`, `BGN`, `BHD`, `BIF`, `BMD`, `BND`, `BOB`, `BRL`, `BSD`, `BTN`, `BWP`, `BYN`, `BZD`, `CAD`, `CDF`, `CHF`, `CLF`, `CLP`, `CNY`, `COP`, `CRC`, `CUC`, `CUP`, `CVE`, `CZK`, `DJF`, `DKK`, `DOP`, `DZD`, `EGP`, `ERN`, `ETB`, `EUR`, `FJD`, `FKP`, `GBP`, `GEL`, `GHS`, `GIP`, `GMD`, `GNF`, `GTQ`, `GYD`, `HKD`, `HNL`, `HRK`, `HTG`, `HUF`, `IDR`, `ILS`, `INR`, `IQD`, `IRR`, `ISK`, `JMD`, `JOD`, `JPY`, `KES`, `KGS`, `KHR`, `KMF`, `KPW`, `KRW`, `KWD`, `KYD`, `KZT`, `LAK`, `LBP`, `LKR`, `LRD`, `LSL`, `LYD`, `MAD`, `MDL`, `MGA`, `MKD`, `MMK`, `MNT`, `MOP`, `MRO`, `MRU`, `MUR`, `MVR`, `MWK`, `MXN`, `MXV`, `MYR`, `MZN`, `NAD`, `NGN`, `NIO`, `NOK`, `NPR`, `NZD`, `OMR`, `PAB`, `PEN`, `PGK`, `PHP`, `PKR`, `PLN`, `PYG`, `QAR`, `RON`, `RSD`, `RUB`, `RWF`, `SAR`, `SBD`, `SCR`, `SDG`, `SEK`, `SGD`, `SHP`, `SLE`, `SOS`, `SRD`, `SSP`, `STN`, `SVC`, `SYP`, `SZL`, `THB`, `TJS`, `TMT`, `TND`, `TOP`, `TRY`, `TTD`, `TWD`, `TZS`, `UAH`, `UGX`, `USD`, `USN`, `UYI`, `UYU`, `UZS`, `VEF`, `VES`, `VND`, `VUV`, `WST`, `XAF`, `XAG`, `XAU`, `XBA`, `XBB`, `XBC`, `XBD`, `XCD`, `XDR`, `XOF`, `XPD`, `XPF`, `XPT`, `XSU`, `XTS`, `XUA`, `XXX`, `YER`, `ZAR`, `ZMW`, `ZWL`
- `variant` (enum, optional)
  - Allowed values: `DEFAULT`, `FORWARD_BILLING`, `SELF_BILLING`, `SELLER`
- `combine` (boolean, optional, nullable) — Indication whether invoices of different subscriptions should be combined, if possible. If not set, the default platform value will be taken.
- `description` (string, optional, nullable)
- `custom_fields` (list of CustomFieldValue, optional, nullable)
- `forward_customer_id` (string, optional, nullable) — The reference to the customer that needs to be used for the invoice (for FORWARD_BILLING)
- `forward_customer_reference` (string, optional, nullable) — The reference of the forward customer (for FORWARD_BILLING). An alternative to `forward_customer_id`.
- `display_invoice_sub_lines_per_processing_only_customer` (boolean, optional, nullable)
- `show_original_customer_invoice_line` (boolean, optional, nullable) — Show an invoice line per (child) customer on the invoice of the `forward_customer_id`. Defaults to the platform setting. Only supported for variant FORWARD_BILLING
- `payment_acceptor_ids` (list of string, optional, nullable) — The resource ID(s) of the specific payment acceptors for the subscription, replacing the template's. Set to null to give the subscription the default of its billing entity, as when it is created without them.

### CheckoutSessionScheduleCustomization

- `pricing_plan_schedule_id` (string, optional, nullable)
- `seats_values` (list of ConfiguredMeterValue, optional, nullable)
- `promotion_codes` (list of string, optional, nullable)
- `coupons` (list of AppliedCoupon, optional, nullable) — Coupons to apply to the schedule, by `id`. Only in a checkout session; the customer does not see them as codes.
- `units` (list of ConfiguredMeterValue, optional, nullable) — The number of units billed per One Off pricing item config priced `FLAT`, replacing the template's. Only `pricing_item_config_id` and `number` may be set; an omitted config falls back to its `default_units`, then to 1.

### CheckoutSessionPricingPlanSubscriptionOptions

- `edit_seats` (list of CheckoutSessionQuantityRange, optional, nullable) — Per seats pricing item config of the template's schedules, the range within which the customer on the checkout page may change the number of seats. The seats of a config without a range cannot be changed by the customer, and a `seats_values` number set for a config with a range must lie within it, as must the seats it starts with by default. Not for a rate card schedule, nor for a config the template overrides.
- `edit_units` (list of CheckoutSessionQuantityRange, optional, nullable) — Per One Off FLAT pricing item config with a per-unit amount of the template's schedules, the range within which the customer on the checkout page may change the number of units. The units of a config without a range cannot be changed by the customer, and a `units` number set for a config with a range must lie within it, as must the units it starts with by default. Not for a rate card schedule, nor for a config the template overrides.
- `allow_promotion_codes` (enum, optional, nullable) — Whether the customer on the checkout page may enter promotion codes. Defaults to the template subscription's `allow_promotion_codes`. With SINGLE, the subscription carries at most one promotion code across its schedule customizations, also when the platform sets it.
  - Allowed values: `NONE`, `SINGLE`

### CheckoutSessionStartingValues

- `pricing_plan_schedule_id` (string, optional, nullable) — The ID of the template's schedule.
- `seats_values` (list of ConfiguredMeterValue, optional, nullable) — The seats each seats pricing item config of the schedule starts with: the number set in the schedule's customization, otherwise the config's default seats. A config the template overrides starts at the override's default seats. A config without default seats or priced NONE is not listed. Named by the pricing plan version's config, also when the template overrides it.
- `units` (list of ConfiguredMeterValue, optional, nullable) — The units each units pricing item config of the schedule starts with: the number set in the schedule's customization, otherwise the template schedule's units, the config's default units or 1. A config the template overrides starts at the override's default units, else 1. Named by the pricing plan version's config, also when the template overrides it.

### CheckoutSessionResultPricingPlanSubscription

- `reference` (string, optional, nullable) — The reference of the subscription in the session.
- `id` (string, optional, nullable) — The ID of the created subscription.
- `pricing_plan_schedule_ids` (list of string, optional, nullable) — The IDs of the schedules of the created subscription.

### CheckoutSessionResultFailure

- `step` (string, optional, nullable) — The step of the completion that failed.
- `message` (string, optional, nullable) — What went wrong.

### CustomFieldValue

- `id` (string, optional, nullable) — Resource ID of type CUSTOM_FIELD
- `reference` (string, optional, nullable)
- `value` (string, optional, nullable)
- `values` (list of string, optional, nullable)
- `integration_details` (IntegrationDetails, optional, nullable)
- `integration_id` (string, optional) — The resource ID of the integration linked to the custom field

### Individual

- `name` (Name, optional)
- `residential_address` (Address, optional)

### Organization

- `legal_name` (string, optional)
- `tax_id` (string, optional, nullable) — Tax Id used for tax purposes of the organization
- `tax_ids` (list of TaxId, optional, nullable) — Tax Ids used for tax purposes of the organization
- `registration_number` (string, optional, nullable)
- `tax_exempt` (boolean, optional, nullable)
- `tax_exempt_note` (string, optional, nullable)
- `registered_address` (Address, optional)
- `tax_registrations` (list of TaxRegistration, optional, nullable) — Extra tax registrations for the customer

### ConfiguredMeterValue

- `pricing_item_config_id` (string, optional) — Resource ID of type PRICING_ITEM_CONFIG
- `number` (string, optional, nullable)
- `amount` (Amount, optional)
- `start_at` (datetime, optional, nullable)
- `set_start_at_to_now` (boolean, optional, nullable)
- `end_at` (string, optional, nullable)

### AppliedCoupon

- `id` (string, optional)
- `coupon_name` (string, optional, nullable)
- `promotion_code_resource_id` (string, optional, nullable)
- `promotion_code` (string, optional, nullable)
- `discount` (Discount, optional, nullable)

### CheckoutSessionQuantityRange

- `pricing_item_config_id` (string, optional, nullable) — The ID of the pricing item config whose quantity the customer on the checkout page may change: the pricing plan version's config. Required; at most one range per config. A config the template overrides cannot be given a range.
- `min` (CheckoutSessionQuantityBound, optional) — The lowest quantity the customer may choose. Not set: no lower bound.
- `max` (CheckoutSessionQuantityBound, optional) — The highest quantity the customer may choose, not lower than `min`. Not set: no upper bound.

### IntegrationDetails

- `id` (string, optional, nullable)
- `reference` (string, optional, nullable)
- `payment_gateway_variant` (enum, optional)
  - Allowed values: `ADYEN`, `STRIPE`
- `adyen` (AdyenIntegrationDetails, optional)
- `stripe` (StripeIntegrationDetails, optional)

### Name

- `first_name` (string, optional, nullable)
- `last_name` (string, optional, nullable)
- `infix` (string, optional, nullable)

### Address

- `line1` (string, optional, nullable)
- `line2` (string, optional, nullable)
- `city` (string, optional, nullable)
- `postal_code` (string, optional, nullable)
- `state` (string, optional, nullable)
- `country` (enum, optional, nullable)
  - Allowed values: `AD`, `AE`, `AF`, `AG`, `AI`, `AL`, `AM`, `AO`, `AQ`, `AR`, `AS`, `AT`, `AU`, `AW`, `AX`, `AZ`, `BA`, `BB`, `BD`, `BE`, `BF`, `BG`, `BH`, `BI`, `BJ`, `BL`, `BM`, `BN`, `BO`, `BQ`, `BR`, `BS`, `BT`, `BV`, `BW`, `BY`, `BZ`, `CA`, `CC`, `CD`, `CF`, `CG`, `CH`, `CI`, `CK`, `CL`, `CM`, `CN`, `CO`, `CR`, `CU`, `CV`, `CW`, `CX`, `CY`, `CZ`, `DE`, `DJ`, `DK`, `DM`, `DO`, `DZ`, `EC`, `EE`, `EG`, `EH`, `ER`, `ES`, `ET`, `FI`, `FJ`, `FK`, `FM`, `FO`, `FR`, `GA`, `GB`, `GD`, `GE`, `GF`, `GG`, `GH`, `GI`, `GL`, `GM`, `GN`, `GP`, `GQ`, `GR`, `GS`, `GT`, `GU`, `GW`, `GY`, `HK`, `HM`, `HN`, `HR`, `HT`, `HU`, `ID`, `IE`, `IL`, `IM`, `IN`, `IO`, `IQ`, `IR`, `IS`, `IT`, `JE`, `JM`, `JO`, `JP`, `KE`, `KG`, `KH`, `KI`, `KM`, `KN`, `KP`, `KR`, `KW`, `KY`, `KZ`, `LA`, `LB`, `LC`, `LI`, `LK`, `LR`, `LS`, `LT`, `LU`, `LV`, `LY`, `MA`, `MC`, `MD`, `ME`, `MF`, `MG`, `MH`, `MK`, `ML`, `MM`, `MN`, `MO`, `MP`, `MQ`, `MR`, `MS`, `MT`, `MU`, `MV`, `MW`, `MX`, `MY`, `MZ`, `NA`, `NC`, `NE`, `NF`, `NG`, `NI`, `NL`, `NO`, `NP`, `NR`, `NU`, `NZ`, `OM`, `PA`, `PE`, `PF`, `PG`, `PH`, `PK`, `PL`, `PM`, `PN`, `PR`, `PS`, `PT`, `PW`, `PY`, `QA`, `RE`, `RO`, `RS`, `RU`, `RW`, `SA`, `SB`, `SC`, `SD`, `SE`, `SG`, `SH`, `SI`, `SJ`, `SK`, `SL`, `SM`, `SN`, `SO`, `SR`, `SS`, `ST`, `SV`, `SX`, `SY`, `SZ`, `TC`, `TD`, `TF`, `TG`, `TH`, `TJ`, `TK`, `TL`, `TM`, `TN`, `TO`, `TR`, `TT`, `TV`, `TW`, `TZ`, `UA`, `UG`, `US`, `UY`, `UZ`, `VA`, `VC`, `VE`, `VG`, `VI`, `VN`, `VU`, `WF`, `WS`, `YE`, `YT`, `ZA`, `ZM`, `ZW`

### TaxId

- `id` (string, optional)
- `type` (enum, optional, nullable) — Optional tax id type, indicates which type of tax the number is for
  - Allowed values: `GENERIC_TAX_ID`, `AU_GST`, `CA_GST_HST`, `CA_PST`, `CA_PST_BC`, `CA_PST_MB`, `CA_PST_SK`, `CA_QST`
- `display_name` (string, optional, nullable) — User-friendly display name
- `tax_id_validation_result` (TaxIdValidation, optional)

### TaxRegistration

- `id` (string, optional, nullable) — The id of this tax registration
- `description` (string, optional, nullable) — The description of this tax registration
- `tax_id` (string, optional, nullable) — The tax id of this tax registration, e.g. a TIN, VAT id or other tax number
- `tax_ids` (list of TaxId, optional, nullable) — Tax IDs used for tax purposes of the tax registration, e.g. TINs, VAT ids, or other tax number
- `registration_number` (string, optional, nullable) — The registration number of this tax registration, e.g. a company registration number
- `registered_address` (Address, optional) — The address of this tax registration, if different from the billing entity. Currently, only the address will be used for tax calculations

### Amount

- `quantity` (string, optional)
- `currency` (enum, optional)
  - Allowed values: `AED`, `AFN`, `ALL`, `AMD`, `ANG`, `AOA`, `ARS`, `AUD`, `AWG`, `AZN`, `BAM`, `BBD`, `BDT`, `BGN`, `BHD`, `BIF`, `BMD`, `BND`, `BOB`, `BRL`, `BSD`, `BTN`, `BWP`, `BYN`, `BZD`, `CAD`, `CDF`, `CHF`, `CLF`, `CLP`, `CNY`, `COP`, `CRC`, `CUC`, `CUP`, `CVE`, `CZK`, `DJF`, `DKK`, `DOP`, `DZD`, `EGP`, `ERN`, `ETB`, `EUR`, `FJD`, `FKP`, `GBP`, `GEL`, `GHS`, `GIP`, `GMD`, `GNF`, `GTQ`, `GYD`, `HKD`, `HNL`, `HRK`, `HTG`, `HUF`, `IDR`, `ILS`, `INR`, `IQD`, `IRR`, `ISK`, `JMD`, `JOD`, `JPY`, `KES`, `KGS`, `KHR`, `KMF`, `KPW`, `KRW`, `KWD`, `KYD`, `KZT`, `LAK`, `LBP`, `LKR`, `LRD`, `LSL`, `LYD`, `MAD`, `MDL`, `MGA`, `MKD`, `MMK`, `MNT`, `MOP`, `MRO`, `MRU`, `MUR`, `MVR`, `MWK`, `MXN`, `MXV`, `MYR`, `MZN`, `NAD`, `NGN`, `NIO`, `NOK`, `NPR`, `NZD`, `OMR`, `PAB`, `PEN`, `PGK`, `PHP`, `PKR`, `PLN`, `PYG`, `QAR`, `RON`, `RSD`, `RUB`, `RWF`, `SAR`, `SBD`, `SCR`, `SDG`, `SEK`, `SGD`, `SHP`, `SLE`, `SOS`, `SRD`, `SSP`, `STN`, `SVC`, `SYP`, `SZL`, `THB`, `TJS`, `TMT`, `TND`, `TOP`, `TRY`, `TTD`, `TWD`, `TZS`, `UAH`, `UGX`, `USD`, `USN`, `UYI`, `UYU`, `UZS`, `VEF`, `VES`, `VND`, `VUV`, `WST`, `XAF`, `XAG`, `XAU`, `XBA`, `XBB`, `XBC`, `XBD`, `XCD`, `XDR`, `XOF`, `XPD`, `XPF`, `XPT`, `XSU`, `XTS`, `XUA`, `XXX`, `YER`, `ZAR`, `ZMW`, `ZWL`

### Discount

- `pricing_item_configs` (list of PricingItemConfigDiscount, optional, nullable)
- `pricing_items` (list of PricingItemDiscount, optional, nullable)
- `pricings` (list of PricingDiscount, optional, nullable)
- `totals` (list of TotalDiscount, optional, nullable)
- `product_categories` (list of ProductCategoryDiscount, optional, nullable)
- `products` (list of ProductDiscount, optional, nullable)
- `product_items` (list of ProductItemDiscount, optional, nullable)
- `product_item_meter_property_conditions` (list of ProductItemMeterPropertyConditionDiscount, optional, nullable)

### CheckoutSessionQuantityBound

- `number` (string, optional, nullable) — The bound as a decimal number, zero or higher. Required. A whole number for `edit_seats`; `edit_units` also takes fractions.
- `amount` (Amount, optional) — Not supported in a checkout session: a bound is a number of seats or units.

### AdyenIntegrationDetails

- `recurring_detail_reference` (string, optional)

### StripeIntegrationDetails

- `payment_method_id` (string, optional)

### TaxIdValidation

- `id` (string, optional)
- `validation_date` (string, optional)
- `source` (string, optional)
- `valid` (enum, optional)
  - Allowed values: `VALID`, `NOT_VALID`, `UNKNOWN`
- `message` (string, optional, nullable)

### PricingItemConfigDiscount

- `ids` (list of string, optional) — Resource ID of type PRICING_ITEM_CONFIG
- `start_at` (datetime, optional, nullable)
- `end_at` (datetime, optional, nullable)
- `amount` (Amount, optional)
- `percentage` (string, optional, nullable)
- `condition` (DiscountCondition, optional)

### PricingItemDiscount

- `ids` (list of string, optional) — Resource ID of type PRICING_ITEM
- `start_at` (datetime, optional, nullable)
- `end_at` (datetime, optional, nullable)
- `amount` (Amount, optional)
- `percentage` (string, optional, nullable)
- `condition` (DiscountCondition, optional)

### PricingDiscount

- `ids` (list of string, optional) — Resource ID of type PRICING
- `start_at` (datetime, optional, nullable)
- `end_at` (datetime, optional, nullable)
- `amount` (Amount, optional)
- `percentage` (string, optional, nullable)
- `condition` (DiscountCondition, optional)

### TotalDiscount

- `start_at` (string, optional, nullable)
- `end_at` (string, optional, nullable)
- `amount` (Amount, optional)
- `percentage` (string, optional, nullable)
- `coupon_id` (string, optional, nullable) — Resource ID of type COUPON
- `promotion_code_details` (PromotionCodeDetails, optional, nullable)
- `condition` (DiscountCondition, optional)

### ProductCategoryDiscount

- `ids` (list of string, optional) — Resource ID of type PRODUCT_CATEGORY
- `start_at` (string, optional, nullable)
- `end_at` (string, optional, nullable)
- `amount` (Amount, optional)
- `percentage` (string, optional, nullable)
- `coupon_id` (string, optional, nullable) — Resource ID of type COUPON
- `promotion_code_details` (PromotionCodeDetails, optional, nullable)
- `condition` (DiscountCondition, optional)

### ProductDiscount

- `ids` (list of string, optional) — Resource ID of type PRODUCT
- `start_at` (string, optional, nullable)
- `end_at` (string, optional, nullable)
- `amount` (Amount, optional)
- `percentage` (string, optional, nullable)
- `coupon_id` (string, optional, nullable) — Resource ID of type COUPON
- `promotion_code_details` (PromotionCodeDetails, optional, nullable)
- `condition` (DiscountCondition, optional)

### ProductItemDiscount

- `ids` (list of string, optional) — Resource ID of type PRODUCT_ITEM
- `start_at` (string, optional, nullable)
- `end_at` (string, optional, nullable)
- `amount` (Amount, optional)
- `percentage` (string, optional, nullable)
- `coupon_id` (string, optional, nullable) — Resource ID of type COUPON
- `promotion_code_details` (PromotionCodeDetails, optional, nullable)
- `condition` (DiscountCondition, optional)

### ProductItemMeterPropertyConditionDiscount

- `ids` (list of string, optional) — Resource ID of type PRODUCT_ITEM
- `meter_property_condition_expression` (MeterConditionExpression, optional)
- `start_at` (datetime, optional, nullable)
- `end_at` (datetime, optional, nullable)
- `amount` (Amount, optional)
- `percentage` (string, optional, nullable)
- `condition` (DiscountCondition, optional)
- `coupon_id` (string, optional, nullable) — Resource ID of type COUPON
- `promotion_code_details` (PromotionCodeDetails, optional, nullable)

### DiscountCondition

- `comparator` (enum, optional)
  - Allowed values: `EQUALS`, `NOT_EQUALS`, `IN`, `NOT_IN`, `GREATER_THAN`, `GREATER_THAN_OR_EQUALS`, `LESS_THAN`, `LESS_THAN_OR_EQUALS`, `EMPTY`, `NOT_EMPTY`, `CONTAINS`, `NOT_CONTAINS`
- `value` (DiscountConditionValue, optional)

### PromotionCodeDetails

- `promotion_code_id` (string, optional, nullable) — Resource ID of type PROMOTION_CODE
- `code` (string, optional, nullable)

### MeterConditionExpression

- `operator` (enum, optional)
  - Allowed values: `AND`, `OR`, `XOR`
- `operands` (list of MeterConditionOperand, optional, nullable)

### DiscountConditionValue

- `amount` (Amount, optional)

### MeterConditionOperand

- `meter_property` (MeterPropertyCondition, optional)
- `expression` (MeterConditionOperandExpression, optional, nullable)

### MeterPropertyCondition

- `id` (string, optional, nullable) — Resource ID of type METER_PROPERTY
- `reference` (string, optional, nullable)
- `meter_property` (MeterProperty, optional, nullable)
- `value` (string, optional, nullable)
- `values` (list of string, optional, nullable)
- `meter_property_variable_id` (string, optional, nullable) — Resource ID of type METER_PROPERTY_VARIABLE
- `meter_property_variable` (MeterPropertyVariable, optional, nullable)
- `comparator` (enum, optional)
  - Allowed values: `EQUALS`, `NOT_EQUALS`, `IN`, `NOT_IN`, `GREATER_THAN`, `GREATER_THAN_OR_EQUALS`, `LESS_THAN`, `LESS_THAN_OR_EQUALS`, `EMPTY`, `NOT_EMPTY`, `CONTAINS`, `NOT_CONTAINS`

### MeterConditionOperandExpression

### MeterProperty

- `object_type` (string, optional, nullable)
- `id` (string, optional, nullable)
- `reference` (string, optional)
- `name` (string, optional, nullable)
- `description` (string, optional, nullable)
- `status` (enum, optional) — The status of the meter property indicating the activity and the ability to update properties.
  - Allowed values: `DRAFT`, `ACTIVE`, `ARCHIVED`, `DEPRECATED`
- `type` (enum, optional, nullable) — The type of the meter property.
  - Allowed values: `NUMBER`, `ENUM`, `STRING`
- `enum_values` (list of string, optional, nullable) — The list of available ENUM values.

### MeterPropertyVariable

- `object_type` (string, optional, nullable)
- `id` (string, optional, nullable)
- `reference` (string, optional)
- `name` (string, optional, nullable)
- `description` (string, optional, nullable)
- `meter_property_id` (string, optional, nullable) — The meter property whose values this variable lists. Set on create only.
- `meter_property_reference` (string, optional, nullable) — Alternative to meter_property_id on create.
- `type` (enum, optional, nullable)
  - Allowed values: `LIST`
- `status` (enum, optional, nullable)
  - Allowed values: `DRAFT`, `ACTIVE`, `ARCHIVED`, `DEPRECATED`
- `values` (list of string, optional, nullable) — The initial values, on create only. Edit them afterwards through the values endpoint.
- `value_count` (integer, optional, nullable)
- `created_at` (string, optional, nullable)
- `updated_at` (string, optional, nullable)

## Examples

**Response**

```json
{
  "object_type": "string",
  "id": "string",
  "type": "INVOICE",
  "customer_id": "string",
  "status": "PUBLISHED",
  "authentication": "IDENTITY_TOKEN",
  "created_at": "string",
  "updated_at": "string",
  "expiry_period": {
    "type": "MINUTE",
    "value": 1
  },
  "expires_at": "string",
  "embedded": true,
  "template_id": "string",
  "token": "string",
  "url": "string",
  "widgets": {
    "usage": "string",
    "invoices": "string",
    "pricing_plan_subscriptions": "string"
  },
  "invoice": {
    "id": "string",
    "options": {
      "download_invoice": true,
      "pay_open_invoice": true
    }
  },
  "customer": {
    "display": {
      "usage": true,
      "invoices": true,
      "pricing_plan_subscriptions": true,
      "payment_acceptors": true
    },
    "options": {
      "edit_customer_details": true,
      "download_invoice": true,
      "pay_open_invoice": true,
      "combine_open_invoices": true
    }
  },
  "quote_version": {
    "id": "string"
  },
  "init_pricing_plan_subscription": {
    "pricing_plan_subscription_id": "string",
    "success_url": "string",
    "use_shipping_addresses": true,
    "note": "string"
  },
  "checkout_session": {
    "status": "OPEN",
    "payment_status": "UNPAID",
    "version": 1,
    "completed_at": "string",
    "success_url": "string",
    "cancel_url": "string",
    "locale": "string",
    "note": "string",
    "metadata": {},
    "display": {
      "customer_details": "EDITABLE",
      "address": "EDITABLE",
      "tax_ids": "EDITABLE",
      "email": "EDITABLE",
      "custom_fields": "EDITABLE"
    },
    "customers": [
      {
        "customer_id": "string",
        "customer": {
          "reference": "string",
          "type": "ORGANIZATION",
          "email": "string",
          "locale": "string",
          "timezone": "string",
          "roles": [
            "DEFAULT"
          ],
          "custom_fields": [
            {
              "id": "string",
              "reference": "string",
              "value": "string",
              "values": [
                "string"
              ],
              "integration_details": {
                "id": "string",
                "reference": "string",
                "payment_gateway_variant": "ADYEN",
                "adyen": {
                  "recurring_detail_reference": "string"
                },
                "stripe": {
                  "payment_method_id": "string"
                }
              },
              "integration_id": "string"
            }
          ],
          "individual": {
            "name": {
              "first_name": "string",
              "last_name": "string",
              "infix": "string"
            },
            "residential_address": {
              "line1": "string",
              "line2": "string",
              "city": "string",
              "postal_code": "string",
              "state": "string",
              "country": "AD"
            }
          },
          "organization": {
            "legal_name": "string",
            "tax_id": "string",
            "tax_ids": [
              {
                "id": "string",
                "type": "GENERIC_TAX_ID",
                "display_name": "string",
                "tax_id_validation_result": {
                  "id": "string",
                  "validation_date": "string",
                  "source": "string",
                  "valid": "VALID",
                  "message": "string"
                }
              }
            ],
            "registration_number": "string",
            "tax_exempt": true,
            "tax_exempt_note": "string",
            "registered_address": {
              "line1": "string",
              "line2": "string",
              "city": "string",
              "postal_code": "string",
              "state": "string",
              "country": "AD"
            },
            "tax_registrations": [
              {
                "id": "string",
                "description": "string",
                "tax_id": "string",
                "tax_ids": [
                  {
                    "id": "string",
                    "type": "GENERIC_TAX_ID",
                    "display_name": "string",
                    "tax_id_validation_result": {
                      "id": "string",
                      "validation_date": "string",
                      "source": "string",
                      "valid": "VALID",
                      "message": "string"
                    }
                  }
                ],
                "registration_number": "string",
                "registered_address": {
                  "line1": "string",
                  "line2": "string",
                  "city": "string",
                  "postal_code": "string",
                  "state": "string",
                  "country": "AD"
                }
              }
            ]
          }
        },
        "parent_customer": {
          "id": "string",
          "reference": "string"
        },
        "display": {
          "customer_details": "EDITABLE",
          "address": "EDITABLE",
          "tax_ids": "EDITABLE",
          "email": "EDITABLE",
          "custom_fields": "EDITABLE"
        },
        "effective_display": {
          "customer_details": "EDITABLE",
          "address": "EDITABLE",
          "tax_ids": "EDITABLE",
          "email": "EDITABLE",
          "custom_fields": "EDITABLE"
        }
      }
    ],
    "pricing_plan_subscriptions": [
      {
        "template_pricing_plan_subscription_id": "string",
        "pricing_plan_subscription": {
          "reference": "string",
          "name": "string",
          "purchase_order_number": "string",
          "customer_id": "string",
          "customer_reference": "string",
          "default_shipping_address_id": "string",
          "billing_entity_id": "string",
          "billing_entity_reference": "string",
          "billing_currency": "AED",
          "variant": "DEFAULT",
          "combine": true,
          "description": "string",
          "custom_fields": [
            {
              "id": "string",
              "reference": "string",
              "value": "string",
              "values": [
                "string"
              ],
              "integration_details": {
                "id": "string",
                "reference": "string",
                "payment_gateway_variant": "ADYEN",
                "adyen": {
                  "recurring_detail_reference": "string"
                },
                "stripe": {
                  "payment_method_id": "string"
                }
              },
              "integration_id": "string"
            }
          ],
          "forward_customer_id": "string",
          "display_invoice_sub_lines_per_processing_only_customer": true,
          "show_original_customer_invoice_line": true,
          "payment_acceptor_ids": [
            "string"
          ]
        },
        "pricing_plan_schedule_customizations": [
          {
            "pricing_plan_schedule_id": "string",
            "seats_values": [
              {
                "pricing_item_config_id": "string",
                "number": "string",
                "amount": {
                  "quantity": "string",
                  "currency": "AED"
                },
                "start_at": "2024-01-15T09:30:00Z",
                "end_at": "string"
              }
            ],
            "promotion_codes": [
              "string"
            ],
            "coupons": [
              {
                "id": "string",
                "coupon_name": "string",
                "promotion_code_resource_id": "string",
                "promotion_code": "string",
                "discount": {
                  "pricing_item_configs": [
                    {
                      "ids": [
                        "string"
                      ],
                      "start_at": "2024-01-15T09:30:00Z",
                      "end_at": "2024-01-15T09:30:00Z",
                      "amount": {
                        "quantity": "string",
                        "currency": "AED"
                      },
                      "percentage": "string",
                      "condition": {
                        "comparator": "EQUALS",
                        "value": {
                          "amount": {
                            "quantity": "string",
                            "currency": "AED"
                          }
                        }
                      }
                    }
                  ],
                  "pricing_items": [
                    {
                      "ids": [
                        "string"
                      ],
                      "start_at": "2024-01-15T09:30:00Z",
                      "end_at": "2024-01-15T09:30:00Z",
                      "amount": {
                        "quantity": "string",
                        "currency": "AED"
                      },
                      "percentage": "string",
                      "condition": {
                        "comparator": "EQUALS",
                        "value": {
                          "amount": {
                            "quantity": "string",
                            "currency": "AED"
                          }
                        }
                      }
                    }
                  ],
                  "pricings": [
                    {
                      "ids": [
                        "string"
                      ],
                      "start_at": "2024-01-15T09:30:00Z",
                      "end_at": "2024-01-15T09:30:00Z",
                      "amount": {
                        "quantity": "string",
                        "currency": "AED"
                      },
                      "percentage": "string",
                      "condition": {
                        "comparator": "EQUALS",
                        "value": {
                          "amount": {
                            "quantity": "string",
                            "currency": "AED"
                          }
                        }
                      }
                    }
                  ],
                  "totals": [
                    {
                      "start_at": "string",
                      "end_at": "string",
                      "amount": {
                        "quantity": "string",
                        "currency": "AED"
                      },
                      "percentage": "string",
                      "coupon_id": "string",
                      "promotion_code_details": {
                        "promotion_code_id": "string",
                        "code": "string"
                      },
                      "condition": {
                        "comparator": "EQUALS",
                        "value": {
                          "amount": {
                            "quantity": "string",
                            "currency": "AED"
                          }
                        }
                      }
                    }
                  ],
                  "product_categories": [
                    {
                      "ids": [
                        "string"
                      ],
                      "start_at": "string",
                      "end_at": "string",
                      "amount": {
                        "quantity": "string",
                        "currency": "AED"
                      },
                      "percentage": "string",
                      "coupon_id": "string",
                      "promotion_code_details": {
                        "promotion_code_id": "string",
                        "code": "string"
                      },
                      "condition": {
                        "comparator": "EQUALS",
                        "value": {
                          "amount": {
                            "quantity": "string",
                            "currency": "AED"
                          }
                        }
                      }
                    }
                  ],
                  "products": [
                    {
                      "ids": [
                        "string"
                      ],
                      "start_at": "string",
                      "end_at": "string",
                      "amount": {
                        "quantity": "string",
                        "currency": "AED"
                      },
                      "percentage": "string",
                      "coupon_id": "string",
                      "promotion_code_details": {
                        "promotion_code_id": "string",
                        "code": "string"
                      },
                      "condition": {
                        "comparator": "EQUALS",
                        "value": {
                          "amount": {
                            "quantity": "string",
                            "currency": "AED"
                          }
                        }
                      }
                    }
                  ],
                  "product_items": [
                    {
                      "ids": [
                        "string"
                      ],
                      "start_at": "string",
                      "end_at": "string",
                      "amount": {
                        "quantity": "string",
                        "currency": "AED"
                      },
                      "percentage": "string",
                      "coupon_id": "string",
                      "promotion_code_details": {
                        "promotion_code_id": "string",
                        "code": "string"
                      },
                      "condition": {
                        "comparator": "EQUALS",
                        "value": {
                          "amount": {
                            "quantity": "string",
                            "currency": "AED"
                          }
                        }
                      }
                    }
                  ],
                  "product_item_meter_property_conditions": [
                    {
                      "ids": [
                        "string"
                      ],
                      "meter_property_condition_expression": {
                        "operator": "AND",
                        "operands": [
                          {
                            "meter_property": {
                              "id": "string",
                              "reference": "string",
                              "meter_property": {
                                "object_type": "string",
                                "id": "string",
                                "reference": "string",
                                "name": "string",
                                "description": "string",
                                "status": "DRAFT",
                                "type": "NUMBER",
                                "enum_values": [
                                  "string"
                                ]
                              },
                              "value": "string",
                              "values": [
                                "string"
                              ],
                              "meter_property_variable_id": "string",
                              "meter_property_variable": {
                                "object_type": "string",
                                "id": "string",
                                "reference": "string",
                                "name": "string",
                                "description": "string",
                                "meter_property_id": "string",
                                "type": "LIST",
                                "status": "DRAFT",
                                "value_count": 1,
                                "created_at": "string",
                                "updated_at": "string"
                              },
                              "comparator": "EQUALS"
                            },
                            "expression": {}
                          }
                        ]
                      },
                      "start_at": "2024-01-15T09:30:00Z",
                      "end_at": "2024-01-15T09:30:00Z",
                      "amount": {
                        "quantity": "string",
                        "currency": "AED"
                      },
                      "percentage": "string",
                      "condition": {
                        "comparator": "EQUALS",
                        "value": {
                          "amount": {
                            "quantity": "string",
                            "currency": "AED"
                          }
                        }
                      },
                      "coupon_id": "string",
                      "promotion_code_details": {
                        "promotion_code_id": "string",
                        "code": "string"
                      }
                    }
                  ]
                }
              }
            ],
            "units": [
              {
                "pricing_item_config_id": "string",
                "number": "string",
                "amount": {
                  "quantity": "string",
                  "currency": "AED"
                },
                "start_at": "2024-01-15T09:30:00Z",
                "end_at": "string"
              }
            ]
          }
        ],
        "options": {
          "edit_seats": [
            {
              "pricing_item_config_id": "string",
              "min": {
                "number": "string",
                "amount": {
                  "quantity": "string",
                  "currency": "AED"
                }
              },
              "max": {
                "number": "string",
                "amount": {
                  "quantity": "string",
                  "currency": "AED"
                }
              }
            }
          ],
          "edit_units": [
            {
              "pricing_item_config_id": "string",
              "min": {
                "number": "string",
                "amount": {
                  "quantity": "string",
                  "currency": "AED"
                }
              },
              "max": {
                "number": "string",
                "amount": {
                  "quantity": "string",
                  "currency": "AED"
                }
              }
            }
          ],
          "allow_promotion_codes": "NONE"
        },
        "starting_values": [
          {
            "pricing_plan_schedule_id": "string",
            "seats_values": [
              {
                "pricing_item_config_id": "string",
                "number": "string",
                "amount": {
                  "quantity": "string",
                  "currency": "AED"
                },
                "start_at": "2024-01-15T09:30:00Z",
                "end_at": "string"
              }
            ],
            "units": [
              {
                "pricing_item_config_id": "string",
                "number": "string",
                "amount": {
                  "quantity": "string",
                  "currency": "AED"
                },
                "start_at": "2024-01-15T09:30:00Z",
                "end_at": "string"
              }
            ]
          }
        ]
      }
    ],
    "payment": {
      "customer_id": "string",
      "customer_reference": "string",
      "payment_acceptor_ids": [
        "string"
      ],
      "store_payment_method": true
    },
    "result": {
      "customers": [
        {
          "id": "string",
          "reference": "string"
        }
      ],
      "pricing_plan_subscriptions": [
        {
          "reference": "string",
          "id": "string",
          "pricing_plan_schedule_ids": [
            "string"
          ]
        }
      ],
      "invoice_ids": [
        "string"
      ],
      "payment_id": "string",
      "payment_method_id": "string",
      "failure": {
        "step": "string",
        "message": "string"
      }
    },
    "missing_fields": [
      "string"
    ]
  }
}
```

**SDK Code**

```python
import requests

url = "https://test.api.solvimon.com/v1/portal-urls/:resourceId/complete"

headers = {"X-API-KEY": "<apiKey>"}

response = requests.post(url, headers=headers)

print(response.json())
```

```javascript
const url = 'https://test.api.solvimon.com/v1/portal-urls/:resourceId/complete';
const options = {method: 'POST', headers: {'X-API-KEY': '<apiKey>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://test.api.solvimon.com/v1/portal-urls/:resourceId/complete"

	req, _ := http.NewRequest("POST", url, nil)

	req.Header.Add("X-API-KEY", "<apiKey>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://test.api.solvimon.com/v1/portal-urls/:resourceId/complete")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<apiKey>'

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://test.api.solvimon.com/v1/portal-urls/:resourceId/complete")
  .header("X-API-KEY", "<apiKey>")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://test.api.solvimon.com/v1/portal-urls/:resourceId/complete', [
  'headers' => [
    'X-API-KEY' => '<apiKey>',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://test.api.solvimon.com/v1/portal-urls/:resourceId/complete");
var request = new RestRequest(Method.POST);
request.AddHeader("X-API-KEY", "<apiKey>");
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["X-API-KEY": "<apiKey>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://test.api.solvimon.com/v1/portal-urls/:resourceId/complete")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```