Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions openapi/SOURCE.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
"verification.json": {
"url": "https://docs.didit.me/openapi-25.json",
"sha256": "9f8cdf8be8157588facc8059c9bd306f3f516a3a5b66b78c8e63cf595ddb6627",
"fetched_at": "2026-11-05T12:12:43Z"
"fetched_at": "2026-11-05T16:15:58Z"
},
"account.json": {
"url": "https://docs.didit.me/openapi-auth.json",
"sha256": "5b45b1896ef3107dd9a601c76d9ba35761bae5f04ac731b6c27876603903bf05",
"fetched_at": "2026-11-05T12:12:43Z"
"sha256": "ef403603543b119fed4300d08e15b8ec0a13de9fabdfdc02866f61f817d2a1f0",
"fetched_at": "2026-11-05T16:15:58Z"
},
"webhook-vectors.json": {
"generator": "product-automations scripts/server-sdks/make_vectors.py (seeded 2026-10-17)",
Expand Down
126 changes: 109 additions & 17 deletions openapi/account.json

Large diffs are not rendered by default.

21 changes: 17 additions & 4 deletions src/didit/resources/account/applications.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
)
from didit._types import NOT_GIVEN, Body, Headers, NotGiven, Query
from didit.types.components.application import Application
from didit.types.components.application_data_location import ApplicationDataLocation
from didit.types.components.paginated_application_list import PaginatedApplicationList

