@cfxlabsinc/b2b-services
    Preparing search index...
    productLimitConfigApi: {
        "/v1/product/limit-config": {
            get: {
                querystring: TObject<
                    { products: TOptional<TString>; statuses: TOptional<TString> },
                >;
                response: {
                    "200": TObject<
                        {
                            items: TArray<
                                TObject<
                                    {
                                        createdAt: TString;
                                        product: TUnion<[(...), (...)]>;
                                        rules: TArray<TObject<(...)>>;
                                        status: TUnsafe<(...) | (...)>;
                                        updatedAt: TString;
                                    },
                                >,
                            >;
                        },
                    >;
                };
                summary: "Search all existing product limit configurations";
                tags: readonly ["Product limit config"];
            };
            post: {
                body: TObject<
                    {
                        product: TUnion<
                            [
                                TUnsafe<
                                    | "organization.v1"
                                    | "identity.v1"
                                    | "card.physical_card.v1"
                                    | "card.virtual_card.v1"
                                    | "deposit.rtp.v1"
                                    | "deposit.ach_credit.v1"
                                    | "deposit.us_bank_ach.v1"
                                    | "deposit.us_cash.v1"
                                    | "deposit.us_wire.v1"
                                    | "deposit.swift_wire.v1"
                                    | "transfer.redemption.v1"
                                    | "swap.v1"
                                    | "withdraw.blockchain.v1"
                                    | "withdraw.ke_bank.v1"
                                    | "withdraw.ke_momo.v1"
                                    | "withdraw.mx_bank_spei.v1"
                                    | "withdraw.swift_wire.v1"
                                    | "withdraw.tg_momo.v1"
                                    | "withdraw.us_bank_ach.v1"
                                    | "withdraw.us_instant.v1"
                                    | "withdraw.us_wire.v1"
                                    | "withdraw.ach_pull.v1"
                                    | "withdraw.us_wire_drawdown.v1"
                                    | "account.virtual-account.v1",
                                >,
                                TUnsafe<"deposit.*" | "withdraw.*">,
                            ],
                        >;
                        rules: TArray<
                            TObject<
                                {
                                    matcher: TObject<{}>;
                                    status: TUnsafe<"ACTIVE" | "DISABLED">;
                                    value: TArray<TIntersect<[(...), (...)]>>;
                                },
                            >,
                        >;
                        status: TUnsafe<"ACTIVE" | "DISABLED">;
                    },
                >;
                description: "A customer can configure limits for transactions that their identities or organizations can perform.\n\nCFX platform enforces some system-wide limits. Customer's configurations are only considered if they fall below the system-wide ones.\n\nIf the configuration already exists, this operation completely replaces with the newly provided configurations. See the [configuration guide](https://docs.moveusd.com/docs/product-configurations) for an introduction on how to use rules.\n\nNon-USD usage is converted using the exchange rate at the time of transaction, before it is compared with the configured limit.\n\nCurrently supported fields for the matcher are:\n\n* `entityType`: `IDENTITY` or `ORGANIZATION`\n* `countryCode`: 2-letter ISO country code, e.g. `US`, `MX`\n* `sourceCurrency`: The currency code, e.g. `MOVEUSD`, `USDC`, `USD`, etc.\n* `targetCurrency`: The currency code, e.g. `MOVEUSD`, `USDC`, `USD`, etc.";
                response: {
                    "200": TObject<
                        {
                            createdAt: TString;
                            product: TUnion<
                                [
                                    TUnsafe<
                                        | "organization.v1"
                                        | "identity.v1"
                                        | "card.physical_card.v1"
                                        | "card.virtual_card.v1"
                                        | "deposit.rtp.v1"
                                        | "deposit.ach_credit.v1"
                                        | "deposit.us_bank_ach.v1"
                                        | "deposit.us_cash.v1"
                                        | "deposit.us_wire.v1"
                                        | "deposit.swift_wire.v1"
                                        | "transfer.redemption.v1"
                                        | "swap.v1"
                                        | "withdraw.blockchain.v1"
                                        | "withdraw.ke_bank.v1"
                                        | "withdraw.ke_momo.v1"
                                        | "withdraw.mx_bank_spei.v1"
                                        | "withdraw.swift_wire.v1"
                                        | "withdraw.tg_momo.v1"
                                        | "withdraw.us_bank_ach.v1"
                                        | "withdraw.us_instant.v1"
                                        | "withdraw.us_wire.v1"
                                        | "withdraw.ach_pull.v1"
                                        | "withdraw.us_wire_drawdown.v1"
                                        | "account.virtual-account.v1",
                                    >,
                                    TUnsafe<"deposit.*" | "withdraw.*">,
                                ],
                            >;
                            rules: TArray<
                                TObject<
                                    {
                                        matcher: TObject<{}>;
                                        status: TUnsafe<(...) | (...)>;
                                        value: TArray<TIntersect<(...)>>;
                                    },
                                >,
                            >;
                            status: TUnsafe<"ACTIVE" | "DISABLED">;
                            updatedAt: TString;
                        },
                    >;
                    "400": TIntersect<
                        [
                            TObject<{ code: TLiteral<"INVALID_FIELD">; message: TString }>,
                            TObject<{ fields: TArray<TUnsafe<"rules[].value[].value">> }>,
                        ],
                    >;
                };
                summary: "Create or update a product limit configuration";
                tags: readonly ["Product limit config"];
            };
        };
        "/v1/product/limit-config/{product}": {
            delete: {
                params: TObject<
                    {
                        product: TUnion<
                            [
                                TUnsafe<
                                    | "organization.v1"
                                    | "identity.v1"
                                    | "card.physical_card.v1"
                                    | "card.virtual_card.v1"
                                    | "deposit.rtp.v1"
                                    | "deposit.ach_credit.v1"
                                    | "deposit.us_bank_ach.v1"
                                    | "deposit.us_cash.v1"
                                    | "deposit.us_wire.v1"
                                    | "deposit.swift_wire.v1"
                                    | "transfer.redemption.v1"
                                    | "swap.v1"
                                    | "withdraw.blockchain.v1"
                                    | "withdraw.ke_bank.v1"
                                    | "withdraw.ke_momo.v1"
                                    | "withdraw.mx_bank_spei.v1"
                                    | "withdraw.swift_wire.v1"
                                    | "withdraw.tg_momo.v1"
                                    | "withdraw.us_bank_ach.v1"
                                    | "withdraw.us_instant.v1"
                                    | "withdraw.us_wire.v1"
                                    | "withdraw.ach_pull.v1"
                                    | "withdraw.us_wire_drawdown.v1"
                                    | "account.virtual-account.v1",
                                >,
                                TUnsafe<"deposit.*" | "withdraw.*">,
                            ],
                        >;
                    },
                >;
                response: {
                    "204": TNull;
                    "404": TObject<{ code: TLiteral<"NOT_FOUND">; message: TString }>;
                };
                summary: "Delete an existing product limit configuration";
                tags: readonly ["Product limit config"];
            };
        };
        "/v1/product/limit-config/test": {
            post: {
                body: TIntersect<
                    [
                        TObject<
                            {
                                countryCode: TString;
                                product: TUnion<
                                    [
                                        TUnsafe<
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...),
                                        >,
                                        TUnsafe<(...) | (...)>,
                                    ],
                                >;
                                sourceCurrency: TString;
                                targetCurrency: TString;
                            },
                        >,
                        TUnion<
                            [
                                TObject<
                                    {
                                        entityType: TLiteral<"IDENTITY">;
                                        verifications: TArray<TLiteral<(...)>>;
                                    },
                                >,
                                TObject<{ entityType: TLiteral<"ORGANIZATION"> }>,
                            ],
                        >,
                    ],
                >;
                description: "This operation simulates the calculation of limits for the provided criteria. Both customer and admin configurations are taken into account.\n\nUse this operation to test whether the desired outcome is achieved after making configuration changes.";
                response: {
                    "200": TObject<
                        {
                            applicableRules: TArray<
                                TIntersect<
                                    [
                                        TObject<{ matcher: ...; status: ...; value: ... }>,
                                        TObject<{ type: ... }>,
                                    ],
                                >,
                            >;
                            effective: TArray<
                                TIntersect<[TObject<{ limit: ... }>, TUnion<[(...), (...)]>]>,
                            >;
                        },
                    >;
                };
                summary: "Test the product limit configurations";
                tags: readonly ["Product limit config"];
            };
        };
    } = ...

    Type Declaration

    • Readonly/v1/product/limit-config: {
          get: {
              querystring: TObject<
                  { products: TOptional<TString>; statuses: TOptional<TString> },
              >;
              response: {
                  "200": TObject<
                      {
                          items: TArray<
                              TObject<
                                  {
                                      createdAt: TString;
                                      product: TUnion<[(...), (...)]>;
                                      rules: TArray<TObject<(...)>>;
                                      status: TUnsafe<(...) | (...)>;
                                      updatedAt: TString;
                                  },
                              >,
                          >;
                      },
                  >;
              };
              summary: "Search all existing product limit configurations";
              tags: readonly ["Product limit config"];
          };
          post: {
              body: TObject<
                  {
                      product: TUnion<
                          [
                              TUnsafe<
                                  | "organization.v1"
                                  | "identity.v1"
                                  | "card.physical_card.v1"
                                  | "card.virtual_card.v1"
                                  | "deposit.rtp.v1"
                                  | "deposit.ach_credit.v1"
                                  | "deposit.us_bank_ach.v1"
                                  | "deposit.us_cash.v1"
                                  | "deposit.us_wire.v1"
                                  | "deposit.swift_wire.v1"
                                  | "transfer.redemption.v1"
                                  | "swap.v1"
                                  | "withdraw.blockchain.v1"
                                  | "withdraw.ke_bank.v1"
                                  | "withdraw.ke_momo.v1"
                                  | "withdraw.mx_bank_spei.v1"
                                  | "withdraw.swift_wire.v1"
                                  | "withdraw.tg_momo.v1"
                                  | "withdraw.us_bank_ach.v1"
                                  | "withdraw.us_instant.v1"
                                  | "withdraw.us_wire.v1"
                                  | "withdraw.ach_pull.v1"
                                  | "withdraw.us_wire_drawdown.v1"
                                  | "account.virtual-account.v1",
                              >,
                              TUnsafe<"deposit.*" | "withdraw.*">,
                          ],
                      >;
                      rules: TArray<
                          TObject<
                              {
                                  matcher: TObject<{}>;
                                  status: TUnsafe<"ACTIVE" | "DISABLED">;
                                  value: TArray<TIntersect<[(...), (...)]>>;
                              },
                          >,
                      >;
                      status: TUnsafe<"ACTIVE" | "DISABLED">;
                  },
              >;
              description: "A customer can configure limits for transactions that their identities or organizations can perform.\n\nCFX platform enforces some system-wide limits. Customer's configurations are only considered if they fall below the system-wide ones.\n\nIf the configuration already exists, this operation completely replaces with the newly provided configurations. See the [configuration guide](https://docs.moveusd.com/docs/product-configurations) for an introduction on how to use rules.\n\nNon-USD usage is converted using the exchange rate at the time of transaction, before it is compared with the configured limit.\n\nCurrently supported fields for the matcher are:\n\n* `entityType`: `IDENTITY` or `ORGANIZATION`\n* `countryCode`: 2-letter ISO country code, e.g. `US`, `MX`\n* `sourceCurrency`: The currency code, e.g. `MOVEUSD`, `USDC`, `USD`, etc.\n* `targetCurrency`: The currency code, e.g. `MOVEUSD`, `USDC`, `USD`, etc.";
              response: {
                  "200": TObject<
                      {
                          createdAt: TString;
                          product: TUnion<
                              [
                                  TUnsafe<
                                      | "organization.v1"
                                      | "identity.v1"
                                      | "card.physical_card.v1"
                                      | "card.virtual_card.v1"
                                      | "deposit.rtp.v1"
                                      | "deposit.ach_credit.v1"
                                      | "deposit.us_bank_ach.v1"
                                      | "deposit.us_cash.v1"
                                      | "deposit.us_wire.v1"
                                      | "deposit.swift_wire.v1"
                                      | "transfer.redemption.v1"
                                      | "swap.v1"
                                      | "withdraw.blockchain.v1"
                                      | "withdraw.ke_bank.v1"
                                      | "withdraw.ke_momo.v1"
                                      | "withdraw.mx_bank_spei.v1"
                                      | "withdraw.swift_wire.v1"
                                      | "withdraw.tg_momo.v1"
                                      | "withdraw.us_bank_ach.v1"
                                      | "withdraw.us_instant.v1"
                                      | "withdraw.us_wire.v1"
                                      | "withdraw.ach_pull.v1"
                                      | "withdraw.us_wire_drawdown.v1"
                                      | "account.virtual-account.v1",
                                  >,
                                  TUnsafe<"deposit.*" | "withdraw.*">,
                              ],
                          >;
                          rules: TArray<
                              TObject<
                                  {
                                      matcher: TObject<{}>;
                                      status: TUnsafe<(...) | (...)>;
                                      value: TArray<TIntersect<(...)>>;
                                  },
                              >,
                          >;
                          status: TUnsafe<"ACTIVE" | "DISABLED">;
                          updatedAt: TString;
                      },
                  >;
                  "400": TIntersect<
                      [
                          TObject<{ code: TLiteral<"INVALID_FIELD">; message: TString }>,
                          TObject<{ fields: TArray<TUnsafe<"rules[].value[].value">> }>,
                      ],
                  >;
              };
              summary: "Create or update a product limit configuration";
              tags: readonly ["Product limit config"];
          };
      }
    • Readonly/v1/product/limit-config/{product}: {
          delete: {
              params: TObject<
                  {
                      product: TUnion<
                          [
                              TUnsafe<
                                  | "organization.v1"
                                  | "identity.v1"
                                  | "card.physical_card.v1"
                                  | "card.virtual_card.v1"
                                  | "deposit.rtp.v1"
                                  | "deposit.ach_credit.v1"
                                  | "deposit.us_bank_ach.v1"
                                  | "deposit.us_cash.v1"
                                  | "deposit.us_wire.v1"
                                  | "deposit.swift_wire.v1"
                                  | "transfer.redemption.v1"
                                  | "swap.v1"
                                  | "withdraw.blockchain.v1"
                                  | "withdraw.ke_bank.v1"
                                  | "withdraw.ke_momo.v1"
                                  | "withdraw.mx_bank_spei.v1"
                                  | "withdraw.swift_wire.v1"
                                  | "withdraw.tg_momo.v1"
                                  | "withdraw.us_bank_ach.v1"
                                  | "withdraw.us_instant.v1"
                                  | "withdraw.us_wire.v1"
                                  | "withdraw.ach_pull.v1"
                                  | "withdraw.us_wire_drawdown.v1"
                                  | "account.virtual-account.v1",
                              >,
                              TUnsafe<"deposit.*" | "withdraw.*">,
                          ],
                      >;
                  },
              >;
              response: {
                  "204": TNull;
                  "404": TObject<{ code: TLiteral<"NOT_FOUND">; message: TString }>;
              };
              summary: "Delete an existing product limit configuration";
              tags: readonly ["Product limit config"];
          };
      }
    • Readonly/v1/product/limit-config/test: {
          post: {
              body: TIntersect<
                  [
                      TObject<
                          {
                              countryCode: TString;
                              product: TUnion<
                                  [
                                      TUnsafe<
                                          | (...)
                                          | (...)
                                          | (...)
                                          | (...)
                                          | (...)
                                          | (...)
                                          | (...)
                                          | (...)
                                          | (...)
                                          | (...)
                                          | (...)
                                          | (...)
                                          | (...)
                                          | (...)
                                          | (...)
                                          | (...)
                                          | (...)
                                          | (...)
                                          | (...)
                                          | (...)
                                          | (...)
                                          | (...)
                                          | (...)
                                          | (...),
                                      >,
                                      TUnsafe<(...) | (...)>,
                                  ],
                              >;
                              sourceCurrency: TString;
                              targetCurrency: TString;
                          },
                      >,
                      TUnion<
                          [
                              TObject<
                                  {
                                      entityType: TLiteral<"IDENTITY">;
                                      verifications: TArray<TLiteral<(...)>>;
                                  },
                              >,
                              TObject<{ entityType: TLiteral<"ORGANIZATION"> }>,
                          ],
                      >,
                  ],
              >;
              description: "This operation simulates the calculation of limits for the provided criteria. Both customer and admin configurations are taken into account.\n\nUse this operation to test whether the desired outcome is achieved after making configuration changes.";
              response: {
                  "200": TObject<
                      {
                          applicableRules: TArray<
                              TIntersect<
                                  [
                                      TObject<{ matcher: ...; status: ...; value: ... }>,
                                      TObject<{ type: ... }>,
                                  ],
                              >,
                          >;
                          effective: TArray<
                              TIntersect<[TObject<{ limit: ... }>, TUnion<[(...), (...)]>]>,
                          >;
                      },
                  >;
              };
              summary: "Test the product limit configurations";
              tags: readonly ["Product limit config"];
          };
      }