Skip to content
Closed
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
59 changes: 59 additions & 0 deletions openapi/components/schemas/external_accounts/BrlAccountInfo.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
type: object
title: BRL Account
description: 'Required fields for USD -> BRL corridor. Supported payment rails: Pix.'
required:
- accountType
- pixKey
- beneficiary
properties:
accountType:
type: string
enum:
- BRL_ACCOUNT
example: BRL_ACCOUNT
payment_rails:
type: array
items:
type: string
const:
- Pix
description: Supported payment rails for this currency. Auto-populated based on
account type.
receivingCurrency:
type: string
const: BRL
description: Receiving currency code. Auto-populated based on account type.
pixKey:
type: string
description: The PIX key of the bank
beneficiary:
type: object
required:
- birthDate
- fullName
- nationality
properties:
fullName:
type: string
description: The full name of the beneficiary
birthDate:
type: string
description: The birth date of the beneficiary
nationality:
type: string
description: The nationality of the beneficiary
email:
type: string
description: The email of the beneficiary
phoneNumber:
type: string
description: The phone number of the beneficiary
registrationNumber:
type: string
description: The registration number of the beneficiary
countryOfResidence:
type: string
description: The country of residence of the beneficiary
address:
type: string
description: The address of the beneficiary
62 changes: 62 additions & 0 deletions openapi/components/schemas/external_accounts/DkkAccountInfo.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
type: object
title: DKK Account
description: 'Required fields for USD -> DKK corridor. Supported payment rails: Sepa.'
required:
- accountType
- iban
- beneficiary
properties:
accountType:
type: string
enum:
- DKK_ACCOUNT
example: DKK_ACCOUNT
payment_rails:
type: array
items:
type: string
const:
- Sepa
description: Supported payment rails for this currency. Auto-populated based on
account type.
receivingCurrency:
type: string
const: DKK
description: Receiving currency code. Auto-populated based on account type.
iban:
type: string
description: The IBAN of the bank
swiftBic:
type: string
description: The SWIFT BIC of the bank
beneficiary:
type: object
required:
- birthDate
- fullName
- nationality
properties:
fullName:
type: string
description: The full name of the beneficiary
birthDate:
type: string
description: The birth date of the beneficiary
nationality:
type: string
description: The nationality of the beneficiary
email:
type: string
description: The email of the beneficiary
phoneNumber:
type: string
description: The phone number of the beneficiary
registrationNumber:
type: string
description: The registration number of the beneficiary
countryOfResidence:
type: string
description: The country of residence of the beneficiary
address:
type: string
description: The address of the beneficiary
Original file line number Diff line number Diff line change
@@ -1,36 +1,60 @@
oneOf:
- title: US Account
$ref: ./UsAccountExternalAccountInfo.yaml
- title: CLABE Account
$ref: ./ClabeAccountExternalAccountInfo.yaml
- title: PIX Account
$ref: ./PixAccountExternalAccountInfo.yaml
- title: IBAN Account
$ref: ./IbanAccountExternalAccountInfo.yaml
- title: UPI Account
$ref: ./UpiAccountExternalAccountInfo.yaml
- title: NGN Account
$ref: ./NgnAccountExternalAccountInfo.yaml
- title: CAD Account
$ref: ./CadAccountExternalAccountInfo.yaml
- title: GBP Account
$ref: ./GbpAccountExternalAccountInfo.yaml
- title: PHP Account
$ref: ./PhpAccountExternalAccountInfo.yaml
- title: SGD Account
$ref: ./SgdAccountExternalAccountInfo.yaml
- title: Spark Wallet
$ref: ./SparkWalletExternalAccountInfo.yaml
- title: Lightning
$ref: ./LightningExternalAccountInfo.yaml
- title: Solana Wallet
$ref: ./SolanaWalletExternalAccountInfo.yaml
- title: Tron Wallet
$ref: ./TronWalletExternalAccountInfo.yaml
- title: Polygon Wallet
$ref: ./PolygonWalletExternalAccountInfo.yaml
- title: Base Wallet
$ref: ./BaseWalletExternalAccountInfo.yaml
- title: US Account
$ref: ./UsAccountExternalAccountInfo.yaml
- title: CLABE Account
$ref: ./ClabeAccountExternalAccountInfo.yaml
- title: PIX Account
$ref: ./PixAccountExternalAccountInfo.yaml
- title: IBAN Account
$ref: ./IbanAccountExternalAccountInfo.yaml
- title: UPI Account
$ref: ./UpiAccountExternalAccountInfo.yaml
- title: NGN Account
$ref: ./NgnAccountExternalAccountInfo.yaml
- title: CAD Account
$ref: ./CadAccountExternalAccountInfo.yaml
- title: GBP Account
$ref: ./GbpAccountExternalAccountInfo.yaml
- title: PHP Account
$ref: ./PhpAccountExternalAccountInfo.yaml
- title: SGD Account
$ref: ./SgdAccountExternalAccountInfo.yaml
- title: Spark Wallet
$ref: ./SparkWalletExternalAccountInfo.yaml
- title: Lightning
$ref: ./LightningExternalAccountInfo.yaml
- title: Solana Wallet
$ref: ./SolanaWalletExternalAccountInfo.yaml
- title: Tron Wallet
$ref: ./TronWalletExternalAccountInfo.yaml
- title: Polygon Wallet
$ref: ./PolygonWalletExternalAccountInfo.yaml
- title: Base Wallet
$ref: ./BaseWalletExternalAccountInfo.yaml
- title: THB Account
$ref: ./ThbAccountInfo.yaml
- title: BRL Account
$ref: ./BrlAccountInfo.yaml
- title: IDR Account
$ref: ./IdrAccountInfo.yaml
- title: SGD Account
$ref: ./SgdAccountInfo.yaml
- title: PHP Account
$ref: ./PhpAccountInfo.yaml
- title: MYR Account
$ref: ./MyrAccountInfo.yaml
- title: INR Account
$ref: ./InrAccountInfo.yaml
- title: DKK Account
$ref: ./DkkAccountInfo.yaml
- title: VND Account
$ref: ./VndAccountInfo.yaml
- title: MXN Account
$ref: ./MxnAccountInfo.yaml
- title: GBP Account
$ref: ./GbpAccountInfo.yaml
- title: HKD Account
$ref: ./HkdAccountInfo.yaml
Comment on lines +34 to +57
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Duplicate schemas in oneOf

