Skip to content

Commit b6f4999

Browse files
Merge pull request #660 from nofrixion/MOOV-4804-requester-vop
Added payee verification properties to payout
2 parents 1152be5 + be717b6 commit b6f4999

File tree

4 files changed

+95
-1
lines changed

4 files changed

+95
-1
lines changed
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+
}
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: 13 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

@@ -513,6 +513,16 @@ public Counterparty? DestinationAccount
513513
/// </summary>
514514
public DateTimeOffset? FxQuoteExpiresAt { get; set; }
515515

516+
/// <summary>
517+
/// Current status of the payee verification check
518+
/// </summary>
519+
public PayeeVerificationStatusEnum PayeeVerificationStatus { get; set; }
520+
521+
/// <summary>
522+
/// The payee verification result, if verification has been completed
523+
/// </summary>
524+
public PayeeVerificationResult? PayeeVerificationResult { get; set; }
525+
516526
public NoFrixionProblem Validate()
517527
{
518528
var context = new ValidationContext(this, serviceProvider: null, items: null);
@@ -578,3 +588,5 @@ public string ToCsvRow()
578588
return this.ToCsvRowString();
579589
}
580590
}
591+
592+

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
}

0 commit comments

Comments
 (0)