Skip to content
Open
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
1,052 changes: 707 additions & 345 deletions mintlify/openapi.yaml

Large diffs are not rendered by default.

1,052 changes: 707 additions & 345 deletions openapi.yaml

Large diffs are not rendered by default.

30 changes: 30 additions & 0 deletions openapi/components/schemas/common/AedAccountInfo.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
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: The IBAN of the bank account
example: DE89370400440532013000
Copy link
Contributor

Choose a reason for hiding this comment

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

Misleading IBAN example for a UAE (AED) account

The example value DE89370400440532013000 is a German IBAN (country code DE). For an AED (UAE Dirham) account, the example should use a UAE IBAN, which starts with AE and is 23 characters long (e.g., AE070331234567890123456).

The same German IBAN is also used as the example in DkkAccountInfo.yaml — for DKK (Danish Krone) accounts, a Danish IBAN starting with DK would be more representative.

Suggested change
example: DE89370400440532013000
example: AE070331234567890123456
Prompt To Fix With AI
This is a comment left during a code review.
Path: openapi/components/schemas/common/AedAccountInfo.yaml
Line: 20

Comment:
**Misleading IBAN example for a UAE (AED) account**

The example value `DE89370400440532013000` is a German IBAN (country code `DE`). For an AED (UAE Dirham) account, the example should use a UAE IBAN, which starts with `AE` and is 23 characters long (e.g., `AE070331234567890123456`).

The same German IBAN is also used as the example in `DkkAccountInfo.yaml` — for DKK (Danish Krone) accounts, a Danish IBAN starting with `DK` would be more representative.

```suggestion
    example: AE070331234567890123456
```

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

Copy link
Contributor

Choose a reason for hiding this comment

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

fwiw I think this is a good one to fix

minLength: 15
maxLength: 34
pattern: ^[A-Z]{2}[0-9]{2}[A-Za-z0-9]{11,30}$
swiftBic:
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})?$
33 changes: 33 additions & 0 deletions openapi/components/schemas/common/AedBeneficiary.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
title: Individual Beneficiary
type: object
required:
- beneficiaryType
- fullName
properties:
beneficiaryType:
type: string
enum:
- INDIVIDUAL
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:
$ref: ./Address.yaml
17 changes: 14 additions & 3 deletions openapi/components/schemas/common/BrlAccountInfo.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,21 @@ properties:
- PIX
pixKey:
type: string
description: The PIX key of the bank
description: The PIX key (email, phone, CPF, CNPJ, or random)
minLength: 1
maxLength: 77
pixKeyType:
type: string
description: The type of PIX key of the bank
description: The type of PIX key
enum:
- email
- phone
- cpf
- cnpj
- random
taxId:
type: string
description: The tax ID of the bank account
description: The tax ID (CPF or CNPJ)
minLength: 11
maxLength: 14
pattern: ^[0-9]{11,14}$
12 changes: 10 additions & 2 deletions openapi/components/schemas/common/DkkAccountInfo.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,15 @@ properties:
- SEPA_INSTANT
iban:
type: string
description: The IBAN of the bank
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}$
swiftBic:
type: string
description: The SWIFT BIC of the bank
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})?$
12 changes: 10 additions & 2 deletions openapi/components/schemas/common/EurAccountInfo.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,15 @@ properties:
- SEPA_INSTANT
iban:
type: string
description: The IBAN of the bank
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}$
swiftBic:
type: string
description: The SWIFT BIC of the bank
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})?$
10 changes: 6 additions & 4 deletions openapi/components/schemas/common/GbpAccountInfo.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,15 @@ properties:
- FASTER_PAYMENTS
sortCode:
type: string
description: UK bank sort code (6 digits, may include hyphens)
example: '20-00-00'
pattern: '^[0-9]{2}-?[0-9]{2}-?[0-9]{2}$'
description: The UK sort code
example: '123456'
minLength: 6
maxLength: 6
pattern: ^[0-9]{6}$
Comment on lines 18 to +24
Copy link
Contributor

Choose a reason for hiding this comment

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

Breaking change: sort code pattern no longer accepts hyphenated format

The previous pattern ^[0-9]{2}-?[0-9]{2}-?[0-9]{2}$ accepted both "123456" and "12-34-56" (the traditional UK display format). The new pattern ^[0-9]{6}$ only accepts the six-digit form. Any existing API client that submits sort codes with hyphens will now receive a validation failure.

If the intent is to migrate all consumers to the plain-digit form, this is a backwards-incompatible API change that should be communicated to existing callers before the schema is deployed.

Prompt To Fix With AI
This is a comment left during a code review.
Path: openapi/components/schemas/common/GbpAccountInfo.yaml
Line: 18-24

Comment:
**Breaking change: sort code pattern no longer accepts hyphenated format**

The previous pattern `^[0-9]{2}-?[0-9]{2}-?[0-9]{2}$` accepted both `"123456"` and `"12-34-56"` (the traditional UK display format). The new pattern `^[0-9]{6}$` only accepts the six-digit form. Any existing API client that submits sort codes with hyphens will now receive a validation failure.