ExternalAccountInfoOneOf.yaml now includes both the existing ...ExternalAccountInfo.yaml variants (e.g. GbpAccountExternalAccountInfo.yaml, SgdAccountExternalAccountInfo.yaml, PhpAccountExternalAccountInfo.yaml) and the new *AccountInfo.yaml variants for the same currencies (GBP/SGD/PHP). This makes the schema ambiguous for clients/validators (same discriminator.propertyName and overlapping accountType values), and it’s likely to break codegen or validation since there are now multiple possible matches for the same accountType.

Also, the new *AccountInfo.yaml entries are missing from the discriminator mapping (e.g. SGD_ACCOUNT/PHP_ACCOUNT still point to ...ExternalAccountInfo.yaml, and there’s no mapping for GBP_ACCOUNT to GbpAccountInfo.yaml even though it’s listed in oneOf). This should be made consistent by choosing a single schema per accountType and updating the oneOf + mapping accordingly.

Prompt To Fix With AI
This is a comment left during a code review.
Path: openapi/components/schemas/external_accounts/ExternalAccountInfoOneOf.yaml
Line: 34:57

Comment:
**Duplicate schemas in `oneOf`**

`ExternalAccountInfoOneOf.yaml` now includes both the existing `...ExternalAccountInfo.yaml` variants (e.g. `GbpAccountExternalAccountInfo.yaml`, `SgdAccountExternalAccountInfo.yaml`, `PhpAccountExternalAccountInfo.yaml`) *and* the new `*AccountInfo.yaml` variants for the same currencies (GBP/SGD/PHP). This makes the schema ambiguous for clients/validators (same `discriminator.propertyName` and overlapping `accountType` values), and it’s likely to break codegen or validation since there are now multiple possible matches for the same `accountType`.

