Skip to content

Commit d6624dd

Browse files
authored
feat: add ACH addenda to API (LEDG-3814) (#278)
* feat: add ACH addenda to transfer models * feat: add missing ForeignID --------- Signed-off-by: Richard Kolkovich <sarumont@users.noreply.github.com>
1 parent 9f0a298 commit d6624dd

File tree

1 file changed

+41
-18
lines changed

1 file changed

+41
-18
lines changed

pkg/moov/transfer_models.go

Lines changed: 41 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ type CreateTransfer struct {
1212
// An optional description of the transfer for your own internal use.
1313
Description string `json:"description,omitempty"`
1414
// Free-form key-value pair list. Useful for storing information that is not captured elsewhere.
15-
Metadata map[string]string `json:"metadata,omitempty"`
15+
Metadata map[string]string `json:"metadata,omitempty"`
16+
// ForeignID an optional alias from a foreign/external system which can be used to reference this resource
17+
ForeignID *string `json:"foreignID,omitempty"`
1618
LineItems *CreateTransferLineItems `json:"lineItems,omitempty"`
1719
}
1820

@@ -44,6 +46,13 @@ type CreateTransfer_AchDetailsSource struct {
4446
OriginatingCompanyName string `json:"originatingCompanyName,omitempty"`
4547
DebitHoldPeriod *DebitHoldPeriod `json:"debitHoldPeriod,omitempty"`
4648
SecCode *SecCode `json:"secCode,omitempty"`
49+
// Addenda optional ACH addenda to include on the transfer
50+
Addenda []CreateTransfer_AchAddendaRecord `json:"addenda,omitempty"`
51+
}
52+
53+
type CreateTransfer_AchAddendaRecord struct {
54+
// Record an ACH addenda record. Must comply with the NACHA character set and be 80 characters or less
55+
Record string
4756
}
4857

4958
// CreateTransfer_Destination The final stage of a transfer and the ultimate recipient of the funds.
@@ -65,6 +74,8 @@ type CreateTransfer_AchDetailsBase struct {
6574
CompanyEntryDescription string `json:"companyEntryDescription,omitempty"`
6675
// An optional override of the default NACHA company name for a transfer.
6776
OriginatingCompanyName string `json:"originatingCompanyName,omitempty"`
77+
// Addenda optional ACH addenda to include on the transfer
78+
Addenda []CreateTransfer_AchAddendaRecord `json:"addenda,omitempty"`
6879
}
6980

7081
// CreateTransfer_FacilitatorFee Total or markup fee.
@@ -141,6 +152,9 @@ type Transfer struct {
141152
ScheduleID *string `json:"scheduleID,omitempty"`
142153
// ID of the associated occurrence.
143154
OccurrenceID *string `json:"occurrenceID,omitempty"`
155+
// ForeignID an optional alias from a foreign/external system which can be used to reference this resource
156+
ForeignID *string `json:"foreignID,omitempty"`
157+
144158
// The total refunded amount for a card transfer, representing one refunded amount, or multiple partial refunded amounts. Contains an integer value and its currency. See the `refunds` array for additional details.
145159
RefundedAmount *Amount `json:"refundedAmount,omitempty"`
146160
// A list of refunds for a card transfer.
@@ -281,15 +295,23 @@ type AchDetailsSource struct {
281295
// An optional override of the default NACHA company entry description for a transfer.
282296
CompanyEntryDescription string `json:"companyEntryDescription,omitempty"`
283297
// An optional override of the default NACHA company name for a transfer.
284-
OriginatingCompanyName string `json:"originatingCompanyName,omitempty"`
285-
SecCode SecCode `json:"secCode,omitempty"`
286-
InitiatedOn *time.Time `json:"initiatedOn,omitempty"`
287-
OriginatedOn *time.Time `json:"originatedOn,omitempty"`
288-
CorrectedOn *time.Time `json:"correctedOn,omitempty"`
289-
ReturnedOn *time.Time `json:"returnedOn,omitempty"`
290-
CompletedOn *time.Time `json:"completedOn,omitempty"`
291-
CanceledOn *time.Time `json:"canceledOn,omitempty"`
292-
DebitHoldPeriod DebitHoldPeriod `json:"debitHoldPeriod,omitempty"`
298+
OriginatingCompanyName string `json:"originatingCompanyName,omitempty"`
299+
SecCode SecCode `json:"secCode,omitempty"`
300+
InitiatedOn *time.Time `json:"initiatedOn,omitempty"`
301+
OriginatedOn *time.Time `json:"originatedOn,omitempty"`
302+
CorrectedOn *time.Time `json:"correctedOn,omitempty"`
303+
ReturnedOn *time.Time `json:"returnedOn,omitempty"`
304+
CompletedOn *time.Time `json:"completedOn,omitempty"`
305+
CanceledOn *time.Time `json:"canceledOn,omitempty"`
306+
DebitHoldPeriod DebitHoldPeriod `json:"debitHoldPeriod,omitempty"`
307+
Addenda []AchAddendaRecord `json:"addenda,omitempty"`
308+
}
309+
310+
type AchAddendaRecord struct {
311+
// Record an ACH addenda record. Must comply with the NACHA character set and be 80 characters or less
312+
Record string
313+
// IsMasked indicates whether the original addenda record has been masked to obscure PII
314+
IsMasked bool
293315
}
294316

295317
// AchException struct for AchException
@@ -322,14 +344,15 @@ type AchDetails struct {
322344
// An optional override of the default NACHA company entry description for a transfer.
323345
CompanyEntryDescription string `json:"companyEntryDescription,omitempty"`
324346
// An optional override of the default NACHA company name for a transfer.
325-
OriginatingCompanyName string `json:"originatingCompanyName,omitempty"`
326-
SecCode SecCode `json:"secCode,omitempty"`
327-
InitiatedOn *time.Time `json:"initiatedOn,omitempty"`
328-
OriginatedOn *time.Time `json:"originatedOn,omitempty"`
329-
CorrectedOn *time.Time `json:"correctedOn,omitempty"`
330-
ReturnedOn *time.Time `json:"returnedOn,omitempty"`
331-
CompletedOn *time.Time `json:"completedOn,omitempty"`
332-
CanceledOn *time.Time `json:"canceledOn,omitempty"`
347+
OriginatingCompanyName string `json:"originatingCompanyName,omitempty"`
348+
SecCode SecCode `json:"secCode,omitempty"`
349+
InitiatedOn *time.Time `json:"initiatedOn,omitempty"`
350+
OriginatedOn *time.Time `json:"originatedOn,omitempty"`
351+
CorrectedOn *time.Time `json:"correctedOn,omitempty"`
352+
ReturnedOn *time.Time `json:"returnedOn,omitempty"`
353+
CompletedOn *time.Time `json:"completedOn,omitempty"`
354+
CanceledOn *time.Time `json:"canceledOn,omitempty"`
355+
Addenda []AchAddendaRecord `json:"addenda,omitempty"`
333356
}
334357

335358
// RtpDetails RTP specific details about the transaction.

0 commit comments

Comments
 (0)