Skip to content

Commit fe2f17c

Browse files
committed
Merge branch 'release/moov-1.8.108'
2 parents 4f99c34 + e9a468b commit fe2f17c

File tree

11 files changed

+186
-5
lines changed

11 files changed

+186
-5
lines changed

src/NoFrixion.MoneyMoov/Constants/HttpClientConstants.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ public static class HttpClientConstants
2929

3030
public static string HTTP_YAPILY_CLIENT_NAME = "YapilyClient";
3131

32+
public static string HTTP_YAPILY_BENEFICIARY_CLIENT_NAME = "YapilyBeneficiaryClient";
33+
3234
public static string HTTP_BANKINGCIRCLE_API_CLIENT_NAME = "BankingCircleApiClient";
3335

3436
public static string HTTP_BANKINGCIRCLE_AUTHORISATION_CLIENT_NAME = "BankingCircleAuthorisationClient";

src/NoFrixion.MoneyMoov/Enums/CurrencyTypeEnum.cs

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,72 @@ public enum CurrencyTypeEnum
4242
[EnumMember(Value = "USD")]
4343
USD = 3,
4444

45+
/// <summary>
46+
/// Australian Dollar (Fiat).
47+
/// </summary>
48+
[EnumMember(Value = "AUD")]
49+
AUD = 4,
50+
51+
/// <summary>
52+
/// Bulgarian Lev (Fiat).
53+
/// </summary>
54+
[EnumMember(Value = "BGN")]
55+
BGN = 5,
56+
57+
/// <summary>
58+
/// Canadian Dollar (Fiat).
59+
/// </summary>
60+
[EnumMember(Value = "CAD")]
61+
CAD = 6,
62+
63+
/// <summary>
64+
/// Czech Koruna (Fiat).
65+
/// </summary>
66+
[EnumMember(Value = "CZK")]
67+
CZK = 7,
68+
69+
/// <summary>
70+
/// Danish Krone (Fiat).
71+
/// </summary>
72+
[EnumMember(Value = "DKK")]
73+
DKK = 8,
74+
75+
/// <summary>
76+
/// Hungarian Forint (Fiat).
77+
/// </summary>
78+
[EnumMember(Value = "HUF")]
79+
HUF = 9,
80+
81+
/// <summary>
82+
/// Icelandic Krona (Fiat).
83+
/// </summary>
84+
[EnumMember(Value = "ISK")]
85+
ISK = 10,
86+
87+
/// <summary>
88+
/// Swiss Franc (Fiat).
89+
/// </summary>
90+
[EnumMember(Value = "CHF")]
91+
CHF = 11,
92+
93+
/// <summary>
94+
/// Norwegian Krone (Fiat).
95+
/// </summary>
96+
[EnumMember(Value = "NOK")]
97+
NOK = 12,
98+
99+
/// <summary>
100+
/// Polish Zloty (Fiat).
101+
/// </summary>
102+
[EnumMember(Value = "PLN")]
103+
PLN = 13,
104+
105+
/// <summary>
106+
/// Romanian Leu (Fiat).
107+
/// </summary>
108+
[EnumMember(Value = "RON")]
109+
RON = 14,
110+
45111
// Start non-fiat currencies from 1000 to avoid conflicting with supplier mappings.
46112

47113
/// <summary>
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
namespace NoFrixion.MoneyMoov.Enums;
2+
3+
public enum PayeeVerificationStatusEnum
4+
{
5+
/// <summary>
6+
/// Indicates that no payee verification status is set.
7+
/// </summary>
8+
None = 0,
9+
10+
/// <summary>
11+
/// Indicates that payee verification is not required for this payee.
12+
/// </summary>
13+
NotRequired = 1,
14+
15+
/// <summary>
16+
/// Indicates that payee verification is pending and has not yet been completed.
17+
/// </summary>
18+
Pending = 2,
19+
20+
/// <summary>
21+
/// Indicates that payee verification has been successfully completed.
22+
/// </summary>
23+
Completed = 3,
24+
25+
/// <summary>
26+
/// Indicates that payee verification failed.
27+
/// </summary>
28+
Failed = 4
29+
}

src/NoFrixion.MoneyMoov/Extensions/PaymentAmount.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public static class PaymentAmount
2323
/// Combines the display currency symbol and amount.
2424
/// </summary>
2525
public static string DisplayCurrencyAndAmount(CurrencyTypeEnum currency, decimal amount) =>
26-
currency.GetCurrencySymbol() + " " + GetDisplayAmount(currency, amount);
26+
currency.GetCurrencySymbol() + GetDisplayAmount(currency, amount);
2727

2828
// Decide decimals once, reuse everywhere.
2929
private static int GetDecimalPlaces(CurrencyTypeEnum currency, decimal amount)