__all__ = [
Expand Down Expand Up @@ -100,14 +101,15 @@ def create(
terms_url: str | NotGiven = NOT_GIVEN,
privacy_url: str | NotGiven = NOT_GIVEN,
description: str | NotGiven = NOT_GIVEN,
data_location: ApplicationDataLocation | NotGiven = NOT_GIVEN,
extra_headers: Headers | None = None,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> Application:
"""Create Application.

Create an application inside an organization. The response includes `api_key`; persist it now (recoverable via GET). Requires owner/admin JWT.
Create an application inside an organization, in the data location you choose (`data_location`, the European Union by default; it can't be changed afterwards). The response includes `api_key`; persist it now (recoverable via GET). Requires owner/admin JWT.

``POST /organizations/me/{org_id}/applications/``

Expand All @@ -119,6 +121,7 @@ def create(
terms_url: Terms of service URL shown in the verification flow.
privacy_url: Privacy policy URL shown in the verification flow.
description: Internal description for the application (not shown to end users).
data_location: Where the application's verification data is stored and processed, chosen when the application is created. `eu` is the European Union (Ireland), the default. `au` (Australia, Sydney) and `mx` (Mexico) are coming soon: a request that names them answers 400 `This data location is not available yet.` An organization's Sandbox application is always in the European Union.
extra_headers: Headers to add to (or, with ``None``, remove from) this request.
extra_query: Query parameters to add to this request.
extra_body: Top-level JSON fields to add to this request's body.
Expand All @@ -140,6 +143,7 @@ def create(
"terms_url": terms_url,
"privacy_url": privacy_url,
"description": description,
"data_location": data_location,
},
extra_headers=extra_headers,
extra_query=extra_query,
Expand Down Expand Up @@ -199,14 +203,15 @@ def update(
terms_url: str | NotGiven = NOT_GIVEN,
privacy_url: str | NotGiven = NOT_GIVEN,
description: str | NotGiven = NOT_GIVEN,
data_location: ApplicationDataLocation | NotGiven = NOT_GIVEN,
extra_headers: Headers | None = None,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> Application:
"""Update Application.

Update application metadata (name, URLs, redirect URIs). `api_key` and `client_id` are never rotated. `products` is read-only: a `products` key in the body is ignored. Requires owner/admin JWT.
Update application metadata (name, URLs, redirect URIs). `api_key` and `client_id` are never rotated. `products` is read-only: a `products` key in the body is ignored. `data_location` can't be changed after the application is created, except once on the live application created with your organization, while it is unused (see the request body). Requires owner/admin JWT.

``PATCH /organizations/me/{org_id}/applications/{app_id}/``

Expand All @@ -219,6 +224,7 @@ def update(
terms_url: Terms of service URL shown in the verification flow.
privacy_url: Privacy policy URL shown in the verification flow.
description: Internal description for the application.
data_location: Where the application's verification data is stored and processed, chosen when the application is created. `eu` is the European Union (Ireland), the default. `au` (Australia, Sydney) and `mx` (Mexico) are coming soon: a request that names them answers 400 `This data location is not available yet.` An organization's Sandbox application is always in the European Union.
extra_headers: Headers to add to (or, with ``None``, remove from) this request.
extra_query: Query parameters to add to this request.
extra_body: Top-level JSON fields to add to this request's body.
Expand All @@ -240,6 +246,7 @@ def update(
"terms_url": terms_url,
"privacy_url": privacy_url,
"description": description,
"data_location": data_location,
},
extra_headers=extra_headers,
extra_query=extra_query,
Expand Down Expand Up @@ -319,14 +326,15 @@ async def create(
terms_url: str | NotGiven = NOT_GIVEN,
privacy_url: str | NotGiven = NOT_GIVEN,
description: str | NotGiven = NOT_GIVEN,
data_location: ApplicationDataLocation | NotGiven = NOT_GIVEN,
extra_headers: Headers | None = None,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> Application:
"""Create Application.

Create an application inside an organization. The response includes `api_key`; persist it now (recoverable via GET). Requires owner/admin JWT.
Create an application inside an organization, in the data location you choose (`data_location`, the European Union by default; it can't be changed afterwards). The response includes `api_key`; persist it now (recoverable via GET). Requires owner/admin JWT.

``POST /organizations/me/{org_id}/applications/``

Expand All @@ -338,6 +346,7 @@ async def create(
terms_url: Terms of service URL shown in the verification flow.
privacy_url: Privacy policy URL shown in the verification flow.
description: Internal description for the application (not shown to end users).
data_location: Where the application's verification data is stored and processed, chosen when the application is created. `eu` is the European Union (Ireland), the default. `au` (Australia, Sydney) and `mx` (Mexico) are coming soon: a request that names them answers 400 `This data location is not available yet.` An organization's Sandbox application is always in the European Union.
extra_headers: Headers to add to (or, with ``None``, remove from) this request.
extra_query: Query parameters to add to this request.
extra_body: Top-level JSON fields to add to this request's body.
Expand All @@ -359,6 +368,7 @@ async def create(
"terms_url": terms_url,
"privacy_url": privacy_url,
"description": description,
"data_location": data_location,
},
extra_headers=extra_headers,
extra_query=extra_query,
Expand Down Expand Up @@ -418,14 +428,15 @@ async def update(
terms_url: str | NotGiven = NOT_GIVEN,
privacy_url: str | NotGiven = NOT_GIVEN,
description: str | NotGiven = NOT_GIVEN,
data_location: ApplicationDataLocation | NotGiven = NOT_GIVEN,
extra_headers: Headers | None = None,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> Application:
"""Update Application.

Update application metadata (name, URLs, redirect URIs). `api_key` and `client_id` are never rotated. `products` is read-only: a `products` key in the body is ignored. Requires owner/admin JWT.
Update application metadata (name, URLs, redirect URIs). `api_key` and `client_id` are never rotated. `products` is read-only: a `products` key in the body is ignored. `data_location` can't be changed after the application is created, except once on the live application created with your organization, while it is unused (see the request body). Requires owner/admin JWT.

``PATCH /organizations/me/{org_id}/applications/{app_id}/``

Expand All @@ -438,6 +449,7 @@ async def update(
terms_url: Terms of service URL shown in the verification flow.
privacy_url: Privacy policy URL shown in the verification flow.
description: Internal description for the application.
data_location: Where the application's verification data is stored and processed, chosen when the application is created. `eu` is the European Union (Ireland), the default. `au` (Australia, Sydney) and `mx` (Mexico) are coming soon: a request that names them answers 400 `This data location is not available yet.` An organization's Sandbox application is always in the European Union.
extra_headers: Headers to add to (or, with ``None``, remove from) this request.
extra_query: Query parameters to add to this request.
extra_body: Top-level JSON fields to add to this request's body.
Expand All @@ -459,6 +471,7 @@ async def update(
"terms_url": terms_url,
"privacy_url": privacy_url,
"description": description,
"data_location": data_location,
},
extra_headers=extra_headers,
extra_query=extra_query,
Expand Down
5 changes: 5 additions & 0 deletions src/didit/types/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -509,6 +509,9 @@
from didit.types.components.application_credentials_summary import (
ApplicationCredentialsSummary as ApplicationCredentialsSummary,
)
from didit.types.components.application_data_location import (
ApplicationDataLocation as ApplicationDataLocation,
)
from didit.types.components.application_product import ApplicationProduct as ApplicationProduct
from didit.types.components.bank_account_check_business_holder import (
BankAccountCheckBusinessHolder as BankAccountCheckBusinessHolder,
Expand Down Expand Up @@ -3484,6 +3487,7 @@
"ApplicationAnalyticsWorkflowFunnelValue": "components.application_analytics_workflow_funnel",
"ApplicationAnalyticsWorkflowFunnelValueStepsValue": "components.application_analytics_workflow_funnel",
"ApplicationCredentialsSummary": "components.application_credentials_summary",
"ApplicationDataLocation": "components.application_data_location",
"ApplicationProduct": "components.application_product",
"BankAccountCheckBusinessHolder": "components.bank_account_check_business_holder",
"BankAccountCheckHolder": "components.bank_account_check_holder",
Expand Down Expand Up @@ -4717,6 +4721,7 @@
"ApplicationAnalyticsWorkflowFunnelValue",
"ApplicationAnalyticsWorkflowFunnelValueStepsValue",
"ApplicationCredentialsSummary",
"ApplicationDataLocation",
"ApplicationProduct",
"BankAccountCheckBusinessHolder",
"BankAccountCheckHolder",
Expand Down
7 changes: 6 additions & 1 deletion src/didit/types/account/applications/create_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@

from typing_extensions import TypedDict

from didit.types.components.application_data_location import ApplicationDataLocation

__all__ = ["AccountApplicationsCreateParams"]


class AccountApplicationsCreateParams(TypedDict, total=False):
"""All fields are optional. Sending an empty body creates an application with a default name."""
"""All fields are optional. Sending an empty body creates an application with a default name, in the European Union."""

name: str
"""Application display name. Defaults to `"<organization name> App"`."""
Expand All @@ -28,3 +30,6 @@ class AccountApplicationsCreateParams(TypedDict, total=False):

description: str
"""Internal description for the application (not shown to end users)."""

data_location: ApplicationDataLocation
"""Where the application's verification data is stored and processed, chosen when the application is created. `eu` is the European Union (Ireland), the default. `au` (Australia, Sydney) and `mx` (Mexico) are coming soon: a request that names them answers 400 `This data location is not available yet.` An organization's Sandbox application is always in the European Union."""
7 changes: 6 additions & 1 deletion src/didit/types/account/applications/update_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@

from typing_extensions import TypedDict

from didit.types.components.application_data_location import ApplicationDataLocation

__all__ = ["AccountApplicationsUpdateParams"]


class AccountApplicationsUpdateParams(TypedDict, total=False):
"""PATCH body for application metadata. Send only the fields you want to change; omitted fields are preserved. `uuid`, `client_id`, and `api_key` cannot be updated. `products` is read-only: a `products` key in the body is ignored."""
"""PATCH body for application metadata. Send only the fields you want to change; omitted fields are preserved. `uuid`, `client_id`, and `api_key` cannot be updated. `products` is read-only: a `products` key in the body is ignored. `data_location` can't be changed after the application is created: naming the location it already has is accepted, and any other location answers 400. The one exception is the live application created with your organization: the first update that names a `data_location` chooses it, once, while no API key of the application has been used and it has no verification session."""

name: str
"""Application display name."""
Expand All @@ -28,3 +30,6 @@ class AccountApplicationsUpdateParams(TypedDict, total=False):

description: str
"""Internal description for the application."""

data_location: ApplicationDataLocation
"""Where the application's verification data is stored and processed, chosen when the application is created. `eu` is the European Union (Ireland), the default. `au` (Australia, Sydney) and `mx` (Mexico) are coming soon: a request that names them answers 400 `This data location is not available yet.` An organization's Sandbox application is always in the European Union."""
6 changes: 5 additions & 1 deletion src/didit/types/components/application.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,14 @@
import datetime as _dt

from didit._models import BaseModel
from didit.types.components.application_data_location import ApplicationDataLocation
from didit.types.components.application_product import ApplicationProduct

__all__ = ["Application"]


class Application(BaseModel):
"""Full application record. `uuid`, `client_id`, and `api_key` never change after creation."""
"""Full application record. `uuid`, `client_id`, and `api_key` never change after creation. `data_location` doesn't either, except once on the live application created with your organization, before it is used (see the update request)."""

uuid: str | None = None
"""Application UUID. Use as `{app_id}` in subsequent calls."""
Expand Down Expand Up @@ -41,5 +42,8 @@ class Application(BaseModel):

created_at: _dt.datetime | None = None

data_location: ApplicationDataLocation | None = None
"""Where the application's verification data is stored and processed, chosen when the application is created. `eu` is the European Union (Ireland), the default. `au` (Australia, Sydney) and `mx` (Mexico) are coming soon: a request that names them answers 400 `This data location is not available yet.` An organization's Sandbox application is always in the European Union."""

products: list[ApplicationProduct] | None = None
"""The application's products. Always all three, in this order: `identity`, `transactions`, `authentication`. A new application has `identity` enabled with every module on, and `transactions` and `authentication` disabled. Read-only: a `products` key in a create or update body is ignored."""
4 changes: 4 additions & 0 deletions src/didit/types/components/application_credentials_summary.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from __future__ import annotations

from didit._models import BaseModel
from didit.types.components.application_data_location import ApplicationDataLocation

__all__ = ["ApplicationCredentialsSummary"]

Expand All @@ -17,3 +18,6 @@ class ApplicationCredentialsSummary(BaseModel):

api_key: str | None = None
"""Use this as `x-api-key` on every verification API call. New keys start with `sk_live_` (live application) or `sk_test_` (sandbox application), followed by 43 URL-safe characters (letters, digits, `-` and `_`). Keys created before this format have no prefix and keep working unchanged."""

data_location: ApplicationDataLocation | None = None
"""Where the application's verification data is stored and processed, chosen when the application is created. `eu` is the European Union (Ireland), the default. `au` (Australia, Sydney) and `mx` (Mexico) are coming soon: a request that names them answers 400 `This data location is not available yet.` An organization's Sandbox application is always in the European Union."""
12 changes: 12 additions & 0 deletions src/didit/types/components/application_data_location.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Code generated by codegen from openapi/*.json. DO NOT EDIT.
from __future__ import annotations

from typing import Literal

from typing_extensions import TypeAlias

__all__ = ["ApplicationDataLocation"]


ApplicationDataLocation: TypeAlias = Literal["eu", "au", "mx"] | str
"""Where the application's verification data is stored and processed, chosen when the application is created. `eu` is the European Union (Ireland), the default. `au` (Australia, Sydney) and `mx` (Mexico) are coming soon: a request that names them answers 400 `This data location is not available yet.` An organization's Sandbox application is always in the European Union."""
Loading
Loading