If the intent is to migrate all consumers to the plain-digit form, this is a backwards-incompatible API change that should be communicated to existing callers before the schema is deployed.

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

Copy link
Contributor

Choose a reason for hiding this comment

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

if we can support both we should, unless tazapay rejects sort codes with hyphens

accountNumber:
type: string
description: UK bank account number (8 digits)
example: '12345678'
minLength: 8
maxLength: 8
example: '12345678'
pattern: ^[0-9]{8}$
22 changes: 16 additions & 6 deletions openapi/components/schemas/common/HkdAccountInfo.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@ type: object
required:
- accountType
- paymentRails
- bankCode
- bankName
- accountNumber
- swiftCode
- swiftBic
Copy link
Contributor

Choose a reason for hiding this comment

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

Breaking field rename: swiftCodeswiftBic across multiple schemas

The required field previously named swiftCode has been renamed to swiftBic in this PR. This is a backwards-incompatible change: any existing client that submits a payload with the swiftCode key will now fail validation with a missing-required-field error, even if their SWIFT code value is perfectly valid.

The same rename affects:

  • openapi/components/schemas/common/IdrAccountInfo.yaml
  • openapi/components/schemas/common/MyrAccountInfo.yaml
  • openapi/components/schemas/common/SgdAccountInfo.yaml
  • openapi/components/schemas/common/ThbAccountInfo.yaml
  • openapi/components/schemas/common/VndAccountInfo.yaml

The standard migration path for a field rename is to first add the new swiftBic field while keeping swiftCode as a deprecated-but-still-accepted field, deploy, backfill/migrate clients, and only then remove swiftCode.

Prompt To Fix With AI
This is a comment left during a code review.
Path: openapi/components/schemas/common/HkdAccountInfo.yaml
Line: 8

Comment:
**Breaking field rename: `swiftCode``swiftBic` across multiple schemas**

The required field previously named `swiftCode` has been renamed to `swiftBic` in this PR. This is a backwards-incompatible change: any existing client that submits a payload with the `swiftCode` key will now fail validation with a missing-required-field error, even if their SWIFT code value is perfectly valid.

The same rename affects:
- `openapi/components/schemas/common/IdrAccountInfo.yaml`
- `openapi/components/schemas/common/MyrAccountInfo.yaml`
- `openapi/components/schemas/common/SgdAccountInfo.yaml`
- `openapi/components/schemas/common/ThbAccountInfo.yaml`
- `openapi/components/schemas/common/VndAccountInfo.yaml`

The standard migration path for a field rename is to first add the new `swiftBic` field while keeping `swiftCode` as a deprecated-but-still-accepted field, deploy, backfill/migrate clients, and only then remove `swiftCode`.

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

properties:
accountType:
type: string
Expand All @@ -16,18 +17,27 @@ properties:
type: string
enum:
- BANK_TRANSFER
bankCode:
type: string
description: The bank code
minLength: 3
maxLength: 3
pattern: ^[0-9]{3}$
bankName:
type: string
description: Name of the bank
example: HSBC Hong Kong
description: The name of the bank
minLength: 1
maxLength: 255
accountNumber:
type: string
description: Hong Kong bank account number
minLength: 1
maxLength: 34
example: '123456789012'
swiftCode:
swiftBic:
type: string
description: SWIFT/BIC code (8 or 11 characters)
example: HSBCHKHHHKH
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})?$
24 changes: 15 additions & 9 deletions openapi/components/schemas/common/IdrAccountInfo.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ type: object
required:
- accountType
- paymentRails
- accountNumber
- bankName
- swiftCode
- accountNumber
- swiftBic
- phoneNumber
properties:
accountType:
Expand All @@ -17,23 +17,29 @@ properties:
type: string
enum:
- BANK_TRANSFER
bankName:
type: string
description: The name of the bank
minLength: 1
maxLength: 255
example: Bank Central Asia
accountNumber:
type: string
description: Indonesian bank account number
minLength: 1
maxLength: 34
example: '1234567890'
bankName:
type: string
description: Name of the bank
example: Bank Central Asia
swiftCode:
swiftBic:
type: string
description: SWIFT/BIC code (8 or 11 characters)
example: CENAIDJA
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: Indonesian phone number for e-wallet payments
example: '+6281234567890'
minLength: 7
maxLength: 15
pattern: ^\+62[0-9]{9,12}$
7 changes: 6 additions & 1 deletion openapi/components/schemas/common/InrAccountInfo.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@ properties:
type: string
enum:
- UPI
- IMPS
Comment on lines 16 to +17
Copy link
Contributor

Choose a reason for hiding this comment

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

IMPS rail added but no IMPS-specific fields

The IMPS payment rail has been added to paymentRails enum, but the schema only provides a vpa (UPI Virtual Payment Address) field. UPI and IMPS are distinct routing mechanisms:

  • UPI routes payments via a VPA (e.g., user@upi)
  • IMPS routes payments via bank account number + IFSC code

