Contributed by

Sylvain Fabre

in #28479.

Matching BIC and IBAN codes

The International Bank Account Number (IBAN) is an internationally agreed system of identifying bank accounts across national borders. The Bank Identifier Code (BIC) is a unique identification code for both financial and non-financial institutions defined in the ISO 9362 standard.

Although both codes are independent, they can be checked in combination to validate that both belong at least to the same country. In Symfony 4.3 we improved the Bic constraint to allow validating BIC and IBAN codes together.

First, you can pass the IBAN code using the new iban option:

use Symfony\Component\Validator\Constraints as Assert;

// ...



public static function loadValidatorMetadata(ClassMetadata $metadata)

{

$metadata->addPropertyConstraint('businessIdentifierCode', new Assert\Bic([

'iban' => 'FR1420041010050500013M02606',

)]);

}

You can also use the new ibanPropertyPath option to define the object property that stores the IBAN code:

use Symfony\Component\Validator\Constraints as Assert;

// ...



class Transaction

{

/**

* @Assert\Bic(ibanPropertyPath = "accountNumber")

*/

protected $businessIdentifierCode;



/**

* @Assert\Iban

*/

protected $accountNumber;



// ...

}

Added support for UATP cards

Contributed by

Raúl Fraile

in #29504.

Universal Air Travel Plan (UATP) is the airline owned payment network accepted by thousands of merchants for air, rail, hotel and travel agency payments. In Symfony 4.3 we improved the CardScheme constraint to add support for a new UATP scheme: