-
Notifications
You must be signed in to change notification settings - Fork 11
chore: Sync account schemas #384
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,12 +1,30 @@ | ||
| allOf: | ||
| - $ref: ./AedAccountInfoBase.yaml | ||
| - type: object | ||
| required: | ||
| - paymentRails | ||
| properties: | ||
| paymentRails: | ||
| type: array | ||
| items: | ||
| type: string | ||
| enum: | ||
| - BANK_TRANSFER | ||
| type: object | ||
| required: | ||
| - accountType | ||
| - paymentRails | ||
| - iban | ||
| properties: | ||
| accountType: | ||
| type: string | ||
| enum: | ||
| - AED_ACCOUNT | ||
| paymentRails: | ||
| type: array | ||
| items: | ||
| type: string | ||
| enum: | ||
| - BANK_TRANSFER | ||
| iban: | ||
| type: string | ||
| description: UAE IBAN (23 characters, starting with AE) | ||
| example: AE070331234567890123456 | ||
| minLength: 23 | ||
| maxLength: 23 | ||
| pattern: ^AE[0-9]{21}$ | ||
| swiftCode: | ||
| type: string | ||
| description: The SWIFT/BIC code of the bank | ||
| example: EBILAEAD | ||
| minLength: 8 | ||
| maxLength: 11 | ||
| pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,13 +1,50 @@ | ||
| allOf: | ||
| - $ref: ./BdtAccountInfoBase.yaml | ||
| - type: object | ||
| required: | ||
| - paymentRails | ||
| properties: | ||
| paymentRails: | ||
| type: array | ||
| items: | ||
| type: string | ||
| enum: | ||
| - BANK_TRANSFER | ||
| - MOBILE_MONEY | ||
| type: object | ||
| required: | ||
| - accountType | ||
| - paymentRails | ||
| - bankName | ||
| - accountNumber | ||
| - branchCode | ||
| - phoneNumber | ||
| properties: | ||
| accountType: | ||
| type: string | ||
| enum: | ||
| - BDT_ACCOUNT | ||
| paymentRails: | ||
| type: array | ||
| items: | ||
| type: string | ||
| enum: | ||
| - BANK_TRANSFER | ||
| - MOBILE_MONEY | ||
| bankName: | ||
| type: string | ||
| description: The name of the bank | ||
| minLength: 1 | ||
| maxLength: 255 | ||
| accountNumber: | ||
| type: string | ||
| description: The account number of the bank | ||
| minLength: 1 | ||
| maxLength: 34 | ||
| branchCode: | ||
| type: string | ||
| description: The branch code | ||
| minLength: 5 | ||
| maxLength: 5 | ||
| pattern: ^[0-9]{5}$ | ||
| swiftCode: | ||
| type: string | ||
| description: The SWIFT/BIC code of the bank | ||
| example: DEUTDEFF | ||
| minLength: 8 | ||
| maxLength: 11 | ||
| pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ | ||
| phoneNumber: | ||
| type: string | ||
| description: The phone number in international format | ||
| example: '+1234567890' | ||
| minLength: 7 | ||
| maxLength: 15 | ||
| pattern: ^\+[0-9]{6,14}$ |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,12 +1,38 @@ | ||
| allOf: | ||
| - $ref: ./BrlAccountInfoBase.yaml | ||
| - type: object | ||
| required: | ||
| - paymentRails | ||
| properties: | ||
| paymentRails: | ||
| type: array | ||
| items: | ||
| type: string | ||
| enum: | ||
| - PIX | ||
| type: object | ||
| required: | ||
| - accountType | ||
| - paymentRails | ||
| - pixKey | ||
| - pixKeyType | ||
| - taxId | ||
| properties: | ||
| accountType: | ||
| type: string | ||
| enum: | ||
| - BRL_ACCOUNT | ||
| paymentRails: | ||
| type: array | ||
| items: | ||
| type: string | ||
| enum: | ||
| - PIX | ||
| pixKey: | ||
| type: string | ||
| description: The PIX key (email, phone, CPF, CNPJ, or random) | ||
| minLength: 1 | ||
| maxLength: 77 | ||
| pixKeyType: | ||
| type: string | ||
| description: The type of PIX key | ||
| enum: | ||
| - CPF | ||
| - CNPJ | ||
| - PHONE | ||
| - RANDOM | ||
| taxId: | ||
| type: string | ||
| description: The tax ID (CPF or CNPJ) | ||
| minLength: 11 | ||
| maxLength: 14 | ||
| pattern: ^[0-9]{11,14}$ |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,12 +1,29 @@ | ||
| allOf: | ||
| - $ref: ./BwpAccountInfoBase.yaml | ||
| - type: object | ||
| required: | ||
| - paymentRails | ||
| properties: | ||
| paymentRails: | ||
| type: array | ||
| items: | ||
| type: string | ||
| enum: | ||
| - MOBILE_MONEY | ||
| type: object | ||
| required: | ||
| - accountType | ||
| - paymentRails | ||
| - phoneNumber | ||
| - provider | ||
| properties: | ||
| accountType: | ||
| type: string | ||
| enum: | ||
| - BWP_ACCOUNT | ||
| paymentRails: | ||
| type: array | ||
| items: | ||
| type: string | ||
| enum: | ||
| - MOBILE_MONEY | ||
| phoneNumber: | ||
| type: string | ||
| description: The phone number in international format | ||
| example: '+1234567890' | ||
| minLength: 7 | ||
| maxLength: 15 | ||
| pattern: ^\+[0-9]{6,14}$ | ||
| provider: | ||
| type: string | ||
| description: The mobile money provider name | ||
| minLength: 1 | ||
| maxLength: 255 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,13 +1,34 @@ | ||
| allOf: | ||
| - $ref: ./CopAccountInfoBase.yaml | ||
| - type: object | ||
| required: | ||
| - paymentRails | ||
| properties: | ||
| paymentRails: | ||
| type: array | ||
| items: | ||
| type: string | ||
| enum: | ||
| - BANK_TRANSFER | ||
| - MOBILE_MONEY | ||
| type: object | ||
| required: | ||
| - accountType | ||
| - paymentRails | ||
| - bankName | ||
| - accountNumber | ||
| - bankAccountType | ||
| properties: | ||
| accountType: | ||
| type: string | ||
| enum: | ||
| - COP_ACCOUNT | ||
| paymentRails: | ||
| type: array | ||
| items: | ||
| type: string | ||
| enum: | ||
| - BANK_TRANSFER | ||
| bankName: | ||
| type: string | ||
| description: The name of the bank | ||
| minLength: 1 | ||
| maxLength: 255 | ||
| accountNumber: | ||
| type: string | ||
| description: The account number of the bank | ||
| minLength: 1 | ||
| maxLength: 34 | ||
| bankAccountType: | ||
| type: string | ||
| description: The bank account type | ||
| enum: | ||
| - CHECKING | ||
| - SAVINGS | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -2,7 +2,8 @@ title: Individual Beneficiary | |
| type: object | ||
| required: | ||
| - beneficiaryType | ||
| - countryOfResidence | ||
| - documentNumber | ||
| - documentType | ||
| - fullName | ||
|
Comment on lines
3
to
7
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Prompt To Fix With AIThis is a comment left during a code review.
Path: openapi/components/schemas/common/CopBeneficiary.yaml
Line: 3-7
Comment:
**Breaking required-field change in `CopBeneficiary`**
`countryOfResidence` is dropped from `required` and `documentNumber` + `documentType` are added as required. Any existing client that creates a COP beneficiary without providing a document number/type will now receive a validation error. Similarly, `GtqBeneficiary` gains `phoneNumber` as a new required field. If existing integrations are in production, this is a breaking API change that warrants a version bump or a migration window.
How can I resolve this? If you propose a fix, please make it concise. |
||
| properties: | ||
| beneficiaryType: | ||
|
|
@@ -27,11 +28,11 @@ properties: | |
| countryOfResidence: | ||
| type: string | ||
| description: The country of residence of the beneficiary | ||
| address: | ||
| $ref: ./Address.yaml | ||
| documentType: | ||
| type: string | ||
| description: The type of identity document (e.g., national ID, passport) | ||
| documentNumber: | ||
| type: string | ||
| description: The identity document number | ||
| address: | ||
| $ref: ./Address.yaml | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,13 +1,31 @@ | ||
| allOf: | ||
| - $ref: ./DkkAccountInfoBase.yaml | ||
| - type: object | ||
| required: | ||
| - paymentRails | ||
| properties: | ||
| paymentRails: | ||
| type: array | ||
| items: | ||
| type: string | ||
| enum: | ||
| - SEPA | ||
| - SEPA_INSTANT | ||
| type: object | ||
| required: | ||
| - accountType | ||
| - paymentRails | ||
| - iban | ||
| properties: | ||
| accountType: | ||
| type: string | ||
| enum: | ||
| - DKK_ACCOUNT | ||
| paymentRails: | ||
| type: array | ||
| items: | ||
| type: string | ||
| enum: | ||
| - SEPA | ||
| - SEPA_INSTANT | ||
| iban: | ||
| type: string | ||
| description: The IBAN of the bank account | ||
| example: DE89370400440532013000 | ||
| minLength: 15 | ||
| maxLength: 34 | ||
| pattern: ^[A-Z]{2}[0-9]{2}[A-Za-z0-9]{11,30}$ | ||
| swiftCode: | ||
| type: string | ||
| description: The SWIFT/BIC code of the bank | ||
| example: DEUTDEFF | ||
| minLength: 8 | ||
| maxLength: 11 | ||
| pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ |
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -1,12 +1,41 @@ | ||||||||||||||||||||||||||||||||
| allOf: | ||||||||||||||||||||||||||||||||
| - $ref: ./EgpAccountInfoBase.yaml | ||||||||||||||||||||||||||||||||
| - type: object | ||||||||||||||||||||||||||||||||
| required: | ||||||||||||||||||||||||||||||||
| - paymentRails | ||||||||||||||||||||||||||||||||
| properties: | ||||||||||||||||||||||||||||||||
| paymentRails: | ||||||||||||||||||||||||||||||||
| type: array | ||||||||||||||||||||||||||||||||
| items: | ||||||||||||||||||||||||||||||||
| type: string | ||||||||||||||||||||||||||||||||
| enum: | ||||||||||||||||||||||||||||||||
| - BANK_TRANSFER | ||||||||||||||||||||||||||||||||
| type: object | ||||||||||||||||||||||||||||||||
| required: | ||||||||||||||||||||||||||||||||
| - accountType | ||||||||||||||||||||||||||||||||
| - paymentRails | ||||||||||||||||||||||||||||||||
| - bankName | ||||||||||||||||||||||||||||||||
| - accountNumber | ||||||||||||||||||||||||||||||||
| properties: | ||||||||||||||||||||||||||||||||
| accountType: | ||||||||||||||||||||||||||||||||
| type: string | ||||||||||||||||||||||||||||||||
| enum: | ||||||||||||||||||||||||||||||||
| - EGP_ACCOUNT | ||||||||||||||||||||||||||||||||
| paymentRails: | ||||||||||||||||||||||||||||||||
| type: array | ||||||||||||||||||||||||||||||||
| items: | ||||||||||||||||||||||||||||||||
| type: string | ||||||||||||||||||||||||||||||||
| enum: | ||||||||||||||||||||||||||||||||
| - BANK_TRANSFER | ||||||||||||||||||||||||||||||||
| bankName: | ||||||||||||||||||||||||||||||||
| type: string | ||||||||||||||||||||||||||||||||
| description: The name of the bank | ||||||||||||||||||||||||||||||||
| minLength: 1 | ||||||||||||||||||||||||||||||||
| maxLength: 255 | ||||||||||||||||||||||||||||||||
| accountNumber: | ||||||||||||||||||||||||||||||||
| type: string | ||||||||||||||||||||||||||||||||
| description: The account number of the bank | ||||||||||||||||||||||||||||||||
| minLength: 1 | ||||||||||||||||||||||||||||||||
| maxLength: 34 | ||||||||||||||||||||||||||||||||
| iban: | ||||||||||||||||||||||||||||||||
| type: string | ||||||||||||||||||||||||||||||||
| description: The IBAN of the bank account | ||||||||||||||||||||||||||||||||
| example: DE89370400440532013000 | ||||||||||||||||||||||||||||||||
| minLength: 15 | ||||||||||||||||||||||||||||||||
| maxLength: 34 | ||||||||||||||||||||||||||||||||
| pattern: ^[A-Z]{2}[0-9]{2}[A-Za-z0-9]{11,30}$ | ||||||||||||||||||||||||||||||||
| swiftCode: | ||||||||||||||||||||||||||||||||
|
Comment on lines
+28
to
+35
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
The
Suggested change
Prompt To Fix With AIThis is a comment left during a code review.
Path: openapi/components/schemas/common/EgpAccountInfo.yaml
Line: 28-35
Comment:
**Incorrect IBAN example for EGP**
The `iban` field shows `DE89370400440532013000`, which is a German IBAN. Egyptian IBANs follow the format `EG` + 2 check digits + 25 alphanumeric characters (29 chars total). The same German placeholder also appears in `DkkAccountInfo.yaml` (DKK IBANs start with `DK`). Using country-appropriate examples improves clarity for integrators.
```suggestion
iban:
type: string
description: The IBAN of the bank account
example: EG800002000156789012345180002
minLength: 15
maxLength: 34
pattern: ^[A-Z]{2}[0-9]{2}[A-Za-z0-9]{11,30}$
```
How can I resolve this? If you propose a fix, please make it concise. |
||||||||||||||||||||||||||||||||
| type: string | ||||||||||||||||||||||||||||||||
| description: The SWIFT/BIC code of the bank | ||||||||||||||||||||||||||||||||
| example: DEUTDEFF | ||||||||||||||||||||||||||||||||
| minLength: 8 | ||||||||||||||||||||||||||||||||
| maxLength: 11 | ||||||||||||||||||||||||||||||||
| pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
MOBILE_MONEYremoved from COP and GTQ payment railsBoth
CopAccountInfoandGtqAccountInfopreviously allowedMOBILE_MONEYalongsideBANK_TRANSFER; the new schemas only listBANK_TRANSFER. Clients that currently submit COP or GTQ payments viaMOBILE_MONEYwill fail schema validation after this change. Please confirm whether the corresponding sparkcore adapters have intentionally dropped this rail.Prompt To Fix With AI