A client selecting paymentRails: [IMPS] has no fields in this schema to supply the required accountNumber and ifscCode identifiers. If the intent is to expose IMPS as a standalone payment rail (not as the underlying rail automatically selected by UPI), then the schema needs additional fields to support it — for example:

  accountNumber:
    type: string
    description: Bank account number for IMPS transfers
  ifscCode:
    type: string
    description: IFSC code for IMPS transfers
    pattern: ^[A-Z]{4}0[A-Z0-9]{6}$

If IMPS here means "UPI-over-IMPS" (i.e., the VPA is still the routing identifier and IMPS is just the settlement rail), the description of vpa and the enum label should be clarified to avoid confusion for API consumers.

Prompt To Fix With AI
This is a comment left during a code review.
Path: openapi/components/schemas/common/InrAccountInfo.yaml
Line: 16-17

Comment:
**IMPS rail added but no IMPS-specific fields**

The `IMPS` payment rail has been added to `paymentRails` enum, but the schema only provides a `vpa` (UPI Virtual Payment Address) field. UPI and IMPS are distinct routing mechanisms:
- **UPI** routes payments via a VPA (e.g., `user@upi`)
- **IMPS** routes payments via bank account number + IFSC code

A client selecting `paymentRails: [IMPS]` has no fields in this schema to supply the required `accountNumber` and `ifscCode` identifiers. If the intent is to expose IMPS as a standalone payment rail (not as the underlying rail automatically selected by UPI), then the schema needs additional fields to support it — for example:

```yaml
  accountNumber:
    type: string
    description: Bank account number for IMPS transfers
  ifscCode:
    type: string
    description: IFSC code for IMPS transfers
    pattern: ^[A-Z]{4}0[A-Z0-9]{6}$
```

If IMPS here means "UPI-over-IMPS" (i.e., the VPA is still the routing identifier and IMPS is just the settlement rail), the description of `vpa` and the enum label should be clarified to avoid confusion for API consumers.

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

vpa:
type: string
description: The VPA of the bank
description: The UPI Virtual Payment Address
example: user@upi
minLength: 3
maxLength: 255
pattern: ^[a-zA-Z0-9.\-_]+@[a-zA-Z0-9]+$
16 changes: 10 additions & 6 deletions openapi/components/schemas/common/KesAccountInfo.yaml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
type: object
required:
- accountType
- paymentRails
- phoneNumber
- provider
- accountType
- paymentRails
- phoneNumber
- provider
properties:
accountType:
type: string
enum:
- KES_ACCOUNT
- KES_ACCOUNT
paymentRails:
type: array
items:
Expand All @@ -19,7 +19,11 @@ properties:
type: string
description: Kenyan mobile money phone number
example: '+254712345678'
minLength: 7
maxLength: 15
pattern: ^\+254[0-9]{9}$
provider:
type: string
description: Mobile money provider
description: The mobile money provider name
minLength: 1
maxLength: 255
15 changes: 9 additions & 6 deletions openapi/components/schemas/common/MyrAccountInfo.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ required:
- paymentRails
- bankName
- accountNumber
- swiftCode
- swiftBic
properties:
accountType:
type: string
Expand All @@ -18,16 +18,19 @@ properties:
- BANK_TRANSFER
bankName:
type: string
description: Name of the bank
example: Maybank
description: The name of the bank
minLength: 1
maxLength: 255
accountNumber:
type: string
description: Malaysian bank account number
minLength: 1
maxLength: 34
example: '1234567890'
swiftCode:
swiftBic:
type: string
description: SWIFT/BIC code (8 or 11 characters)
example: MABORUMMYYY
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})?$
17 changes: 9 additions & 8 deletions openapi/components/schemas/common/NgnAccountInfo.yaml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
type: object
required:
- accountType
- paymentRails
- accountNumber
- bankName
- accountType
- paymentRails
- accountNumber
- bankName
properties:
accountType:
type: string
enum:
- NGN_ACCOUNT
- NGN_ACCOUNT
paymentRails:
type: array
items:
Expand All @@ -18,11 +18,12 @@ properties:
accountNumber:
type: string
description: Nigerian bank account number
example: '0123456789'
minLength: 10
maxLength: 10
example: 0123456789
pattern: ^[0-9]{10}$
bankName:
type: string
description: Name of the bank
example: First Bank of Nigeria
description: The name of the bank
minLength: 1
maxLength: 255
13 changes: 13 additions & 0 deletions openapi/components/schemas/common/PaymentAedAccountInfo.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
title: AED Account
allOf:
- $ref: ./BasePaymentAccountInfo.yaml
- $ref: ./AedAccountInfo.yaml
- type: object
required:
- reference
properties:
reference:
type: string
description: Unique reference code that must be included with the payment to
properly credit it
example: UMA-Q12345-REF
Loading
Loading