Skip to main content
Use a custom provider for an issuer that has no built-in type, for example a self-hosted identity provider or a CI system with OIDC support.

Provider Settings

A custom provider cannot use the issuer host of a built-in type, for example token.actions.githubusercontent.com or gitlab.com. Use the built-in type for these issuers.

Keys

Select one key source:
  • Discovery (default). Dodo Payments reads the discovery document of the issuer and its jwks_uri. The issuer in the discovery document must be equal to the issuer of the provider.
  • Discovery URL. Enter a discovery_url when the discovery document is not at the default location.
  • Uploaded keys. For an issuer with no public JWKS, upload a JWKS. It must have 1 to 20 public keys, with a size of 64 KB or less. Each key must have a kty of RSA, EC (P-256 or P-384), or OKP (Ed25519). Private key members are not permitted.
Dodo Payments gets the remote keys over HTTPS only. It does not follow redirects, and it refuses private IP addresses. The JWKS must have a minimum of one key with a kid and a permitted algorithm.

Required Claims

The mapping must pin sub with an exact value:
The JWT must have kid in its header, and iss, aud, sub, iat, and exp in its payload. Refer to Verification Rules.

SDK Usage

Write the JWT to a file, and point DODO_PAYMENTS_IDENTITY_TOKEN_FILE to it. The file() helper reads the file for each exchange.
You can also send the JWT to the exchange endpoint yourself. Refer to Raw HTTP Exchange.
Last modified on October 28, 2026