docs(api): sync fx-account spec with web source#27
Merged
Conversation
Aligns apis/fx-account/openapi.yml with the live request/response shapes
exposed by fx-account's /api channel:
- POST /api/accounts: drop AssetRequest.isVirtual (not in source); add
CompanyOwnerRequest.isStartup; rewire industry to a shared Industry
schema regenerated from IndustryV2 (87 values).
- POST/PATCH /api/accounts/{id}/ubos: add phone, email, and
isLegalRepresentative to UBORequest, UpdateUBORequest, and UBOResponse.
- GET /api/accounts/{id}/ubos: drop spurious pagination/filter params;
response is a plain array, not a paginated envelope.
- GET /api/accounts/{id}/fundingInstructions: drop pagination/filter
params, add asset and rail query filters, response is a plain array.
FundingInstructionResponse now uses type as discriminator, exposes
both type and rail fields, and includes the missing
PIX_BANK_INSTRUCTION variant.
- Remove the /api/accounts/{id}/balances endpoint and associated
schemas/examples/navigation entry — the route does not exist in
fx-account.
- Rewrite RequirementResponse as a oneOf with five concrete variants
(ACCOUNT_DOCUMENT, UBO_DOCUMENT, IDENTITY_VERIFICATION, ACCOUNT_FIELD,
UBO_FIELD) matching the sealed class hierarchy.
- AssetResponse.asset renamed to currency to match the wire format.
- Extend DocumentType with KYC_FORM, BAAS_ADHESION_FORM,
PJ_PARTNER_DOCUMENTS, PJ_PARTNER_FINANCIAL_STATEMENT, and
SIGNING_AUTHORITY_PROOF.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
# Conflicts: # apis/fx-account/openapi.yml
The text-formatting eval flagged a soft-wrapped line inside a `|` literal block, where the newline renders as a visible break in Mintlify. Joining the intro sentence keeps the bullet list intact. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
marioalvial
approved these changes
May 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Aligns
apis/fx-account/openapi.ymlwith the request/response shapes exposed by fx-account's/apichannel (webmodule). Drift was found in several areas — all corrected here.Requests
AssetRequest— removeisVirtual(not present inAssetRequest.kt).CompanyOwnerRequest— addisStartup: boolean(opt, defaultfalse); swap inlineindustryenum for a$refto the sharedIndustryschema introduced by feat(api): sync Industry enum with IndustryV2 source #26.UBORequest/UpdateUBORequest— addphone,email,isLegalRepresentative. Required on POST; optional on PATCH.UploadDocumentRequest—DocumentTypeenum extended withKYC_FORM,BAAS_ADHESION_FORM,PJ_PARTNER_DOCUMENTS,PJ_PARTNER_FINANCIAL_STATEMENT,SIGNING_AUTHORITY_PROOF.Endpoints / parameters
GET /api/accounts/{id}/ubos— controller has no pagination or filters: removedPaginationLimit/Cursor/Direction/SortOrder/Filters. Response is now a plain array (theUBOListenvelope was dropped).GET /api/accounts/{id}/fundingInstructions— replaced pagination/filters withassetandrailquery params (matching the controller). Response is now a plain array (theFundingInstructionListenvelope was dropped).GET /api/accounts/{id}/balances— removed entirely. No controller infx-accountexposes this route. Tag, schemas (BalanceResponse,BalanceEntryResponse), examples (BalanceMixed,BalanceUnsyncedSource,BalanceNotFound),docs.jsongroup, and theget-balance.mdxpage were removed too.Responses
AssetResponse— field renamedasset→currencyto match the wire format (AssetResponse.kt).UBOResponse— addedphone,email,isLegalRepresentative.CompanyOwnerResponse.industry— now references the sharedIndustryschema introduced by feat(api): sync Industry enum with IndustryV2 source #26.RequirementResponse— rewritten as aoneOfwith five concrete variants matching the sealed class hierarchy:ACCOUNT_DOCUMENT→AccountDocumentRequirementUBO_DOCUMENT→UboDocumentRequirement(with requireduboId)IDENTITY_VERIFICATION→IdentityVerificationRequirement(group withoptions)ACCOUNT_FIELD→AccountFieldRejectionUBO_FIELD→UboFieldRejectionFundingInstructionResponse— discriminator changed fromrailtotype(the actualJsonSubTypesproperty); added missingPIX_BANK_INSTRUCTIONvariant; added newFundingInstructionTypeenum; each variant now constrains bothtypeandrail(the latter is derived — e.g.,type=CRYPTO_WALLETmaps torail=CRYPTO).Test plan
mint validatepasses.mint broken-linkspasses.navigation-coverageeval: 100% (63/63).orphan-detectoreval: 100% (63/63).openapi-completenesseval: passes.Industryenum verified equivalent toIndustryV2fromdevelopment-utils2.81.0 (86 values, identical sets).🤖 Generated with Claude Code