Virto Commerce · Authentication Profile

Virto Commerce Authentication

Authentication

Virto Commerce secures its APIs with apiKey, http, and oauth2 across 5 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the clientCredentials and password flow(s).

B2B E-CommerceCatalog ManagementOrder ManagementPricingInventoryShopping CartCustomer ManagementMarketingPaymentsShippingSubscriptionHeadless CommerceOpen-Source.NETWebhookEvent-DrivenCloudEventsGraphQLReturnsMCPB2B Quotes
Methods: apiKey, http, oauth2 Schemes: 5 OAuth flows: clientCredentials, password API key in: header, query

Security Schemes

oauth2 oauth2
· flows: password, clientCredentials
api_key apiKey
· in: query (api_key)
api_key_header apiKey
· in: header (api_key)
http-signature http
scheme: signature
basic http
scheme: basic

Source

Authentication Profile

Raw ↑
generated: '2026-08-13'
method: searched
source: 'openapi/virto-commerce-catalog-api-openapi.yml, openapi/virto-commerce-companies-and-contacts-api-openapi.yml,
  openapi/virto-commerce-event-bus-api-openapi.yml, openapi/virto-commerce-inventory-api-openapi.yml,
  openapi/virto-commerce-marketing-api-openapi.yml, openapi/virto-commerce-order-management-api-openapi.yml,
  openapi/virto-commerce-pricing-api-openapi.yml, openapi/virto-commerce-quotes-api-openapi.yml, openapi/virto-commerce-returns-api-openapi.yml,
  openapi/virto-commerce-shopping-cart-api-openapi.yml, openapi/virto-commerce-store-api-openapi.yml,
  openapi/virto-commerce-virtocommerce-platform-api-openapi.yml ...

  ; upgraded 2026-08-13 from the live discovery document https://virtostart-demo-admin.govirto.com/.well-known/openid-configuration
  (HTTP 200, captured in well-known/virto-commerce-openid-configuration.json) and https://docs.virtocommerce.org/platform/developer-guide/Fundamentals/Security/authentication/api-key-authentication/'
summary:
  types:
  - apiKey
  - http
  - oauth2
  api_key_in:
  - header
  - query
  oauth2_flows:
  - clientCredentials
  - password
schemes:
- name: oauth2
  type: oauth2
  flows:
  - flow: password
    tokenUrl: /connect/token
    scopes: 0
  - flow: clientCredentials
    tokenUrl: /connect/token
    scopes: 0
  description: OAuth2 Resource Owner Password Grant flow
  sources:
  - openapi/virto-commerce-catalog-api-openapi.yml
  - openapi/virto-commerce-companies-and-contacts-api-openapi.yml
  - openapi/virto-commerce-event-bus-api-openapi.yml
  - openapi/virto-commerce-inventory-api-openapi.yml
  - openapi/virto-commerce-marketing-api-openapi.yml
  - openapi/virto-commerce-order-management-api-openapi.yml
  - openapi/virto-commerce-pricing-api-openapi.yml
  - openapi/virto-commerce-quotes-api-openapi.yml
  - openapi/virto-commerce-returns-api-openapi.yml
  - openapi/virto-commerce-shopping-cart-api-openapi.yml
  - openapi/virto-commerce-store-api-openapi.yml
  - openapi/virto-commerce-virtocommerce-platform-api-openapi.yml
  - openapi/virto-commerce-webhooks-api-openapi.yml
- name: api_key
  type: apiKey
  in: query
  parameter: api_key
  description: API Key authentication
  sources:
  - openapi/virto-commerce-catalog-api-openapi.yml
  - openapi/virto-commerce-companies-and-contacts-api-openapi.yml
  - openapi/virto-commerce-event-bus-api-openapi.yml
  - openapi/virto-commerce-inventory-api-openapi.yml
  - openapi/virto-commerce-marketing-api-openapi.yml
  - openapi/virto-commerce-order-management-api-openapi.yml
  - openapi/virto-commerce-pricing-api-openapi.yml
  - openapi/virto-commerce-quotes-api-openapi.yml
  - openapi/virto-commerce-returns-api-openapi.yml
  - openapi/virto-commerce-shopping-cart-api-openapi.yml
  - openapi/virto-commerce-store-api-openapi.yml
  - openapi/virto-commerce-virtocommerce-platform-api-openapi.yml
  - openapi/virto-commerce-webhooks-api-openapi.yml