Also, the new `*AccountInfo.yaml` entries are missing from the discriminator `mapping` (e.g. `SGD_ACCOUNT`/`PHP_ACCOUNT` still point to `...ExternalAccountInfo.yaml`, and there’s no mapping for `GBP_ACCOUNT` to `GbpAccountInfo.yaml` even though it’s listed in `oneOf`). This should be made consistent by choosing a single schema per `accountType` and updating the `oneOf` + `mapping` accordingly.

How can I resolve this? If you propose a fix, please make it concise.

discriminator:
propertyName: accountType
mapping:
Expand All @@ -50,3 +74,12 @@ discriminator:
TRON_WALLET: ./TronWalletExternalAccountInfo.yaml
POLYGON_WALLET: ./PolygonWalletExternalAccountInfo.yaml
BASE_WALLET: ./BaseWalletExternalAccountInfo.yaml
THB_ACCOUNT: ./ThbAccountInfo.yaml
BRL_ACCOUNT: ./BrlAccountInfo.yaml
IDR_ACCOUNT: ./IdrAccountInfo.yaml
MYR_ACCOUNT: ./MyrAccountInfo.yaml
INR_ACCOUNT: ./InrAccountInfo.yaml
DKK_ACCOUNT: ./DkkAccountInfo.yaml
VND_ACCOUNT: ./VndAccountInfo.yaml
MXN_ACCOUNT: ./MxnAccountInfo.yaml
HKD_ACCOUNT: ./HkdAccountInfo.yaml
63 changes: 63 additions & 0 deletions openapi/components/schemas/external_accounts/GbpAccountInfo.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
type: object
title: GBP Account
description: 'Required fields for USD -> GBP corridor. Supported payment rails: Local.'
required:
- accountType
- sortCode
- accountNumber
- beneficiary
properties:
accountType:
type: string
enum:
- GBP_ACCOUNT
example: GBP_ACCOUNT
payment_rails:
type: array
items:
type: string
const:
- Local
description: Supported payment rails for this currency. Auto-populated based on
account type.
receivingCurrency:
type: string
const: GBP
description: Receiving currency code. Auto-populated based on account type.
sortCode:
type: string
description: The sort code of the bank
accountNumber:
type: string
description: The account number of the bank
beneficiary:
type: object
required:
- birthDate
- fullName
- nationality
properties:
fullName:
type: string
description: The full name of the beneficiary
birthDate:
type: string
description: The birth date of the beneficiary
nationality:
type: string
description: The nationality of the beneficiary
email:
type: string
description: The email of the beneficiary
phoneNumber:
type: string
description: The phone number of the beneficiary
registrationNumber:
type: string
description: The registration number of the beneficiary
countryOfResidence:
type: string
description: The country of residence of the beneficiary
address:
type: string
description: The address of the beneficiary
63 changes: 63 additions & 0 deletions openapi/components/schemas/external_accounts/HkdAccountInfo.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
type: object
title: HKD Account
description: 'Required fields for USD -> HKD corridor. Supported payment rails: Local.'
required:
- accountType
- bankName
- accountNumber
- beneficiary
properties:
accountType:
type: string
enum:
- HKD_ACCOUNT
example: HKD_ACCOUNT
payment_rails:
type: array
items:
type: string
const:
- Local
description: Supported payment rails for this currency. Auto-populated based on
account type.
receivingCurrency:
type: string
const: HKD
description: Receiving currency code. Auto-populated based on account type.
bankName:
type: string
description: The bank name of the bank
accountNumber:
type: string
description: The account number of the bank
beneficiary:
type: object
required:
- birthDate
- fullName
- nationality
properties:
fullName:
type: string
description: The full name of the beneficiary
birthDate:
type: string
description: The birth date of the beneficiary
nationality:
type: string
description: The nationality of the beneficiary
email:
type: string
description: The email of the beneficiary
phoneNumber:
type: string
description: The phone number of the beneficiary
registrationNumber:
type: string
description: The registration number of the beneficiary
countryOfResidence:
type: string
description: The country of residence of the beneficiary
address:
type: string
description: The address of the beneficiary
Loading