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
4 changes: 2 additions & 2 deletions openapi/SOURCE.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"verification.json": {
"url": "https://docs.didit.me/openapi-25.json",
"sha256": "6157d174fff4e0093ca7ac8e0f064ffc777d1cfa4a7eeb2b0e88fbf86f4a060b",
"fetched_at": "2026-10-26T07:02:08Z"
"sha256": "b2658eb22e23f868d2df5fe513c8dcdadce3abf2e35d1bbebce0382c911038db",
"fetched_at": "2026-10-27T06:50:05Z"
},
"account.json": {
"url": "https://docs.didit.me/openapi-auth.json",
Expand Down
1,921 changes: 1,731 additions & 190 deletions openapi/verification.json

Large diffs are not rendered by default.

11 changes: 11 additions & 0 deletions src/main/java/me/didit/resources/DiditResources.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ public abstract class DiditResources {
private final NetworksResource networks;
private final PassiveLivenessResource passiveLiveness;
private final PhoneResource phone;
private final PricingResource pricing;
private final ProofOfAddressResource proofOfAddress;
private final QuestionnairesResource questionnaires;
private final RegulatoryReportsResource regulatoryReports;
Expand Down Expand Up @@ -84,6 +85,7 @@ protected DiditResources(ApiClient client) {
this.networks = new NetworksResource(client);
this.passiveLiveness = new PassiveLivenessResource(client);
this.phone = new PhoneResource(client);
this.pricing = new PricingResource(client);
this.proofOfAddress = new ProofOfAddressResource(client);
this.questionnaires = new QuestionnairesResource(client);
this.regulatoryReports = new RegulatoryReportsResource(client);
Expand Down Expand Up @@ -358,6 +360,15 @@ public final PhoneResource phone() {
return phone;
}

/**
* The {@code pricing} resource.
*
* @return the resource
*/
public final PricingResource pricing() {
return pricing;
}

/**
* The {@code proof_of_address} resource.
*
Expand Down
135 changes: 135 additions & 0 deletions src/main/java/me/didit/resources/PricingResource.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
// Code generated by codegen from openapi/*.json. DO NOT EDIT.
package me.didit.resources;

import java.util.concurrent.CompletableFuture;
import me.didit.core.ApiClient;
import me.didit.core.ApiRequest;
import me.didit.core.Conv;
import me.didit.core.RawResponse;
import me.didit.core.RequestOptions;
import me.didit.core.ResponseHandler;
import me.didit.core.Responses;
import me.didit.types.BankVerificationPricing;

/** The {@code pricing} resource: {@code client.pricing()}. */
public final class PricingResource {
private final ApiClient client;
private final WithRawResponse withRawResponse;

PricingResource(ApiClient client) {
this.client = client;
this.withRawResponse = new WithRawResponse(client);
}

/**
* The same operations, returning the HTTP status, headers and request id with the parsed body.
*
* @return the raw response view
*/
public WithRawResponse withRawResponse() {
return withRawResponse;
}

/**
* Get bank verification prices (public, unauthenticated)
*
* <p>Returns the list price of each Bank Verification method in every country: bank sign-in with its balance and transactions add-ons, and the account check. Use it to quote a bank step before you build a workflow, or to show bank prices in your own product.
*
* <p>Public: send no auth header. The response contains no organization data and is the same for every caller. It is cached publicly for one hour and carries an <code>ETag</code>, so send <code>If-None-Match</code> to get a <code>304 Not Modified</code> when nothing changed.
*
* <p>A method is <code>available</code> only where Didit serves it in production today, and its <code>price_usd</code> is <code>null</code> everywhere else, so the feed never shows a price you cannot buy. <code>available: false</code> covers a country with no approved price, a method the country does not support, and a route that is not switched on yet.
*
* <p>These are list prices before your plan discount. Your plan discount applies to the whole bank price, and a negotiated or contract price replaces the list price for your organization.
*
* <p>{@code GET /v3/organization/bank-verification-pricing/}
*
* @param options per-request options that override the client options
* @return the response body
*/
public BankVerificationPricing bankVerification(RequestOptions options) {
return client.execute(bankVerificationRequest(), options, BANK_VERIFICATION_RESPONSE).data();
}

/**
* Asynchronous {@link #bankVerification(RequestOptions)}.
*
* @param options per-request options
* @return a future completed with the result
*/
public CompletableFuture<BankVerificationPricing> bankVerificationAsync(RequestOptions options) {
return client.executeAsync(bankVerificationRequest(), options, BANK_VERIFICATION_RESPONSE).thenApply(RawResponse::data);
}

/**
* Same as {@link #bankVerification(RequestOptions)}, with the client's options.
*
* @return the result
*/
public BankVerificationPricing bankVerification() {
return client.execute(bankVerificationRequest(), RequestOptions.none(), BANK_VERIFICATION_RESPONSE).data();
}

/**
* Asynchronous {@link #bankVerification(RequestOptions)}, with the client's options.
*
* @return a future completed with the result
*/
public CompletableFuture<BankVerificationPricing> bankVerificationAsync() {
return client.executeAsync(bankVerificationRequest(), RequestOptions.none(), BANK_VERIFICATION_RESPONSE).thenApply(RawResponse::data);
}

private static final ResponseHandler<BankVerificationPricing> BANK_VERIFICATION_RESPONSE = Responses.json(Conv.model(BankVerificationPricing::fromJson));

private static ApiRequest bankVerificationRequest() {
return ApiRequest.builder("GET", "/v3/organization/bank-verification-pricing/")
.auth(ApiRequest.Auth.NONE)
.build();
}

/** The {@code pricing} operations returning {@link RawResponse}. */
public static final class WithRawResponse {
private final ApiClient client;

WithRawResponse(ApiClient client) {
this.client = client;
}

/**
* {@link #bankVerification(RequestOptions)} with the raw response.
*
* @param options per-request options
* @return the result
*/
public RawResponse<BankVerificationPricing> bankVerification(RequestOptions options) {
return client.execute(bankVerificationRequest(), options, BANK_VERIFICATION_RESPONSE);
}

/**
* Asynchronous {@link #bankVerification(RequestOptions)} with the raw response.
*
* @param options per-request options
* @return a future completed with the result
*/
public CompletableFuture<RawResponse<BankVerificationPricing>> bankVerificationAsync(RequestOptions options) {
return client.executeAsync(bankVerificationRequest(), options, BANK_VERIFICATION_RESPONSE);
}

/**
* {@link #bankVerification(RequestOptions)} with the raw response, with the client's options.
*
* @return the result
*/
public RawResponse<BankVerificationPricing> bankVerification() {
return client.execute(bankVerificationRequest(), RequestOptions.none(), BANK_VERIFICATION_RESPONSE);
}

/**
* Asynchronous {@link #bankVerification(RequestOptions)} with the raw response, with the client's options.
*
* @return a future completed with the result
*/
public CompletableFuture<RawResponse<BankVerificationPricing>> bankVerificationAsync() {
return client.executeAsync(bankVerificationRequest(), RequestOptions.none(), BANK_VERIFICATION_RESPONSE);
}
}
}
Loading
Loading