src/NoFrixion.MoneyMoov/Models/Merchant/MerchantPayByBankSetting.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,5 +73,15 @@ public class MerchantPayByBankSetting
7373
/// <summary>
7474
/// The list of country codes representing the banks the country supports.
7575
/// </summary>
76-
public List<string> BankCountryCodes { get; set; } = new List<string>();
76+
public List<string> BankCountryCodes { get; set; } = new List<string>();
77+
78+
/// <summary>
79+
/// The heading for a warning message related to the bank institution to be displayed to the user.
80+
/// </summary>
81+
public string? WarningHeading { get; set; }
82+
83+
/// <summary>
84+
/// The warning message related to the bank institution to be displayed to the user.
85+
/// </summary>
86+
public string? WarningMessage { get; set; }
7787
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
// -----------------------------------------------------------------------------
2+
// Filename: PayeeVerificationResult.cs
3+
//
4+
// Description: The result of a payee verification attempt.
5+
//
6+
// Author(s):
7+
// Saurav Maiti ([email protected])
8+
//
9+
// History:
10+
// 19 Sep 2025 Saurav Maiti Created, Hamilton gardens, Dublin, Ireland.
11+
//
12+
// License:
13+
// MIT.
14+
// -----------------------------------------------------------------------------
15+
16+
using NoFrixion.MoneyMoov.Enums;
17+
18+
namespace NoFrixion.MoneyMoov.Models.PayeeVerification;
19+
20+
public class PayeeVerificationResult
21+
{
22+
/// <summary>
23+
/// The payee that was verified
24+
/// </summary>
25+
public required Counterparty Payee { get; init; }
26+
27+
/// <summary>
28+
/// An optional reference that was passed in with the verification request
29+
/// </summary>
30+
public string? Reference { get; init; }
31+
32+
/// <summary>
33+
/// The result of the payee verification
34+
/// </summary>
35+
public PayeeVerificationResultEnum Result { get; init; }
36+
37+
/// <summary>
38+
/// The verified account name of the payee, if available (in case of a close match)
39+
/// </summary>
40+
public string? PayeeVerifiedAccountName { get; init; }
41+
42+
/// <summary>
43+
/// The raw response from the supplier (e.g. Technoxander) as a JSON string, if available
44+
/// </summary>
45+
public string? SupplierRawResponse { get; set; }
46+
47+
public string? SupplierStatus { get; set; }
48+
}

src/NoFrixion.MoneyMoov/Models/Payouts/Payout.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
using NoFrixion.MoneyMoov.Models.Approve;
1919
using System.ComponentModel.DataAnnotations;
2020
using NoFrixion.MoneyMoov.Extensions;
21-
using LanguageExt;
21+
using NoFrixion.MoneyMoov.Models.PayeeVerification;
2222

2323
namespace NoFrixion.MoneyMoov.Models;
2424

@@ -578,3 +578,5 @@ public string ToCsvRow()
578578
return this.ToCsvRowString();
579579
}
580580
}
581+
582+

src/NoFrixion.MoneyMoov/Models/Payouts/PayoutEvent.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,4 +63,9 @@ public class PayoutEvent
6363
/// this contains the actual verified name returned by the payee verification supplier.
6464
/// </summary>
6565
public string? PayeeVerifiedAccountName { get; set; }
66+
67+
/// <summary>
68+
/// The payout ID the event is for.
69+
/// </summary>
70+
public Guid PayoutID { get; set; }
6671
}

src/NoFrixion.MoneyMoov/Models/Rules/RuleActions/SweepDestination.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
//-----------------------------------------------------------------------------
1616

1717
using System.ComponentModel.DataAnnotations;
18+
using NoFrixion.MoneyMoov.Enums;
19+
using NoFrixion.MoneyMoov.Models.PayeeVerification;
1820

1921
namespace NoFrixion.MoneyMoov.Models;
2022

@@ -65,6 +67,11 @@ public override string GetApprovalHash()
6567
base.GetApprovalHash();
6668
return HashHelper.CreateHash(input);
6769
}
70+
71+
public string GetBaseApprovalHash()
72+
{
73+
return base.GetApprovalHash();
74+
}
6875

6976
public override IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
7077
{

src/NoFrixion.MoneyMoov/Models/Transaction/Counterparty.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
//-----------------------------------------------------------------------------
1818

1919
using System.ComponentModel.DataAnnotations;
20+
using NoFrixion.MoneyMoov.Enums;
21+
using NoFrixion.MoneyMoov.Models.PayeeVerification;
2022

2123
namespace NoFrixion.MoneyMoov.Models;
2224

@@ -69,6 +71,16 @@ public class Counterparty
6971
/// to them, or for a pay in is the source of the payment.
7072
/// </summary>
7173
public AccountIdentifier? Identifier { get; set; }
74+
75+
/// <summary>
76+
/// Current status of the payee verification check
77+
/// </summary>
78+
public PayeeVerificationStatusEnum PayeeVerificationStatus { get; set; }
79+
80+
/// <summary>
81+
/// The payee verification result, if verification has been completed
82+
/// </summary>
83+
public PayeeVerificationResult? PayeeVerificationResult { get; set; }
7284

7385
/// <summary>
7486
/// Gets a convenient summary representation of the counterparty.

0 commit comments

Comments
 (0)