- name: api_key_header
  type: apiKey
  in: header
  parameter: api_key
  description: API Key authentication (alternative via header)
  sources:
  - openapi/virto-commerce-catalog-api-openapi.yml
  - openapi/virto-commerce-companies-and-contacts-api-openapi.yml
  - openapi/virto-commerce-event-bus-api-openapi.yml
  - openapi/virto-commerce-inventory-api-openapi.yml
  - openapi/virto-commerce-marketing-api-openapi.yml
  - openapi/virto-commerce-order-management-api-openapi.yml
  - openapi/virto-commerce-pricing-api-openapi.yml
  - openapi/virto-commerce-quotes-api-openapi.yml
  - openapi/virto-commerce-returns-api-openapi.yml
  - openapi/virto-commerce-shopping-cart-api-openapi.yml
  - openapi/virto-commerce-store-api-openapi.yml
  - openapi/virto-commerce-virtocommerce-platform-api-openapi.yml
  - openapi/virto-commerce-webhooks-api-openapi.yml
- name: http-signature
  type: http
  scheme: signature
  description: HTTP Signature authentication using Authorization header
  sources:
  - openapi/virto-commerce-catalog-api-openapi.yml
  - openapi/virto-commerce-companies-and-contacts-api-openapi.yml
  - openapi/virto-commerce-event-bus-api-openapi.yml
  - openapi/virto-commerce-inventory-api-openapi.yml
  - openapi/virto-commerce-marketing-api-openapi.yml
  - openapi/virto-commerce-order-management-api-openapi.yml
  - openapi/virto-commerce-pricing-api-openapi.yml
  - openapi/virto-commerce-quotes-api-openapi.yml
  - openapi/virto-commerce-returns-api-openapi.yml
  - openapi/virto-commerce-shopping-cart-api-openapi.yml
  - openapi/virto-commerce-store-api-openapi.yml
  - openapi/virto-commerce-virtocommerce-platform-api-openapi.yml
  - openapi/virto-commerce-webhooks-api-openapi.yml
- name: basic
  type: http
  scheme: basic
  description: Basic authentication using username and password
  sources:
  - openapi/virto-commerce-catalog-api-openapi.yml
  - openapi/virto-commerce-companies-and-contacts-api-openapi.yml
  - openapi/virto-commerce-event-bus-api-openapi.yml
  - openapi/virto-commerce-inventory-api-openapi.yml
  - openapi/virto-commerce-marketing-api-openapi.yml
  - openapi/virto-commerce-order-management-api-openapi.yml
  - openapi/virto-commerce-pricing-api-openapi.yml
  - openapi/virto-commerce-quotes-api-openapi.yml
  - openapi/virto-commerce-returns-api-openapi.yml
  - openapi/virto-commerce-shopping-cart-api-openapi.yml
  - openapi/virto-commerce-store-api-openapi.yml
  - openapi/virto-commerce-virtocommerce-platform-api-openapi.yml
  - openapi/virto-commerce-webhooks-api-openapi.yml
docs: https://docs.virtocommerce.org/platform/developer-guide/Fundamentals/Security/authentication/api-key-authentication/
deployment_note: 'Virto Commerce is self-hosted: the authorization server is the operator''s own platform
  instance, running OpenIddict. All endpoints below are relative to that host. The issuer recorded here
  is Virto''s own public reference deployment.'
discovery:
  openid_configuration: well-known/virto-commerce-openid-configuration.json
  oauth_authorization_server: well-known/virto-commerce-oauth-authorization-server.json
  issuer: https://virtostart-demo-admin.govirto.com/
  authorization_endpoint: /connect/authorize
  token_endpoint: /connect/token
  userinfo_endpoint: /connect/userinfo
  end_session_endpoint: /connect/logout
  jwks_uri: /.well-known/jwks
  jwks_note: Non-conventional path — /.well-known/jwks, not jwks.json. Served, HTTP 200.
  grant_types_supported:
  - password
  - refresh_token
  - client_credentials
  - authorization_code
  - impersonate
  - external_sign_in
  grant_types_note: impersonate and external_sign_in are Virto-specific grants beyond the four the OpenAPI
    declares; the spec only shows password and client_credentials.
  code_challenge_methods_supported:
  - plain
  - S256
  token_endpoint_auth_methods_supported:
  - client_secret_post
  - private_key_jwt
  - client_secret_basic
  id_token_signing_alg_values_supported:
  - RS256
  response_types_supported:
  - code
  scopes_supported:
  - openid
  - offline_access
  require_pushed_authorization_requests: false
  mtls_bound_tokens: false
api_key:
  schemes:
  - api_key_header (header)
  - api_key (query string)
  recommended: api_key_header
  warning: The query-string variant places a credential in access logs and proxy history; prefer the header.
  used_by: Virto's own MCP adapter authenticates with a platform API key in the api_key header.
authorization_model:
  mechanism: platform permissions, not OAuth scopes
  note: scopes_supported is openid + offline_access only. Access control is Virto's fine-grained permission
    system — colon-namespaced strings such as webhooks:read, webhooks:update, webhooks:feed:read — granted
    to roles. Permissions are NOT expressed in the OpenAPI, so a client cannot discover the permission
    an operation needs; a 403 comes back with an empty body.