UNPKG

@eleva-io/erp-sdk

Version:

SDK oficial para el ERP de Eleva

77 lines 3.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.validatePaymentMethod = validatePaymentMethod; const errors_1 = require("../../../errors"); const types_1 = require("../bank-account/types"); const aba_1 = require("../bank-account/validations/bank_account/aba"); const clabe_1 = require("../bank-account/validations/bank_account/clabe"); const iban_1 = require("../bank-account/validations/bank_account/iban"); const swift_1 = require("../bank-account/validations/bank_account/swift"); async function validatePaymentMethod(req) { const swiftCountryCode = req.swiftBic ? (0, swift_1.getSwiftCountry)(req.swiftBic) : undefined; switch (req.type) { case types_1.GlobalBankAccountType.ABA: { if (!req.routingNumber) { throw errors_1.ElevaError.invalidField({ error: { validation: 'routingNumber', code: 'invalid_string', message: 'Routing number is required', path: ['routingNumber'], }, message: 'failed to validate ABA bank account', }); } (0, aba_1.validateAccountNumberABA)(req.accountNumber, 'accountNumber'); (0, aba_1.validateRoutingNumberABA)(req.routingNumber, 'routingNumber'); if (swiftCountryCode !== 'US') { throw errors_1.ElevaError.invalidField({ error: { validation: 'swiftBic', code: 'invalid_string', message: 'Invalid Swift BIC', path: ['swiftBic'], }, message: 'failed to validate ABA bank account', }); } break; } case types_1.GlobalBankAccountType.CLABE: { (0, clabe_1.validateAccountNumberCLABE)(req.accountNumber, 'accountNumber'); if (swiftCountryCode !== 'MX') { throw errors_1.ElevaError.invalidField({ error: { validation: 'swiftBic', code: 'invalid_string', message: 'Invalid Swift BIC', path: ['swiftBic'], }, message: 'failed to validate CLABE bank account', }); } break; } case types_1.GlobalBankAccountType.IBAN: { (0, iban_1.validateAccountNumberIBAN)(req.accountNumber, 'accountNumber'); const ibanCountryCode = (0, iban_1.getIBANCountryCode)(req.accountNumber); if ((req.swiftBic || ibanCountryCode !== 'ES') && (!swiftCountryCode || !iban_1.IBAN_COUNTRY_CODES.includes(swiftCountryCode) || swiftCountryCode !== ibanCountryCode)) { throw errors_1.ElevaError.invalidField({ error: { validation: 'swiftBic', code: 'invalid_string', message: 'Invalid Swift BIC', path: ['swiftBic'], }, message: 'failed to validate IBAN bank account', }); } break; } } if (req.swiftBic) { (0, swift_1.validateCodeSwiftBic)(req.swiftBic, 'swiftBic'); } } //# sourceMappingURL=payment_method.js.map