New in Symfony 4.3: Improved Financial Constraints

Written by Symfony blog - - Aggregated on Thursday January 3, 2019

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:

1
2
3
4
5
6
7
8
9
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:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
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:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
// ...

class Transaction
{
    /**
     * @Assert\CardScheme(
     *     schemes={"AMEX", "MASTERCARD", "UATP", "VISA"},
     *     message="Your credit card number is invalid."
     * )
     */
    protected $cardNumber;
}
Be trained by Symfony experts - 2019-01-14 Clichy - 2019-01-14 Clichy - 2019-01-16 Clichy

« My 2 year journey at Lightfoot - Michael Brooks - RSS Feed

Troy Hunt - 2018 Retrospective »