From e2fd2c91d9ac2705eff3f2cc2a8bf0164dd95744 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 8 Dec 2025 19:33:51 +0000 Subject: [PATCH 1/3] chore: add missing docstrings --- src/increase/types/account.py | 5 + src/increase/types/account_number.py | 11 + .../types/account_number_create_params.py | 6 + .../types/account_number_update_params.py | 6 + src/increase/types/account_statement.py | 5 + src/increase/types/account_transfer.py | 20 + src/increase/types/ach_prenotification.py | 6 + src/increase/types/ach_transfer.py | 53 +++ .../types/ach_transfer_create_params.py | 20 + src/increase/types/balance_lookup.py | 4 + src/increase/types/bookkeeping_account.py | 5 + .../types/bookkeeping_balance_lookup.py | 4 + src/increase/types/bookkeeping_entry.py | 5 + src/increase/types/bookkeeping_entry_set.py | 5 + src/increase/types/card.py | 11 + src/increase/types/card_create_params.py | 6 + src/increase/types/card_details.py | 4 + src/increase/types/card_dispute.py | 382 ++++++++++++++++++ .../types/card_dispute_create_params.py | 220 ++++++++++ ...d_dispute_submit_user_submission_params.py | 240 +++++++++++ src/increase/types/card_iframe_url.py | 2 + src/increase/types/card_payment.py | 322 +++++++++++++++ .../types/card_purchase_supplement.py | 6 + src/increase/types/card_push_transfer.py | 35 ++ .../types/card_push_transfer_create_params.py | 5 + src/increase/types/card_token.py | 4 + src/increase/types/card_token_capabilities.py | 4 + src/increase/types/card_update_params.py | 6 + src/increase/types/card_validation.py | 24 ++ src/increase/types/check_deposit.py | 24 ++ src/increase/types/check_transfer.py | 49 +++ .../types/check_transfer_create_params.py | 17 + src/increase/types/declined_transaction.py | 91 +++++ src/increase/types/digital_card_profile.py | 6 + .../digital_card_profile_clone_params.py | 2 + .../digital_card_profile_create_params.py | 2 + src/increase/types/digital_wallet_token.py | 8 + src/increase/types/document.py | 8 + src/increase/types/document_create_params.py | 10 + src/increase/types/entity.py | 73 ++++ .../entity_create_beneficial_owner_params.py | 28 ++ src/increase/types/entity_create_params.py | 167 ++++++++ .../types/entity_supplemental_document.py | 4 + .../types/entity_update_address_params.py | 5 + ..._update_beneficial_owner_address_params.py | 5 + src/increase/types/entity_update_params.py | 48 +++ src/increase/types/event.py | 5 + src/increase/types/event_subscription.py | 5 + src/increase/types/export.py | 5 + src/increase/types/export_create_params.py | 45 +++ src/increase/types/external_account.py | 4 + src/increase/types/fednow_transfer.py | 24 ++ .../types/fednow_transfer_create_params.py | 4 + src/increase/types/file.py | 5 + src/increase/types/file_link.py | 2 + src/increase/types/group.py | 5 + src/increase/types/inbound_ach_transfer.py | 26 ++ src/increase/types/inbound_check_deposit.py | 8 + src/increase/types/inbound_fednow_transfer.py | 8 + src/increase/types/inbound_mail_item.py | 4 + .../inbound_real_time_payments_transfer.py | 8 + .../types/inbound_wire_drawdown_request.py | 4 + src/increase/types/inbound_wire_transfer.py | 8 + .../types/intrafi_account_enrollment.py | 4 + src/increase/types/intrafi_balance.py | 6 + src/increase/types/intrafi_exclusion.py | 4 + src/increase/types/lockbox.py | 7 + src/increase/types/oauth_application.py | 4 + src/increase/types/oauth_connection.py | 4 + src/increase/types/oauth_token.py | 4 + src/increase/types/pending_transaction.py | 116 ++++++ src/increase/types/physical_card.py | 13 + .../types/physical_card_create_params.py | 6 + src/increase/types/physical_card_profile.py | 5 + .../physical_card_profile_clone_params.py | 5 + .../physical_card_profile_create_params.py | 5 + src/increase/types/program.py | 5 + src/increase/types/real_time_decision.py | 76 ++++ .../types/real_time_decision_action_params.py | 45 +++ .../types/real_time_payments_transfer.py | 32 ++ .../types/routing_number_list_response.py | 2 + .../card_authorization_create_params.py | 10 + .../card_authorization_create_response.py | 2 + .../simulations/card_dispute_action_params.py | 55 +++ ...al_wallet_token_request_create_response.py | 2 + .../inbound_ach_transfer_create_params.py | 4 + ..._time_payments_transfer_complete_params.py | 2 + src/increase/types/transaction.py | 286 +++++++++++++ src/increase/types/wire_drawdown_request.py | 13 + .../wire_drawdown_request_create_params.py | 4 + src/increase/types/wire_transfer.py | 50 +++ .../types/wire_transfer_create_params.py | 27 ++ 92 files changed, 2941 insertions(+) diff --git a/src/increase/types/account.py b/src/increase/types/account.py index afc80739b..a9d98010f 100644 --- a/src/increase/types/account.py +++ b/src/increase/types/account.py @@ -12,6 +12,11 @@ class Account(BaseModel): + """Accounts are your bank accounts with Increase. + + They store money, receive transfers, and send payments. They earn interest and have depository insurance. + """ + id: str """The Account identifier.""" diff --git a/src/increase/types/account_number.py b/src/increase/types/account_number.py index 5d0cade9a..6977332d7 100644 --- a/src/increase/types/account_number.py +++ b/src/increase/types/account_number.py @@ -12,6 +12,8 @@ class InboundACH(BaseModel): + """Properties related to how this Account Number handles inbound ACH transfers.""" + debit_status: Literal["allowed", "blocked"] """Whether ACH debits are allowed against this Account Number. @@ -24,6 +26,10 @@ class InboundACH(BaseModel): class InboundChecks(BaseModel): + """ + Properties related to how this Account Number should handle inbound check withdrawals. + """ + status: Literal["allowed", "check_transfers_only"] """How Increase should process checks with this account number printed on them. @@ -35,6 +41,11 @@ class InboundChecks(BaseModel): class AccountNumber(BaseModel): + """Each account can have multiple account and routing numbers. + + We recommend that you use a set per vendor. This is similar to how you use different passwords for different websites. Account numbers can also be used to seamlessly reconcile inbound payments. Generating a unique account number per vendor ensures you always know the originator of an incoming payment. + """ + id: str """The Account Number identifier.""" diff --git a/src/increase/types/account_number_create_params.py b/src/increase/types/account_number_create_params.py index 15a4d8682..32d7e1a39 100644 --- a/src/increase/types/account_number_create_params.py +++ b/src/increase/types/account_number_create_params.py @@ -25,6 +25,8 @@ class AccountNumberCreateParams(TypedDict, total=False): class InboundACH(TypedDict, total=False): + """Options related to how this Account Number should handle inbound ACH transfers.""" + debit_status: Required[Literal["allowed", "blocked"]] """Whether ACH debits are allowed against this Account Number. @@ -38,6 +40,10 @@ class InboundACH(TypedDict, total=False): class InboundChecks(TypedDict, total=False): + """ + Options related to how this Account Number should handle inbound check withdrawals. + """ + status: Required[Literal["allowed", "check_transfers_only"]] """How Increase should process checks with this account number printed on them. diff --git a/src/increase/types/account_number_update_params.py b/src/increase/types/account_number_update_params.py index 1ee620fe4..47ad6ae70 100644 --- a/src/increase/types/account_number_update_params.py +++ b/src/increase/types/account_number_update_params.py @@ -30,6 +30,8 @@ class AccountNumberUpdateParams(TypedDict, total=False): class InboundACH(TypedDict, total=False): + """Options related to how this Account Number handles inbound ACH transfers.""" + debit_status: Literal["allowed", "blocked"] """Whether ACH debits are allowed against this Account Number. @@ -42,6 +44,10 @@ class InboundACH(TypedDict, total=False): class InboundChecks(TypedDict, total=False): + """ + Options related to how this Account Number should handle inbound check withdrawals. + """ + status: Required[Literal["allowed", "check_transfers_only"]] """How Increase should process checks with this account number printed on them. diff --git a/src/increase/types/account_statement.py b/src/increase/types/account_statement.py index d2e124f86..7a95b9a5c 100644 --- a/src/increase/types/account_statement.py +++ b/src/increase/types/account_statement.py @@ -9,6 +9,11 @@ class AccountStatement(BaseModel): + """Account Statements are generated monthly for every active Account. + + You can access the statement's data via the API or retrieve a PDF with its details via its associated File. + """ + id: str """The Account Statement identifier.""" diff --git a/src/increase/types/account_transfer.py b/src/increase/types/account_transfer.py index d0fcf9ab5..22ba640bd 100644 --- a/src/increase/types/account_transfer.py +++ b/src/increase/types/account_transfer.py @@ -20,6 +20,10 @@ class Approval(BaseModel): + """ + If your account requires approvals for transfers and the transfer was approved, this will contain details of the approval. + """ + approved_at: datetime """ The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which @@ -34,6 +38,10 @@ class Approval(BaseModel): class Cancellation(BaseModel): + """ + If your account requires approvals for transfers and the transfer was not approved, this will contain details of the cancellation. + """ + canceled_at: datetime """ The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which @@ -48,21 +56,29 @@ class Cancellation(BaseModel): class CreatedByAPIKey(BaseModel): + """If present, details about the API key that created the transfer.""" + description: Optional[str] = None """The description set for the API key when it was created.""" class CreatedByOAuthApplication(BaseModel): + """If present, details about the OAuth Application that created the transfer.""" + name: str """The name of the OAuth Application.""" class CreatedByUser(BaseModel): + """If present, details about the User that created the transfer.""" + email: str """The email address of the User.""" class CreatedBy(BaseModel): + """What object created the transfer, either via the API or the dashboard.""" + api_key: Optional[CreatedByAPIKey] = None """If present, details about the API key that created the transfer.""" @@ -84,6 +100,10 @@ class CreatedBy(BaseModel): class AccountTransfer(BaseModel): + """ + Account transfers move funds between your own accounts at Increase (accounting systems often refer to these as Book Transfers). Account Transfers are free and synchronous. Upon creation they create two Transactions, one negative on the originating account and one positive on the destination account (unless the transfer requires approval, in which case the Transactions will be created when the transfer is approved). + """ + id: str """The Account Transfer's identifier.""" diff --git a/src/increase/types/ach_prenotification.py b/src/increase/types/ach_prenotification.py index 02fdeec9b..19afbc81b 100644 --- a/src/increase/types/ach_prenotification.py +++ b/src/increase/types/ach_prenotification.py @@ -88,6 +88,8 @@ class NotificationsOfChange(BaseModel): class PrenotificationReturn(BaseModel): + """If your prenotification is returned, this will contain details of the return.""" + created_at: datetime """ The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which @@ -319,6 +321,10 @@ class PrenotificationReturn(BaseModel): class ACHPrenotification(BaseModel): + """ + ACH Prenotifications are one way you can verify account and routing numbers by Automated Clearing House (ACH). + """ + id: str """The ACH Prenotification's identifier.""" diff --git a/src/increase/types/ach_transfer.py b/src/increase/types/ach_transfer.py index d9a0af757..0639334bb 100644 --- a/src/increase/types/ach_transfer.py +++ b/src/increase/types/ach_transfer.py @@ -32,6 +32,10 @@ class Acknowledgement(BaseModel): + """ + After the transfer is acknowledged by FedACH, this will contain supplemental details. The Federal Reserve sends an acknowledgement message for each file that Increase submits. + """ + acknowledged_at: str """ When the Federal Reserve acknowledged the submitted file containing this @@ -45,6 +49,8 @@ class AddendaFreeformEntry(BaseModel): class AddendaFreeform(BaseModel): + """Unstructured `payment_related_information` passed through with the transfer.""" + entries: List[AddendaFreeformEntry] """Each entry represents an addendum sent with the transfer.""" @@ -61,11 +67,18 @@ class AddendaPaymentOrderRemittanceAdviceInvoice(BaseModel): class AddendaPaymentOrderRemittanceAdvice(BaseModel): + """Structured ASC X12 820 remittance advice records. + + Please reach out to [support@increase.com](mailto:support@increase.com) for more information. + """ + invoices: List[AddendaPaymentOrderRemittanceAdviceInvoice] """ASC X12 RMR records for this specific transfer.""" class Addenda(BaseModel): + """Additional information that will be sent to the recipient.""" + category: Literal["freeform", "payment_order_remittance_advice", "other"] """The type of the resource. @@ -92,6 +105,10 @@ class Addenda(BaseModel): class Approval(BaseModel): + """ + If your account requires approvals for transfers and the transfer was approved, this will contain details of the approval. + """ + approved_at: datetime.datetime """ The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which @@ -106,6 +123,10 @@ class Approval(BaseModel): class Cancellation(BaseModel): + """ + If your account requires approvals for transfers and the transfer was not approved, this will contain details of the cancellation. + """ + canceled_at: datetime.datetime """ The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which @@ -120,21 +141,29 @@ class Cancellation(BaseModel): class CreatedByAPIKey(BaseModel): + """If present, details about the API key that created the transfer.""" + description: Optional[str] = None """The description set for the API key when it was created.""" class CreatedByOAuthApplication(BaseModel): + """If present, details about the OAuth Application that created the transfer.""" + name: str """The name of the OAuth Application.""" class CreatedByUser(BaseModel): + """If present, details about the User that created the transfer.""" + email: str """The email address of the User.""" class CreatedBy(BaseModel): + """What object created the transfer, either via the API or the dashboard.""" + api_key: Optional[CreatedByAPIKey] = None """If present, details about the API key that created the transfer.""" @@ -156,6 +185,11 @@ class CreatedBy(BaseModel): class InboundFundsHold(BaseModel): + """Increase will sometimes hold the funds for ACH debit transfers. + + If funds are held, this sub-object will contain details of the hold. + """ + amount: int """The held amount in the minor unit of the account's currency. @@ -296,6 +330,11 @@ class NotificationsOfChange(BaseModel): class PreferredEffectiveDate(BaseModel): + """Configuration for how the effective date of the transfer will be set. + + This determines same-day vs future-dated settlement timing. If not set, defaults to a `settlement_schedule` of `same_day`. If set, exactly one of the child attributes must be set. + """ + date: Optional[datetime.date] = None """ A specific date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format to @@ -316,6 +355,8 @@ class PreferredEffectiveDate(BaseModel): class Return(BaseModel): + """If your transfer is returned, this will contain details of the return.""" + created_at: datetime.datetime """ The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which @@ -578,6 +619,10 @@ def __getattr__(self, attr: str) -> object: ... class Settlement(BaseModel): + """ + A subhash containing information about when and how the transfer settled at the Federal Reserve. + """ + settled_at: datetime.datetime """ When the funds for this transfer have settled at the destination bank at the @@ -586,6 +631,10 @@ class Settlement(BaseModel): class Submission(BaseModel): + """ + After the transfer is submitted to FedACH, this will contain supplemental details. Increase batches transfers and submits a file to the Federal Reserve roughly every 30 minutes. The Federal Reserve processes ACH transfers during weekdays according to their [posted schedule](https://www.frbservices.org/resources/resource-centers/same-day-ach/fedach-processing-schedule.html). + """ + administrative_returns_expected_by: datetime.datetime """The timestamp by which any administrative returns are expected to be received by. @@ -637,6 +686,10 @@ class Submission(BaseModel): class ACHTransfer(BaseModel): + """ + ACH transfers move funds between your Increase account and any other account accessible by the Automated Clearing House (ACH). + """ + id: str """The ACH transfer's identifier.""" diff --git a/src/increase/types/ach_transfer_create_params.py b/src/increase/types/ach_transfer_create_params.py index d4b0566cd..ecb07fbbe 100644 --- a/src/increase/types/ach_transfer_create_params.py +++ b/src/increase/types/ach_transfer_create_params.py @@ -155,6 +155,11 @@ class AddendaFreeformEntry(TypedDict, total=False): class AddendaFreeform(TypedDict, total=False): + """Unstructured `payment_related_information` passed through with the transfer. + + Required if and only if `category` is `freeform`. + """ + entries: Required[Iterable[AddendaFreeformEntry]] """Each entry represents an addendum sent with the transfer. @@ -177,11 +182,21 @@ class AddendaPaymentOrderRemittanceAdviceInvoice(TypedDict, total=False): class AddendaPaymentOrderRemittanceAdvice(TypedDict, total=False): + """Structured ASC X12 820 remittance advice records. + + Please reach out to [support@increase.com](mailto:support@increase.com) for more information. Required if and only if `category` is `payment_order_remittance_advice`. + """ + invoices: Required[Iterable[AddendaPaymentOrderRemittanceAdviceInvoice]] """ASC X12 RMR records for this specific transfer.""" class Addenda(TypedDict, total=False): + """Additional information that will be sent to the recipient. + + This is included in the transfer data sent to the receiving bank. + """ + category: Required[Literal["freeform", "payment_order_remittance_advice"]] """The type of addenda to pass with the transfer. @@ -208,6 +223,11 @@ class Addenda(TypedDict, total=False): class PreferredEffectiveDate(TypedDict, total=False): + """Configuration for how the effective date of the transfer will be set. + + This determines same-day vs future-dated settlement timing. If not set, defaults to a `settlement_schedule` of `same_day`. If set, exactly one of the child attributes must be set. + """ + date: Annotated[Union[str, datetime.date], PropertyInfo(format="iso8601")] """ A specific date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format to diff --git a/src/increase/types/balance_lookup.py b/src/increase/types/balance_lookup.py index 94b09f413..e2d3ac552 100644 --- a/src/increase/types/balance_lookup.py +++ b/src/increase/types/balance_lookup.py @@ -8,6 +8,10 @@ class BalanceLookup(BaseModel): + """ + Represents a request to lookup the balance of an Account at a given point in time. + """ + account_id: str """The identifier for the account for which the balance was queried.""" diff --git a/src/increase/types/bookkeeping_account.py b/src/increase/types/bookkeeping_account.py index fbe1f0239..b33b8f61b 100644 --- a/src/increase/types/bookkeeping_account.py +++ b/src/increase/types/bookkeeping_account.py @@ -9,6 +9,11 @@ class BookkeepingAccount(BaseModel): + """Accounts are T-accounts. + + They can store accounting entries. Your compliance setup might require annotating money movements using this API. Learn more in our [guide to Bookkeeping](https://increase.com/documentation/bookkeeping#bookkeeping). + """ + id: str """The account identifier.""" diff --git a/src/increase/types/bookkeeping_balance_lookup.py b/src/increase/types/bookkeeping_balance_lookup.py index 71ff0385b..bcd350e84 100644 --- a/src/increase/types/bookkeeping_balance_lookup.py +++ b/src/increase/types/bookkeeping_balance_lookup.py @@ -8,6 +8,10 @@ class BookkeepingBalanceLookup(BaseModel): + """ + Represents a request to lookup the balance of an Bookkeeping Account at a given point in time. + """ + balance: int """ The Bookkeeping Account's current balance, representing the sum of all diff --git a/src/increase/types/bookkeeping_entry.py b/src/increase/types/bookkeeping_entry.py index ffcd2ab5a..06aed0aaa 100644 --- a/src/increase/types/bookkeeping_entry.py +++ b/src/increase/types/bookkeeping_entry.py @@ -9,6 +9,11 @@ class BookkeepingEntry(BaseModel): + """Entries are T-account entries recording debits and credits. + + Your compliance setup might require annotating money movements using this API. Learn more in our [guide to Bookkeeping](https://increase.com/documentation/bookkeeping#bookkeeping). + """ + id: str """The entry identifier.""" diff --git a/src/increase/types/bookkeeping_entry_set.py b/src/increase/types/bookkeeping_entry_set.py index d83ecd71f..4b6760f05 100644 --- a/src/increase/types/bookkeeping_entry_set.py +++ b/src/increase/types/bookkeeping_entry_set.py @@ -21,6 +21,11 @@ class Entry(BaseModel): class BookkeepingEntrySet(BaseModel): + """Entry Sets are accounting entries that are transactionally applied. + + Your compliance setup might require annotating money movements using this API. Learn more in our [guide to Bookkeeping](https://increase.com/documentation/bookkeeping#bookkeeping). + """ + id: str """The entry set identifier.""" diff --git a/src/increase/types/card.py b/src/increase/types/card.py index 46025eb85..b3e8186e6 100644 --- a/src/increase/types/card.py +++ b/src/increase/types/card.py @@ -12,6 +12,8 @@ class BillingAddress(BaseModel): + """The Card's billing address.""" + city: Optional[str] = None """The city of the billing address.""" @@ -29,6 +31,10 @@ class BillingAddress(BaseModel): class DigitalWallet(BaseModel): + """ + The contact information used in the two-factor steps for digital wallet card creation. At least one field must be present to complete the digital wallet steps. + """ + digital_card_profile_id: Optional[str] = None """The digital card profile assigned to this digital card. @@ -49,6 +55,11 @@ class DigitalWallet(BaseModel): class Card(BaseModel): + """Cards are commercial credit cards. + + They'll immediately work for online purchases after you create them. All cards maintain a credit limit of 100% of the Account’s available balance at the time of transaction. Funds are deducted from the Account upon transaction settlement. + """ + id: str """The card identifier.""" diff --git a/src/increase/types/card_create_params.py b/src/increase/types/card_create_params.py index c86269dcb..3a3f24cf3 100644 --- a/src/increase/types/card_create_params.py +++ b/src/increase/types/card_create_params.py @@ -35,6 +35,8 @@ class CardCreateParams(TypedDict, total=False): class BillingAddress(TypedDict, total=False): + """The card's billing address.""" + city: Required[str] """The city of the billing address.""" @@ -52,6 +54,10 @@ class BillingAddress(TypedDict, total=False): class DigitalWallet(TypedDict, total=False): + """ + The contact information used in the two-factor steps for digital wallet card creation. To add the card to a digital wallet, you may supply an email or phone number with this request. Otherwise, subscribe and then action a Real Time Decision with the category `digital_wallet_token_requested` or `digital_wallet_authentication_requested`. + """ + digital_card_profile_id: str """The digital card profile assigned to this digital card.""" diff --git a/src/increase/types/card_details.py b/src/increase/types/card_details.py index 33b9578f7..6fc7caeae 100644 --- a/src/increase/types/card_details.py +++ b/src/increase/types/card_details.py @@ -8,6 +8,10 @@ class CardDetails(BaseModel): + """ + An object containing the sensitive details (card number, CVC, PIN, etc) for a Card. These details are not included in the Card object. If you'd prefer to never access these details directly, you can use the [embedded iframe](/documentation/embedded-card-component) to display the information to your users. + """ + card_id: str """The identifier for the Card for which sensitive details have been returned.""" diff --git a/src/increase/types/card_dispute.py b/src/increase/types/card_dispute.py index 375569bea..7f68cedea 100644 --- a/src/increase/types/card_dispute.py +++ b/src/increase/types/card_dispute.py @@ -109,6 +109,10 @@ class Loss(BaseModel): + """ + If the Card Dispute's status is `lost`, this will contain details of the lost dispute. + """ + lost_at: datetime """ The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which @@ -129,22 +133,46 @@ class VisaNetworkEventAttachmentFile(BaseModel): class VisaNetworkEventChargebackAccepted(BaseModel): + """A Card Dispute Chargeback Accepted Visa Network Event object. + + This field will be present in the JSON response if and only if `category` is equal to `chargeback_accepted`. Contains the details specific to a chargeback accepted Visa Card Dispute Network Event, which represents that a chargeback has been accepted by the merchant. + """ + pass class VisaNetworkEventChargebackSubmitted(BaseModel): + """A Card Dispute Chargeback Submitted Visa Network Event object. + + This field will be present in the JSON response if and only if `category` is equal to `chargeback_submitted`. Contains the details specific to a chargeback submitted Visa Card Dispute Network Event, which represents that a chargeback has been submitted to the network. + """ + pass class VisaNetworkEventChargebackTimedOut(BaseModel): + """A Card Dispute Chargeback Timed Out Visa Network Event object. + + This field will be present in the JSON response if and only if `category` is equal to `chargeback_timed_out`. Contains the details specific to a chargeback timed out Visa Card Dispute Network Event, which represents that the chargeback has timed out in the user's favor. + """ + pass class VisaNetworkEventMerchantPrearbitrationDeclineSubmitted(BaseModel): + """ + A Card Dispute Merchant Pre-Arbitration Decline Submitted Visa Network Event object. This field will be present in the JSON response if and only if `category` is equal to `merchant_prearbitration_decline_submitted`. Contains the details specific to a merchant prearbitration decline submitted Visa Card Dispute Network Event, which represents that the user has declined the merchant's request for a prearbitration request decision in their favor. + """ + pass class VisaNetworkEventMerchantPrearbitrationReceivedCardholderNoLongerDisputes(BaseModel): + """Cardholder no longer disputes details. + + Present if and only if `reason` is `cardholder_no_longer_disputes`. + """ + explanation: Optional[str] = None """ Explanation for why the merchant believes the cardholder no longer disputes the @@ -153,6 +181,11 @@ class VisaNetworkEventMerchantPrearbitrationReceivedCardholderNoLongerDisputes(B class VisaNetworkEventMerchantPrearbitrationReceivedCompellingEvidence(BaseModel): + """Compelling evidence details. + + Present if and only if `reason` is `compelling_evidence`. + """ + category: Literal[ "authorized_signer", "delivery", @@ -207,6 +240,11 @@ class VisaNetworkEventMerchantPrearbitrationReceivedCompellingEvidence(BaseModel class VisaNetworkEventMerchantPrearbitrationReceivedCreditOrReversalProcessed(BaseModel): + """Credit or reversal processed details. + + Present if and only if `reason` is `credit_or_reversal_processed`. + """ + amount: int """The amount of the credit or reversal in the minor unit of its currency. @@ -227,16 +265,28 @@ class VisaNetworkEventMerchantPrearbitrationReceivedCreditOrReversalProcessed(Ba class VisaNetworkEventMerchantPrearbitrationReceivedDelayedChargeTransaction(BaseModel): + """Delayed charge transaction details. + + Present if and only if `reason` is `delayed_charge_transaction`. + """ + explanation: Optional[str] = None """Additional details about the delayed charge transaction.""" class VisaNetworkEventMerchantPrearbitrationReceivedEvidenceOfImprint(BaseModel): + """Evidence of imprint details. + + Present if and only if `reason` is `evidence_of_imprint`. + """ + explanation: Optional[str] = None """Explanation of the evidence of imprint.""" class VisaNetworkEventMerchantPrearbitrationReceivedInvalidDispute(BaseModel): + """Invalid dispute details. Present if and only if `reason` is `invalid_dispute`.""" + explanation: Optional[str] = None """Explanation for why the dispute is considered invalid by the merchant.""" @@ -250,6 +300,11 @@ class VisaNetworkEventMerchantPrearbitrationReceivedInvalidDispute(BaseModel): class VisaNetworkEventMerchantPrearbitrationReceivedNonFiatCurrencyOrNonFungibleTokenReceived(BaseModel): + """Non-fiat currency or non-fungible token received details. + + Present if and only if `reason` is `non_fiat_currency_or_non_fungible_token_received`. + """ + blockchain_transaction_hash: str """Blockchain transaction hash.""" @@ -261,6 +316,11 @@ class VisaNetworkEventMerchantPrearbitrationReceivedNonFiatCurrencyOrNonFungible class VisaNetworkEventMerchantPrearbitrationReceivedPriorUndisputedNonFraudTransactions(BaseModel): + """Prior undisputed non-fraud transactions details. + + Present if and only if `reason` is `prior_undisputed_non_fraud_transactions`. + """ + explanation: Optional[str] = None """ Explanation of the prior undisputed non-fraud transactions provided by the @@ -269,6 +329,11 @@ class VisaNetworkEventMerchantPrearbitrationReceivedPriorUndisputedNonFraudTrans class VisaNetworkEventMerchantPrearbitrationReceived(BaseModel): + """A Card Dispute Merchant Pre-Arbitration Received Visa Network Event object. + + This field will be present in the JSON response if and only if `category` is equal to `merchant_prearbitration_received`. Contains the details specific to a merchant prearbitration received Visa Card Dispute Network Event, which represents that the merchant has issued a prearbitration request in the user's favor. + """ + cardholder_no_longer_disputes: Optional[ VisaNetworkEventMerchantPrearbitrationReceivedCardholderNoLongerDisputes ] = None @@ -350,10 +415,20 @@ class VisaNetworkEventMerchantPrearbitrationReceived(BaseModel): class VisaNetworkEventMerchantPrearbitrationTimedOut(BaseModel): + """A Card Dispute Merchant Pre-Arbitration Timed Out Visa Network Event object. + + This field will be present in the JSON response if and only if `category` is equal to `merchant_prearbitration_timed_out`. Contains the details specific to a merchant prearbitration timed out Visa Card Dispute Network Event, which represents that the user has timed out responding to the merchant's prearbitration request. + """ + pass class VisaNetworkEventRepresentedCardholderNoLongerDisputes(BaseModel): + """Cardholder no longer disputes details. + + Present if and only if `reason` is `cardholder_no_longer_disputes`. + """ + explanation: Optional[str] = None """ Explanation for why the merchant believes the cardholder no longer disputes the @@ -362,6 +437,11 @@ class VisaNetworkEventRepresentedCardholderNoLongerDisputes(BaseModel): class VisaNetworkEventRepresentedCreditOrReversalProcessed(BaseModel): + """Credit or reversal processed details. + + Present if and only if `reason` is `credit_or_reversal_processed`. + """ + amount: int """The amount of the credit or reversal in the minor unit of its currency. @@ -382,6 +462,8 @@ class VisaNetworkEventRepresentedCreditOrReversalProcessed(BaseModel): class VisaNetworkEventRepresentedInvalidDispute(BaseModel): + """Invalid dispute details. Present if and only if `reason` is `invalid_dispute`.""" + explanation: Optional[str] = None """Explanation for why the dispute is considered invalid by the merchant.""" @@ -484,10 +566,20 @@ class VisaNetworkEventRepresentedInvalidDispute(BaseModel): class VisaNetworkEventRepresentedNonFiatCurrencyOrNonFungibleTokenAsDescribed(BaseModel): + """Non-fiat currency or non-fungible token as described details. + + Present if and only if `reason` is `non_fiat_currency_or_non_fungible_token_as_described`. + """ + pass class VisaNetworkEventRepresentedNonFiatCurrencyOrNonFungibleTokenReceived(BaseModel): + """Non-fiat currency or non-fungible token received details. + + Present if and only if `reason` is `non_fiat_currency_or_non_fungible_token_received`. + """ + blockchain_transaction_hash: str """Blockchain transaction hash.""" @@ -499,6 +591,11 @@ class VisaNetworkEventRepresentedNonFiatCurrencyOrNonFungibleTokenReceived(BaseM class VisaNetworkEventRepresentedProofOfCashDisbursement(BaseModel): + """Proof of cash disbursement details. + + Present if and only if `reason` is `proof_of_cash_disbursement`. + """ + explanation: Optional[str] = None """ Explanation for why the merchant believes the evidence provides proof of cash @@ -507,11 +604,21 @@ class VisaNetworkEventRepresentedProofOfCashDisbursement(BaseModel): class VisaNetworkEventRepresentedReversalIssued(BaseModel): + """Reversal issued by merchant details. + + Present if and only if `reason` is `reversal_issued`. + """ + explanation: Optional[str] = None """Explanation of the reversal issued by the merchant.""" class VisaNetworkEventRepresented(BaseModel): + """A Card Dispute Re-presented Visa Network Event object. + + This field will be present in the JSON response if and only if `category` is equal to `represented`. Contains the details specific to a re-presented Visa Card Dispute Network Event, which represents that the merchant has declined the user's chargeback and has re-presented the payment. + """ + cardholder_no_longer_disputes: Optional[VisaNetworkEventRepresentedCardholderNoLongerDisputes] = None """Cardholder no longer disputes details. @@ -582,26 +689,56 @@ class VisaNetworkEventRepresented(BaseModel): class VisaNetworkEventRepresentmentTimedOut(BaseModel): + """A Card Dispute Re-presentment Timed Out Visa Network Event object. + + This field will be present in the JSON response if and only if `category` is equal to `representment_timed_out`. Contains the details specific to a re-presentment time-out Visa Card Dispute Network Event, which represents that the user did not respond to the re-presentment by the merchant within the time limit. + """ + pass class VisaNetworkEventUserPrearbitrationAccepted(BaseModel): + """A Card Dispute User Pre-Arbitration Accepted Visa Network Event object. + + This field will be present in the JSON response if and only if `category` is equal to `user_prearbitration_accepted`. Contains the details specific to a user prearbitration accepted Visa Card Dispute Network Event, which represents that the merchant has accepted the user's prearbitration request in the user's favor. + """ + pass class VisaNetworkEventUserPrearbitrationDeclined(BaseModel): + """A Card Dispute User Pre-Arbitration Declined Visa Network Event object. + + This field will be present in the JSON response if and only if `category` is equal to `user_prearbitration_declined`. Contains the details specific to a user prearbitration declined Visa Card Dispute Network Event, which represents that the merchant has declined the user's prearbitration request. + """ + pass class VisaNetworkEventUserPrearbitrationSubmitted(BaseModel): + """A Card Dispute User Pre-Arbitration Submitted Visa Network Event object. + + This field will be present in the JSON response if and only if `category` is equal to `user_prearbitration_submitted`. Contains the details specific to a user prearbitration submitted Visa Card Dispute Network Event, which represents that the user's request for prearbitration has been submitted to the network. + """ + pass class VisaNetworkEventUserPrearbitrationTimedOut(BaseModel): + """A Card Dispute User Pre-Arbitration Timed Out Visa Network Event object. + + This field will be present in the JSON response if and only if `category` is equal to `user_prearbitration_timed_out`. Contains the details specific to a user prearbitration timed out Visa Card Dispute Network Event, which represents that the merchant has timed out responding to the user's prearbitration request. + """ + pass class VisaNetworkEventUserWithdrawalSubmitted(BaseModel): + """A Card Dispute User Withdrawal Submitted Visa Network Event object. + + This field will be present in the JSON response if and only if `category` is equal to `user_withdrawal_submitted`. Contains the details specific to a user withdrawal submitted Visa Card Dispute Network Event, which represents that the user's request to withdraw the dispute has been submitted to the network. + """ + pass @@ -801,6 +938,8 @@ class VisaUserSubmissionAttachmentFile(BaseModel): class VisaUserSubmissionChargebackAuthorization(BaseModel): + """Authorization. Present if and only if `category` is `authorization`.""" + account_status: Literal["account_closed", "credit_problem", "fraud"] """Account status. @@ -811,6 +950,8 @@ class VisaUserSubmissionChargebackAuthorization(BaseModel): class VisaUserSubmissionChargebackConsumerCanceledMerchandiseCardholderCancellation(BaseModel): + """Cardholder cancellation.""" + canceled_at: date """Canceled at.""" @@ -833,10 +974,17 @@ class VisaUserSubmissionChargebackConsumerCanceledMerchandiseCardholderCancellat class VisaUserSubmissionChargebackConsumerCanceledMerchandiseNotReturned(BaseModel): + """Not returned. Present if and only if `return_outcome` is `not_returned`.""" + pass class VisaUserSubmissionChargebackConsumerCanceledMerchandiseReturnAttempted(BaseModel): + """Return attempted. + + Present if and only if `return_outcome` is `return_attempted`. + """ + attempt_explanation: str """Attempt explanation.""" @@ -864,6 +1012,8 @@ class VisaUserSubmissionChargebackConsumerCanceledMerchandiseReturnAttempted(Bas class VisaUserSubmissionChargebackConsumerCanceledMerchandiseReturned(BaseModel): + """Returned. Present if and only if `return_outcome` is `returned`.""" + merchant_received_return_at: Optional[date] = None """Merchant received return at.""" @@ -889,6 +1039,11 @@ class VisaUserSubmissionChargebackConsumerCanceledMerchandiseReturned(BaseModel) class VisaUserSubmissionChargebackConsumerCanceledMerchandise(BaseModel): + """Canceled merchandise. + + Present if and only if `category` is `consumer_canceled_merchandise`. + """ + cardholder_cancellation: Optional[VisaUserSubmissionChargebackConsumerCanceledMerchandiseCardholderCancellation] = ( None ) @@ -929,6 +1084,8 @@ class VisaUserSubmissionChargebackConsumerCanceledMerchandise(BaseModel): class VisaUserSubmissionChargebackConsumerCanceledRecurringTransactionMerchantContactMethods(BaseModel): + """Merchant contact methods.""" + application_name: Optional[str] = None """Application name.""" @@ -949,6 +1106,11 @@ class VisaUserSubmissionChargebackConsumerCanceledRecurringTransactionMerchantCo class VisaUserSubmissionChargebackConsumerCanceledRecurringTransaction(BaseModel): + """Canceled recurring transaction. + + Present if and only if `category` is `consumer_canceled_recurring_transaction`. + """ + cancellation_target: Literal["account", "transaction"] """Cancellation target. @@ -967,6 +1129,8 @@ class VisaUserSubmissionChargebackConsumerCanceledRecurringTransaction(BaseModel class VisaUserSubmissionChargebackConsumerCanceledServicesCardholderCancellation(BaseModel): + """Cardholder cancellation.""" + canceled_at: date """Canceled at.""" @@ -982,6 +1146,11 @@ class VisaUserSubmissionChargebackConsumerCanceledServicesCardholderCancellation class VisaUserSubmissionChargebackConsumerCanceledServicesGuaranteedReservation(BaseModel): + """Guaranteed reservation explanation. + + Present if and only if `service_type` is `guaranteed_reservation`. + """ + explanation: Literal[ "cardholder_canceled_prior_to_service", "cardholder_cancellation_attempt_within_24_hours_of_confirmation", @@ -997,14 +1166,26 @@ class VisaUserSubmissionChargebackConsumerCanceledServicesGuaranteedReservation( class VisaUserSubmissionChargebackConsumerCanceledServicesOther(BaseModel): + """Other service type explanation. + + Present if and only if `service_type` is `other`. + """ + pass class VisaUserSubmissionChargebackConsumerCanceledServicesTimeshare(BaseModel): + """Timeshare explanation. Present if and only if `service_type` is `timeshare`.""" + pass class VisaUserSubmissionChargebackConsumerCanceledServices(BaseModel): + """Canceled services. + + Present if and only if `category` is `consumer_canceled_services`. + """ + cardholder_cancellation: VisaUserSubmissionChargebackConsumerCanceledServicesCardholderCancellation """Cardholder cancellation.""" @@ -1046,6 +1227,11 @@ class VisaUserSubmissionChargebackConsumerCanceledServices(BaseModel): class VisaUserSubmissionChargebackConsumerCounterfeitMerchandise(BaseModel): + """Counterfeit merchandise. + + Present if and only if `category` is `consumer_counterfeit_merchandise`. + """ + counterfeit_explanation: str """Counterfeit explanation.""" @@ -1060,6 +1246,11 @@ class VisaUserSubmissionChargebackConsumerCounterfeitMerchandise(BaseModel): class VisaUserSubmissionChargebackConsumerCreditNotProcessed(BaseModel): + """Credit not processed. + + Present if and only if `category` is `consumer_credit_not_processed`. + """ + canceled_or_returned_at: Optional[date] = None """Canceled or returned at.""" @@ -1068,10 +1259,17 @@ class VisaUserSubmissionChargebackConsumerCreditNotProcessed(BaseModel): class VisaUserSubmissionChargebackConsumerDamagedOrDefectiveMerchandiseNotReturned(BaseModel): + """Not returned. Present if and only if `return_outcome` is `not_returned`.""" + pass class VisaUserSubmissionChargebackConsumerDamagedOrDefectiveMerchandiseReturnAttempted(BaseModel): + """Return attempted. + + Present if and only if `return_outcome` is `return_attempted`. + """ + attempt_explanation: str """Attempt explanation.""" @@ -1099,6 +1297,8 @@ class VisaUserSubmissionChargebackConsumerDamagedOrDefectiveMerchandiseReturnAtt class VisaUserSubmissionChargebackConsumerDamagedOrDefectiveMerchandiseReturned(BaseModel): + """Returned. Present if and only if `return_outcome` is `returned`.""" + merchant_received_return_at: Optional[date] = None """Merchant received return at.""" @@ -1124,6 +1324,11 @@ class VisaUserSubmissionChargebackConsumerDamagedOrDefectiveMerchandiseReturned( class VisaUserSubmissionChargebackConsumerDamagedOrDefectiveMerchandise(BaseModel): + """Damaged or defective merchandise. + + Present if and only if `category` is `consumer_damaged_or_defective_merchandise`. + """ + merchant_resolution_attempted: Literal["attempted", "prohibited_by_local_law"] """Merchant resolution attempted. @@ -1159,10 +1364,17 @@ class VisaUserSubmissionChargebackConsumerDamagedOrDefectiveMerchandise(BaseMode class VisaUserSubmissionChargebackConsumerMerchandiseMisrepresentationNotReturned(BaseModel): + """Not returned. Present if and only if `return_outcome` is `not_returned`.""" + pass class VisaUserSubmissionChargebackConsumerMerchandiseMisrepresentationReturnAttempted(BaseModel): + """Return attempted. + + Present if and only if `return_outcome` is `return_attempted`. + """ + attempt_explanation: str """Attempt explanation.""" @@ -1190,6 +1402,8 @@ class VisaUserSubmissionChargebackConsumerMerchandiseMisrepresentationReturnAtte class VisaUserSubmissionChargebackConsumerMerchandiseMisrepresentationReturned(BaseModel): + """Returned. Present if and only if `return_outcome` is `returned`.""" + merchant_received_return_at: Optional[date] = None """Merchant received return at.""" @@ -1215,6 +1429,11 @@ class VisaUserSubmissionChargebackConsumerMerchandiseMisrepresentationReturned(B class VisaUserSubmissionChargebackConsumerMerchandiseMisrepresentation(BaseModel): + """Merchandise misrepresentation. + + Present if and only if `category` is `consumer_merchandise_misrepresentation`. + """ + merchant_resolution_attempted: Literal["attempted", "prohibited_by_local_law"] """Merchant resolution attempted. @@ -1253,6 +1472,11 @@ class VisaUserSubmissionChargebackConsumerMerchandiseMisrepresentation(BaseModel class VisaUserSubmissionChargebackConsumerMerchandiseNotAsDescribedReturnAttempted(BaseModel): + """Return attempted. + + Present if and only if `return_outcome` is `return_attempted`. + """ + attempt_explanation: str """Attempt explanation.""" @@ -1280,6 +1504,8 @@ class VisaUserSubmissionChargebackConsumerMerchandiseNotAsDescribedReturnAttempt class VisaUserSubmissionChargebackConsumerMerchandiseNotAsDescribedReturned(BaseModel): + """Returned. Present if and only if `return_outcome` is `returned`.""" + merchant_received_return_at: Optional[date] = None """Merchant received return at.""" @@ -1305,6 +1531,11 @@ class VisaUserSubmissionChargebackConsumerMerchandiseNotAsDescribedReturned(Base class VisaUserSubmissionChargebackConsumerMerchandiseNotAsDescribed(BaseModel): + """Merchandise not as described. + + Present if and only if `category` is `consumer_merchandise_not_as_described`. + """ + merchant_resolution_attempted: Literal["attempted", "prohibited_by_local_law"] """Merchant resolution attempted. @@ -1333,6 +1564,11 @@ class VisaUserSubmissionChargebackConsumerMerchandiseNotAsDescribed(BaseModel): class VisaUserSubmissionChargebackConsumerMerchandiseNotReceivedCardholderCancellationPriorToExpectedReceipt(BaseModel): + """Cardholder cancellation prior to expected receipt. + + Present if and only if `cancellation_outcome` is `cardholder_cancellation_prior_to_expected_receipt`. + """ + canceled_at: date """Canceled at.""" @@ -1341,15 +1577,24 @@ class VisaUserSubmissionChargebackConsumerMerchandiseNotReceivedCardholderCancel class VisaUserSubmissionChargebackConsumerMerchandiseNotReceivedDelayedNotReturned(BaseModel): + """Not returned. Present if and only if `return_outcome` is `not_returned`.""" + pass class VisaUserSubmissionChargebackConsumerMerchandiseNotReceivedDelayedReturnAttempted(BaseModel): + """Return attempted. + + Present if and only if `return_outcome` is `return_attempted`. + """ + attempted_at: date """Attempted at.""" class VisaUserSubmissionChargebackConsumerMerchandiseNotReceivedDelayedReturned(BaseModel): + """Returned. Present if and only if `return_outcome` is `returned`.""" + merchant_received_return_at: date """Merchant received return at.""" @@ -1358,6 +1603,8 @@ class VisaUserSubmissionChargebackConsumerMerchandiseNotReceivedDelayedReturned( class VisaUserSubmissionChargebackConsumerMerchandiseNotReceivedDelayed(BaseModel): + """Delayed. Present if and only if `delivery_issue` is `delayed`.""" + explanation: str """Explanation.""" @@ -1383,20 +1630,40 @@ class VisaUserSubmissionChargebackConsumerMerchandiseNotReceivedDelayed(BaseMode class VisaUserSubmissionChargebackConsumerMerchandiseNotReceivedDeliveredToWrongLocation(BaseModel): + """Delivered to wrong location. + + Present if and only if `delivery_issue` is `delivered_to_wrong_location`. + """ + agreed_location: str """Agreed location.""" class VisaUserSubmissionChargebackConsumerMerchandiseNotReceivedMerchantCancellation(BaseModel): + """Merchant cancellation. + + Present if and only if `cancellation_outcome` is `merchant_cancellation`. + """ + canceled_at: date """Canceled at.""" class VisaUserSubmissionChargebackConsumerMerchandiseNotReceivedNoCancellation(BaseModel): + """No cancellation. + + Present if and only if `cancellation_outcome` is `no_cancellation`. + """ + pass class VisaUserSubmissionChargebackConsumerMerchandiseNotReceived(BaseModel): + """Merchandise not received. + + Present if and only if `category` is `consumer_merchandise_not_received`. + """ + cancellation_outcome: Literal[ "cardholder_cancellation_prior_to_expected_receipt", "merchant_cancellation", "no_cancellation" ] @@ -1464,10 +1731,20 @@ class VisaUserSubmissionChargebackConsumerMerchandiseNotReceived(BaseModel): class VisaUserSubmissionChargebackConsumerNonReceiptOfCash(BaseModel): + """Non-receipt of cash. + + Present if and only if `category` is `consumer_non_receipt_of_cash`. + """ + pass class VisaUserSubmissionChargebackConsumerOriginalCreditTransactionNotAccepted(BaseModel): + """Original Credit Transaction (OCT) not accepted. + + Present if and only if `category` is `consumer_original_credit_transaction_not_accepted`. + """ + explanation: str """Explanation.""" @@ -1481,10 +1758,14 @@ class VisaUserSubmissionChargebackConsumerOriginalCreditTransactionNotAccepted(B class VisaUserSubmissionChargebackConsumerQualityMerchandiseNotReturned(BaseModel): + """Not returned. Present if and only if `return_outcome` is `not_returned`.""" + pass class VisaUserSubmissionChargebackConsumerQualityMerchandiseOngoingNegotiations(BaseModel): + """Ongoing negotiations. Exclude if there is no evidence of ongoing negotiations.""" + explanation: str """ Explanation of the previous ongoing negotiations between the cardholder and @@ -1499,6 +1780,11 @@ class VisaUserSubmissionChargebackConsumerQualityMerchandiseOngoingNegotiations( class VisaUserSubmissionChargebackConsumerQualityMerchandiseReturnAttempted(BaseModel): + """Return attempted. + + Present if and only if `return_outcome` is `return_attempted`. + """ + attempt_explanation: str """Attempt explanation.""" @@ -1526,6 +1812,8 @@ class VisaUserSubmissionChargebackConsumerQualityMerchandiseReturnAttempted(Base class VisaUserSubmissionChargebackConsumerQualityMerchandiseReturned(BaseModel): + """Returned. Present if and only if `return_outcome` is `returned`.""" + merchant_received_return_at: Optional[date] = None """Merchant received return at.""" @@ -1551,6 +1839,11 @@ class VisaUserSubmissionChargebackConsumerQualityMerchandiseReturned(BaseModel): class VisaUserSubmissionChargebackConsumerQualityMerchandise(BaseModel): + """Merchandise quality issue. + + Present if and only if `category` is `consumer_quality_merchandise`. + """ + expected_at: date """Expected at.""" @@ -1592,6 +1885,8 @@ class VisaUserSubmissionChargebackConsumerQualityMerchandise(BaseModel): class VisaUserSubmissionChargebackConsumerQualityServicesCardholderCancellation(BaseModel): + """Cardholder cancellation.""" + accepted_by_merchant: Literal["accepted", "not_accepted"] """Accepted by merchant. @@ -1607,6 +1902,8 @@ class VisaUserSubmissionChargebackConsumerQualityServicesCardholderCancellation( class VisaUserSubmissionChargebackConsumerQualityServicesOngoingNegotiations(BaseModel): + """Ongoing negotiations. Exclude if there is no evidence of ongoing negotiations.""" + explanation: str """ Explanation of the previous ongoing negotiations between the cardholder and @@ -1621,6 +1918,11 @@ class VisaUserSubmissionChargebackConsumerQualityServicesOngoingNegotiations(Bas class VisaUserSubmissionChargebackConsumerQualityServices(BaseModel): + """Services quality issue. + + Present if and only if `category` is `consumer_quality_services`. + """ + cardholder_cancellation: VisaUserSubmissionChargebackConsumerQualityServicesCardholderCancellation """Cardholder cancellation.""" @@ -1662,6 +1964,8 @@ class VisaUserSubmissionChargebackConsumerQualityServices(BaseModel): class VisaUserSubmissionChargebackConsumerServicesMisrepresentationCardholderCancellation(BaseModel): + """Cardholder cancellation.""" + accepted_by_merchant: Literal["accepted", "not_accepted"] """Accepted by merchant. @@ -1677,6 +1981,11 @@ class VisaUserSubmissionChargebackConsumerServicesMisrepresentationCardholderCan class VisaUserSubmissionChargebackConsumerServicesMisrepresentation(BaseModel): + """Services misrepresentation. + + Present if and only if `category` is `consumer_services_misrepresentation`. + """ + cardholder_cancellation: VisaUserSubmissionChargebackConsumerServicesMisrepresentationCardholderCancellation """Cardholder cancellation.""" @@ -1698,6 +2007,8 @@ class VisaUserSubmissionChargebackConsumerServicesMisrepresentation(BaseModel): class VisaUserSubmissionChargebackConsumerServicesNotAsDescribedCardholderCancellation(BaseModel): + """Cardholder cancellation.""" + accepted_by_merchant: Literal["accepted", "not_accepted"] """Accepted by merchant. @@ -1713,6 +2024,11 @@ class VisaUserSubmissionChargebackConsumerServicesNotAsDescribedCardholderCancel class VisaUserSubmissionChargebackConsumerServicesNotAsDescribed(BaseModel): + """Services not as described. + + Present if and only if `category` is `consumer_services_not_as_described`. + """ + cardholder_cancellation: VisaUserSubmissionChargebackConsumerServicesNotAsDescribedCardholderCancellation """Cardholder cancellation.""" @@ -1728,6 +2044,11 @@ class VisaUserSubmissionChargebackConsumerServicesNotAsDescribed(BaseModel): class VisaUserSubmissionChargebackConsumerServicesNotReceivedCardholderCancellationPriorToExpectedReceipt(BaseModel): + """Cardholder cancellation prior to expected receipt. + + Present if and only if `cancellation_outcome` is `cardholder_cancellation_prior_to_expected_receipt`. + """ + canceled_at: date """Canceled at.""" @@ -1736,15 +2057,30 @@ class VisaUserSubmissionChargebackConsumerServicesNotReceivedCardholderCancellat class VisaUserSubmissionChargebackConsumerServicesNotReceivedMerchantCancellation(BaseModel): + """Merchant cancellation. + + Present if and only if `cancellation_outcome` is `merchant_cancellation`. + """ + canceled_at: date """Canceled at.""" class VisaUserSubmissionChargebackConsumerServicesNotReceivedNoCancellation(BaseModel): + """No cancellation. + + Present if and only if `cancellation_outcome` is `no_cancellation`. + """ + pass class VisaUserSubmissionChargebackConsumerServicesNotReceived(BaseModel): + """Services not received. + + Present if and only if `category` is `consumer_services_not_received`. + """ + cancellation_outcome: Literal[ "cardholder_cancellation_prior_to_expected_receipt", "merchant_cancellation", "no_cancellation" ] @@ -1792,6 +2128,8 @@ class VisaUserSubmissionChargebackConsumerServicesNotReceived(BaseModel): class VisaUserSubmissionChargebackFraud(BaseModel): + """Fraud. Present if and only if `category` is `fraud`.""" + fraud_type: Literal[ "account_or_credentials_takeover", "card_not_received_as_issued", @@ -1822,16 +2160,28 @@ class VisaUserSubmissionChargebackFraud(BaseModel): class VisaUserSubmissionChargebackProcessingErrorDuplicateTransaction(BaseModel): + """Duplicate transaction. + + Present if and only if `error_reason` is `duplicate_transaction`. + """ + other_transaction_id: str """Other transaction ID.""" class VisaUserSubmissionChargebackProcessingErrorIncorrectAmount(BaseModel): + """Incorrect amount. Present if and only if `error_reason` is `incorrect_amount`.""" + expected_amount: int """Expected amount.""" class VisaUserSubmissionChargebackProcessingErrorPaidByOtherMeans(BaseModel): + """Paid by other means. + + Present if and only if `error_reason` is `paid_by_other_means`. + """ + other_form_of_payment_evidence: Literal[ "canceled_check", "card_transaction", "cash_receipt", "other", "statement", "voucher" ] @@ -1850,6 +2200,8 @@ class VisaUserSubmissionChargebackProcessingErrorPaidByOtherMeans(BaseModel): class VisaUserSubmissionChargebackProcessingError(BaseModel): + """Processing error. Present if and only if `category` is `processing_error`.""" + duplicate_transaction: Optional[VisaUserSubmissionChargebackProcessingErrorDuplicateTransaction] = None """Duplicate transaction. @@ -1882,6 +2234,11 @@ class VisaUserSubmissionChargebackProcessingError(BaseModel): class VisaUserSubmissionChargeback(BaseModel): + """A Visa Card Dispute Chargeback User Submission Chargeback Details object. + + This field will be present in the JSON response if and only if `category` is equal to `chargeback`. Contains the details specific to a Visa chargeback User Submission for a Card Dispute. + """ + authorization: Optional[VisaUserSubmissionChargebackAuthorization] = None """Authorization. Present if and only if `category` is `authorization`.""" @@ -2050,6 +2407,11 @@ class VisaUserSubmissionChargeback(BaseModel): class VisaUserSubmissionMerchantPrearbitrationDecline(BaseModel): + """A Visa Card Dispute Merchant Pre-Arbitration Decline User Submission object. + + This field will be present in the JSON response if and only if `category` is equal to `merchant_prearbitration_decline`. Contains the details specific to a merchant prearbitration decline Visa Card Dispute User Submission. + """ + reason: str """ The reason the user declined the merchant's request for pre-arbitration in their @@ -2058,6 +2420,8 @@ class VisaUserSubmissionMerchantPrearbitrationDecline(BaseModel): class VisaUserSubmissionUserPrearbitrationCategoryChange(BaseModel): + """Category change details for the pre-arbitration request, if requested.""" + category: Literal[ "authorization", "consumer_canceled_merchandise", @@ -2112,6 +2476,11 @@ class VisaUserSubmissionUserPrearbitrationCategoryChange(BaseModel): class VisaUserSubmissionUserPrearbitration(BaseModel): + """A Visa Card Dispute User-Initiated Pre-Arbitration User Submission object. + + This field will be present in the JSON response if and only if `category` is equal to `user_prearbitration`. Contains the details specific to a user-initiated pre-arbitration Visa Card Dispute User Submission. + """ + category_change: Optional[VisaUserSubmissionUserPrearbitrationCategoryChange] = None """Category change details for the pre-arbitration request, if requested.""" @@ -2210,6 +2579,11 @@ class VisaUserSubmission(BaseModel): class Visa(BaseModel): + """Card Dispute information for card payments processed over Visa's network. + + This field will be present in the JSON response if and only if `network` is equal to `visa`. + """ + network_events: List[VisaNetworkEvent] """The network events for the Card Dispute.""" @@ -2233,6 +2607,10 @@ class Visa(BaseModel): class Win(BaseModel): + """ + If the Card Dispute's status is `won`, this will contain details of the won dispute. + """ + won_at: datetime """ The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which @@ -2241,6 +2619,10 @@ class Win(BaseModel): class CardDispute(BaseModel): + """ + If unauthorized activity occurs on a card, you can create a Card Dispute and we'll work with the card networks to return the funds if appropriate. + """ + id: str """The Card Dispute identifier.""" diff --git a/src/increase/types/card_dispute_create_params.py b/src/increase/types/card_dispute_create_params.py index 089cf7add..0d52259cb 100644 --- a/src/increase/types/card_dispute_create_params.py +++ b/src/increase/types/card_dispute_create_params.py @@ -116,6 +116,8 @@ class AttachmentFile(TypedDict, total=False): class VisaAuthorization(TypedDict, total=False): + """Authorization. Required if and only if `category` is `authorization`.""" + account_status: Required[Literal["account_closed", "credit_problem", "fraud"]] """Account status. @@ -126,6 +128,8 @@ class VisaAuthorization(TypedDict, total=False): class VisaConsumerCanceledMerchandiseCardholderCancellation(TypedDict, total=False): + """Cardholder cancellation.""" + canceled_at: Required[Annotated[Union[str, date], PropertyInfo(format="iso8601")]] """Canceled at.""" @@ -148,10 +152,17 @@ class VisaConsumerCanceledMerchandiseCardholderCancellation(TypedDict, total=Fal class VisaConsumerCanceledMerchandiseNotReturned(TypedDict, total=False): + """Not returned. Required if and only if `return_outcome` is `not_returned`.""" + pass class VisaConsumerCanceledMerchandiseReturnAttempted(TypedDict, total=False): + """Return attempted. + + Required if and only if `return_outcome` is `return_attempted`. + """ + attempt_explanation: Required[str] """Attempt explanation.""" @@ -181,6 +192,8 @@ class VisaConsumerCanceledMerchandiseReturnAttempted(TypedDict, total=False): class VisaConsumerCanceledMerchandiseReturned(TypedDict, total=False): + """Returned. Required if and only if `return_outcome` is `returned`.""" + return_method: Required[Literal["dhl", "face_to_face", "fedex", "other", "postal_service", "ups"]] """Return method. @@ -206,6 +219,11 @@ class VisaConsumerCanceledMerchandiseReturned(TypedDict, total=False): class VisaConsumerCanceledMerchandise(TypedDict, total=False): + """Canceled merchandise. + + Required if and only if `category` is `consumer_canceled_merchandise`. + """ + merchant_resolution_attempted: Required[Literal["attempted", "prohibited_by_local_law"]] """Merchant resolution attempted. @@ -244,6 +262,8 @@ class VisaConsumerCanceledMerchandise(TypedDict, total=False): class VisaConsumerCanceledRecurringTransactionMerchantContactMethods(TypedDict, total=False): + """Merchant contact methods.""" + application_name: str """Application name.""" @@ -264,6 +284,11 @@ class VisaConsumerCanceledRecurringTransactionMerchantContactMethods(TypedDict, class VisaConsumerCanceledRecurringTransaction(TypedDict, total=False): + """Canceled recurring transaction. + + Required if and only if `category` is `consumer_canceled_recurring_transaction`. + """ + cancellation_target: Required[Literal["account", "transaction"]] """Cancellation target. @@ -282,6 +307,8 @@ class VisaConsumerCanceledRecurringTransaction(TypedDict, total=False): class VisaConsumerCanceledServicesCardholderCancellation(TypedDict, total=False): + """Cardholder cancellation.""" + canceled_at: Required[Annotated[Union[str, date], PropertyInfo(format="iso8601")]] """Canceled at.""" @@ -297,6 +324,11 @@ class VisaConsumerCanceledServicesCardholderCancellation(TypedDict, total=False) class VisaConsumerCanceledServicesGuaranteedReservation(TypedDict, total=False): + """Guaranteed reservation explanation. + + Required if and only if `service_type` is `guaranteed_reservation`. + """ + explanation: Required[ Literal[ "cardholder_canceled_prior_to_service", @@ -314,14 +346,26 @@ class VisaConsumerCanceledServicesGuaranteedReservation(TypedDict, total=False): class VisaConsumerCanceledServicesOther(TypedDict, total=False): + """Other service type explanation. + + Required if and only if `service_type` is `other`. + """ + pass class VisaConsumerCanceledServicesTimeshare(TypedDict, total=False): + """Timeshare explanation. Required if and only if `service_type` is `timeshare`.""" + pass class VisaConsumerCanceledServices(TypedDict, total=False): + """Canceled services. + + Required if and only if `category` is `consumer_canceled_services`. + """ + cardholder_cancellation: Required[VisaConsumerCanceledServicesCardholderCancellation] """Cardholder cancellation.""" @@ -363,6 +407,11 @@ class VisaConsumerCanceledServices(TypedDict, total=False): class VisaConsumerCounterfeitMerchandise(TypedDict, total=False): + """Counterfeit merchandise. + + Required if and only if `category` is `consumer_counterfeit_merchandise`. + """ + counterfeit_explanation: Required[str] """Counterfeit explanation.""" @@ -377,6 +426,11 @@ class VisaConsumerCounterfeitMerchandise(TypedDict, total=False): class VisaConsumerCreditNotProcessed(TypedDict, total=False): + """Credit not processed. + + Required if and only if `category` is `consumer_credit_not_processed`. + """ + canceled_or_returned_at: Annotated[Union[str, date], PropertyInfo(format="iso8601")] """Canceled or returned at.""" @@ -385,10 +439,17 @@ class VisaConsumerCreditNotProcessed(TypedDict, total=False): class VisaConsumerDamagedOrDefectiveMerchandiseNotReturned(TypedDict, total=False): + """Not returned. Required if and only if `return_outcome` is `not_returned`.""" + pass class VisaConsumerDamagedOrDefectiveMerchandiseReturnAttempted(TypedDict, total=False): + """Return attempted. + + Required if and only if `return_outcome` is `return_attempted`. + """ + attempt_explanation: Required[str] """Attempt explanation.""" @@ -418,6 +479,8 @@ class VisaConsumerDamagedOrDefectiveMerchandiseReturnAttempted(TypedDict, total= class VisaConsumerDamagedOrDefectiveMerchandiseReturned(TypedDict, total=False): + """Returned. Required if and only if `return_outcome` is `returned`.""" + return_method: Required[Literal["dhl", "face_to_face", "fedex", "other", "postal_service", "ups"]] """Return method. @@ -443,6 +506,11 @@ class VisaConsumerDamagedOrDefectiveMerchandiseReturned(TypedDict, total=False): class VisaConsumerDamagedOrDefectiveMerchandise(TypedDict, total=False): + """Damaged or defective merchandise. + + Required if and only if `category` is `consumer_damaged_or_defective_merchandise`. + """ + merchant_resolution_attempted: Required[Literal["attempted", "prohibited_by_local_law"]] """Merchant resolution attempted. @@ -478,10 +546,17 @@ class VisaConsumerDamagedOrDefectiveMerchandise(TypedDict, total=False): class VisaConsumerMerchandiseMisrepresentationNotReturned(TypedDict, total=False): + """Not returned. Required if and only if `return_outcome` is `not_returned`.""" + pass class VisaConsumerMerchandiseMisrepresentationReturnAttempted(TypedDict, total=False): + """Return attempted. + + Required if and only if `return_outcome` is `return_attempted`. + """ + attempt_explanation: Required[str] """Attempt explanation.""" @@ -511,6 +586,8 @@ class VisaConsumerMerchandiseMisrepresentationReturnAttempted(TypedDict, total=F class VisaConsumerMerchandiseMisrepresentationReturned(TypedDict, total=False): + """Returned. Required if and only if `return_outcome` is `returned`.""" + return_method: Required[Literal["dhl", "face_to_face", "fedex", "other", "postal_service", "ups"]] """Return method. @@ -536,6 +613,11 @@ class VisaConsumerMerchandiseMisrepresentationReturned(TypedDict, total=False): class VisaConsumerMerchandiseMisrepresentation(TypedDict, total=False): + """Merchandise misrepresentation. + + Required if and only if `category` is `consumer_merchandise_misrepresentation`. + """ + merchant_resolution_attempted: Required[Literal["attempted", "prohibited_by_local_law"]] """Merchant resolution attempted. @@ -574,6 +656,11 @@ class VisaConsumerMerchandiseMisrepresentation(TypedDict, total=False): class VisaConsumerMerchandiseNotAsDescribedReturnAttempted(TypedDict, total=False): + """Return attempted. + + Required if and only if `return_outcome` is `return_attempted`. + """ + attempt_explanation: Required[str] """Attempt explanation.""" @@ -603,6 +690,8 @@ class VisaConsumerMerchandiseNotAsDescribedReturnAttempted(TypedDict, total=Fals class VisaConsumerMerchandiseNotAsDescribedReturned(TypedDict, total=False): + """Returned. Required if and only if `return_outcome` is `returned`.""" + return_method: Required[Literal["dhl", "face_to_face", "fedex", "other", "postal_service", "ups"]] """Return method. @@ -628,6 +717,11 @@ class VisaConsumerMerchandiseNotAsDescribedReturned(TypedDict, total=False): class VisaConsumerMerchandiseNotAsDescribed(TypedDict, total=False): + """Merchandise not as described. + + Required if and only if `category` is `consumer_merchandise_not_as_described`. + """ + merchant_resolution_attempted: Required[Literal["attempted", "prohibited_by_local_law"]] """Merchant resolution attempted. @@ -656,6 +750,11 @@ class VisaConsumerMerchandiseNotAsDescribed(TypedDict, total=False): class VisaConsumerMerchandiseNotReceivedCardholderCancellationPriorToExpectedReceipt(TypedDict, total=False): + """Cardholder cancellation prior to expected receipt. + + Required if and only if `cancellation_outcome` is `cardholder_cancellation_prior_to_expected_receipt`. + """ + canceled_at: Required[Annotated[Union[str, date], PropertyInfo(format="iso8601")]] """Canceled at.""" @@ -664,15 +763,24 @@ class VisaConsumerMerchandiseNotReceivedCardholderCancellationPriorToExpectedRec class VisaConsumerMerchandiseNotReceivedDelayedNotReturned(TypedDict, total=False): + """Not returned. Required if and only if `return_outcome` is `not_returned`.""" + pass class VisaConsumerMerchandiseNotReceivedDelayedReturnAttempted(TypedDict, total=False): + """Return attempted. + + Required if and only if `return_outcome` is `return_attempted`. + """ + attempted_at: Required[Annotated[Union[str, date], PropertyInfo(format="iso8601")]] """Attempted at.""" class VisaConsumerMerchandiseNotReceivedDelayedReturned(TypedDict, total=False): + """Returned. Required if and only if `return_outcome` is `returned`.""" + merchant_received_return_at: Required[Annotated[Union[str, date], PropertyInfo(format="iso8601")]] """Merchant received return at.""" @@ -681,6 +789,8 @@ class VisaConsumerMerchandiseNotReceivedDelayedReturned(TypedDict, total=False): class VisaConsumerMerchandiseNotReceivedDelayed(TypedDict, total=False): + """Delayed. Required if and only if `delivery_issue` is `delayed`.""" + explanation: Required[str] """Explanation.""" @@ -706,20 +816,40 @@ class VisaConsumerMerchandiseNotReceivedDelayed(TypedDict, total=False): class VisaConsumerMerchandiseNotReceivedDeliveredToWrongLocation(TypedDict, total=False): + """Delivered to wrong location. + + Required if and only if `delivery_issue` is `delivered_to_wrong_location`. + """ + agreed_location: Required[str] """Agreed location.""" class VisaConsumerMerchandiseNotReceivedMerchantCancellation(TypedDict, total=False): + """Merchant cancellation. + + Required if and only if `cancellation_outcome` is `merchant_cancellation`. + """ + canceled_at: Required[Annotated[Union[str, date], PropertyInfo(format="iso8601")]] """Canceled at.""" class VisaConsumerMerchandiseNotReceivedNoCancellation(TypedDict, total=False): + """No cancellation. + + Required if and only if `cancellation_outcome` is `no_cancellation`. + """ + pass class VisaConsumerMerchandiseNotReceived(TypedDict, total=False): + """Merchandise not received. + + Required if and only if `category` is `consumer_merchandise_not_received`. + """ + cancellation_outcome: Required[ Literal["cardholder_cancellation_prior_to_expected_receipt", "merchant_cancellation", "no_cancellation"] ] @@ -783,10 +913,20 @@ class VisaConsumerMerchandiseNotReceived(TypedDict, total=False): class VisaConsumerNonReceiptOfCash(TypedDict, total=False): + """Non-receipt of cash. + + Required if and only if `category` is `consumer_non_receipt_of_cash`. + """ + pass class VisaConsumerOriginalCreditTransactionNotAccepted(TypedDict, total=False): + """Original Credit Transaction (OCT) not accepted. + + Required if and only if `category` is `consumer_original_credit_transaction_not_accepted`. + """ + explanation: Required[str] """Explanation.""" @@ -800,10 +940,14 @@ class VisaConsumerOriginalCreditTransactionNotAccepted(TypedDict, total=False): class VisaConsumerQualityMerchandiseNotReturned(TypedDict, total=False): + """Not returned. Required if and only if `return_outcome` is `not_returned`.""" + pass class VisaConsumerQualityMerchandiseOngoingNegotiations(TypedDict, total=False): + """Ongoing negotiations. Exclude if there is no evidence of ongoing negotiations.""" + explanation: Required[str] """ Explanation of the previous ongoing negotiations between the cardholder and @@ -818,6 +962,11 @@ class VisaConsumerQualityMerchandiseOngoingNegotiations(TypedDict, total=False): class VisaConsumerQualityMerchandiseReturnAttempted(TypedDict, total=False): + """Return attempted. + + Required if and only if `return_outcome` is `return_attempted`. + """ + attempt_explanation: Required[str] """Attempt explanation.""" @@ -847,6 +996,8 @@ class VisaConsumerQualityMerchandiseReturnAttempted(TypedDict, total=False): class VisaConsumerQualityMerchandiseReturned(TypedDict, total=False): + """Returned. Required if and only if `return_outcome` is `returned`.""" + return_method: Required[Literal["dhl", "face_to_face", "fedex", "other", "postal_service", "ups"]] """Return method. @@ -872,6 +1023,11 @@ class VisaConsumerQualityMerchandiseReturned(TypedDict, total=False): class VisaConsumerQualityMerchandise(TypedDict, total=False): + """Merchandise quality issue. + + Required if and only if `category` is `consumer_quality_merchandise`. + """ + expected_at: Required[Annotated[Union[str, date], PropertyInfo(format="iso8601")]] """Expected at.""" @@ -913,6 +1069,8 @@ class VisaConsumerQualityMerchandise(TypedDict, total=False): class VisaConsumerQualityServicesCardholderCancellation(TypedDict, total=False): + """Cardholder cancellation.""" + accepted_by_merchant: Required[Literal["accepted", "not_accepted"]] """Accepted by merchant. @@ -928,6 +1086,8 @@ class VisaConsumerQualityServicesCardholderCancellation(TypedDict, total=False): class VisaConsumerQualityServicesOngoingNegotiations(TypedDict, total=False): + """Ongoing negotiations. Exclude if there is no evidence of ongoing negotiations.""" + explanation: Required[str] """ Explanation of the previous ongoing negotiations between the cardholder and @@ -942,6 +1102,11 @@ class VisaConsumerQualityServicesOngoingNegotiations(TypedDict, total=False): class VisaConsumerQualityServices(TypedDict, total=False): + """Services quality issue. + + Required if and only if `category` is `consumer_quality_services`. + """ + cardholder_cancellation: Required[VisaConsumerQualityServicesCardholderCancellation] """Cardholder cancellation.""" @@ -983,6 +1148,8 @@ class VisaConsumerQualityServices(TypedDict, total=False): class VisaConsumerServicesMisrepresentationCardholderCancellation(TypedDict, total=False): + """Cardholder cancellation.""" + accepted_by_merchant: Required[Literal["accepted", "not_accepted"]] """Accepted by merchant. @@ -998,6 +1165,11 @@ class VisaConsumerServicesMisrepresentationCardholderCancellation(TypedDict, tot class VisaConsumerServicesMisrepresentation(TypedDict, total=False): + """Services misrepresentation. + + Required if and only if `category` is `consumer_services_misrepresentation`. + """ + cardholder_cancellation: Required[VisaConsumerServicesMisrepresentationCardholderCancellation] """Cardholder cancellation.""" @@ -1019,6 +1191,8 @@ class VisaConsumerServicesMisrepresentation(TypedDict, total=False): class VisaConsumerServicesNotAsDescribedCardholderCancellation(TypedDict, total=False): + """Cardholder cancellation.""" + accepted_by_merchant: Required[Literal["accepted", "not_accepted"]] """Accepted by merchant. @@ -1034,6 +1208,11 @@ class VisaConsumerServicesNotAsDescribedCardholderCancellation(TypedDict, total= class VisaConsumerServicesNotAsDescribed(TypedDict, total=False): + """Services not as described. + + Required if and only if `category` is `consumer_services_not_as_described`. + """ + cardholder_cancellation: Required[VisaConsumerServicesNotAsDescribedCardholderCancellation] """Cardholder cancellation.""" @@ -1049,6 +1228,11 @@ class VisaConsumerServicesNotAsDescribed(TypedDict, total=False): class VisaConsumerServicesNotReceivedCardholderCancellationPriorToExpectedReceipt(TypedDict, total=False): + """Cardholder cancellation prior to expected receipt. + + Required if and only if `cancellation_outcome` is `cardholder_cancellation_prior_to_expected_receipt`. + """ + canceled_at: Required[Annotated[Union[str, date], PropertyInfo(format="iso8601")]] """Canceled at.""" @@ -1057,15 +1241,30 @@ class VisaConsumerServicesNotReceivedCardholderCancellationPriorToExpectedReceip class VisaConsumerServicesNotReceivedMerchantCancellation(TypedDict, total=False): + """Merchant cancellation. + + Required if and only if `cancellation_outcome` is `merchant_cancellation`. + """ + canceled_at: Required[Annotated[Union[str, date], PropertyInfo(format="iso8601")]] """Canceled at.""" class VisaConsumerServicesNotReceivedNoCancellation(TypedDict, total=False): + """No cancellation. + + Required if and only if `cancellation_outcome` is `no_cancellation`. + """ + pass class VisaConsumerServicesNotReceived(TypedDict, total=False): + """Services not received. + + Required if and only if `category` is `consumer_services_not_received`. + """ + cancellation_outcome: Required[ Literal["cardholder_cancellation_prior_to_expected_receipt", "merchant_cancellation", "no_cancellation"] ] @@ -1113,6 +1312,8 @@ class VisaConsumerServicesNotReceived(TypedDict, total=False): class VisaFraud(TypedDict, total=False): + """Fraud. Required if and only if `category` is `fraud`.""" + fraud_type: Required[ Literal[ "account_or_credentials_takeover", @@ -1145,16 +1346,28 @@ class VisaFraud(TypedDict, total=False): class VisaProcessingErrorDuplicateTransaction(TypedDict, total=False): + """Duplicate transaction. + + Required if and only if `error_reason` is `duplicate_transaction`. + """ + other_transaction_id: Required[str] """Other transaction ID.""" class VisaProcessingErrorIncorrectAmount(TypedDict, total=False): + """Incorrect amount. Required if and only if `error_reason` is `incorrect_amount`.""" + expected_amount: Required[int] """Expected amount.""" class VisaProcessingErrorPaidByOtherMeans(TypedDict, total=False): + """Paid by other means. + + Required if and only if `error_reason` is `paid_by_other_means`. + """ + other_form_of_payment_evidence: Required[ Literal["canceled_check", "card_transaction", "cash_receipt", "other", "statement", "voucher"] ] @@ -1173,6 +1386,8 @@ class VisaProcessingErrorPaidByOtherMeans(TypedDict, total=False): class VisaProcessingError(TypedDict, total=False): + """Processing error. Required if and only if `category` is `processing_error`.""" + error_reason: Required[Literal["duplicate_transaction", "incorrect_amount", "paid_by_other_means"]] """Error reason. @@ -1205,6 +1420,11 @@ class VisaProcessingError(TypedDict, total=False): class Visa(TypedDict, total=False): + """The Visa-specific parameters for the dispute. + + Required if and only if `network` is `visa`. + """ + category: Required[ Literal[ "authorization", diff --git a/src/increase/types/card_dispute_submit_user_submission_params.py b/src/increase/types/card_dispute_submit_user_submission_params.py index 3384f3968..eb5eb847a 100644 --- a/src/increase/types/card_dispute_submit_user_submission_params.py +++ b/src/increase/types/card_dispute_submit_user_submission_params.py @@ -114,6 +114,8 @@ class AttachmentFile(TypedDict, total=False): class VisaChargebackAuthorization(TypedDict, total=False): + """Authorization. Required if and only if `category` is `authorization`.""" + account_status: Required[Literal["account_closed", "credit_problem", "fraud"]] """Account status. @@ -124,6 +126,8 @@ class VisaChargebackAuthorization(TypedDict, total=False): class VisaChargebackConsumerCanceledMerchandiseCardholderCancellation(TypedDict, total=False): + """Cardholder cancellation.""" + canceled_at: Required[Annotated[Union[str, date], PropertyInfo(format="iso8601")]] """Canceled at.""" @@ -146,10 +150,17 @@ class VisaChargebackConsumerCanceledMerchandiseCardholderCancellation(TypedDict, class VisaChargebackConsumerCanceledMerchandiseNotReturned(TypedDict, total=False): + """Not returned. Required if and only if `return_outcome` is `not_returned`.""" + pass class VisaChargebackConsumerCanceledMerchandiseReturnAttempted(TypedDict, total=False): + """Return attempted. + + Required if and only if `return_outcome` is `return_attempted`. + """ + attempt_explanation: Required[str] """Attempt explanation.""" @@ -179,6 +190,8 @@ class VisaChargebackConsumerCanceledMerchandiseReturnAttempted(TypedDict, total= class VisaChargebackConsumerCanceledMerchandiseReturned(TypedDict, total=False): + """Returned. Required if and only if `return_outcome` is `returned`.""" + return_method: Required[Literal["dhl", "face_to_face", "fedex", "other", "postal_service", "ups"]] """Return method. @@ -204,6 +217,11 @@ class VisaChargebackConsumerCanceledMerchandiseReturned(TypedDict, total=False): class VisaChargebackConsumerCanceledMerchandise(TypedDict, total=False): + """Canceled merchandise. + + Required if and only if `category` is `consumer_canceled_merchandise`. + """ + merchant_resolution_attempted: Required[Literal["attempted", "prohibited_by_local_law"]] """Merchant resolution attempted. @@ -242,6 +260,8 @@ class VisaChargebackConsumerCanceledMerchandise(TypedDict, total=False): class VisaChargebackConsumerCanceledRecurringTransactionMerchantContactMethods(TypedDict, total=False): + """Merchant contact methods.""" + application_name: str """Application name.""" @@ -262,6 +282,11 @@ class VisaChargebackConsumerCanceledRecurringTransactionMerchantContactMethods(T class VisaChargebackConsumerCanceledRecurringTransaction(TypedDict, total=False): + """Canceled recurring transaction. + + Required if and only if `category` is `consumer_canceled_recurring_transaction`. + """ + cancellation_target: Required[Literal["account", "transaction"]] """Cancellation target. @@ -280,6 +305,8 @@ class VisaChargebackConsumerCanceledRecurringTransaction(TypedDict, total=False) class VisaChargebackConsumerCanceledServicesCardholderCancellation(TypedDict, total=False): + """Cardholder cancellation.""" + canceled_at: Required[Annotated[Union[str, date], PropertyInfo(format="iso8601")]] """Canceled at.""" @@ -295,6 +322,11 @@ class VisaChargebackConsumerCanceledServicesCardholderCancellation(TypedDict, to class VisaChargebackConsumerCanceledServicesGuaranteedReservation(TypedDict, total=False): + """Guaranteed reservation explanation. + + Required if and only if `service_type` is `guaranteed_reservation`. + """ + explanation: Required[ Literal[ "cardholder_canceled_prior_to_service", @@ -312,14 +344,26 @@ class VisaChargebackConsumerCanceledServicesGuaranteedReservation(TypedDict, tot class VisaChargebackConsumerCanceledServicesOther(TypedDict, total=False): + """Other service type explanation. + + Required if and only if `service_type` is `other`. + """ + pass class VisaChargebackConsumerCanceledServicesTimeshare(TypedDict, total=False): + """Timeshare explanation. Required if and only if `service_type` is `timeshare`.""" + pass class VisaChargebackConsumerCanceledServices(TypedDict, total=False): + """Canceled services. + + Required if and only if `category` is `consumer_canceled_services`. + """ + cardholder_cancellation: Required[VisaChargebackConsumerCanceledServicesCardholderCancellation] """Cardholder cancellation.""" @@ -361,6 +405,11 @@ class VisaChargebackConsumerCanceledServices(TypedDict, total=False): class VisaChargebackConsumerCounterfeitMerchandise(TypedDict, total=False): + """Counterfeit merchandise. + + Required if and only if `category` is `consumer_counterfeit_merchandise`. + """ + counterfeit_explanation: Required[str] """Counterfeit explanation.""" @@ -375,6 +424,11 @@ class VisaChargebackConsumerCounterfeitMerchandise(TypedDict, total=False): class VisaChargebackConsumerCreditNotProcessed(TypedDict, total=False): + """Credit not processed. + + Required if and only if `category` is `consumer_credit_not_processed`. + """ + canceled_or_returned_at: Annotated[Union[str, date], PropertyInfo(format="iso8601")] """Canceled or returned at.""" @@ -383,10 +437,17 @@ class VisaChargebackConsumerCreditNotProcessed(TypedDict, total=False): class VisaChargebackConsumerDamagedOrDefectiveMerchandiseNotReturned(TypedDict, total=False): + """Not returned. Required if and only if `return_outcome` is `not_returned`.""" + pass class VisaChargebackConsumerDamagedOrDefectiveMerchandiseReturnAttempted(TypedDict, total=False): + """Return attempted. + + Required if and only if `return_outcome` is `return_attempted`. + """ + attempt_explanation: Required[str] """Attempt explanation.""" @@ -416,6 +477,8 @@ class VisaChargebackConsumerDamagedOrDefectiveMerchandiseReturnAttempted(TypedDi class VisaChargebackConsumerDamagedOrDefectiveMerchandiseReturned(TypedDict, total=False): + """Returned. Required if and only if `return_outcome` is `returned`.""" + return_method: Required[Literal["dhl", "face_to_face", "fedex", "other", "postal_service", "ups"]] """Return method. @@ -441,6 +504,11 @@ class VisaChargebackConsumerDamagedOrDefectiveMerchandiseReturned(TypedDict, tot class VisaChargebackConsumerDamagedOrDefectiveMerchandise(TypedDict, total=False): + """Damaged or defective merchandise. + + Required if and only if `category` is `consumer_damaged_or_defective_merchandise`. + """ + merchant_resolution_attempted: Required[Literal["attempted", "prohibited_by_local_law"]] """Merchant resolution attempted. @@ -476,10 +544,17 @@ class VisaChargebackConsumerDamagedOrDefectiveMerchandise(TypedDict, total=False class VisaChargebackConsumerMerchandiseMisrepresentationNotReturned(TypedDict, total=False): + """Not returned. Required if and only if `return_outcome` is `not_returned`.""" + pass class VisaChargebackConsumerMerchandiseMisrepresentationReturnAttempted(TypedDict, total=False): + """Return attempted. + + Required if and only if `return_outcome` is `return_attempted`. + """ + attempt_explanation: Required[str] """Attempt explanation.""" @@ -509,6 +584,8 @@ class VisaChargebackConsumerMerchandiseMisrepresentationReturnAttempted(TypedDic class VisaChargebackConsumerMerchandiseMisrepresentationReturned(TypedDict, total=False): + """Returned. Required if and only if `return_outcome` is `returned`.""" + return_method: Required[Literal["dhl", "face_to_face", "fedex", "other", "postal_service", "ups"]] """Return method. @@ -534,6 +611,11 @@ class VisaChargebackConsumerMerchandiseMisrepresentationReturned(TypedDict, tota class VisaChargebackConsumerMerchandiseMisrepresentation(TypedDict, total=False): + """Merchandise misrepresentation. + + Required if and only if `category` is `consumer_merchandise_misrepresentation`. + """ + merchant_resolution_attempted: Required[Literal["attempted", "prohibited_by_local_law"]] """Merchant resolution attempted. @@ -572,6 +654,11 @@ class VisaChargebackConsumerMerchandiseMisrepresentation(TypedDict, total=False) class VisaChargebackConsumerMerchandiseNotAsDescribedReturnAttempted(TypedDict, total=False): + """Return attempted. + + Required if and only if `return_outcome` is `return_attempted`. + """ + attempt_explanation: Required[str] """Attempt explanation.""" @@ -601,6 +688,8 @@ class VisaChargebackConsumerMerchandiseNotAsDescribedReturnAttempted(TypedDict, class VisaChargebackConsumerMerchandiseNotAsDescribedReturned(TypedDict, total=False): + """Returned. Required if and only if `return_outcome` is `returned`.""" + return_method: Required[Literal["dhl", "face_to_face", "fedex", "other", "postal_service", "ups"]] """Return method. @@ -626,6 +715,11 @@ class VisaChargebackConsumerMerchandiseNotAsDescribedReturned(TypedDict, total=F class VisaChargebackConsumerMerchandiseNotAsDescribed(TypedDict, total=False): + """Merchandise not as described. + + Required if and only if `category` is `consumer_merchandise_not_as_described`. + """ + merchant_resolution_attempted: Required[Literal["attempted", "prohibited_by_local_law"]] """Merchant resolution attempted. @@ -654,6 +748,11 @@ class VisaChargebackConsumerMerchandiseNotAsDescribed(TypedDict, total=False): class VisaChargebackConsumerMerchandiseNotReceivedCardholderCancellationPriorToExpectedReceipt(TypedDict, total=False): + """Cardholder cancellation prior to expected receipt. + + Required if and only if `cancellation_outcome` is `cardholder_cancellation_prior_to_expected_receipt`. + """ + canceled_at: Required[Annotated[Union[str, date], PropertyInfo(format="iso8601")]] """Canceled at.""" @@ -662,15 +761,24 @@ class VisaChargebackConsumerMerchandiseNotReceivedCardholderCancellationPriorToE class VisaChargebackConsumerMerchandiseNotReceivedDelayedNotReturned(TypedDict, total=False): + """Not returned. Required if and only if `return_outcome` is `not_returned`.""" + pass class VisaChargebackConsumerMerchandiseNotReceivedDelayedReturnAttempted(TypedDict, total=False): + """Return attempted. + + Required if and only if `return_outcome` is `return_attempted`. + """ + attempted_at: Required[Annotated[Union[str, date], PropertyInfo(format="iso8601")]] """Attempted at.""" class VisaChargebackConsumerMerchandiseNotReceivedDelayedReturned(TypedDict, total=False): + """Returned. Required if and only if `return_outcome` is `returned`.""" + merchant_received_return_at: Required[Annotated[Union[str, date], PropertyInfo(format="iso8601")]] """Merchant received return at.""" @@ -679,6 +787,8 @@ class VisaChargebackConsumerMerchandiseNotReceivedDelayedReturned(TypedDict, tot class VisaChargebackConsumerMerchandiseNotReceivedDelayed(TypedDict, total=False): + """Delayed. Required if and only if `delivery_issue` is `delayed`.""" + explanation: Required[str] """Explanation.""" @@ -704,20 +814,40 @@ class VisaChargebackConsumerMerchandiseNotReceivedDelayed(TypedDict, total=False class VisaChargebackConsumerMerchandiseNotReceivedDeliveredToWrongLocation(TypedDict, total=False): + """Delivered to wrong location. + + Required if and only if `delivery_issue` is `delivered_to_wrong_location`. + """ + agreed_location: Required[str] """Agreed location.""" class VisaChargebackConsumerMerchandiseNotReceivedMerchantCancellation(TypedDict, total=False): + """Merchant cancellation. + + Required if and only if `cancellation_outcome` is `merchant_cancellation`. + """ + canceled_at: Required[Annotated[Union[str, date], PropertyInfo(format="iso8601")]] """Canceled at.""" class VisaChargebackConsumerMerchandiseNotReceivedNoCancellation(TypedDict, total=False): + """No cancellation. + + Required if and only if `cancellation_outcome` is `no_cancellation`. + """ + pass class VisaChargebackConsumerMerchandiseNotReceived(TypedDict, total=False): + """Merchandise not received. + + Required if and only if `category` is `consumer_merchandise_not_received`. + """ + cancellation_outcome: Required[ Literal["cardholder_cancellation_prior_to_expected_receipt", "merchant_cancellation", "no_cancellation"] ] @@ -781,10 +911,20 @@ class VisaChargebackConsumerMerchandiseNotReceived(TypedDict, total=False): class VisaChargebackConsumerNonReceiptOfCash(TypedDict, total=False): + """Non-receipt of cash. + + Required if and only if `category` is `consumer_non_receipt_of_cash`. + """ + pass class VisaChargebackConsumerOriginalCreditTransactionNotAccepted(TypedDict, total=False): + """Original Credit Transaction (OCT) not accepted. + + Required if and only if `category` is `consumer_original_credit_transaction_not_accepted`. + """ + explanation: Required[str] """Explanation.""" @@ -798,10 +938,14 @@ class VisaChargebackConsumerOriginalCreditTransactionNotAccepted(TypedDict, tota class VisaChargebackConsumerQualityMerchandiseNotReturned(TypedDict, total=False): + """Not returned. Required if and only if `return_outcome` is `not_returned`.""" + pass class VisaChargebackConsumerQualityMerchandiseOngoingNegotiations(TypedDict, total=False): + """Ongoing negotiations. Exclude if there is no evidence of ongoing negotiations.""" + explanation: Required[str] """ Explanation of the previous ongoing negotiations between the cardholder and @@ -816,6 +960,11 @@ class VisaChargebackConsumerQualityMerchandiseOngoingNegotiations(TypedDict, tot class VisaChargebackConsumerQualityMerchandiseReturnAttempted(TypedDict, total=False): + """Return attempted. + + Required if and only if `return_outcome` is `return_attempted`. + """ + attempt_explanation: Required[str] """Attempt explanation.""" @@ -845,6 +994,8 @@ class VisaChargebackConsumerQualityMerchandiseReturnAttempted(TypedDict, total=F class VisaChargebackConsumerQualityMerchandiseReturned(TypedDict, total=False): + """Returned. Required if and only if `return_outcome` is `returned`.""" + return_method: Required[Literal["dhl", "face_to_face", "fedex", "other", "postal_service", "ups"]] """Return method. @@ -870,6 +1021,11 @@ class VisaChargebackConsumerQualityMerchandiseReturned(TypedDict, total=False): class VisaChargebackConsumerQualityMerchandise(TypedDict, total=False): + """Merchandise quality issue. + + Required if and only if `category` is `consumer_quality_merchandise`. + """ + expected_at: Required[Annotated[Union[str, date], PropertyInfo(format="iso8601")]] """Expected at.""" @@ -911,6 +1067,8 @@ class VisaChargebackConsumerQualityMerchandise(TypedDict, total=False): class VisaChargebackConsumerQualityServicesCardholderCancellation(TypedDict, total=False): + """Cardholder cancellation.""" + accepted_by_merchant: Required[Literal["accepted", "not_accepted"]] """Accepted by merchant. @@ -926,6 +1084,8 @@ class VisaChargebackConsumerQualityServicesCardholderCancellation(TypedDict, tot class VisaChargebackConsumerQualityServicesOngoingNegotiations(TypedDict, total=False): + """Ongoing negotiations. Exclude if there is no evidence of ongoing negotiations.""" + explanation: Required[str] """ Explanation of the previous ongoing negotiations between the cardholder and @@ -940,6 +1100,11 @@ class VisaChargebackConsumerQualityServicesOngoingNegotiations(TypedDict, total= class VisaChargebackConsumerQualityServices(TypedDict, total=False): + """Services quality issue. + + Required if and only if `category` is `consumer_quality_services`. + """ + cardholder_cancellation: Required[VisaChargebackConsumerQualityServicesCardholderCancellation] """Cardholder cancellation.""" @@ -981,6 +1146,8 @@ class VisaChargebackConsumerQualityServices(TypedDict, total=False): class VisaChargebackConsumerServicesMisrepresentationCardholderCancellation(TypedDict, total=False): + """Cardholder cancellation.""" + accepted_by_merchant: Required[Literal["accepted", "not_accepted"]] """Accepted by merchant. @@ -996,6 +1163,11 @@ class VisaChargebackConsumerServicesMisrepresentationCardholderCancellation(Type class VisaChargebackConsumerServicesMisrepresentation(TypedDict, total=False): + """Services misrepresentation. + + Required if and only if `category` is `consumer_services_misrepresentation`. + """ + cardholder_cancellation: Required[VisaChargebackConsumerServicesMisrepresentationCardholderCancellation] """Cardholder cancellation.""" @@ -1017,6 +1189,8 @@ class VisaChargebackConsumerServicesMisrepresentation(TypedDict, total=False): class VisaChargebackConsumerServicesNotAsDescribedCardholderCancellation(TypedDict, total=False): + """Cardholder cancellation.""" + accepted_by_merchant: Required[Literal["accepted", "not_accepted"]] """Accepted by merchant. @@ -1032,6 +1206,11 @@ class VisaChargebackConsumerServicesNotAsDescribedCardholderCancellation(TypedDi class VisaChargebackConsumerServicesNotAsDescribed(TypedDict, total=False): + """Services not as described. + + Required if and only if `category` is `consumer_services_not_as_described`. + """ + cardholder_cancellation: Required[VisaChargebackConsumerServicesNotAsDescribedCardholderCancellation] """Cardholder cancellation.""" @@ -1047,6 +1226,11 @@ class VisaChargebackConsumerServicesNotAsDescribed(TypedDict, total=False): class VisaChargebackConsumerServicesNotReceivedCardholderCancellationPriorToExpectedReceipt(TypedDict, total=False): + """Cardholder cancellation prior to expected receipt. + + Required if and only if `cancellation_outcome` is `cardholder_cancellation_prior_to_expected_receipt`. + """ + canceled_at: Required[Annotated[Union[str, date], PropertyInfo(format="iso8601")]] """Canceled at.""" @@ -1055,15 +1239,30 @@ class VisaChargebackConsumerServicesNotReceivedCardholderCancellationPriorToExpe class VisaChargebackConsumerServicesNotReceivedMerchantCancellation(TypedDict, total=False): + """Merchant cancellation. + + Required if and only if `cancellation_outcome` is `merchant_cancellation`. + """ + canceled_at: Required[Annotated[Union[str, date], PropertyInfo(format="iso8601")]] """Canceled at.""" class VisaChargebackConsumerServicesNotReceivedNoCancellation(TypedDict, total=False): + """No cancellation. + + Required if and only if `cancellation_outcome` is `no_cancellation`. + """ + pass class VisaChargebackConsumerServicesNotReceived(TypedDict, total=False): + """Services not received. + + Required if and only if `category` is `consumer_services_not_received`. + """ + cancellation_outcome: Required[ Literal["cardholder_cancellation_prior_to_expected_receipt", "merchant_cancellation", "no_cancellation"] ] @@ -1111,6 +1310,8 @@ class VisaChargebackConsumerServicesNotReceived(TypedDict, total=False): class VisaChargebackFraud(TypedDict, total=False): + """Fraud. Required if and only if `category` is `fraud`.""" + fraud_type: Required[ Literal[ "account_or_credentials_takeover", @@ -1143,16 +1344,28 @@ class VisaChargebackFraud(TypedDict, total=False): class VisaChargebackProcessingErrorDuplicateTransaction(TypedDict, total=False): + """Duplicate transaction. + + Required if and only if `error_reason` is `duplicate_transaction`. + """ + other_transaction_id: Required[str] """Other transaction ID.""" class VisaChargebackProcessingErrorIncorrectAmount(TypedDict, total=False): + """Incorrect amount. Required if and only if `error_reason` is `incorrect_amount`.""" + expected_amount: Required[int] """Expected amount.""" class VisaChargebackProcessingErrorPaidByOtherMeans(TypedDict, total=False): + """Paid by other means. + + Required if and only if `error_reason` is `paid_by_other_means`. + """ + other_form_of_payment_evidence: Required[ Literal["canceled_check", "card_transaction", "cash_receipt", "other", "statement", "voucher"] ] @@ -1171,6 +1384,8 @@ class VisaChargebackProcessingErrorPaidByOtherMeans(TypedDict, total=False): class VisaChargebackProcessingError(TypedDict, total=False): + """Processing error. Required if and only if `category` is `processing_error`.""" + error_reason: Required[Literal["duplicate_transaction", "incorrect_amount", "paid_by_other_means"]] """Error reason. @@ -1203,6 +1418,11 @@ class VisaChargebackProcessingError(TypedDict, total=False): class VisaChargeback(TypedDict, total=False): + """The chargeback details for the user submission. + + Required if and only if `category` is `chargeback`. + """ + category: Required[ Literal[ "authorization", @@ -1363,11 +1583,21 @@ class VisaChargeback(TypedDict, total=False): class VisaMerchantPrearbitrationDecline(TypedDict, total=False): + """The merchant pre-arbitration decline details for the user submission. + + Required if and only if `category` is `merchant_prearbitration_decline`. + """ + reason: Required[str] """The reason for declining the merchant's pre-arbitration request.""" class VisaUserPrearbitrationCategoryChange(TypedDict, total=False): + """Category change details for the pre-arbitration request. + + Should only be populated if the category of the dispute is being changed as part of the pre-arbitration request. + """ + category: Required[ Literal[ "authorization", @@ -1423,6 +1653,11 @@ class VisaUserPrearbitrationCategoryChange(TypedDict, total=False): class VisaUserPrearbitration(TypedDict, total=False): + """The user pre-arbitration details for the user submission. + + Required if and only if `category` is `user_prearbitration`. + """ + reason: Required[str] """The reason for the pre-arbitration request.""" @@ -1435,6 +1670,11 @@ class VisaUserPrearbitration(TypedDict, total=False): class Visa(TypedDict, total=False): + """The Visa-specific parameters for the dispute. + + Required if and only if `network` is `visa`. + """ + category: Required[Literal["chargeback", "merchant_prearbitration_decline", "user_prearbitration"]] """The category of the user submission. diff --git a/src/increase/types/card_iframe_url.py b/src/increase/types/card_iframe_url.py index e4da2319c..5449f0823 100644 --- a/src/increase/types/card_iframe_url.py +++ b/src/increase/types/card_iframe_url.py @@ -9,6 +9,8 @@ class CardIframeURL(BaseModel): + """An object containing the iframe URL for a Card.""" + expires_at: datetime """The time the iframe URL will expire.""" diff --git a/src/increase/types/card_payment.py b/src/increase/types/card_payment.py index 35434edac..5f3c177da 100644 --- a/src/increase/types/card_payment.py +++ b/src/increase/types/card_payment.py @@ -152,6 +152,8 @@ class ElementCardAuthenticationChallengeAttempt(BaseModel): class ElementCardAuthenticationChallenge(BaseModel): + """Details about the challenge, if one was requested.""" + attempts: List[ElementCardAuthenticationChallengeAttempt] """Details about the challenge verification attempts, if any happened.""" @@ -180,6 +182,11 @@ class ElementCardAuthenticationChallenge(BaseModel): class ElementCardAuthentication(BaseModel): + """A Card Authentication object. + + This field will be present in the JSON response if and only if `category` is equal to `card_authentication`. Card Authentications are attempts to authenticate a transaction or a card with 3DS. + """ + id: str """The Card Authentication identifier.""" @@ -316,6 +323,8 @@ def __getattr__(self, attr: str) -> object: ... class ElementCardAuthorizationAdditionalAmountsClinic(BaseModel): + """The part of this transaction amount that was for clinic-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -331,6 +340,8 @@ class ElementCardAuthorizationAdditionalAmountsClinic(BaseModel): class ElementCardAuthorizationAdditionalAmountsDental(BaseModel): + """The part of this transaction amount that was for dental-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -346,6 +357,8 @@ class ElementCardAuthorizationAdditionalAmountsDental(BaseModel): class ElementCardAuthorizationAdditionalAmountsOriginal(BaseModel): + """The original pre-authorized amount.""" + amount: int """The amount in minor units of the `currency` field. @@ -361,6 +374,8 @@ class ElementCardAuthorizationAdditionalAmountsOriginal(BaseModel): class ElementCardAuthorizationAdditionalAmountsPrescription(BaseModel): + """The part of this transaction amount that was for healthcare prescriptions.""" + amount: int """The amount in minor units of the `currency` field. @@ -376,6 +391,8 @@ class ElementCardAuthorizationAdditionalAmountsPrescription(BaseModel): class ElementCardAuthorizationAdditionalAmountsSurcharge(BaseModel): + """The surcharge amount charged for this transaction by the merchant.""" + amount: int """The amount in minor units of the `currency` field. @@ -391,6 +408,10 @@ class ElementCardAuthorizationAdditionalAmountsSurcharge(BaseModel): class ElementCardAuthorizationAdditionalAmountsTotalCumulative(BaseModel): + """ + The total amount of a series of incremental authorizations, optionally provided. + """ + amount: int """The amount in minor units of the `currency` field. @@ -406,6 +427,8 @@ class ElementCardAuthorizationAdditionalAmountsTotalCumulative(BaseModel): class ElementCardAuthorizationAdditionalAmountsTotalHealthcare(BaseModel): + """The total amount of healthcare-related additional amounts.""" + amount: int """The amount in minor units of the `currency` field. @@ -421,6 +444,8 @@ class ElementCardAuthorizationAdditionalAmountsTotalHealthcare(BaseModel): class ElementCardAuthorizationAdditionalAmountsTransit(BaseModel): + """The part of this transaction amount that was for transit-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -436,6 +461,8 @@ class ElementCardAuthorizationAdditionalAmountsTransit(BaseModel): class ElementCardAuthorizationAdditionalAmountsUnknown(BaseModel): + """An unknown additional amount.""" + amount: int """The amount in minor units of the `currency` field. @@ -451,6 +478,8 @@ class ElementCardAuthorizationAdditionalAmountsUnknown(BaseModel): class ElementCardAuthorizationAdditionalAmountsVision(BaseModel): + """The part of this transaction amount that was for vision-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -466,6 +495,10 @@ class ElementCardAuthorizationAdditionalAmountsVision(BaseModel): class ElementCardAuthorizationAdditionalAmounts(BaseModel): + """ + Additional amounts associated with the card authorization, such as ATM surcharges fees. These are usually a subset of the `amount` field and are used to provide more detailed information about the transaction. + """ + clinic: Optional[ElementCardAuthorizationAdditionalAmountsClinic] = None """The part of this transaction amount that was for clinic-related services.""" @@ -500,10 +533,14 @@ class ElementCardAuthorizationAdditionalAmounts(BaseModel): class ElementCardAuthorizationNetworkDetailsPulse(BaseModel): + """Fields specific to the `pulse` network.""" + pass class ElementCardAuthorizationNetworkDetailsVisa(BaseModel): + """Fields specific to the `visa` network.""" + electronic_commerce_indicator: Optional[ Literal[ "mail_phone_order", @@ -622,6 +659,8 @@ class ElementCardAuthorizationNetworkDetailsVisa(BaseModel): class ElementCardAuthorizationNetworkDetails(BaseModel): + """Fields specific to the `network`.""" + category: Literal["visa", "pulse"] """The payment network used to process this card authorization. @@ -637,6 +676,8 @@ class ElementCardAuthorizationNetworkDetails(BaseModel): class ElementCardAuthorizationNetworkIdentifiers(BaseModel): + """Network-specific identifiers for a specific request or transaction.""" + authorization_identification_response: Optional[str] = None """ The randomly generated 6-character Authorization Identification Response code @@ -664,6 +705,10 @@ class ElementCardAuthorizationNetworkIdentifiers(BaseModel): class ElementCardAuthorizationVerificationCardVerificationCode(BaseModel): + """ + Fields related to verification of the Card Verification Code, a 3-digit code on the back of the card. + """ + result: Literal["not_checked", "match", "no_match"] """The result of verifying the Card Verification Code. @@ -675,6 +720,10 @@ class ElementCardAuthorizationVerificationCardVerificationCode(BaseModel): class ElementCardAuthorizationVerificationCardholderAddress(BaseModel): + """ + Cardholder address provided in the authorization request and the address on file we verified it against. + """ + actual_line1: Optional[str] = None """Line 1 of the address on file for the cardholder.""" @@ -714,6 +763,8 @@ class ElementCardAuthorizationVerificationCardholderAddress(BaseModel): class ElementCardAuthorizationVerification(BaseModel): + """Fields related to verification of cardholder-provided values.""" + card_verification_code: ElementCardAuthorizationVerificationCardVerificationCode """ Fields related to verification of the Card Verification Code, a 3-digit code on @@ -728,6 +779,11 @@ class ElementCardAuthorizationVerification(BaseModel): class ElementCardAuthorization(BaseModel): + """A Card Authorization object. + + This field will be present in the JSON response if and only if `category` is equal to `card_authorization`. Card Authorizations are temporary holds placed on a customers funds with the intent to later clear a transaction. + """ + id: str """The Card Authorization identifier.""" @@ -924,6 +980,11 @@ def __getattr__(self, attr: str) -> object: ... class ElementCardAuthorizationExpiration(BaseModel): + """A Card Authorization Expiration object. + + This field will be present in the JSON response if and only if `category` is equal to `card_authorization_expiration`. Card Authorization Expirations are cancellations of authorizations that were never settled by the acquirer. + """ + id: str """The Card Authorization Expiration identifier.""" @@ -971,6 +1032,8 @@ def __getattr__(self, attr: str) -> object: ... class ElementCardDeclineAdditionalAmountsClinic(BaseModel): + """The part of this transaction amount that was for clinic-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -986,6 +1049,8 @@ class ElementCardDeclineAdditionalAmountsClinic(BaseModel): class ElementCardDeclineAdditionalAmountsDental(BaseModel): + """The part of this transaction amount that was for dental-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -1001,6 +1066,8 @@ class ElementCardDeclineAdditionalAmountsDental(BaseModel): class ElementCardDeclineAdditionalAmountsOriginal(BaseModel): + """The original pre-authorized amount.""" + amount: int """The amount in minor units of the `currency` field. @@ -1016,6 +1083,8 @@ class ElementCardDeclineAdditionalAmountsOriginal(BaseModel): class ElementCardDeclineAdditionalAmountsPrescription(BaseModel): + """The part of this transaction amount that was for healthcare prescriptions.""" + amount: int """The amount in minor units of the `currency` field. @@ -1031,6 +1100,8 @@ class ElementCardDeclineAdditionalAmountsPrescription(BaseModel): class ElementCardDeclineAdditionalAmountsSurcharge(BaseModel): + """The surcharge amount charged for this transaction by the merchant.""" + amount: int """The amount in minor units of the `currency` field. @@ -1046,6 +1117,10 @@ class ElementCardDeclineAdditionalAmountsSurcharge(BaseModel): class ElementCardDeclineAdditionalAmountsTotalCumulative(BaseModel): + """ + The total amount of a series of incremental authorizations, optionally provided. + """ + amount: int """The amount in minor units of the `currency` field. @@ -1061,6 +1136,8 @@ class ElementCardDeclineAdditionalAmountsTotalCumulative(BaseModel): class ElementCardDeclineAdditionalAmountsTotalHealthcare(BaseModel): + """The total amount of healthcare-related additional amounts.""" + amount: int """The amount in minor units of the `currency` field. @@ -1076,6 +1153,8 @@ class ElementCardDeclineAdditionalAmountsTotalHealthcare(BaseModel): class ElementCardDeclineAdditionalAmountsTransit(BaseModel): + """The part of this transaction amount that was for transit-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -1091,6 +1170,8 @@ class ElementCardDeclineAdditionalAmountsTransit(BaseModel): class ElementCardDeclineAdditionalAmountsUnknown(BaseModel): + """An unknown additional amount.""" + amount: int """The amount in minor units of the `currency` field. @@ -1106,6 +1187,8 @@ class ElementCardDeclineAdditionalAmountsUnknown(BaseModel): class ElementCardDeclineAdditionalAmountsVision(BaseModel): + """The part of this transaction amount that was for vision-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -1121,6 +1204,10 @@ class ElementCardDeclineAdditionalAmountsVision(BaseModel): class ElementCardDeclineAdditionalAmounts(BaseModel): + """ + Additional amounts associated with the card authorization, such as ATM surcharges fees. These are usually a subset of the `amount` field and are used to provide more detailed information about the transaction. + """ + clinic: Optional[ElementCardDeclineAdditionalAmountsClinic] = None """The part of this transaction amount that was for clinic-related services.""" @@ -1155,10 +1242,14 @@ class ElementCardDeclineAdditionalAmounts(BaseModel): class ElementCardDeclineNetworkDetailsPulse(BaseModel): + """Fields specific to the `pulse` network.""" + pass class ElementCardDeclineNetworkDetailsVisa(BaseModel): + """Fields specific to the `visa` network.""" + electronic_commerce_indicator: Optional[ Literal[ "mail_phone_order", @@ -1277,6 +1368,8 @@ class ElementCardDeclineNetworkDetailsVisa(BaseModel): class ElementCardDeclineNetworkDetails(BaseModel): + """Fields specific to the `network`.""" + category: Literal["visa", "pulse"] """The payment network used to process this card authorization. @@ -1292,6 +1385,8 @@ class ElementCardDeclineNetworkDetails(BaseModel): class ElementCardDeclineNetworkIdentifiers(BaseModel): + """Network-specific identifiers for a specific request or transaction.""" + authorization_identification_response: Optional[str] = None """ The randomly generated 6-character Authorization Identification Response code @@ -1319,6 +1414,10 @@ class ElementCardDeclineNetworkIdentifiers(BaseModel): class ElementCardDeclineVerificationCardVerificationCode(BaseModel): + """ + Fields related to verification of the Card Verification Code, a 3-digit code on the back of the card. + """ + result: Literal["not_checked", "match", "no_match"] """The result of verifying the Card Verification Code. @@ -1330,6 +1429,10 @@ class ElementCardDeclineVerificationCardVerificationCode(BaseModel): class ElementCardDeclineVerificationCardholderAddress(BaseModel): + """ + Cardholder address provided in the authorization request and the address on file we verified it against. + """ + actual_line1: Optional[str] = None """Line 1 of the address on file for the cardholder.""" @@ -1369,6 +1472,8 @@ class ElementCardDeclineVerificationCardholderAddress(BaseModel): class ElementCardDeclineVerification(BaseModel): + """Fields related to verification of cardholder-provided values.""" + card_verification_code: ElementCardDeclineVerificationCardVerificationCode """ Fields related to verification of the Card Verification Code, a 3-digit code on @@ -1383,6 +1488,11 @@ class ElementCardDeclineVerification(BaseModel): class ElementCardDecline(BaseModel): + """A Card Decline object. + + This field will be present in the JSON response if and only if `category` is equal to `card_decline`. + """ + id: str """The Card Decline identifier.""" @@ -1658,6 +1768,8 @@ def __getattr__(self, attr: str) -> object: ... class ElementCardFinancialAdditionalAmountsClinic(BaseModel): + """The part of this transaction amount that was for clinic-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -1673,6 +1785,8 @@ class ElementCardFinancialAdditionalAmountsClinic(BaseModel): class ElementCardFinancialAdditionalAmountsDental(BaseModel): + """The part of this transaction amount that was for dental-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -1688,6 +1802,8 @@ class ElementCardFinancialAdditionalAmountsDental(BaseModel): class ElementCardFinancialAdditionalAmountsOriginal(BaseModel): + """The original pre-authorized amount.""" + amount: int """The amount in minor units of the `currency` field. @@ -1703,6 +1819,8 @@ class ElementCardFinancialAdditionalAmountsOriginal(BaseModel): class ElementCardFinancialAdditionalAmountsPrescription(BaseModel): + """The part of this transaction amount that was for healthcare prescriptions.""" + amount: int """The amount in minor units of the `currency` field. @@ -1718,6 +1836,8 @@ class ElementCardFinancialAdditionalAmountsPrescription(BaseModel): class ElementCardFinancialAdditionalAmountsSurcharge(BaseModel): + """The surcharge amount charged for this transaction by the merchant.""" + amount: int """The amount in minor units of the `currency` field. @@ -1733,6 +1853,10 @@ class ElementCardFinancialAdditionalAmountsSurcharge(BaseModel): class ElementCardFinancialAdditionalAmountsTotalCumulative(BaseModel): + """ + The total amount of a series of incremental authorizations, optionally provided. + """ + amount: int """The amount in minor units of the `currency` field. @@ -1748,6 +1872,8 @@ class ElementCardFinancialAdditionalAmountsTotalCumulative(BaseModel): class ElementCardFinancialAdditionalAmountsTotalHealthcare(BaseModel): + """The total amount of healthcare-related additional amounts.""" + amount: int """The amount in minor units of the `currency` field. @@ -1763,6 +1889,8 @@ class ElementCardFinancialAdditionalAmountsTotalHealthcare(BaseModel): class ElementCardFinancialAdditionalAmountsTransit(BaseModel): + """The part of this transaction amount that was for transit-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -1778,6 +1906,8 @@ class ElementCardFinancialAdditionalAmountsTransit(BaseModel): class ElementCardFinancialAdditionalAmountsUnknown(BaseModel): + """An unknown additional amount.""" + amount: int """The amount in minor units of the `currency` field. @@ -1793,6 +1923,8 @@ class ElementCardFinancialAdditionalAmountsUnknown(BaseModel): class ElementCardFinancialAdditionalAmountsVision(BaseModel): + """The part of this transaction amount that was for vision-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -1808,6 +1940,10 @@ class ElementCardFinancialAdditionalAmountsVision(BaseModel): class ElementCardFinancialAdditionalAmounts(BaseModel): + """ + Additional amounts associated with the card authorization, such as ATM surcharges fees. These are usually a subset of the `amount` field and are used to provide more detailed information about the transaction. + """ + clinic: Optional[ElementCardFinancialAdditionalAmountsClinic] = None """The part of this transaction amount that was for clinic-related services.""" @@ -1842,10 +1978,14 @@ class ElementCardFinancialAdditionalAmounts(BaseModel): class ElementCardFinancialNetworkDetailsPulse(BaseModel): + """Fields specific to the `pulse` network.""" + pass class ElementCardFinancialNetworkDetailsVisa(BaseModel): + """Fields specific to the `visa` network.""" + electronic_commerce_indicator: Optional[ Literal[ "mail_phone_order", @@ -1964,6 +2104,8 @@ class ElementCardFinancialNetworkDetailsVisa(BaseModel): class ElementCardFinancialNetworkDetails(BaseModel): + """Fields specific to the `network`.""" + category: Literal["visa", "pulse"] """The payment network used to process this card authorization. @@ -1979,6 +2121,8 @@ class ElementCardFinancialNetworkDetails(BaseModel): class ElementCardFinancialNetworkIdentifiers(BaseModel): + """Network-specific identifiers for a specific request or transaction.""" + authorization_identification_response: Optional[str] = None """ The randomly generated 6-character Authorization Identification Response code @@ -2006,6 +2150,10 @@ class ElementCardFinancialNetworkIdentifiers(BaseModel): class ElementCardFinancialVerificationCardVerificationCode(BaseModel): + """ + Fields related to verification of the Card Verification Code, a 3-digit code on the back of the card. + """ + result: Literal["not_checked", "match", "no_match"] """The result of verifying the Card Verification Code. @@ -2017,6 +2165,10 @@ class ElementCardFinancialVerificationCardVerificationCode(BaseModel): class ElementCardFinancialVerificationCardholderAddress(BaseModel): + """ + Cardholder address provided in the authorization request and the address on file we verified it against. + """ + actual_line1: Optional[str] = None """Line 1 of the address on file for the cardholder.""" @@ -2056,6 +2208,8 @@ class ElementCardFinancialVerificationCardholderAddress(BaseModel): class ElementCardFinancialVerification(BaseModel): + """Fields related to verification of cardholder-provided values.""" + card_verification_code: ElementCardFinancialVerificationCardVerificationCode """ Fields related to verification of the Card Verification Code, a 3-digit code on @@ -2070,6 +2224,11 @@ class ElementCardFinancialVerification(BaseModel): class ElementCardFinancial(BaseModel): + """A Card Financial object. + + This field will be present in the JSON response if and only if `category` is equal to `card_financial`. Card Financials are temporary holds placed on a customers funds with the intent to later clear a transaction. + """ + id: str """The Card Financial identifier.""" @@ -2260,6 +2419,8 @@ def __getattr__(self, attr: str) -> object: ... class ElementCardFuelConfirmationNetworkIdentifiers(BaseModel): + """Network-specific identifiers for a specific request or transaction.""" + authorization_identification_response: Optional[str] = None """ The randomly generated 6-character Authorization Identification Response code @@ -2287,6 +2448,11 @@ class ElementCardFuelConfirmationNetworkIdentifiers(BaseModel): class ElementCardFuelConfirmation(BaseModel): + """A Card Fuel Confirmation object. + + This field will be present in the JSON response if and only if `category` is equal to `card_fuel_confirmation`. Card Fuel Confirmations update the amount of a Card Authorization after a fuel pump transaction is completed. + """ + id: str """The Card Fuel Confirmation identifier.""" @@ -2343,6 +2509,8 @@ def __getattr__(self, attr: str) -> object: ... class ElementCardIncrementAdditionalAmountsClinic(BaseModel): + """The part of this transaction amount that was for clinic-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -2358,6 +2526,8 @@ class ElementCardIncrementAdditionalAmountsClinic(BaseModel): class ElementCardIncrementAdditionalAmountsDental(BaseModel): + """The part of this transaction amount that was for dental-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -2373,6 +2543,8 @@ class ElementCardIncrementAdditionalAmountsDental(BaseModel): class ElementCardIncrementAdditionalAmountsOriginal(BaseModel): + """The original pre-authorized amount.""" + amount: int """The amount in minor units of the `currency` field. @@ -2388,6 +2560,8 @@ class ElementCardIncrementAdditionalAmountsOriginal(BaseModel): class ElementCardIncrementAdditionalAmountsPrescription(BaseModel): + """The part of this transaction amount that was for healthcare prescriptions.""" + amount: int """The amount in minor units of the `currency` field. @@ -2403,6 +2577,8 @@ class ElementCardIncrementAdditionalAmountsPrescription(BaseModel): class ElementCardIncrementAdditionalAmountsSurcharge(BaseModel): + """The surcharge amount charged for this transaction by the merchant.""" + amount: int """The amount in minor units of the `currency` field. @@ -2418,6 +2594,10 @@ class ElementCardIncrementAdditionalAmountsSurcharge(BaseModel): class ElementCardIncrementAdditionalAmountsTotalCumulative(BaseModel): + """ + The total amount of a series of incremental authorizations, optionally provided. + """ + amount: int """The amount in minor units of the `currency` field. @@ -2433,6 +2613,8 @@ class ElementCardIncrementAdditionalAmountsTotalCumulative(BaseModel): class ElementCardIncrementAdditionalAmountsTotalHealthcare(BaseModel): + """The total amount of healthcare-related additional amounts.""" + amount: int """The amount in minor units of the `currency` field. @@ -2448,6 +2630,8 @@ class ElementCardIncrementAdditionalAmountsTotalHealthcare(BaseModel): class ElementCardIncrementAdditionalAmountsTransit(BaseModel): + """The part of this transaction amount that was for transit-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -2463,6 +2647,8 @@ class ElementCardIncrementAdditionalAmountsTransit(BaseModel): class ElementCardIncrementAdditionalAmountsUnknown(BaseModel): + """An unknown additional amount.""" + amount: int """The amount in minor units of the `currency` field. @@ -2478,6 +2664,8 @@ class ElementCardIncrementAdditionalAmountsUnknown(BaseModel): class ElementCardIncrementAdditionalAmountsVision(BaseModel): + """The part of this transaction amount that was for vision-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -2493,6 +2681,10 @@ class ElementCardIncrementAdditionalAmountsVision(BaseModel): class ElementCardIncrementAdditionalAmounts(BaseModel): + """ + Additional amounts associated with the card authorization, such as ATM surcharges fees. These are usually a subset of the `amount` field and are used to provide more detailed information about the transaction. + """ + clinic: Optional[ElementCardIncrementAdditionalAmountsClinic] = None """The part of this transaction amount that was for clinic-related services.""" @@ -2527,6 +2719,8 @@ class ElementCardIncrementAdditionalAmounts(BaseModel): class ElementCardIncrementNetworkIdentifiers(BaseModel): + """Network-specific identifiers for a specific request or transaction.""" + authorization_identification_response: Optional[str] = None """ The randomly generated 6-character Authorization Identification Response code @@ -2554,6 +2748,11 @@ class ElementCardIncrementNetworkIdentifiers(BaseModel): class ElementCardIncrement(BaseModel): + """A Card Increment object. + + This field will be present in the JSON response if and only if `category` is equal to `card_increment`. Card Increments increase the pending amount of an authorized transaction. + """ + id: str """The Card Increment identifier.""" @@ -2656,6 +2855,11 @@ def __getattr__(self, attr: str) -> object: ... class ElementCardRefundCashback(BaseModel): + """Cashback debited for this transaction, if eligible. + + Cashback is paid out in aggregate, monthly. + """ + amount: str """The cashback amount given as a string containing a decimal number. @@ -2671,6 +2875,8 @@ class ElementCardRefundCashback(BaseModel): class ElementCardRefundInterchange(BaseModel): + """Interchange assessed as a part of this transaciton.""" + amount: str """ The interchange amount given as a string containing a decimal number in major @@ -2692,6 +2898,8 @@ class ElementCardRefundInterchange(BaseModel): class ElementCardRefundNetworkIdentifiers(BaseModel): + """Network-specific identifiers for this refund.""" + acquirer_business_id: str """ A network assigned business ID that identifies the acquirer that processed this @@ -2715,6 +2923,8 @@ class ElementCardRefundNetworkIdentifiers(BaseModel): class ElementCardRefundPurchaseDetailsCarRental(BaseModel): + """Fields specific to car rentals.""" + car_class_code: Optional[str] = None """Code indicating the vehicle's class.""" @@ -2802,6 +3012,8 @@ class ElementCardRefundPurchaseDetailsCarRental(BaseModel): class ElementCardRefundPurchaseDetailsLodging(BaseModel): + """Fields specific to lodging.""" + check_in_date: Optional[date] = None """Date the customer checked in.""" @@ -2948,6 +3160,8 @@ class ElementCardRefundPurchaseDetailsTravelAncillaryService(BaseModel): class ElementCardRefundPurchaseDetailsTravelAncillary(BaseModel): + """Ancillary purchases in addition to the airfare.""" + connected_ticket_document_number: Optional[str] = None """ If this purchase has a connection or relationship to another purchase, such as a @@ -3009,6 +3223,8 @@ class ElementCardRefundPurchaseDetailsTravelTripLeg(BaseModel): class ElementCardRefundPurchaseDetailsTravel(BaseModel): + """Fields specific to travel.""" + ancillary: Optional[ElementCardRefundPurchaseDetailsTravelAncillary] = None """Ancillary purchases in addition to the airfare.""" @@ -3075,6 +3291,10 @@ class ElementCardRefundPurchaseDetailsTravel(BaseModel): class ElementCardRefundPurchaseDetails(BaseModel): + """ + Additional details about the card purchase, such as tax and industry-specific fields. + """ + car_rental: Optional[ElementCardRefundPurchaseDetailsCarRental] = None """Fields specific to car rentals.""" @@ -3122,6 +3342,11 @@ class ElementCardRefundPurchaseDetails(BaseModel): class ElementCardRefund(BaseModel): + """A Card Refund object. + + This field will be present in the JSON response if and only if `category` is equal to `card_refund`. Card Refunds move money back to the cardholder. While they are usually connected to a Card Settlement an acquirer can also refund money directly to a card without relation to a transaction. + """ + id: str """The Card Refund identifier.""" @@ -3216,6 +3441,8 @@ def __getattr__(self, attr: str) -> object: ... class ElementCardReversalNetworkIdentifiers(BaseModel): + """Network-specific identifiers for a specific request or transaction.""" + authorization_identification_response: Optional[str] = None """ The randomly generated 6-character Authorization Identification Response code @@ -3243,6 +3470,11 @@ class ElementCardReversalNetworkIdentifiers(BaseModel): class ElementCardReversal(BaseModel): + """A Card Reversal object. + + This field will be present in the JSON response if and only if `category` is equal to `card_reversal`. Card Reversals cancel parts of or the entirety of an existing Card Authorization. + """ + id: str """The Card Reversal identifier.""" @@ -3373,6 +3605,11 @@ def __getattr__(self, attr: str) -> object: ... class ElementCardSettlementCashback(BaseModel): + """Cashback earned on this transaction, if eligible. + + Cashback is paid out in aggregate, monthly. + """ + amount: str """The cashback amount given as a string containing a decimal number. @@ -3388,6 +3625,8 @@ class ElementCardSettlementCashback(BaseModel): class ElementCardSettlementInterchange(BaseModel): + """Interchange assessed as a part of this transaction.""" + amount: str """ The interchange amount given as a string containing a decimal number in major @@ -3409,6 +3648,8 @@ class ElementCardSettlementInterchange(BaseModel): class ElementCardSettlementNetworkIdentifiers(BaseModel): + """Network-specific identifiers for this refund.""" + acquirer_business_id: str """ A network assigned business ID that identifies the acquirer that processed this @@ -3432,6 +3673,8 @@ class ElementCardSettlementNetworkIdentifiers(BaseModel): class ElementCardSettlementPurchaseDetailsCarRental(BaseModel): + """Fields specific to car rentals.""" + car_class_code: Optional[str] = None """Code indicating the vehicle's class.""" @@ -3519,6 +3762,8 @@ class ElementCardSettlementPurchaseDetailsCarRental(BaseModel): class ElementCardSettlementPurchaseDetailsLodging(BaseModel): + """Fields specific to lodging.""" + check_in_date: Optional[date] = None """Date the customer checked in.""" @@ -3665,6 +3910,8 @@ class ElementCardSettlementPurchaseDetailsTravelAncillaryService(BaseModel): class ElementCardSettlementPurchaseDetailsTravelAncillary(BaseModel): + """Ancillary purchases in addition to the airfare.""" + connected_ticket_document_number: Optional[str] = None """ If this purchase has a connection or relationship to another purchase, such as a @@ -3726,6 +3973,8 @@ class ElementCardSettlementPurchaseDetailsTravelTripLeg(BaseModel): class ElementCardSettlementPurchaseDetailsTravel(BaseModel): + """Fields specific to travel.""" + ancillary: Optional[ElementCardSettlementPurchaseDetailsTravelAncillary] = None """Ancillary purchases in addition to the airfare.""" @@ -3792,6 +4041,10 @@ class ElementCardSettlementPurchaseDetailsTravel(BaseModel): class ElementCardSettlementPurchaseDetails(BaseModel): + """ + Additional details about the card purchase, such as tax and industry-specific fields. + """ + car_rental: Optional[ElementCardSettlementPurchaseDetailsCarRental] = None """Fields specific to car rentals.""" @@ -3839,6 +4092,11 @@ class ElementCardSettlementPurchaseDetails(BaseModel): class ElementCardSettlementSurcharge(BaseModel): + """Surcharge amount details, if applicable. + + The amount is positive if the surcharge is added to to the overall transaction amount (surcharge), and negative if the surcharge is deducted from the overall transaction amount (discount). + """ + amount: int """ The surcharge amount in the minor unit of the transaction's settlement currency. @@ -3852,6 +4110,11 @@ class ElementCardSettlementSurcharge(BaseModel): class ElementCardSettlement(BaseModel): + """A Card Settlement object. + + This field will be present in the JSON response if and only if `category` is equal to `card_settlement`. Card Settlements are card transactions that have cleared and settled. While a settlement is usually preceded by an authorization, an acquirer can also directly clear a transaction without first authorizing it. + """ + id: str """The Card Settlement identifier.""" @@ -3970,6 +4233,8 @@ def __getattr__(self, attr: str) -> object: ... class ElementCardValidationAdditionalAmountsClinic(BaseModel): + """The part of this transaction amount that was for clinic-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -3985,6 +4250,8 @@ class ElementCardValidationAdditionalAmountsClinic(BaseModel): class ElementCardValidationAdditionalAmountsDental(BaseModel): + """The part of this transaction amount that was for dental-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -4000,6 +4267,8 @@ class ElementCardValidationAdditionalAmountsDental(BaseModel): class ElementCardValidationAdditionalAmountsOriginal(BaseModel): + """The original pre-authorized amount.""" + amount: int """The amount in minor units of the `currency` field. @@ -4015,6 +4284,8 @@ class ElementCardValidationAdditionalAmountsOriginal(BaseModel): class ElementCardValidationAdditionalAmountsPrescription(BaseModel): + """The part of this transaction amount that was for healthcare prescriptions.""" + amount: int """The amount in minor units of the `currency` field. @@ -4030,6 +4301,8 @@ class ElementCardValidationAdditionalAmountsPrescription(BaseModel): class ElementCardValidationAdditionalAmountsSurcharge(BaseModel): + """The surcharge amount charged for this transaction by the merchant.""" + amount: int """The amount in minor units of the `currency` field. @@ -4045,6 +4318,10 @@ class ElementCardValidationAdditionalAmountsSurcharge(BaseModel): class ElementCardValidationAdditionalAmountsTotalCumulative(BaseModel): + """ + The total amount of a series of incremental authorizations, optionally provided. + """ + amount: int """The amount in minor units of the `currency` field. @@ -4060,6 +4337,8 @@ class ElementCardValidationAdditionalAmountsTotalCumulative(BaseModel): class ElementCardValidationAdditionalAmountsTotalHealthcare(BaseModel): + """The total amount of healthcare-related additional amounts.""" + amount: int """The amount in minor units of the `currency` field. @@ -4075,6 +4354,8 @@ class ElementCardValidationAdditionalAmountsTotalHealthcare(BaseModel): class ElementCardValidationAdditionalAmountsTransit(BaseModel): + """The part of this transaction amount that was for transit-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -4090,6 +4371,8 @@ class ElementCardValidationAdditionalAmountsTransit(BaseModel): class ElementCardValidationAdditionalAmountsUnknown(BaseModel): + """An unknown additional amount.""" + amount: int """The amount in minor units of the `currency` field. @@ -4105,6 +4388,8 @@ class ElementCardValidationAdditionalAmountsUnknown(BaseModel): class ElementCardValidationAdditionalAmountsVision(BaseModel): + """The part of this transaction amount that was for vision-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -4120,6 +4405,10 @@ class ElementCardValidationAdditionalAmountsVision(BaseModel): class ElementCardValidationAdditionalAmounts(BaseModel): + """ + Additional amounts associated with the card authorization, such as ATM surcharges fees. These are usually a subset of the `amount` field and are used to provide more detailed information about the transaction. + """ + clinic: Optional[ElementCardValidationAdditionalAmountsClinic] = None """The part of this transaction amount that was for clinic-related services.""" @@ -4154,10 +4443,14 @@ class ElementCardValidationAdditionalAmounts(BaseModel): class ElementCardValidationNetworkDetailsPulse(BaseModel): + """Fields specific to the `pulse` network.""" + pass class ElementCardValidationNetworkDetailsVisa(BaseModel): + """Fields specific to the `visa` network.""" + electronic_commerce_indicator: Optional[ Literal[ "mail_phone_order", @@ -4276,6 +4569,8 @@ class ElementCardValidationNetworkDetailsVisa(BaseModel): class ElementCardValidationNetworkDetails(BaseModel): + """Fields specific to the `network`.""" + category: Literal["visa", "pulse"] """The payment network used to process this card authorization. @@ -4291,6 +4586,8 @@ class ElementCardValidationNetworkDetails(BaseModel): class ElementCardValidationNetworkIdentifiers(BaseModel): + """Network-specific identifiers for a specific request or transaction.""" + authorization_identification_response: Optional[str] = None """ The randomly generated 6-character Authorization Identification Response code @@ -4318,6 +4615,10 @@ class ElementCardValidationNetworkIdentifiers(BaseModel): class ElementCardValidationVerificationCardVerificationCode(BaseModel): + """ + Fields related to verification of the Card Verification Code, a 3-digit code on the back of the card. + """ + result: Literal["not_checked", "match", "no_match"] """The result of verifying the Card Verification Code. @@ -4329,6 +4630,10 @@ class ElementCardValidationVerificationCardVerificationCode(BaseModel): class ElementCardValidationVerificationCardholderAddress(BaseModel): + """ + Cardholder address provided in the authorization request and the address on file we verified it against. + """ + actual_line1: Optional[str] = None """Line 1 of the address on file for the cardholder.""" @@ -4368,6 +4673,8 @@ class ElementCardValidationVerificationCardholderAddress(BaseModel): class ElementCardValidationVerification(BaseModel): + """Fields related to verification of cardholder-provided values.""" + card_verification_code: ElementCardValidationVerificationCardVerificationCode """ Fields related to verification of the Card Verification Code, a 3-digit code on @@ -4382,6 +4689,11 @@ class ElementCardValidationVerification(BaseModel): class ElementCardValidation(BaseModel): + """An Inbound Card Validation object. + + This field will be present in the JSON response if and only if `category` is equal to `card_validation`. Inbound Card Validations are requests from a merchant to verify that a card number and optionally its address and/or Card Verification Value are valid. + """ + id: str """The Card Validation identifier.""" @@ -4506,6 +4818,10 @@ def __getattr__(self, attr: str) -> object: ... class ElementOther(BaseModel): + """ + If the category of this Transaction source is equal to `other`, this field will contain an empty object, otherwise it will contain null. + """ + pass @@ -4657,6 +4973,8 @@ class Element(BaseModel): class State(BaseModel): + """The summarized state of this card payment.""" + authorized_amount: int """The total authorized amount in the minor unit of the transaction's currency. @@ -4701,6 +5019,10 @@ class State(BaseModel): class CardPayment(BaseModel): + """ + Card Payments group together interactions related to a single card payment, such as an authorization and its corresponding settlement. + """ + id: str """The Card Payment identifier.""" diff --git a/src/increase/types/card_purchase_supplement.py b/src/increase/types/card_purchase_supplement.py index 6b063db88..03ef7997c 100644 --- a/src/increase/types/card_purchase_supplement.py +++ b/src/increase/types/card_purchase_supplement.py @@ -12,6 +12,8 @@ class Invoice(BaseModel): + """Invoice-level information about the payment.""" + discount_amount: Optional[int] = None """Discount given to cardholder.""" @@ -173,6 +175,10 @@ class LineItem(BaseModel): class CardPurchaseSupplement(BaseModel): + """ + Additional information about a card purchase (e.g., settlement or refund), such as level 3 line item data. + """ + id: str """The Card Purchase Supplement identifier.""" diff --git a/src/increase/types/card_push_transfer.py b/src/increase/types/card_push_transfer.py index 7718cb64e..f4965f0ae 100644 --- a/src/increase/types/card_push_transfer.py +++ b/src/increase/types/card_push_transfer.py @@ -24,6 +24,10 @@ class Acceptance(BaseModel): + """ + If the transfer is accepted by the recipient bank, this will contain supplemental details. + """ + accepted_at: datetime """ The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which @@ -49,6 +53,10 @@ class Acceptance(BaseModel): class Approval(BaseModel): + """ + If your account requires approvals for transfers and the transfer was approved, this will contain details of the approval. + """ + approved_at: datetime """ The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which @@ -63,6 +71,10 @@ class Approval(BaseModel): class Cancellation(BaseModel): + """ + If your account requires approvals for transfers and the transfer was not approved, this will contain details of the cancellation. + """ + canceled_at: datetime """ The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which @@ -77,21 +89,29 @@ class Cancellation(BaseModel): class CreatedByAPIKey(BaseModel): + """If present, details about the API key that created the transfer.""" + description: Optional[str] = None """The description set for the API key when it was created.""" class CreatedByOAuthApplication(BaseModel): + """If present, details about the OAuth Application that created the transfer.""" + name: str """The name of the OAuth Application.""" class CreatedByUser(BaseModel): + """If present, details about the User that created the transfer.""" + email: str """The email address of the User.""" class CreatedBy(BaseModel): + """What object created the transfer, either via the API or the dashboard.""" + api_key: Optional[CreatedByAPIKey] = None """If present, details about the API key that created the transfer.""" @@ -113,6 +133,10 @@ class CreatedBy(BaseModel): class Decline(BaseModel): + """ + If the transfer is rejected by the card network or the destination financial institution, this will contain supplemental details. + """ + declined_at: datetime """ The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which @@ -245,6 +269,11 @@ class Decline(BaseModel): class PresentmentAmount(BaseModel): + """The amount that was transferred. + + The receiving bank will have converted this to the cardholder's currency. The amount that is applied to your Increase account matches the currency of your account. + """ + currency: Literal[ "AFN", "EUR", @@ -579,6 +608,10 @@ class PresentmentAmount(BaseModel): class Submission(BaseModel): + """ + After the transfer is submitted to the card network, this will contain supplemental details. + """ + retrieval_reference_number: str """A 12-digit retrieval reference number that identifies the transfer. @@ -602,6 +635,8 @@ class Submission(BaseModel): class CardPushTransfer(BaseModel): + """Card Push Transfers send funds to a recipient's payment card in real-time.""" + id: str """The Card Push Transfer's identifier.""" diff --git a/src/increase/types/card_push_transfer_create_params.py b/src/increase/types/card_push_transfer_create_params.py index d3b9d7f34..705439db4 100644 --- a/src/increase/types/card_push_transfer_create_params.py +++ b/src/increase/types/card_push_transfer_create_params.py @@ -116,6 +116,11 @@ class CardPushTransferCreateParams(TypedDict, total=False): class PresentmentAmount(TypedDict, total=False): + """The amount to transfer. + + The receiving bank will convert this to the cardholder's currency. The amount that is applied to your Increase account matches the currency of your account. + """ + currency: Required[ Literal[ "AFN", diff --git a/src/increase/types/card_token.py b/src/increase/types/card_token.py index b7f1b4a09..d687979a0 100644 --- a/src/increase/types/card_token.py +++ b/src/increase/types/card_token.py @@ -9,6 +9,10 @@ class CardToken(BaseModel): + """ + Card Tokens represent a tokenized card number that can be used for Card Push Transfers and Card Validations. + """ + id: str """The Card Token's identifier.""" diff --git a/src/increase/types/card_token_capabilities.py b/src/increase/types/card_token_capabilities.py index 0b2543b60..ca37c383c 100644 --- a/src/increase/types/card_token_capabilities.py +++ b/src/increase/types/card_token_capabilities.py @@ -32,6 +32,10 @@ class Route(BaseModel): class CardTokenCapabilities(BaseModel): + """ + The capabilities of a Card Token describe whether the card can be used for specific operations, such as Card Push Transfers. The capabilities can change over time based on the issuing bank's configuration of the card range. + """ + routes: List[Route] """Each route represent a path e.g., a push transfer can take.""" diff --git a/src/increase/types/card_update_params.py b/src/increase/types/card_update_params.py index 85c1842d9..6fb581532 100644 --- a/src/increase/types/card_update_params.py +++ b/src/increase/types/card_update_params.py @@ -38,6 +38,8 @@ class CardUpdateParams(TypedDict, total=False): class BillingAddress(TypedDict, total=False): + """The card's updated billing address.""" + city: Required[str] """The city of the billing address.""" @@ -55,6 +57,10 @@ class BillingAddress(TypedDict, total=False): class DigitalWallet(TypedDict, total=False): + """ + The contact information used in the two-factor steps for digital wallet card creation. At least one field must be present to complete the digital wallet steps. + """ + digital_card_profile_id: str """The digital card profile assigned to this digital card.""" diff --git a/src/increase/types/card_validation.py b/src/increase/types/card_validation.py index 3ce823044..3d8f45370 100644 --- a/src/increase/types/card_validation.py +++ b/src/increase/types/card_validation.py @@ -21,6 +21,10 @@ class Acceptance(BaseModel): + """ + If the validation is accepted by the recipient bank, this will contain supplemental details. + """ + accepted_at: datetime """ The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which @@ -95,21 +99,29 @@ class Acceptance(BaseModel): class CreatedByAPIKey(BaseModel): + """If present, details about the API key that created the transfer.""" + description: Optional[str] = None """The description set for the API key when it was created.""" class CreatedByOAuthApplication(BaseModel): + """If present, details about the OAuth Application that created the transfer.""" + name: str """The name of the OAuth Application.""" class CreatedByUser(BaseModel): + """If present, details about the User that created the transfer.""" + email: str """The email address of the User.""" class CreatedBy(BaseModel): + """What object created the validation, either via the API or the dashboard.""" + api_key: Optional[CreatedByAPIKey] = None """If present, details about the API key that created the transfer.""" @@ -131,6 +143,10 @@ class CreatedBy(BaseModel): class Decline(BaseModel): + """ + If the validation is rejected by the card network or the destination financial institution, this will contain supplemental details. + """ + declined_at: datetime """ The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which @@ -263,6 +279,10 @@ class Decline(BaseModel): class Submission(BaseModel): + """ + After the validation is submitted to the card network, this will contain supplemental details. + """ + retrieval_reference_number: str """A 12-digit retrieval reference number that identifies the validation. @@ -283,6 +303,10 @@ class Submission(BaseModel): class CardValidation(BaseModel): + """ + Card Validations are used to validate a card and its cardholder before sending funds to or pulling funds from a card. + """ + id: str """The Card Validation's identifier.""" diff --git a/src/increase/types/check_deposit.py b/src/increase/types/check_deposit.py index dbbc7091a..4b84fa963 100644 --- a/src/increase/types/check_deposit.py +++ b/src/increase/types/check_deposit.py @@ -19,6 +19,10 @@ class DepositAcceptance(BaseModel): + """ + Once your deposit is successfully parsed and accepted by Increase, this will contain details of the parsed check. + """ + account_number: str """The account number printed on the check. @@ -75,6 +79,10 @@ def __getattr__(self, attr: str) -> object: ... class DepositRejection(BaseModel): + """ + If your deposit is rejected by Increase, this will contain details as to why it was rejected. + """ + amount: int """The rejected amount in the minor unit of check's currency. @@ -146,6 +154,10 @@ def __getattr__(self, attr: str) -> object: ... class DepositReturn(BaseModel): + """ + If your deposit is returned, this will contain details as to why it was returned. + """ + amount: int """The returned amount in USD cents.""" @@ -261,6 +273,11 @@ def __getattr__(self, attr: str) -> object: ... class DepositSubmission(BaseModel): + """After the check is parsed, it is submitted to the Check21 network for processing. + + This will contain details of the submission. + """ + back_file_id: str """ The ID for the File containing the check back image that was submitted to the @@ -282,6 +299,11 @@ class DepositSubmission(BaseModel): class InboundFundsHold(BaseModel): + """Increase will sometimes hold the funds for Check Deposits. + + If funds are held, this sub-object will contain details of the hold. + """ + amount: int """The held amount in the minor unit of the account's currency. @@ -344,6 +366,8 @@ def __getattr__(self, attr: str) -> object: ... class CheckDeposit(BaseModel): + """Check Deposits allow you to deposit images of paper checks into your account.""" + id: str """The deposit's identifier.""" diff --git a/src/increase/types/check_transfer.py b/src/increase/types/check_transfer.py index a9dfb1c5d..b9bb58b99 100644 --- a/src/increase/types/check_transfer.py +++ b/src/increase/types/check_transfer.py @@ -30,6 +30,10 @@ class Approval(BaseModel): + """ + If your account requires approvals for transfers and the transfer was approved, this will contain details of the approval. + """ + approved_at: datetime """ The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which @@ -44,6 +48,10 @@ class Approval(BaseModel): class Cancellation(BaseModel): + """ + If your account requires approvals for transfers and the transfer was not approved, this will contain details of the cancellation. + """ + canceled_at: datetime """ The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which @@ -58,21 +66,29 @@ class Cancellation(BaseModel): class CreatedByAPIKey(BaseModel): + """If present, details about the API key that created the transfer.""" + description: Optional[str] = None """The description set for the API key when it was created.""" class CreatedByOAuthApplication(BaseModel): + """If present, details about the OAuth Application that created the transfer.""" + name: str """The name of the OAuth Application.""" class CreatedByUser(BaseModel): + """If present, details about the User that created the transfer.""" + email: str """The email address of the User.""" class CreatedBy(BaseModel): + """What object created the transfer, either via the API or the dashboard.""" + api_key: Optional[CreatedByAPIKey] = None """If present, details about the API key that created the transfer.""" @@ -94,6 +110,10 @@ class CreatedBy(BaseModel): class Mailing(BaseModel): + """ + If the check has been mailed by Increase, this will contain details of the shipment. + """ + image_id: Optional[str] = None """ The ID of the file corresponding to an image of the check that was mailed, if @@ -111,6 +131,8 @@ class Mailing(BaseModel): class PhysicalCheckMailingAddress(BaseModel): + """Details for where Increase will mail the check.""" + city: Optional[str] = None """The city of the check's destination.""" @@ -142,6 +164,8 @@ class PhysicalCheckPayer(BaseModel): class PhysicalCheckReturnAddress(BaseModel): + """The return address to be printed on the check.""" + city: Optional[str] = None """The city of the check's destination.""" @@ -182,6 +206,11 @@ class PhysicalCheckTrackingUpdate(BaseModel): class PhysicalCheck(BaseModel): + """Details relating to the physical check that Increase will print and mail. + + Will be present if and only if `fulfillment_method` is equal to `physical_check`. + """ + attachment_file_id: Optional[str] = None """The ID of the file for the check attachment.""" @@ -240,6 +269,10 @@ def __getattr__(self, attr: str) -> object: ... class StopPaymentRequest(BaseModel): + """ + After a stop-payment is requested on the check, this will contain supplemental details. + """ + reason: Literal[ "mail_delivery_failed", "rejected_by_increase", "not_authorized", "valid_until_date_passed", "unknown" ] @@ -280,6 +313,11 @@ def __getattr__(self, attr: str) -> object: ... class SubmissionSubmittedAddress(BaseModel): + """The address we submitted to the printer. + + This is what is physically printed on the check. + """ + city: str """The submitted address city.""" @@ -300,6 +338,8 @@ class SubmissionSubmittedAddress(BaseModel): class Submission(BaseModel): + """After the transfer is submitted, this will contain supplemental details.""" + address_correction_action: Literal["none", "standardization", "standardization_with_address_change", "error"] """ Per USPS requirements, Increase will standardize the address to USPS standards @@ -338,6 +378,11 @@ def __getattr__(self, attr: str) -> object: ... class ThirdParty(BaseModel): + """Details relating to the custom fulfillment you will perform. + + Will be present if and only if `fulfillment_method` is equal to `third_party`. + """ + recipient_name: Optional[str] = None """The name that you will print on the check.""" @@ -355,6 +400,10 @@ def __getattr__(self, attr: str) -> object: ... class CheckTransfer(BaseModel): + """ + Check Transfers move funds from your Increase account by mailing a physical check. + """ + id: str """The Check transfer's identifier.""" diff --git a/src/increase/types/check_transfer_create_params.py b/src/increase/types/check_transfer_create_params.py index 89ea3b122..44a617e04 100644 --- a/src/increase/types/check_transfer_create_params.py +++ b/src/increase/types/check_transfer_create_params.py @@ -88,6 +88,8 @@ class CheckTransferCreateParams(TypedDict, total=False): class PhysicalCheckMailingAddress(TypedDict, total=False): + """Details for where Increase will mail the check.""" + city: Required[str] """The city component of the check's destination address.""" @@ -123,6 +125,11 @@ class PhysicalCheckPayer(TypedDict, total=False): class PhysicalCheckReturnAddress(TypedDict, total=False): + """The return address to be printed on the check. + + If omitted this will default to an Increase-owned address that will mark checks as delivery failed and shred them. + """ + city: Required[str] """The city of the return address.""" @@ -143,6 +150,11 @@ class PhysicalCheckReturnAddress(TypedDict, total=False): class PhysicalCheckTyped(TypedDict, total=False): + """Details relating to the physical check that Increase will print and mail. + + This is required if `fulfillment_method` is equal to `physical_check`. It must not be included if any other `fulfillment_method` is provided. + """ + mailing_address: Required[PhysicalCheckMailingAddress] """Details for where Increase will mail the check.""" @@ -207,6 +219,11 @@ class PhysicalCheckTyped(TypedDict, total=False): class ThirdPartyTyped(TypedDict, total=False): + """Details relating to the custom fulfillment you will perform. + + This is required if `fulfillment_method` is equal to `third_party`. It must not be included if any other `fulfillment_method` is provided. + """ + recipient_name: str """The pay-to name you will print on the check. diff --git a/src/increase/types/declined_transaction.py b/src/increase/types/declined_transaction.py index ba7b3dcbd..e37adcfa9 100644 --- a/src/increase/types/declined_transaction.py +++ b/src/increase/types/declined_transaction.py @@ -41,6 +41,11 @@ class SourceACHDecline(BaseModel): + """An ACH Decline object. + + This field will be present in the JSON response if and only if `category` is equal to `ach_decline`. + """ + id: str """The ACH Decline's identifier.""" @@ -140,6 +145,8 @@ def __getattr__(self, attr: str) -> object: ... class SourceCardDeclineAdditionalAmountsClinic(BaseModel): + """The part of this transaction amount that was for clinic-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -155,6 +162,8 @@ class SourceCardDeclineAdditionalAmountsClinic(BaseModel): class SourceCardDeclineAdditionalAmountsDental(BaseModel): + """The part of this transaction amount that was for dental-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -170,6 +179,8 @@ class SourceCardDeclineAdditionalAmountsDental(BaseModel): class SourceCardDeclineAdditionalAmountsOriginal(BaseModel): + """The original pre-authorized amount.""" + amount: int """The amount in minor units of the `currency` field. @@ -185,6 +196,8 @@ class SourceCardDeclineAdditionalAmountsOriginal(BaseModel): class SourceCardDeclineAdditionalAmountsPrescription(BaseModel): + """The part of this transaction amount that was for healthcare prescriptions.""" + amount: int """The amount in minor units of the `currency` field. @@ -200,6 +213,8 @@ class SourceCardDeclineAdditionalAmountsPrescription(BaseModel): class SourceCardDeclineAdditionalAmountsSurcharge(BaseModel): + """The surcharge amount charged for this transaction by the merchant.""" + amount: int """The amount in minor units of the `currency` field. @@ -215,6 +230,10 @@ class SourceCardDeclineAdditionalAmountsSurcharge(BaseModel): class SourceCardDeclineAdditionalAmountsTotalCumulative(BaseModel): + """ + The total amount of a series of incremental authorizations, optionally provided. + """ + amount: int """The amount in minor units of the `currency` field. @@ -230,6 +249,8 @@ class SourceCardDeclineAdditionalAmountsTotalCumulative(BaseModel): class SourceCardDeclineAdditionalAmountsTotalHealthcare(BaseModel): + """The total amount of healthcare-related additional amounts.""" + amount: int """The amount in minor units of the `currency` field. @@ -245,6 +266,8 @@ class SourceCardDeclineAdditionalAmountsTotalHealthcare(BaseModel): class SourceCardDeclineAdditionalAmountsTransit(BaseModel): + """The part of this transaction amount that was for transit-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -260,6 +283,8 @@ class SourceCardDeclineAdditionalAmountsTransit(BaseModel): class SourceCardDeclineAdditionalAmountsUnknown(BaseModel): + """An unknown additional amount.""" + amount: int """The amount in minor units of the `currency` field. @@ -275,6 +300,8 @@ class SourceCardDeclineAdditionalAmountsUnknown(BaseModel): class SourceCardDeclineAdditionalAmountsVision(BaseModel): + """The part of this transaction amount that was for vision-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -290,6 +317,10 @@ class SourceCardDeclineAdditionalAmountsVision(BaseModel): class SourceCardDeclineAdditionalAmounts(BaseModel): + """ + Additional amounts associated with the card authorization, such as ATM surcharges fees. These are usually a subset of the `amount` field and are used to provide more detailed information about the transaction. + """ + clinic: Optional[SourceCardDeclineAdditionalAmountsClinic] = None """The part of this transaction amount that was for clinic-related services.""" @@ -324,10 +355,14 @@ class SourceCardDeclineAdditionalAmounts(BaseModel): class SourceCardDeclineNetworkDetailsPulse(BaseModel): + """Fields specific to the `pulse` network.""" + pass class SourceCardDeclineNetworkDetailsVisa(BaseModel): + """Fields specific to the `visa` network.""" + electronic_commerce_indicator: Optional[ Literal[ "mail_phone_order", @@ -446,6 +481,8 @@ class SourceCardDeclineNetworkDetailsVisa(BaseModel): class SourceCardDeclineNetworkDetails(BaseModel): + """Fields specific to the `network`.""" + category: Literal["visa", "pulse"] """The payment network used to process this card authorization. @@ -461,6 +498,8 @@ class SourceCardDeclineNetworkDetails(BaseModel): class SourceCardDeclineNetworkIdentifiers(BaseModel): + """Network-specific identifiers for a specific request or transaction.""" + authorization_identification_response: Optional[str] = None """ The randomly generated 6-character Authorization Identification Response code @@ -488,6 +527,10 @@ class SourceCardDeclineNetworkIdentifiers(BaseModel): class SourceCardDeclineVerificationCardVerificationCode(BaseModel): + """ + Fields related to verification of the Card Verification Code, a 3-digit code on the back of the card. + """ + result: Literal["not_checked", "match", "no_match"] """The result of verifying the Card Verification Code. @@ -499,6 +542,10 @@ class SourceCardDeclineVerificationCardVerificationCode(BaseModel): class SourceCardDeclineVerificationCardholderAddress(BaseModel): + """ + Cardholder address provided in the authorization request and the address on file we verified it against. + """ + actual_line1: Optional[str] = None """Line 1 of the address on file for the cardholder.""" @@ -538,6 +585,8 @@ class SourceCardDeclineVerificationCardholderAddress(BaseModel): class SourceCardDeclineVerification(BaseModel): + """Fields related to verification of cardholder-provided values.""" + card_verification_code: SourceCardDeclineVerificationCardVerificationCode """ Fields related to verification of the Card Verification Code, a 3-digit code on @@ -552,6 +601,11 @@ class SourceCardDeclineVerification(BaseModel): class SourceCardDecline(BaseModel): + """A Card Decline object. + + This field will be present in the JSON response if and only if `category` is equal to `card_decline`. + """ + id: str """The Card Decline identifier.""" @@ -827,6 +881,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceCheckDecline(BaseModel): + """A Check Decline object. + + This field will be present in the JSON response if and only if `category` is equal to `check_decline`. + """ + amount: int """The declined amount in USD cents.""" @@ -917,6 +976,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceCheckDepositRejection(BaseModel): + """A Check Deposit Rejection object. + + This field will be present in the JSON response if and only if `category` is equal to `check_deposit_rejection`. + """ + amount: int """The rejected amount in the minor unit of check's currency. @@ -988,6 +1052,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceInboundFednowTransferDecline(BaseModel): + """An Inbound FedNow Transfer Decline object. + + This field will be present in the JSON response if and only if `category` is equal to `inbound_fednow_transfer_decline`. + """ + reason: Literal[ "account_number_canceled", "account_number_disabled", @@ -1024,6 +1093,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceInboundRealTimePaymentsTransferDecline(BaseModel): + """An Inbound Real-Time Payments Transfer Decline object. + + This field will be present in the JSON response if and only if `category` is equal to `inbound_real_time_payments_transfer_decline`. + """ + amount: int """The declined amount in the minor unit of the destination account currency. @@ -1081,10 +1155,19 @@ class SourceInboundRealTimePaymentsTransferDecline(BaseModel): class SourceOther(BaseModel): + """ + If the category of this Transaction source is equal to `other`, this field will contain an empty object, otherwise it will contain null. + """ + pass class SourceWireDecline(BaseModel): + """A Wire Decline object. + + This field will be present in the JSON response if and only if `category` is equal to `wire_decline`. + """ + inbound_wire_transfer_id: str """The identifier of the Inbound Wire Transfer that was declined.""" @@ -1121,6 +1204,10 @@ def __getattr__(self, attr: str) -> object: ... class Source(BaseModel): + """ + This is an object giving more details on the network-level event that caused the Declined Transaction. For example, for a card transaction this lists the merchant's industry and location. Note that for backwards compatibility reasons, additional undocumented keys may appear in this object. These should be treated as deprecated and will be removed in the future. + """ + ach_decline: Optional[SourceACHDecline] = None """An ACH Decline object. @@ -1223,6 +1310,10 @@ def __getattr__(self, attr: str) -> object: ... class DeclinedTransaction(BaseModel): + """ + Declined Transactions are refused additions and removals of money from your bank account. For example, Declined Transactions are caused when your Account has an insufficient balance or your Limits are triggered. + """ + id: str """The Declined Transaction identifier.""" diff --git a/src/increase/types/digital_card_profile.py b/src/increase/types/digital_card_profile.py index 338be2d3b..9c5a9a596 100644 --- a/src/increase/types/digital_card_profile.py +++ b/src/increase/types/digital_card_profile.py @@ -10,6 +10,8 @@ class TextColor(BaseModel): + """The Card's text color, specified as an RGB triple.""" + blue: int """The value of the blue channel in the RGB color.""" @@ -21,6 +23,10 @@ class TextColor(BaseModel): class DigitalCardProfile(BaseModel): + """ + This contains artwork and metadata relating to a Card's appearance in digital wallet apps like Apple Pay and Google Pay. For more information, see our guide on [digital card artwork](https://increase.com/documentation/card-art). + """ + id: str """The Card Profile identifier.""" diff --git a/src/increase/types/digital_card_profile_clone_params.py b/src/increase/types/digital_card_profile_clone_params.py index 5945deea1..a1469bc8f 100644 --- a/src/increase/types/digital_card_profile_clone_params.py +++ b/src/increase/types/digital_card_profile_clone_params.py @@ -37,6 +37,8 @@ class DigitalCardProfileCloneParams(TypedDict, total=False): class TextColor(TypedDict, total=False): + """The Card's text color, specified as an RGB triple. The default is white.""" + blue: Required[int] """The value of the blue channel in the RGB color.""" diff --git a/src/increase/types/digital_card_profile_create_params.py b/src/increase/types/digital_card_profile_create_params.py index 6da1fd7c5..f3d2bdb8b 100644 --- a/src/increase/types/digital_card_profile_create_params.py +++ b/src/increase/types/digital_card_profile_create_params.py @@ -37,6 +37,8 @@ class DigitalCardProfileCreateParams(TypedDict, total=False): class TextColor(TypedDict, total=False): + """The Card's text color, specified as an RGB triple. The default is white.""" + blue: Required[int] """The value of the blue channel in the RGB color.""" diff --git a/src/increase/types/digital_wallet_token.py b/src/increase/types/digital_wallet_token.py index 034a31788..7fd051f3d 100644 --- a/src/increase/types/digital_wallet_token.py +++ b/src/increase/types/digital_wallet_token.py @@ -10,11 +10,15 @@ class Cardholder(BaseModel): + """The cardholder information given when the Digital Wallet Token was created.""" + name: Optional[str] = None """Name of the cardholder, for example "John Smith".""" class Device(BaseModel): + """The device that was used to create the Digital Wallet Token.""" + device_type: Optional[ Literal[ "unknown", @@ -70,6 +74,10 @@ class Update(BaseModel): class DigitalWalletToken(BaseModel): + """ + A Digital Wallet Token is created when a user adds a Card to their Apple Pay or Google Pay app. The Digital Wallet Token can be used for purchases just like a Card. + """ + id: str """The Digital Wallet Token identifier.""" diff --git a/src/increase/types/document.py b/src/increase/types/document.py index 1c6c7f33f..0e2604ffc 100644 --- a/src/increase/types/document.py +++ b/src/increase/types/document.py @@ -10,16 +10,24 @@ class AccountVerificationLetter(BaseModel): + """Properties of an account verification letter document.""" + account_number_id: str """The identifier of the Account Number the document was generated for.""" class FundingInstructions(BaseModel): + """Properties of a funding instructions document.""" + account_number_id: str """The identifier of the Account Number the document was generated for.""" class Document(BaseModel): + """ + Increase generates certain documents / forms automatically for your application; they can be listed here. + """ + id: str """The Document identifier.""" diff --git a/src/increase/types/document_create_params.py b/src/increase/types/document_create_params.py index 986255c7a..61dfa4d6b 100644 --- a/src/increase/types/document_create_params.py +++ b/src/increase/types/document_create_params.py @@ -33,6 +33,11 @@ class DocumentCreateParams(TypedDict, total=False): class AccountVerificationLetter(TypedDict, total=False): + """An account verification letter. + + Required if and only if `category` is `account_verification_letter`. + """ + account_number_id: Required[str] """The Account Number the bank letter should be generated for.""" @@ -41,5 +46,10 @@ class AccountVerificationLetter(TypedDict, total=False): class FundingInstructions(TypedDict, total=False): + """Funding instructions. + + Required if and only if `category` is `funding_instructions`. + """ + account_number_id: Required[str] """The Account Number the funding instructions should be generated for.""" diff --git a/src/increase/types/entity.py b/src/increase/types/entity.py index 3415982ef..b63a9c032 100644 --- a/src/increase/types/entity.py +++ b/src/increase/types/entity.py @@ -42,6 +42,8 @@ class CorporationAddress(BaseModel): + """The corporation's address.""" + city: str """The city of the address.""" @@ -62,6 +64,8 @@ class CorporationAddress(BaseModel): class CorporationBeneficialOwnerIndividualAddress(BaseModel): + """The person's address.""" + city: Optional[str] = None """The city, district, town, or village of the address.""" @@ -85,6 +89,8 @@ class CorporationBeneficialOwnerIndividualAddress(BaseModel): class CorporationBeneficialOwnerIndividualIdentification(BaseModel): + """A means of verifying the person's identity.""" + method: Literal[ "social_security_number", "individual_taxpayer_identification_number", "passport", "drivers_license", "other" ] @@ -118,6 +124,8 @@ def __getattr__(self, attr: str) -> object: ... class CorporationBeneficialOwnerIndividual(BaseModel): + """Personal details for the beneficial owner.""" + address: CorporationBeneficialOwnerIndividualAddress """The person's address.""" @@ -152,6 +160,11 @@ class CorporationBeneficialOwner(BaseModel): class Corporation(BaseModel): + """Details of the corporation entity. + + Will be present if `structure` is equal to `corporation`. + """ + address: CorporationAddress """The corporation's address.""" @@ -184,6 +197,8 @@ class Corporation(BaseModel): class GovernmentAuthorityAddress(BaseModel): + """The government authority's address.""" + city: str """The city of the address.""" @@ -212,6 +227,11 @@ class GovernmentAuthorityAuthorizedPerson(BaseModel): class GovernmentAuthority(BaseModel): + """Details of the government authority entity. + + Will be present if `structure` is equal to `government_authority`. + """ + address: GovernmentAuthorityAddress """The government authority's address.""" @@ -238,6 +258,8 @@ class GovernmentAuthority(BaseModel): class JointIndividualAddress(BaseModel): + """The person's address.""" + city: str """The city of the address.""" @@ -258,6 +280,8 @@ class JointIndividualAddress(BaseModel): class JointIndividualIdentification(BaseModel): + """A means of verifying the person's identity.""" + method: Literal[ "social_security_number", "individual_taxpayer_identification_number", "passport", "drivers_license", "other" ] @@ -305,6 +329,11 @@ class JointIndividual(BaseModel): class Joint(BaseModel): + """Details of the joint entity. + + Will be present if `structure` is equal to `joint`. + """ + individuals: List[JointIndividual] """The two individuals that share control of the entity.""" @@ -313,6 +342,8 @@ class Joint(BaseModel): class NaturalPersonAddress(BaseModel): + """The person's address.""" + city: str """The city of the address.""" @@ -333,6 +364,8 @@ class NaturalPersonAddress(BaseModel): class NaturalPersonIdentification(BaseModel): + """A means of verifying the person's identity.""" + method: Literal[ "social_security_number", "individual_taxpayer_identification_number", "passport", "drivers_license", "other" ] @@ -366,6 +399,11 @@ def __getattr__(self, attr: str) -> object: ... class NaturalPerson(BaseModel): + """Details of the natural person entity. + + Will be present if `structure` is equal to `natural_person`. + """ + address: NaturalPersonAddress """The person's address.""" @@ -380,6 +418,10 @@ class NaturalPerson(BaseModel): class RiskRating(BaseModel): + """ + An assessment of the entity’s potential risk of involvement in financial crimes, such as money laundering. + """ + rated_at: datetime """ The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) time at which the risk @@ -396,6 +438,10 @@ class RiskRating(BaseModel): class ThirdPartyVerification(BaseModel): + """ + If you are using a third-party service for identity verification, you can use this field to associate this Entity with the identifier that represents them in that service. + """ + reference: str """The reference identifier for the third party verification.""" @@ -409,6 +455,8 @@ class ThirdPartyVerification(BaseModel): class TrustAddress(BaseModel): + """The trust's address.""" + city: str """The city of the address.""" @@ -429,6 +477,8 @@ class TrustAddress(BaseModel): class TrustGrantorAddress(BaseModel): + """The person's address.""" + city: str """The city of the address.""" @@ -449,6 +499,8 @@ class TrustGrantorAddress(BaseModel): class TrustGrantorIdentification(BaseModel): + """A means of verifying the person's identity.""" + method: Literal[ "social_security_number", "individual_taxpayer_identification_number", "passport", "drivers_license", "other" ] @@ -482,6 +534,8 @@ def __getattr__(self, attr: str) -> object: ... class TrustGrantor(BaseModel): + """The grantor of the trust. Will be present if the `category` is `revocable`.""" + address: TrustGrantorAddress """The person's address.""" @@ -496,6 +550,8 @@ class TrustGrantor(BaseModel): class TrustTrusteeIndividualAddress(BaseModel): + """The person's address.""" + city: str """The city of the address.""" @@ -516,6 +572,8 @@ class TrustTrusteeIndividualAddress(BaseModel): class TrustTrusteeIndividualIdentification(BaseModel): + """A means of verifying the person's identity.""" + method: Literal[ "social_security_number", "individual_taxpayer_identification_number", "passport", "drivers_license", "other" ] @@ -549,6 +607,11 @@ def __getattr__(self, attr: str) -> object: ... class TrustTrusteeIndividual(BaseModel): + """The individual trustee of the trust. + + Will be present if the trustee's `structure` is equal to `individual`. + """ + address: TrustTrusteeIndividualAddress """The person's address.""" @@ -577,6 +640,11 @@ class TrustTrustee(BaseModel): class Trust(BaseModel): + """Details of the trust entity. + + Will be present if `structure` is equal to `trust`. + """ + address: TrustAddress """The trust's address.""" @@ -610,6 +678,11 @@ class Trust(BaseModel): class Entity(BaseModel): + """Entities are the legal entities that own accounts. + + They can be people, corporations, partnerships, government authorities, or trusts. + """ + id: str """The entity's identifier.""" diff --git a/src/increase/types/entity_create_beneficial_owner_params.py b/src/increase/types/entity_create_beneficial_owner_params.py index 88feb4d64..627979061 100644 --- a/src/increase/types/entity_create_beneficial_owner_params.py +++ b/src/increase/types/entity_create_beneficial_owner_params.py @@ -29,6 +29,11 @@ class EntityCreateBeneficialOwnerParams(TypedDict, total=False): class BeneficialOwnerIndividualAddress(TypedDict, total=False): + """The individual's physical address. + + Mail receiving locations like PO Boxes and PMB's are disallowed. + """ + city: Required[str] """The city, district, town, or village of the address.""" @@ -52,6 +57,11 @@ class BeneficialOwnerIndividualAddress(TypedDict, total=False): class BeneficialOwnerIndividualIdentificationDriversLicense(TypedDict, total=False): + """Information about the United States driver's license used for identification. + + Required if `method` is equal to `drivers_license`. + """ + expiration_date: Required[Annotated[Union[str, date], PropertyInfo(format="iso8601")]] """The driver's license's expiration date in YYYY-MM-DD format.""" @@ -66,6 +76,11 @@ class BeneficialOwnerIndividualIdentificationDriversLicense(TypedDict, total=Fal class BeneficialOwnerIndividualIdentificationOther(TypedDict, total=False): + """Information about the identification document provided. + + Required if `method` is equal to `other`. + """ + country: Required[str] """ The two-character ISO 3166-1 code representing the country that issued the @@ -89,6 +104,11 @@ class BeneficialOwnerIndividualIdentificationOther(TypedDict, total=False): class BeneficialOwnerIndividualIdentificationPassport(TypedDict, total=False): + """Information about the passport used for identification. + + Required if `method` is equal to `passport`. + """ + country: Required[str] """ The two-character ISO 3166-1 code representing the country that issued the @@ -103,6 +123,8 @@ class BeneficialOwnerIndividualIdentificationPassport(TypedDict, total=False): class BeneficialOwnerIndividualIdentificationTyped(TypedDict, total=False): + """A means of verifying the person's identity.""" + method: Required[ Literal[ "social_security_number", @@ -153,6 +175,8 @@ class BeneficialOwnerIndividualIdentificationTyped(TypedDict, total=False): class BeneficialOwnerIndividual(TypedDict, total=False): + """Personal details for the beneficial owner.""" + address: Required[BeneficialOwnerIndividualAddress] """The individual's physical address. @@ -178,6 +202,10 @@ class BeneficialOwnerIndividual(TypedDict, total=False): class BeneficialOwnerTyped(TypedDict, total=False): + """ + The identifying details of anyone controlling or owning 25% or more of the corporation. + """ + individual: Required[BeneficialOwnerIndividual] """Personal details for the beneficial owner.""" diff --git a/src/increase/types/entity_create_params.py b/src/increase/types/entity_create_params.py index 9e05147e4..182479f22 100644 --- a/src/increase/types/entity_create_params.py +++ b/src/increase/types/entity_create_params.py @@ -120,6 +120,11 @@ class EntityCreateParams(TypedDict, total=False): class CorporationAddress(TypedDict, total=False): + """The entity's physical address. + + Mail receiving locations like PO Boxes and PMB's are disallowed. + """ + city: Required[str] """The city of the address.""" @@ -140,6 +145,11 @@ class CorporationAddress(TypedDict, total=False): class CorporationBeneficialOwnerIndividualAddress(TypedDict, total=False): + """The individual's physical address. + + Mail receiving locations like PO Boxes and PMB's are disallowed. + """ + city: Required[str] """The city, district, town, or village of the address.""" @@ -163,6 +173,11 @@ class CorporationBeneficialOwnerIndividualAddress(TypedDict, total=False): class CorporationBeneficialOwnerIndividualIdentificationDriversLicense(TypedDict, total=False): + """Information about the United States driver's license used for identification. + + Required if `method` is equal to `drivers_license`. + """ + expiration_date: Required[Annotated[Union[str, date], PropertyInfo(format="iso8601")]] """The driver's license's expiration date in YYYY-MM-DD format.""" @@ -177,6 +192,11 @@ class CorporationBeneficialOwnerIndividualIdentificationDriversLicense(TypedDict class CorporationBeneficialOwnerIndividualIdentificationOther(TypedDict, total=False): + """Information about the identification document provided. + + Required if `method` is equal to `other`. + """ + country: Required[str] """ The two-character ISO 3166-1 code representing the country that issued the @@ -200,6 +220,11 @@ class CorporationBeneficialOwnerIndividualIdentificationOther(TypedDict, total=F class CorporationBeneficialOwnerIndividualIdentificationPassport(TypedDict, total=False): + """Information about the passport used for identification. + + Required if `method` is equal to `passport`. + """ + country: Required[str] """ The two-character ISO 3166-1 code representing the country that issued the @@ -214,6 +239,8 @@ class CorporationBeneficialOwnerIndividualIdentificationPassport(TypedDict, tota class CorporationBeneficialOwnerIndividualIdentificationTyped(TypedDict, total=False): + """A means of verifying the person's identity.""" + method: Required[ Literal[ "social_security_number", @@ -264,6 +291,8 @@ class CorporationBeneficialOwnerIndividualIdentificationTyped(TypedDict, total=F class CorporationBeneficialOwnerIndividual(TypedDict, total=False): + """Personal details for the beneficial owner.""" + address: Required[CorporationBeneficialOwnerIndividualAddress] """The individual's physical address. @@ -307,6 +336,11 @@ class CorporationBeneficialOwnerTyped(TypedDict, total=False): class Corporation(TypedDict, total=False): + """Details of the corporation entity to create. + + Required if `structure` is equal to `corporation`. + """ + address: Required[CorporationAddress] """The entity's physical address. @@ -362,6 +396,11 @@ class Corporation(TypedDict, total=False): class GovernmentAuthorityAddress(TypedDict, total=False): + """The entity's physical address. + + Mail receiving locations like PO Boxes and PMB's are disallowed. + """ + city: Required[str] """The city of the address.""" @@ -387,6 +426,11 @@ class GovernmentAuthorityAuthorizedPerson(TypedDict, total=False): class GovernmentAuthority(TypedDict, total=False): + """Details of the Government Authority entity to create. + + Required if `structure` is equal to `government_authority`. + """ + address: Required[GovernmentAuthorityAddress] """The entity's physical address. @@ -416,6 +460,11 @@ class GovernmentAuthority(TypedDict, total=False): class JointIndividualAddress(TypedDict, total=False): + """The individual's physical address. + + Mail receiving locations like PO Boxes and PMB's are disallowed. + """ + city: Required[str] """The city of the address.""" @@ -436,6 +485,11 @@ class JointIndividualAddress(TypedDict, total=False): class JointIndividualIdentificationDriversLicense(TypedDict, total=False): + """Information about the United States driver's license used for identification. + + Required if `method` is equal to `drivers_license`. + """ + expiration_date: Required[Annotated[Union[str, date], PropertyInfo(format="iso8601")]] """The driver's license's expiration date in YYYY-MM-DD format.""" @@ -450,6 +504,11 @@ class JointIndividualIdentificationDriversLicense(TypedDict, total=False): class JointIndividualIdentificationOther(TypedDict, total=False): + """Information about the identification document provided. + + Required if `method` is equal to `other`. + """ + country: Required[str] """ The two-character ISO 3166-1 code representing the country that issued the @@ -473,6 +532,11 @@ class JointIndividualIdentificationOther(TypedDict, total=False): class JointIndividualIdentificationPassport(TypedDict, total=False): + """Information about the passport used for identification. + + Required if `method` is equal to `passport`. + """ + country: Required[str] """ The two-character ISO 3166-1 code representing the country that issued the @@ -487,6 +551,8 @@ class JointIndividualIdentificationPassport(TypedDict, total=False): class JointIndividualIdentificationTyped(TypedDict, total=False): + """A means of verifying the person's identity.""" + method: Required[ Literal[ "social_security_number", @@ -560,11 +626,21 @@ class JointIndividual(TypedDict, total=False): class Joint(TypedDict, total=False): + """Details of the joint entity to create. + + Required if `structure` is equal to `joint`. + """ + individuals: Required[Iterable[JointIndividual]] """The two individuals that share control of the entity.""" class NaturalPersonAddress(TypedDict, total=False): + """The individual's physical address. + + Mail receiving locations like PO Boxes and PMB's are disallowed. + """ + city: Required[str] """The city of the address.""" @@ -585,6 +661,11 @@ class NaturalPersonAddress(TypedDict, total=False): class NaturalPersonIdentificationDriversLicense(TypedDict, total=False): + """Information about the United States driver's license used for identification. + + Required if `method` is equal to `drivers_license`. + """ + expiration_date: Required[Annotated[Union[str, date], PropertyInfo(format="iso8601")]] """The driver's license's expiration date in YYYY-MM-DD format.""" @@ -599,6 +680,11 @@ class NaturalPersonIdentificationDriversLicense(TypedDict, total=False): class NaturalPersonIdentificationOther(TypedDict, total=False): + """Information about the identification document provided. + + Required if `method` is equal to `other`. + """ + country: Required[str] """ The two-character ISO 3166-1 code representing the country that issued the @@ -622,6 +708,11 @@ class NaturalPersonIdentificationOther(TypedDict, total=False): class NaturalPersonIdentificationPassport(TypedDict, total=False): + """Information about the passport used for identification. + + Required if `method` is equal to `passport`. + """ + country: Required[str] """ The two-character ISO 3166-1 code representing the country that issued the @@ -636,6 +727,8 @@ class NaturalPersonIdentificationPassport(TypedDict, total=False): class NaturalPersonIdentificationTyped(TypedDict, total=False): + """A means of verifying the person's identity.""" + method: Required[ Literal[ "social_security_number", @@ -684,6 +777,11 @@ class NaturalPersonIdentificationTyped(TypedDict, total=False): class NaturalPerson(TypedDict, total=False): + """Details of the natural person entity to create. + + Required if `structure` is equal to `natural_person`. Natural people entities should be submitted with `social_security_number` or `individual_taxpayer_identification_number` identification methods. + """ + address: Required[NaturalPersonAddress] """The individual's physical address. @@ -709,6 +807,10 @@ class NaturalPerson(TypedDict, total=False): class RiskRating(TypedDict, total=False): + """ + An assessment of the entity’s potential risk of involvement in financial crimes, such as money laundering. + """ + rated_at: Required[Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]] """ The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) time at which the risk @@ -730,6 +832,10 @@ class SupplementalDocument(TypedDict, total=False): class ThirdPartyVerification(TypedDict, total=False): + """ + If you are using a third-party service for identity verification, you can use this field to associate this Entity with the identifier that represents them in that service. + """ + reference: Required[str] """The reference identifier for the third party verification.""" @@ -743,6 +849,11 @@ class ThirdPartyVerification(TypedDict, total=False): class TrustAddress(TypedDict, total=False): + """The trust's physical address. + + Mail receiving locations like PO Boxes and PMB's are disallowed. + """ + city: Required[str] """The city of the address.""" @@ -763,6 +874,11 @@ class TrustAddress(TypedDict, total=False): class TrustTrusteeIndividualAddress(TypedDict, total=False): + """The individual's physical address. + + Mail receiving locations like PO Boxes and PMB's are disallowed. + """ + city: Required[str] """The city of the address.""" @@ -783,6 +899,11 @@ class TrustTrusteeIndividualAddress(TypedDict, total=False): class TrustTrusteeIndividualIdentificationDriversLicense(TypedDict, total=False): + """Information about the United States driver's license used for identification. + + Required if `method` is equal to `drivers_license`. + """ + expiration_date: Required[Annotated[Union[str, date], PropertyInfo(format="iso8601")]] """The driver's license's expiration date in YYYY-MM-DD format.""" @@ -797,6 +918,11 @@ class TrustTrusteeIndividualIdentificationDriversLicense(TypedDict, total=False) class TrustTrusteeIndividualIdentificationOther(TypedDict, total=False): + """Information about the identification document provided. + + Required if `method` is equal to `other`. + """ + country: Required[str] """ The two-character ISO 3166-1 code representing the country that issued the @@ -820,6 +946,11 @@ class TrustTrusteeIndividualIdentificationOther(TypedDict, total=False): class TrustTrusteeIndividualIdentificationPassport(TypedDict, total=False): + """Information about the passport used for identification. + + Required if `method` is equal to `passport`. + """ + country: Required[str] """ The two-character ISO 3166-1 code representing the country that issued the @@ -834,6 +965,8 @@ class TrustTrusteeIndividualIdentificationPassport(TypedDict, total=False): class TrustTrusteeIndividualIdentificationTyped(TypedDict, total=False): + """A means of verifying the person's identity.""" + method: Required[ Literal[ "social_security_number", @@ -882,6 +1015,11 @@ class TrustTrusteeIndividualIdentificationTyped(TypedDict, total=False): class TrustTrusteeIndividual(TypedDict, total=False): + """Details of the individual trustee. + + Within the trustee object, this is required if `structure` is equal to `individual`. + """ + address: Required[TrustTrusteeIndividualAddress] """The individual's physical address. @@ -922,6 +1060,11 @@ class TrustTrustee(TypedDict, total=False): class TrustGrantorAddress(TypedDict, total=False): + """The individual's physical address. + + Mail receiving locations like PO Boxes and PMB's are disallowed. + """ + city: Required[str] """The city of the address.""" @@ -942,6 +1085,11 @@ class TrustGrantorAddress(TypedDict, total=False): class TrustGrantorIdentificationDriversLicense(TypedDict, total=False): + """Information about the United States driver's license used for identification. + + Required if `method` is equal to `drivers_license`. + """ + expiration_date: Required[Annotated[Union[str, date], PropertyInfo(format="iso8601")]] """The driver's license's expiration date in YYYY-MM-DD format.""" @@ -956,6 +1104,11 @@ class TrustGrantorIdentificationDriversLicense(TypedDict, total=False): class TrustGrantorIdentificationOther(TypedDict, total=False): + """Information about the identification document provided. + + Required if `method` is equal to `other`. + """ + country: Required[str] """ The two-character ISO 3166-1 code representing the country that issued the @@ -979,6 +1132,11 @@ class TrustGrantorIdentificationOther(TypedDict, total=False): class TrustGrantorIdentificationPassport(TypedDict, total=False): + """Information about the passport used for identification. + + Required if `method` is equal to `passport`. + """ + country: Required[str] """ The two-character ISO 3166-1 code representing the country that issued the @@ -993,6 +1151,8 @@ class TrustGrantorIdentificationPassport(TypedDict, total=False): class TrustGrantorIdentificationTyped(TypedDict, total=False): + """A means of verifying the person's identity.""" + method: Required[ Literal[ "social_security_number", @@ -1041,6 +1201,8 @@ class TrustGrantorIdentificationTyped(TypedDict, total=False): class TrustGrantor(TypedDict, total=False): + """The grantor of the trust. Required if `category` is equal to `revocable`.""" + address: Required[TrustGrantorAddress] """The individual's physical address. @@ -1066,6 +1228,11 @@ class TrustGrantor(TypedDict, total=False): class Trust(TypedDict, total=False): + """Details of the trust entity to create. + + Required if `structure` is equal to `trust`. + """ + address: Required[TrustAddress] """The trust's physical address. diff --git a/src/increase/types/entity_supplemental_document.py b/src/increase/types/entity_supplemental_document.py index 695107f9d..fcf8fbbd2 100644 --- a/src/increase/types/entity_supplemental_document.py +++ b/src/increase/types/entity_supplemental_document.py @@ -10,6 +10,10 @@ class EntitySupplementalDocument(BaseModel): + """ + Supplemental Documents are uploaded files connected to an Entity during onboarding. + """ + created_at: datetime """ The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) time at which the diff --git a/src/increase/types/entity_update_address_params.py b/src/increase/types/entity_update_address_params.py index 0b2ede59b..c5fac648b 100644 --- a/src/increase/types/entity_update_address_params.py +++ b/src/increase/types/entity_update_address_params.py @@ -16,6 +16,11 @@ class EntityUpdateAddressParams(TypedDict, total=False): class Address(TypedDict, total=False): + """The entity's physical address. + + Mail receiving locations like PO Boxes and PMB's are disallowed. + """ + city: Required[str] """The city of the address.""" diff --git a/src/increase/types/entity_update_beneficial_owner_address_params.py b/src/increase/types/entity_update_beneficial_owner_address_params.py index bbf846143..5848cc86c 100644 --- a/src/increase/types/entity_update_beneficial_owner_address_params.py +++ b/src/increase/types/entity_update_beneficial_owner_address_params.py @@ -22,6 +22,11 @@ class EntityUpdateBeneficialOwnerAddressParams(TypedDict, total=False): class Address(TypedDict, total=False): + """The individual's physical address. + + Mail receiving locations like PO Boxes and PMB's are disallowed. + """ + city: Required[str] """The city, district, town, or village of the address.""" diff --git a/src/increase/types/entity_update_params.py b/src/increase/types/entity_update_params.py index 28b57a7e8..4da1dbf9b 100644 --- a/src/increase/types/entity_update_params.py +++ b/src/increase/types/entity_update_params.py @@ -74,6 +74,11 @@ class EntityUpdateParams(TypedDict, total=False): class CorporationAddress(TypedDict, total=False): + """The entity's physical address. + + Mail receiving locations like PO Boxes and PMB's are disallowed. + """ + city: Required[str] """The city of the address.""" @@ -94,6 +99,11 @@ class CorporationAddress(TypedDict, total=False): class Corporation(TypedDict, total=False): + """Details of the corporation entity to update. + + If you specify this parameter and the entity is not a corporation, the request will fail. + """ + address: CorporationAddress """The entity's physical address. @@ -113,6 +123,11 @@ class Corporation(TypedDict, total=False): class GovernmentAuthorityAddress(TypedDict, total=False): + """The entity's physical address. + + Mail receiving locations like PO Boxes and PMB's are disallowed. + """ + city: Required[str] """The city of the address.""" @@ -133,6 +148,11 @@ class GovernmentAuthorityAddress(TypedDict, total=False): class GovernmentAuthority(TypedDict, total=False): + """Details of the government authority entity to update. + + If you specify this parameter and the entity is not a government authority, the request will fail. + """ + address: GovernmentAuthorityAddress """The entity's physical address. @@ -144,6 +164,11 @@ class GovernmentAuthority(TypedDict, total=False): class NaturalPersonAddress(TypedDict, total=False): + """The entity's physical address. + + Mail receiving locations like PO Boxes and PMB's are disallowed. + """ + city: Required[str] """The city of the address.""" @@ -164,6 +189,11 @@ class NaturalPersonAddress(TypedDict, total=False): class NaturalPerson(TypedDict, total=False): + """Details of the natural person entity to update. + + If you specify this parameter and the entity is not a natural person, the request will fail. + """ + address: NaturalPersonAddress """The entity's physical address. @@ -175,6 +205,10 @@ class NaturalPerson(TypedDict, total=False): class RiskRating(TypedDict, total=False): + """ + An assessment of the entity’s potential risk of involvement in financial crimes, such as money laundering. + """ + rated_at: Required[Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]] """ The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) time at which the risk @@ -191,6 +225,10 @@ class RiskRating(TypedDict, total=False): class ThirdPartyVerification(TypedDict, total=False): + """ + If you are using a third-party service for identity verification, you can use this field to associate this Entity with the identifier that represents them in that service. + """ + reference: Required[str] """The reference identifier for the third party verification.""" @@ -204,6 +242,11 @@ class ThirdPartyVerification(TypedDict, total=False): class TrustAddress(TypedDict, total=False): + """The entity's physical address. + + Mail receiving locations like PO Boxes and PMB's are disallowed. + """ + city: Required[str] """The city of the address.""" @@ -224,6 +267,11 @@ class TrustAddress(TypedDict, total=False): class Trust(TypedDict, total=False): + """Details of the trust entity to update. + + If you specify this parameter and the entity is not a trust, the request will fail. + """ + address: TrustAddress """The entity's physical address. diff --git a/src/increase/types/event.py b/src/increase/types/event.py index a0593a368..e040c26e1 100644 --- a/src/increase/types/event.py +++ b/src/increase/types/event.py @@ -9,6 +9,11 @@ class Event(BaseModel): + """Events are records of things that happened to objects at Increase. + + Events are accessible via the List Events endpoint and can be delivered to your application via webhooks. For more information, see our [webhooks guide](https://increase.com/documentation/webhooks). + """ + id: str """The Event identifier.""" diff --git a/src/increase/types/event_subscription.py b/src/increase/types/event_subscription.py index 522784bc1..4fa59584f 100644 --- a/src/increase/types/event_subscription.py +++ b/src/increase/types/event_subscription.py @@ -10,6 +10,11 @@ class EventSubscription(BaseModel): + """Webhooks are event notifications we send to you by HTTPS POST requests. + + Event Subscriptions are how you configure your application to listen for them. You can create an Event Subscription through your [developer dashboard](https://dashboard.increase.com/developers/webhooks) or the API. For more information, see our [webhooks guide](https://increase.com/documentation/webhooks). + """ + id: str """The event subscription identifier.""" diff --git a/src/increase/types/export.py b/src/increase/types/export.py index 350be3956..e8a36d78b 100644 --- a/src/increase/types/export.py +++ b/src/increase/types/export.py @@ -10,6 +10,11 @@ class Export(BaseModel): + """Exports are batch summaries of your Increase data. + + You can make them from the API or dashboard. Since they can take a while, they are generated asynchronously. We send a webhook when they are ready. For more information, please read our [Exports documentation](https://increase.com/documentation/exports). + """ + id: str """The Export identifier.""" diff --git a/src/increase/types/export_create_params.py b/src/increase/types/export_create_params.py index b9733fd56..54e5adb30 100644 --- a/src/increase/types/export_create_params.py +++ b/src/increase/types/export_create_params.py @@ -97,6 +97,11 @@ class ExportCreateParams(TypedDict, total=False): class AccountStatementBai2(TypedDict, total=False): + """Options for the created export. + + Required if `category` is equal to `account_statement_bai2`. + """ + account_id: str """The Account to create a BAI2 report for. @@ -119,6 +124,8 @@ class AccountStatementBai2(TypedDict, total=False): class AccountStatementOfxCreatedAt(TypedDict, total=False): + """Filter results by time range on the `created_at` attribute.""" + after: Annotated[Union[str, datetime], PropertyInfo(format="iso8601")] """ Return results after this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) @@ -145,6 +152,11 @@ class AccountStatementOfxCreatedAt(TypedDict, total=False): class AccountStatementOfx(TypedDict, total=False): + """Options for the created export. + + Required if `category` is equal to `account_statement_ofx`. + """ + account_id: Required[str] """The Account to create a statement for.""" @@ -153,6 +165,8 @@ class AccountStatementOfx(TypedDict, total=False): class BalanceCsvCreatedAt(TypedDict, total=False): + """Filter results by time range on the `created_at` attribute.""" + after: Annotated[Union[str, datetime], PropertyInfo(format="iso8601")] """ Return results after this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) @@ -179,6 +193,11 @@ class BalanceCsvCreatedAt(TypedDict, total=False): class BalanceCsv(TypedDict, total=False): + """Options for the created export. + + Required if `category` is equal to `balance_csv`. + """ + account_id: str """Filter exported Transactions to the specified Account.""" @@ -190,6 +209,8 @@ class BalanceCsv(TypedDict, total=False): class BookkeepingAccountBalanceCsvCreatedAt(TypedDict, total=False): + """Filter results by time range on the `created_at` attribute.""" + after: Annotated[Union[str, datetime], PropertyInfo(format="iso8601")] """ Return results after this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) @@ -216,6 +237,11 @@ class BookkeepingAccountBalanceCsvCreatedAt(TypedDict, total=False): class BookkeepingAccountBalanceCsv(TypedDict, total=False): + """Options for the created export. + + Required if `category` is equal to `bookkeeping_account_balance_csv`. + """ + bookkeeping_account_id: str """Filter exported Transactions to the specified Bookkeeping Account.""" @@ -233,15 +259,24 @@ class BookkeepingAccountBalanceCsv(TypedDict, total=False): class EntityCsvStatus(_EntityCsvStatusReservedKeywords, total=False): + """Entity statuses to filter by.""" + pass class EntityCsv(TypedDict, total=False): + """Options for the created export. + + Required if `category` is equal to `entity_csv`. + """ + status: EntityCsvStatus """Entity statuses to filter by.""" class TransactionCsvCreatedAt(TypedDict, total=False): + """Filter results by time range on the `created_at` attribute.""" + after: Annotated[Union[str, datetime], PropertyInfo(format="iso8601")] """ Return results after this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) @@ -268,6 +303,11 @@ class TransactionCsvCreatedAt(TypedDict, total=False): class TransactionCsv(TypedDict, total=False): + """Options for the created export. + + Required if `category` is equal to `transaction_csv`. + """ + account_id: str """Filter exported Transactions to the specified Account.""" @@ -279,4 +319,9 @@ class TransactionCsv(TypedDict, total=False): class VendorCsv(TypedDict, total=False): + """Options for the created export. + + Required if `category` is equal to `vendor_csv`. + """ + pass diff --git a/src/increase/types/external_account.py b/src/increase/types/external_account.py index c0cfac121..939830548 100644 --- a/src/increase/types/external_account.py +++ b/src/increase/types/external_account.py @@ -12,6 +12,10 @@ class ExternalAccount(BaseModel): + """ + External Accounts represent accounts at financial institutions other than Increase. You can use this API to store their details for reuse. + """ + id: str """The External Account's identifier.""" diff --git a/src/increase/types/fednow_transfer.py b/src/increase/types/fednow_transfer.py index 5de9bf2e9..03bf44291 100644 --- a/src/increase/types/fednow_transfer.py +++ b/src/increase/types/fednow_transfer.py @@ -19,26 +19,38 @@ class Acknowledgement(BaseModel): + """ + If the transfer is acknowledged by the recipient bank, this will contain supplemental details. + """ + acknowledged_at: datetime """When the transfer was acknowledged.""" class CreatedByAPIKey(BaseModel): + """If present, details about the API key that created the transfer.""" + description: Optional[str] = None """The description set for the API key when it was created.""" class CreatedByOAuthApplication(BaseModel): + """If present, details about the OAuth Application that created the transfer.""" + name: str """The name of the OAuth Application.""" class CreatedByUser(BaseModel): + """If present, details about the User that created the transfer.""" + email: str """The email address of the User.""" class CreatedBy(BaseModel): + """What object created the transfer, either via the API or the dashboard.""" + api_key: Optional[CreatedByAPIKey] = None """If present, details about the API key that created the transfer.""" @@ -60,6 +72,10 @@ class CreatedBy(BaseModel): class Rejection(BaseModel): + """ + If the transfer is rejected by FedNow or the destination financial institution, this will contain supplemental details. + """ + reject_reason_additional_information: Optional[str] = None """Additional information about the rejection provided by the recipient bank.""" @@ -123,6 +139,10 @@ class Rejection(BaseModel): class Submission(BaseModel): + """ + After the transfer is submitted to FedNow, this will contain supplemental details. + """ + message_identification: str """The FedNow network identification of the message submitted.""" @@ -134,6 +154,10 @@ class Submission(BaseModel): class FednowTransfer(BaseModel): + """ + FedNow transfers move funds, within seconds, between your Increase account and any other account supporting FedNow. + """ + id: str """The FedNow Transfer's identifier.""" diff --git a/src/increase/types/fednow_transfer_create_params.py b/src/increase/types/fednow_transfer_create_params.py index 082a0c9d2..29fa51456 100644 --- a/src/increase/types/fednow_transfer_create_params.py +++ b/src/increase/types/fednow_transfer_create_params.py @@ -50,6 +50,8 @@ class FednowTransferCreateParams(TypedDict, total=False): class CreditorAddress(TypedDict, total=False): + """The creditor's address.""" + city: Required[str] """The city, district, town, or village of the address.""" @@ -64,6 +66,8 @@ class CreditorAddress(TypedDict, total=False): class DebtorAddress(TypedDict, total=False): + """The debtor's address.""" + city: Required[str] """The city, district, town, or village of the address.""" diff --git a/src/increase/types/file.py b/src/increase/types/file.py index c50998f1d..985de238c 100644 --- a/src/increase/types/file.py +++ b/src/increase/types/file.py @@ -12,6 +12,11 @@ class File(BaseModel): + """Files are objects that represent a file hosted on Increase's servers. + + The file may have been uploaded by you (for example, when uploading a check image) or it may have been created by Increase (for example, an autogenerated statement PDF). If you need to download a File, create a File Link. + """ + id: str """The File's identifier.""" diff --git a/src/increase/types/file_link.py b/src/increase/types/file_link.py index 5299453d0..d3118075b 100644 --- a/src/increase/types/file_link.py +++ b/src/increase/types/file_link.py @@ -10,6 +10,8 @@ class FileLink(BaseModel): + """File Links let you generate a URL that can be used to download a File.""" + id: str """The File Link identifier.""" diff --git a/src/increase/types/group.py b/src/increase/types/group.py index 0920f4a2d..def782606 100644 --- a/src/increase/types/group.py +++ b/src/increase/types/group.py @@ -9,6 +9,11 @@ class Group(BaseModel): + """Groups represent organizations using Increase. + + You can retrieve information about your own organization via the API. More commonly, OAuth platforms can retrieve information about the organizations that have granted them access. Learn more about OAuth [here](https://increase.com/documentation/oauth). + """ + id: str """The Group identifier.""" diff --git a/src/increase/types/inbound_ach_transfer.py b/src/increase/types/inbound_ach_transfer.py index a87775eeb..bce55afef 100644 --- a/src/increase/types/inbound_ach_transfer.py +++ b/src/increase/types/inbound_ach_transfer.py @@ -21,6 +21,8 @@ class Acceptance(BaseModel): + """If your transfer is accepted, this will contain details of the acceptance.""" + accepted_at: datetime """The time at which the transfer was accepted.""" @@ -34,11 +36,15 @@ class AddendaFreeformEntry(BaseModel): class AddendaFreeform(BaseModel): + """Unstructured `payment_related_information` passed through by the originator.""" + entries: List[AddendaFreeformEntry] """Each entry represents an addendum received from the originator.""" class Addenda(BaseModel): + """Additional information sent from the originator.""" + category: Literal["freeform"] """The type of addendum. @@ -50,6 +56,8 @@ class Addenda(BaseModel): class Decline(BaseModel): + """If your transfer is declined, this will contain details of the decline.""" + declined_at: datetime """The time at which the transfer was declined.""" @@ -107,6 +115,10 @@ class Decline(BaseModel): class InternationalAddenda(BaseModel): + """ + If the Inbound ACH Transfer has a Standard Entry Class Code of IAT, this will contain fields pertaining to the International ACH Transaction. + """ + destination_country_code: str """ The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 @@ -335,6 +347,10 @@ class InternationalAddenda(BaseModel): class NotificationOfChange(BaseModel): + """ + If you initiate a notification of change in response to the transfer, this will contain its details. + """ + updated_account_number: Optional[str] = None """The new account number provided in the notification of change.""" @@ -343,6 +359,10 @@ class NotificationOfChange(BaseModel): class Settlement(BaseModel): + """ + A subhash containing information about when and how the transfer settled at the Federal Reserve. + """ + settled_at: datetime """ When the funds for this transfer settle at the recipient bank at the Federal @@ -358,6 +378,8 @@ class Settlement(BaseModel): class TransferReturn(BaseModel): + """If your transfer is returned, this will contain details of the return.""" + reason: Literal[ "insufficient_funds", "returned_per_odfi_request", @@ -404,6 +426,10 @@ class TransferReturn(BaseModel): class InboundACHTransfer(BaseModel): + """ + An Inbound ACH Transfer is an ACH transfer initiated outside of Increase to your account. + """ + id: str """The inbound ACH transfer's identifier.""" diff --git a/src/increase/types/inbound_check_deposit.py b/src/increase/types/inbound_check_deposit.py index f34e043ba..0e715e1a3 100644 --- a/src/increase/types/inbound_check_deposit.py +++ b/src/increase/types/inbound_check_deposit.py @@ -36,6 +36,10 @@ class Adjustment(BaseModel): class DepositReturn(BaseModel): + """ + If you requested a return of this deposit, this will contain details of the return. + """ + reason: Literal[ "altered_or_fictitious", "not_authorized", @@ -60,6 +64,10 @@ class DepositReturn(BaseModel): class InboundCheckDeposit(BaseModel): + """ + Inbound Check Deposits are records of third-parties attempting to deposit checks against your account. + """ + id: str """The deposit's identifier.""" diff --git a/src/increase/types/inbound_fednow_transfer.py b/src/increase/types/inbound_fednow_transfer.py index 6dcfe37b2..55470b22f 100644 --- a/src/increase/types/inbound_fednow_transfer.py +++ b/src/increase/types/inbound_fednow_transfer.py @@ -12,6 +12,8 @@ class Confirmation(BaseModel): + """If your transfer is confirmed, this will contain details of the confirmation.""" + transfer_id: str """The identifier of the FedNow Transfer that led to this Transaction.""" @@ -29,6 +31,8 @@ def __getattr__(self, attr: str) -> object: ... class Decline(BaseModel): + """If your transfer is declined, this will contain details of the decline.""" + reason: Literal[ "account_number_canceled", "account_number_disabled", @@ -65,6 +69,10 @@ def __getattr__(self, attr: str) -> object: ... class InboundFednowTransfer(BaseModel): + """ + An Inbound FedNow Transfer is a FedNow transfer initiated outside of Increase to your account. + """ + id: str """The inbound FedNow transfer's identifier.""" diff --git a/src/increase/types/inbound_mail_item.py b/src/increase/types/inbound_mail_item.py index eb281f025..3adafc034 100644 --- a/src/increase/types/inbound_mail_item.py +++ b/src/increase/types/inbound_mail_item.py @@ -12,6 +12,8 @@ class Check(BaseModel): + """Inbound Mail Item Checks represent the checks in an Inbound Mail Item.""" + amount: int """The amount of the check.""" @@ -34,6 +36,8 @@ class Check(BaseModel): class InboundMailItem(BaseModel): + """Inbound Mail Items represent pieces of physical mail delivered to a Lockbox.""" + id: str """The Inbound Mail Item identifier.""" diff --git a/src/increase/types/inbound_real_time_payments_transfer.py b/src/increase/types/inbound_real_time_payments_transfer.py index 39888f6c6..1338408d0 100755 --- a/src/increase/types/inbound_real_time_payments_transfer.py +++ b/src/increase/types/inbound_real_time_payments_transfer.py @@ -10,6 +10,8 @@ class Confirmation(BaseModel): + """If your transfer is confirmed, this will contain details of the confirmation.""" + confirmed_at: datetime """The time at which the transfer was confirmed.""" @@ -18,6 +20,8 @@ class Confirmation(BaseModel): class Decline(BaseModel): + """If your transfer is declined, this will contain details of the decline.""" + declined_at: datetime """The time at which the transfer was declined.""" @@ -45,6 +49,10 @@ class Decline(BaseModel): class InboundRealTimePaymentsTransfer(BaseModel): + """ + An Inbound Real-Time Payments Transfer is a Real-Time Payments transfer initiated outside of Increase to your account. + """ + id: str """The inbound Real-Time Payments transfer's identifier.""" diff --git a/src/increase/types/inbound_wire_drawdown_request.py b/src/increase/types/inbound_wire_drawdown_request.py index eba97035f..25b06446b 100644 --- a/src/increase/types/inbound_wire_drawdown_request.py +++ b/src/increase/types/inbound_wire_drawdown_request.py @@ -12,6 +12,10 @@ class InboundWireDrawdownRequest(BaseModel): + """ + Inbound wire drawdown requests are requests from someone else to send them a wire. For more information, see our [Wire Drawdown Requests documentation](/documentation/wire-drawdown-requests). + """ + id: str """The Wire drawdown request identifier.""" diff --git a/src/increase/types/inbound_wire_transfer.py b/src/increase/types/inbound_wire_transfer.py index 0eab26d60..8b7faee00 100644 --- a/src/increase/types/inbound_wire_transfer.py +++ b/src/increase/types/inbound_wire_transfer.py @@ -12,6 +12,10 @@ class Reversal(BaseModel): + """ + Information about the reversal of the inbound wire transfer if it has been reversed. + """ + reason: Literal["duplicate", "creditor_request"] """The reason for the reversal. @@ -28,6 +32,10 @@ class Reversal(BaseModel): class InboundWireTransfer(BaseModel): + """ + An Inbound Wire Transfer is a wire transfer initiated outside of Increase to your account. + """ + id: str """The inbound wire transfer's identifier.""" diff --git a/src/increase/types/intrafi_account_enrollment.py b/src/increase/types/intrafi_account_enrollment.py index 89444fc6f..9d77c7651 100644 --- a/src/increase/types/intrafi_account_enrollment.py +++ b/src/increase/types/intrafi_account_enrollment.py @@ -10,6 +10,10 @@ class IntrafiAccountEnrollment(BaseModel): + """ + IntraFi is a [network of financial institutions](https://www.intrafi.com/network-banks) that allows Increase users to sweep funds to multiple banks. This enables accounts to become eligible for additional Federal Deposit Insurance Corporation (FDIC) insurance. An IntraFi Account Enrollment object represents the status of an account in the network. Sweeping an account to IntraFi doesn't affect funds availability. + """ + id: str """The identifier of this enrollment at IntraFi.""" diff --git a/src/increase/types/intrafi_balance.py b/src/increase/types/intrafi_balance.py index 6c929d872..590110197 100644 --- a/src/increase/types/intrafi_balance.py +++ b/src/increase/types/intrafi_balance.py @@ -10,6 +10,8 @@ class BalanceBankLocation(BaseModel): + """The primary location of the bank.""" + city: str """The bank's city.""" @@ -39,6 +41,10 @@ class Balance(BaseModel): class IntrafiBalance(BaseModel): + """ + When using IntraFi, each account's balance over the standard FDIC insurance amount is swept to various other institutions. Funds are rebalanced across banks as needed once per business day. + """ + id: str """The identifier of this balance.""" diff --git a/src/increase/types/intrafi_exclusion.py b/src/increase/types/intrafi_exclusion.py index c0a215fa7..6e99025ba 100644 --- a/src/increase/types/intrafi_exclusion.py +++ b/src/increase/types/intrafi_exclusion.py @@ -10,6 +10,10 @@ class IntrafiExclusion(BaseModel): + """ + Certain institutions may be excluded per Entity when sweeping funds into the IntraFi network. This is useful when an Entity already has deposits at a particular bank, and does not want to sweep additional funds to it. It may take 5 business days for an exclusion to be processed. + """ + id: str """The identifier of this exclusion request.""" diff --git a/src/increase/types/lockbox.py b/src/increase/types/lockbox.py index 0350841c7..283784228 100644 --- a/src/increase/types/lockbox.py +++ b/src/increase/types/lockbox.py @@ -10,6 +10,8 @@ class Address(BaseModel): + """The mailing address for the Lockbox.""" + city: str """The city of the address.""" @@ -38,6 +40,11 @@ class Address(BaseModel): class Lockbox(BaseModel): + """Lockboxes are physical locations that can receive mail containing paper checks. + + Increase will automatically create a Check Deposit for checks received this way. + """ + id: str """The Lockbox identifier.""" diff --git a/src/increase/types/oauth_application.py b/src/increase/types/oauth_application.py index 99bb1f92c..dc9ccb187 100644 --- a/src/increase/types/oauth_application.py +++ b/src/increase/types/oauth_application.py @@ -10,6 +10,10 @@ class OAuthApplication(BaseModel): + """ + An OAuth Application lets you build an application for others to use with their Increase data. You can create an OAuth Application via the Dashboard and read information about it with the API. Learn more about OAuth [here](https://increase.com/documentation/oauth). + """ + id: str """The OAuth Application's identifier.""" diff --git a/src/increase/types/oauth_connection.py b/src/increase/types/oauth_connection.py index e8ef81603..db8f2fc0f 100644 --- a/src/increase/types/oauth_connection.py +++ b/src/increase/types/oauth_connection.py @@ -10,6 +10,10 @@ class OAuthConnection(BaseModel): + """ + When a user authorizes your OAuth application, an OAuth Connection object is created. Learn more about OAuth [here](https://increase.com/documentation/oauth). + """ + id: str """The OAuth Connection's identifier.""" diff --git a/src/increase/types/oauth_token.py b/src/increase/types/oauth_token.py index 48cb1b819..7013e173e 100644 --- a/src/increase/types/oauth_token.py +++ b/src/increase/types/oauth_token.py @@ -8,6 +8,10 @@ class OAuthToken(BaseModel): + """ + A token that is returned to your application when a user completes the OAuth flow and may be used to authenticate requests. Learn more about OAuth [here](/documentation/oauth). + """ + access_token: str """ You may use this token in place of an API key to make OAuth requests on a user's diff --git a/src/increase/types/pending_transaction.py b/src/increase/types/pending_transaction.py index 655dd916d..aba8ee0eb 100644 --- a/src/increase/types/pending_transaction.py +++ b/src/increase/types/pending_transaction.py @@ -46,6 +46,11 @@ class SourceAccountTransferInstruction(BaseModel): + """An Account Transfer Instruction object. + + This field will be present in the JSON response if and only if `category` is equal to `account_transfer_instruction`. + """ + amount: int """The pending amount in the minor unit of the transaction's currency. @@ -77,6 +82,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceACHTransferInstruction(BaseModel): + """An ACH Transfer Instruction object. + + This field will be present in the JSON response if and only if `category` is equal to `ach_transfer_instruction`. + """ + amount: int """The pending amount in USD cents.""" @@ -97,6 +107,8 @@ def __getattr__(self, attr: str) -> object: ... class SourceCardAuthorizationAdditionalAmountsClinic(BaseModel): + """The part of this transaction amount that was for clinic-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -112,6 +124,8 @@ class SourceCardAuthorizationAdditionalAmountsClinic(BaseModel): class SourceCardAuthorizationAdditionalAmountsDental(BaseModel): + """The part of this transaction amount that was for dental-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -127,6 +141,8 @@ class SourceCardAuthorizationAdditionalAmountsDental(BaseModel): class SourceCardAuthorizationAdditionalAmountsOriginal(BaseModel): + """The original pre-authorized amount.""" + amount: int """The amount in minor units of the `currency` field. @@ -142,6 +158,8 @@ class SourceCardAuthorizationAdditionalAmountsOriginal(BaseModel): class SourceCardAuthorizationAdditionalAmountsPrescription(BaseModel): + """The part of this transaction amount that was for healthcare prescriptions.""" + amount: int """The amount in minor units of the `currency` field. @@ -157,6 +175,8 @@ class SourceCardAuthorizationAdditionalAmountsPrescription(BaseModel): class SourceCardAuthorizationAdditionalAmountsSurcharge(BaseModel): + """The surcharge amount charged for this transaction by the merchant.""" + amount: int """The amount in minor units of the `currency` field. @@ -172,6 +192,10 @@ class SourceCardAuthorizationAdditionalAmountsSurcharge(BaseModel): class SourceCardAuthorizationAdditionalAmountsTotalCumulative(BaseModel): + """ + The total amount of a series of incremental authorizations, optionally provided. + """ + amount: int """The amount in minor units of the `currency` field. @@ -187,6 +211,8 @@ class SourceCardAuthorizationAdditionalAmountsTotalCumulative(BaseModel): class SourceCardAuthorizationAdditionalAmountsTotalHealthcare(BaseModel): + """The total amount of healthcare-related additional amounts.""" + amount: int """The amount in minor units of the `currency` field. @@ -202,6 +228,8 @@ class SourceCardAuthorizationAdditionalAmountsTotalHealthcare(BaseModel): class SourceCardAuthorizationAdditionalAmountsTransit(BaseModel): + """The part of this transaction amount that was for transit-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -217,6 +245,8 @@ class SourceCardAuthorizationAdditionalAmountsTransit(BaseModel): class SourceCardAuthorizationAdditionalAmountsUnknown(BaseModel): + """An unknown additional amount.""" + amount: int """The amount in minor units of the `currency` field. @@ -232,6 +262,8 @@ class SourceCardAuthorizationAdditionalAmountsUnknown(BaseModel): class SourceCardAuthorizationAdditionalAmountsVision(BaseModel): + """The part of this transaction amount that was for vision-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -247,6 +279,10 @@ class SourceCardAuthorizationAdditionalAmountsVision(BaseModel): class SourceCardAuthorizationAdditionalAmounts(BaseModel): + """ + Additional amounts associated with the card authorization, such as ATM surcharges fees. These are usually a subset of the `amount` field and are used to provide more detailed information about the transaction. + """ + clinic: Optional[SourceCardAuthorizationAdditionalAmountsClinic] = None """The part of this transaction amount that was for clinic-related services.""" @@ -281,10 +317,14 @@ class SourceCardAuthorizationAdditionalAmounts(BaseModel): class SourceCardAuthorizationNetworkDetailsPulse(BaseModel): + """Fields specific to the `pulse` network.""" + pass class SourceCardAuthorizationNetworkDetailsVisa(BaseModel): + """Fields specific to the `visa` network.""" + electronic_commerce_indicator: Optional[ Literal[ "mail_phone_order", @@ -403,6 +443,8 @@ class SourceCardAuthorizationNetworkDetailsVisa(BaseModel): class SourceCardAuthorizationNetworkDetails(BaseModel): + """Fields specific to the `network`.""" + category: Literal["visa", "pulse"] """The payment network used to process this card authorization. @@ -418,6 +460,8 @@ class SourceCardAuthorizationNetworkDetails(BaseModel): class SourceCardAuthorizationNetworkIdentifiers(BaseModel): + """Network-specific identifiers for a specific request or transaction.""" + authorization_identification_response: Optional[str] = None """ The randomly generated 6-character Authorization Identification Response code @@ -445,6 +489,10 @@ class SourceCardAuthorizationNetworkIdentifiers(BaseModel): class SourceCardAuthorizationVerificationCardVerificationCode(BaseModel): + """ + Fields related to verification of the Card Verification Code, a 3-digit code on the back of the card. + """ + result: Literal["not_checked", "match", "no_match"] """The result of verifying the Card Verification Code. @@ -456,6 +504,10 @@ class SourceCardAuthorizationVerificationCardVerificationCode(BaseModel): class SourceCardAuthorizationVerificationCardholderAddress(BaseModel): + """ + Cardholder address provided in the authorization request and the address on file we verified it against. + """ + actual_line1: Optional[str] = None """Line 1 of the address on file for the cardholder.""" @@ -495,6 +547,8 @@ class SourceCardAuthorizationVerificationCardholderAddress(BaseModel): class SourceCardAuthorizationVerification(BaseModel): + """Fields related to verification of cardholder-provided values.""" + card_verification_code: SourceCardAuthorizationVerificationCardVerificationCode """ Fields related to verification of the Card Verification Code, a 3-digit code on @@ -509,6 +563,11 @@ class SourceCardAuthorizationVerification(BaseModel): class SourceCardAuthorization(BaseModel): + """A Card Authorization object. + + This field will be present in the JSON response if and only if `category` is equal to `card_authorization`. Card Authorizations are temporary holds placed on a customers funds with the intent to later clear a transaction. + """ + id: str """The Card Authorization identifier.""" @@ -705,6 +764,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceCardPushTransferInstruction(BaseModel): + """A Card Push Transfer Instruction object. + + This field will be present in the JSON response if and only if `category` is equal to `card_push_transfer_instruction`. + """ + amount: int """The transfer amount in USD cents.""" @@ -713,6 +777,11 @@ class SourceCardPushTransferInstruction(BaseModel): class SourceCheckDepositInstruction(BaseModel): + """A Check Deposit Instruction object. + + This field will be present in the JSON response if and only if `category` is equal to `check_deposit_instruction`. + """ + amount: int """The pending amount in USD cents.""" @@ -753,6 +822,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceCheckTransferInstruction(BaseModel): + """A Check Transfer Instruction object. + + This field will be present in the JSON response if and only if `category` is equal to `check_transfer_instruction`. + """ + amount: int """The transfer amount in USD cents.""" @@ -781,6 +855,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceFednowTransferInstruction(BaseModel): + """A FedNow Transfer Instruction object. + + This field will be present in the JSON response if and only if `category` is equal to `fednow_transfer_instruction`. + """ + transfer_id: str """The identifier of the FedNow Transfer that led to this Pending Transaction.""" @@ -798,6 +877,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceInboundFundsHold(BaseModel): + """An Inbound Funds Hold object. + + This field will be present in the JSON response if and only if `category` is equal to `inbound_funds_hold`. We hold funds for certain transaction types to account for return windows where funds might still be clawed back by the sending institution. + """ + amount: int """The held amount in the minor unit of the account's currency. @@ -860,6 +944,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceInboundWireTransferReversal(BaseModel): + """An Inbound Wire Transfer Reversal object. + + This field will be present in the JSON response if and only if `category` is equal to `inbound_wire_transfer_reversal`. An Inbound Wire Transfer Reversal is created when Increase has received a wire and the User requests that it be reversed. + """ + inbound_wire_transfer_id: str """The ID of the Inbound Wire Transfer that is being reversed.""" @@ -877,10 +966,19 @@ def __getattr__(self, attr: str) -> object: ... class SourceOther(BaseModel): + """ + If the category of this Transaction source is equal to `other`, this field will contain an empty object, otherwise it will contain null. + """ + pass class SourceRealTimePaymentsTransferInstruction(BaseModel): + """A Real-Time Payments Transfer Instruction object. + + This field will be present in the JSON response if and only if `category` is equal to `real_time_payments_transfer_instruction`. + """ + amount: int """The transfer amount in USD cents.""" @@ -892,6 +990,11 @@ class SourceRealTimePaymentsTransferInstruction(BaseModel): class SourceSwiftTransferInstruction(BaseModel): + """A Swift Transfer Instruction object. + + This field will be present in the JSON response if and only if `category` is equal to `swift_transfer_instruction`. + """ + transfer_id: str """The identifier of the Swift Transfer that led to this Pending Transaction.""" @@ -909,6 +1012,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceWireTransferInstruction(BaseModel): + """A Wire Transfer Instruction object. + + This field will be present in the JSON response if and only if `category` is equal to `wire_transfer_instruction`. + """ + account_number: str """The account number for the destination account.""" @@ -941,6 +1049,10 @@ def __getattr__(self, attr: str) -> object: ... class Source(BaseModel): + """ + This is an object giving more details on the network-level event that caused the Pending Transaction. For example, for a card transaction this lists the merchant's industry and location. + """ + account_transfer_instruction: Optional[SourceAccountTransferInstruction] = None """An Account Transfer Instruction object. @@ -1110,6 +1222,10 @@ def __getattr__(self, attr: str) -> object: ... class PendingTransaction(BaseModel): + """ + Pending Transactions are potential future additions and removals of money from your bank account. They impact your available balance, but not your current balance. To learn more, see [Transactions and Transfers](/documentation/transactions-transfers). + """ + id: str """The Pending Transaction identifier.""" diff --git a/src/increase/types/physical_card.py b/src/increase/types/physical_card.py index 8087891e6..d8244067b 100644 --- a/src/increase/types/physical_card.py +++ b/src/increase/types/physical_card.py @@ -10,6 +10,8 @@ class Cardholder(BaseModel): + """Details about the cardholder, as it appears on the printed card.""" + first_name: str """The cardholder's first name.""" @@ -18,6 +20,8 @@ class Cardholder(BaseModel): class ShipmentAddress(BaseModel): + """The location to where the card's packing label is addressed.""" + city: str """The city of the shipping address.""" @@ -77,6 +81,8 @@ class ShipmentTrackingUpdate(BaseModel): class ShipmentTracking(BaseModel): + """Tracking details for the shipment.""" + number: Optional[str] = None """The tracking number. Not available for USPS shipments.""" @@ -98,6 +104,8 @@ class ShipmentTracking(BaseModel): class Shipment(BaseModel): + """The details used to ship this physical card.""" + address: ShipmentAddress """The location to where the card's packing label is addressed.""" @@ -151,6 +159,11 @@ class Shipment(BaseModel): class PhysicalCard(BaseModel): + """Custom physical Visa cards that are shipped to your customers. + + The artwork is configurable by a connected [Card Profile](/documentation/api#card-profiles). The same Card can be used for multiple Physical Cards. Printing cards incurs a fee. Please contact [support@increase.com](mailto:support@increase.com) for pricing! + """ + id: str """The physical card identifier.""" diff --git a/src/increase/types/physical_card_create_params.py b/src/increase/types/physical_card_create_params.py index 3de994bc1..03d872376 100644 --- a/src/increase/types/physical_card_create_params.py +++ b/src/increase/types/physical_card_create_params.py @@ -25,6 +25,8 @@ class PhysicalCardCreateParams(TypedDict, total=False): class Cardholder(TypedDict, total=False): + """Details about the cardholder, as it will appear on the physical card.""" + first_name: Required[str] """The cardholder's first name.""" @@ -33,6 +35,8 @@ class Cardholder(TypedDict, total=False): class ShipmentAddress(TypedDict, total=False): + """The address to where the card should be shipped.""" + city: Required[str] """The city of the shipping address.""" @@ -67,6 +71,8 @@ class ShipmentAddress(TypedDict, total=False): class Shipment(TypedDict, total=False): + """The details used to ship this physical card.""" + address: Required[ShipmentAddress] """The address to where the card should be shipped.""" diff --git a/src/increase/types/physical_card_profile.py b/src/increase/types/physical_card_profile.py index 175ff6c07..e6e35e926 100644 --- a/src/increase/types/physical_card_profile.py +++ b/src/increase/types/physical_card_profile.py @@ -12,6 +12,11 @@ class PhysicalCardProfile(BaseModel): + """This contains artwork and metadata relating to a Physical Card's appearance. + + For more information, see our guide on [physical card artwork](https://increase.com/documentation/card-art-physical-cards). + """ + id: str """The Card Profile identifier.""" diff --git a/src/increase/types/physical_card_profile_clone_params.py b/src/increase/types/physical_card_profile_clone_params.py index 917b9becf..597756601 100644 --- a/src/increase/types/physical_card_profile_clone_params.py +++ b/src/increase/types/physical_card_profile_clone_params.py @@ -32,6 +32,11 @@ class PhysicalCardProfileCloneParams(TypedDict, total=False): class FrontText(TypedDict, total=False): + """Text printed on the front of the card. + + Reach out to [support@increase.com](mailto:support@increase.com) for more information. + """ + line1: Required[str] """The first line of text on the front of the card.""" diff --git a/src/increase/types/physical_card_profile_create_params.py b/src/increase/types/physical_card_profile_create_params.py index 6544cf53f..bd98f17c7 100644 --- a/src/increase/types/physical_card_profile_create_params.py +++ b/src/increase/types/physical_card_profile_create_params.py @@ -32,6 +32,11 @@ class PhysicalCardProfileCreateParams(TypedDict, total=False): class FrontText(TypedDict, total=False): + """Text printed on the front of the card. + + Reach out to [support@increase.com](mailto:support@increase.com) for more information. + """ + line1: Required[str] """The first line of text on the front of the card.""" diff --git a/src/increase/types/program.py b/src/increase/types/program.py index 8ede73010..d7f852af0 100644 --- a/src/increase/types/program.py +++ b/src/increase/types/program.py @@ -10,6 +10,11 @@ class Program(BaseModel): + """Programs determine the compliance and commercial terms of Accounts. + + By default, you have a Commercial Banking program for managing your own funds. If you are lending or managing funds on behalf of your customers, or otherwise engaged in regulated activity, we will work together to create additional Programs for you. + """ + id: str """The Program identifier.""" diff --git a/src/increase/types/real_time_decision.py b/src/increase/types/real_time_decision.py index a4d56c1fa..72fe24fbf 100644 --- a/src/increase/types/real_time_decision.py +++ b/src/increase/types/real_time_decision.py @@ -43,6 +43,8 @@ class CardAuthentication(BaseModel): + """Fields related to a 3DS authentication attempt.""" + account_id: str """The identifier of the Account the card belongs to.""" @@ -66,6 +68,8 @@ class CardAuthentication(BaseModel): class CardAuthenticationChallenge(BaseModel): + """Fields related to a 3DS authentication attempt.""" + account_id: str """The identifier of the Account the card belongs to.""" @@ -92,6 +96,8 @@ class CardAuthenticationChallenge(BaseModel): class CardAuthorizationAdditionalAmountsClinic(BaseModel): + """The part of this transaction amount that was for clinic-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -107,6 +113,8 @@ class CardAuthorizationAdditionalAmountsClinic(BaseModel): class CardAuthorizationAdditionalAmountsDental(BaseModel): + """The part of this transaction amount that was for dental-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -122,6 +130,8 @@ class CardAuthorizationAdditionalAmountsDental(BaseModel): class CardAuthorizationAdditionalAmountsOriginal(BaseModel): + """The original pre-authorized amount.""" + amount: int """The amount in minor units of the `currency` field. @@ -137,6 +147,8 @@ class CardAuthorizationAdditionalAmountsOriginal(BaseModel): class CardAuthorizationAdditionalAmountsPrescription(BaseModel): + """The part of this transaction amount that was for healthcare prescriptions.""" + amount: int """The amount in minor units of the `currency` field. @@ -152,6 +164,8 @@ class CardAuthorizationAdditionalAmountsPrescription(BaseModel): class CardAuthorizationAdditionalAmountsSurcharge(BaseModel): + """The surcharge amount charged for this transaction by the merchant.""" + amount: int """The amount in minor units of the `currency` field. @@ -167,6 +181,10 @@ class CardAuthorizationAdditionalAmountsSurcharge(BaseModel): class CardAuthorizationAdditionalAmountsTotalCumulative(BaseModel): + """ + The total amount of a series of incremental authorizations, optionally provided. + """ + amount: int """The amount in minor units of the `currency` field. @@ -182,6 +200,8 @@ class CardAuthorizationAdditionalAmountsTotalCumulative(BaseModel): class CardAuthorizationAdditionalAmountsTotalHealthcare(BaseModel): + """The total amount of healthcare-related additional amounts.""" + amount: int """The amount in minor units of the `currency` field. @@ -197,6 +217,8 @@ class CardAuthorizationAdditionalAmountsTotalHealthcare(BaseModel): class CardAuthorizationAdditionalAmountsTransit(BaseModel): + """The part of this transaction amount that was for transit-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -212,6 +234,8 @@ class CardAuthorizationAdditionalAmountsTransit(BaseModel): class CardAuthorizationAdditionalAmountsUnknown(BaseModel): + """An unknown additional amount.""" + amount: int """The amount in minor units of the `currency` field. @@ -227,6 +251,8 @@ class CardAuthorizationAdditionalAmountsUnknown(BaseModel): class CardAuthorizationAdditionalAmountsVision(BaseModel): + """The part of this transaction amount that was for vision-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -242,6 +268,10 @@ class CardAuthorizationAdditionalAmountsVision(BaseModel): class CardAuthorizationAdditionalAmounts(BaseModel): + """ + Additional amounts associated with the card authorization, such as ATM surcharges fees. These are usually a subset of the `amount` field and are used to provide more detailed information about the transaction. + """ + clinic: Optional[CardAuthorizationAdditionalAmountsClinic] = None """The part of this transaction amount that was for clinic-related services.""" @@ -276,6 +306,11 @@ class CardAuthorizationAdditionalAmounts(BaseModel): class CardAuthorizationApproval(BaseModel): + """Present if and only if `decision` is `approve`. + + Contains information related to the approval of the authorization. + """ + partial_amount: Optional[int] = None """ If the authorization was partially approved, this field contains the approved @@ -284,6 +319,11 @@ class CardAuthorizationApproval(BaseModel): class CardAuthorizationDecline(BaseModel): + """Present if and only if `decision` is `decline`. + + Contains information related to the reason the authorization was declined. + """ + reason: Literal[ "insufficient_funds", "transaction_never_allowed", @@ -310,10 +350,14 @@ class CardAuthorizationDecline(BaseModel): class CardAuthorizationNetworkDetailsPulse(BaseModel): + """Fields specific to the `pulse` network.""" + pass class CardAuthorizationNetworkDetailsVisa(BaseModel): + """Fields specific to the `visa` network.""" + electronic_commerce_indicator: Optional[ Literal[ "mail_phone_order", @@ -432,6 +476,8 @@ class CardAuthorizationNetworkDetailsVisa(BaseModel): class CardAuthorizationNetworkDetails(BaseModel): + """Fields specific to the `network`.""" + category: Literal["visa", "pulse"] """The payment network used to process this card authorization. @@ -447,6 +493,8 @@ class CardAuthorizationNetworkDetails(BaseModel): class CardAuthorizationNetworkIdentifiers(BaseModel): + """Network-specific identifiers for a specific request or transaction.""" + authorization_identification_response: Optional[str] = None """ The randomly generated 6-character Authorization Identification Response code @@ -474,6 +522,8 @@ class CardAuthorizationNetworkIdentifiers(BaseModel): class CardAuthorizationRequestDetailsIncrementalAuthorization(BaseModel): + """Fields specific to the category `incremental_authorization`.""" + card_payment_id: str """The card payment for this authorization and increment.""" @@ -485,10 +535,14 @@ class CardAuthorizationRequestDetailsIncrementalAuthorization(BaseModel): class CardAuthorizationRequestDetailsInitialAuthorization(BaseModel): + """Fields specific to the category `initial_authorization`.""" + pass class CardAuthorizationRequestDetails(BaseModel): + """Fields specific to the type of request, such as an incremental authorization.""" + category: Literal["initial_authorization", "incremental_authorization"] """ The type of this request (e.g., an initial authorization or an incremental @@ -507,6 +561,10 @@ class CardAuthorizationRequestDetails(BaseModel): class CardAuthorizationVerificationCardVerificationCode(BaseModel): + """ + Fields related to verification of the Card Verification Code, a 3-digit code on the back of the card. + """ + result: Literal["not_checked", "match", "no_match"] """The result of verifying the Card Verification Code. @@ -518,6 +576,10 @@ class CardAuthorizationVerificationCardVerificationCode(BaseModel): class CardAuthorizationVerificationCardholderAddress(BaseModel): + """ + Cardholder address provided in the authorization request and the address on file we verified it against. + """ + actual_line1: Optional[str] = None """Line 1 of the address on file for the cardholder.""" @@ -557,6 +619,8 @@ class CardAuthorizationVerificationCardholderAddress(BaseModel): class CardAuthorizationVerification(BaseModel): + """Fields related to verification of cardholder-provided values.""" + card_verification_code: CardAuthorizationVerificationCardVerificationCode """ Fields related to verification of the Card Verification Code, a 3-digit code on @@ -571,6 +635,8 @@ class CardAuthorizationVerification(BaseModel): class CardAuthorization(BaseModel): + """Fields related to a card authorization.""" + account_id: str """The identifier of the Account the authorization will debit.""" @@ -772,6 +838,8 @@ def __getattr__(self, attr: str) -> object: ... class DigitalWalletAuthentication(BaseModel): + """Fields related to a digital wallet authentication attempt.""" + card_id: str """The identifier of the Card that is being tokenized.""" @@ -814,11 +882,15 @@ class DigitalWalletAuthentication(BaseModel): class DigitalWalletTokenDevice(BaseModel): + """Device that is being used to provision the digital wallet token.""" + identifier: Optional[str] = None """ID assigned to the device by the digital wallet provider.""" class DigitalWalletToken(BaseModel): + """Fields related to a digital wallet token provisioning attempt.""" + card_id: str """The identifier of the Card that is being tokenized.""" @@ -845,6 +917,10 @@ class DigitalWalletToken(BaseModel): class RealTimeDecision(BaseModel): + """ + Real Time Decisions are created when your application needs to take action in real-time to some event such as a card authorization. For more information, see our [Real-Time Decisions guide](https://increase.com/documentation/real-time-decisions). + """ + id: str """The Real-Time Decision identifier.""" diff --git a/src/increase/types/real_time_decision_action_params.py b/src/increase/types/real_time_decision_action_params.py index 7f3792ab5..2040b623e 100644 --- a/src/increase/types/real_time_decision_action_params.py +++ b/src/increase/types/real_time_decision_action_params.py @@ -54,6 +54,10 @@ class RealTimeDecisionActionParams(TypedDict, total=False): class CardAuthentication(TypedDict, total=False): + """ + If the Real-Time Decision relates to a 3DS card authentication attempt, this object contains your response to the authentication. + """ + decision: Required[Literal["approve", "challenge", "deny"]] """Whether the card authentication attempt should be approved or declined. @@ -65,6 +69,10 @@ class CardAuthentication(TypedDict, total=False): class CardAuthenticationChallenge(TypedDict, total=False): + """ + If the Real-Time Decision relates to 3DS card authentication challenge delivery, this object contains your response. + """ + result: Required[Literal["success", "failure"]] """ Whether the card authentication challenge was successfully delivered to the @@ -78,6 +86,11 @@ class CardAuthenticationChallenge(TypedDict, total=False): class CardAuthorizationApprovalCardholderAddressVerificationResult(TypedDict, total=False): + """Your decisions on whether or not each provided address component is a match. + + Your response here is evaluated against the customer's provided `postal_code` and `line1`, and an appropriate network response is generated. For more information, see our [Address Verification System Codes and Overrides](https://increase.com/documentation/address-verification-system-codes-and-overrides) guide. + """ + line1: Required[Literal["match", "no_match"]] """Your decision on the address line of the provided address. @@ -98,6 +111,10 @@ class CardAuthorizationApprovalCardholderAddressVerificationResult(TypedDict, to class CardAuthorizationApproval(TypedDict, total=False): + """ + If your application approves the authorization, this contains metadata about your decision to approve. Your response here is advisory to the acquiring bank. The bank may choose to reverse the authorization if you approve the transaction but indicate the address does not match. + """ + cardholder_address_verification_result: CardAuthorizationApprovalCardholderAddressVerificationResult """Your decisions on whether or not each provided address component is a match. @@ -118,6 +135,10 @@ class CardAuthorizationApproval(TypedDict, total=False): class CardAuthorizationDecline(TypedDict, total=False): + """ + If your application declines the authorization, this contains details about the decline. + """ + reason: Required[ Literal[ "insufficient_funds", @@ -148,6 +169,10 @@ class CardAuthorizationDecline(TypedDict, total=False): class CardAuthorizationTyped(TypedDict, total=False): + """ + If the Real-Time Decision relates to a card authorization attempt, this object contains your response to the authorization. + """ + decision: Required[Literal["approve", "decline"]] """Whether the card authorization should be approved or declined. @@ -174,6 +199,10 @@ class CardAuthorizationTyped(TypedDict, total=False): class DigitalWalletAuthenticationSuccess(TypedDict, total=False): + """ + If your application was able to deliver the one-time passcode, this contains metadata about the delivery. Exactly one of `phone` or `email` must be provided. + """ + email: str """The email address that was used to verify the cardholder via one-time passcode.""" @@ -185,6 +214,10 @@ class DigitalWalletAuthenticationSuccess(TypedDict, total=False): class DigitalWalletAuthentication(TypedDict, total=False): + """ + If the Real-Time Decision relates to a digital wallet authentication attempt, this object contains your response to the authentication. + """ + result: Required[Literal["success", "failure"]] """Whether your application was able to deliver the one-time passcode. @@ -202,6 +235,10 @@ class DigitalWalletAuthentication(TypedDict, total=False): class DigitalWalletTokenApproval(TypedDict, total=False): + """ + If your application approves the provisioning attempt, this contains metadata about the digital wallet token that will be generated. + """ + email: str """ An email address that can be used to verify the cardholder via one-time @@ -216,6 +253,10 @@ class DigitalWalletTokenApproval(TypedDict, total=False): class DigitalWalletTokenDecline(TypedDict, total=False): + """ + If your application declines the provisioning attempt, this contains details about the decline. + """ + reason: str """Why the tokenization attempt was declined. @@ -224,6 +265,10 @@ class DigitalWalletTokenDecline(TypedDict, total=False): class DigitalWalletToken(TypedDict, total=False): + """ + If the Real-Time Decision relates to a digital wallet token provisioning attempt, this object contains your response to the attempt. + """ + approval: DigitalWalletTokenApproval """ If your application approves the provisioning attempt, this contains metadata diff --git a/src/increase/types/real_time_payments_transfer.py b/src/increase/types/real_time_payments_transfer.py index 8934f40aa..127baf9d6 100644 --- a/src/increase/types/real_time_payments_transfer.py +++ b/src/increase/types/real_time_payments_transfer.py @@ -23,11 +23,19 @@ class Acknowledgement(BaseModel): + """ + If the transfer is acknowledged by the recipient bank, this will contain supplemental details. + """ + acknowledged_at: datetime """When the transfer was acknowledged.""" class Approval(BaseModel): + """ + If your account requires approvals for transfers and the transfer was approved, this will contain details of the approval. + """ + approved_at: datetime """ The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which @@ -42,6 +50,10 @@ class Approval(BaseModel): class Cancellation(BaseModel): + """ + If your account requires approvals for transfers and the transfer was not approved, this will contain details of the cancellation. + """ + canceled_at: datetime """ The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which @@ -56,21 +68,29 @@ class Cancellation(BaseModel): class CreatedByAPIKey(BaseModel): + """If present, details about the API key that created the transfer.""" + description: Optional[str] = None """The description set for the API key when it was created.""" class CreatedByOAuthApplication(BaseModel): + """If present, details about the OAuth Application that created the transfer.""" + name: str """The name of the OAuth Application.""" class CreatedByUser(BaseModel): + """If present, details about the User that created the transfer.""" + email: str """The email address of the User.""" class CreatedBy(BaseModel): + """What object created the transfer, either via the API or the dashboard.""" + api_key: Optional[CreatedByAPIKey] = None """If present, details about the API key that created the transfer.""" @@ -92,6 +112,10 @@ class CreatedBy(BaseModel): class Rejection(BaseModel): + """ + If the transfer is rejected by Real-Time Payments or the destination financial institution, this will contain supplemental details. + """ + reject_reason_additional_information: Optional[str] = None """ Additional information about the rejection provided by the recipient bank when @@ -183,6 +207,10 @@ class Rejection(BaseModel): class Submission(BaseModel): + """ + After the transfer is submitted to Real-Time Payments, this will contain supplemental details. + """ + submitted_at: Optional[datetime] = None """ The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which @@ -194,6 +222,10 @@ class Submission(BaseModel): class RealTimePaymentsTransfer(BaseModel): + """ + Real-Time Payments transfers move funds, within seconds, between your Increase account and any other account on the Real-Time Payments network. + """ + id: str """The Real-Time Payments Transfer's identifier.""" diff --git a/src/increase/types/routing_number_list_response.py b/src/increase/types/routing_number_list_response.py index 4b7bd3d75..30cce17e4 100644 --- a/src/increase/types/routing_number_list_response.py +++ b/src/increase/types/routing_number_list_response.py @@ -8,6 +8,8 @@ class RoutingNumberListResponse(BaseModel): + """Routing numbers are used to identify your bank in a financial transaction.""" + ach_transfers: Literal["supported", "not_supported"] """This routing number's support for ACH Transfers. diff --git a/src/increase/types/simulations/card_authorization_create_params.py b/src/increase/types/simulations/card_authorization_create_params.py index f11ed0c71..e66950f04 100644 --- a/src/increase/types/simulations/card_authorization_create_params.py +++ b/src/increase/types/simulations/card_authorization_create_params.py @@ -145,6 +145,8 @@ class CardAuthorizationCreateParams(TypedDict, total=False): class NetworkDetailsVisa(TypedDict, total=False): + """Fields specific to the Visa network.""" + stand_in_processing_reason: Literal[ "issuer_error", "invalid_physical_card", @@ -177,16 +179,24 @@ class NetworkDetailsVisa(TypedDict, total=False): class NetworkDetails(TypedDict, total=False): + """Fields specific to a given card network.""" + visa: Required[NetworkDetailsVisa] """Fields specific to the Visa network.""" class ProcessingCategoryRefund(TypedDict, total=False): + """Details related to refund authorizations.""" + original_card_payment_id: str """The card payment to link this refund to.""" class ProcessingCategory(TypedDict, total=False): + """ + Fields specific to a specific type of authorization, such as Automatic Fuel Dispensers, Refund Authorizations, or Cash Disbursements. + """ + category: Required[ Literal[ "account_funding", diff --git a/src/increase/types/simulations/card_authorization_create_response.py b/src/increase/types/simulations/card_authorization_create_response.py index 5944bf00d..b6cd03098 100644 --- a/src/increase/types/simulations/card_authorization_create_response.py +++ b/src/increase/types/simulations/card_authorization_create_response.py @@ -11,6 +11,8 @@ class CardAuthorizationCreateResponse(BaseModel): + """The results of a Card Authorization simulation.""" + declined_transaction: Optional[DeclinedTransaction] = None """ If the authorization attempt fails, this will contain the resulting diff --git a/src/increase/types/simulations/card_dispute_action_params.py b/src/increase/types/simulations/card_dispute_action_params.py index d712dbb42..3cd69b425 100644 --- a/src/increase/types/simulations/card_dispute_action_params.py +++ b/src/increase/types/simulations/card_dispute_action_params.py @@ -38,47 +38,102 @@ class CardDisputeActionParams(TypedDict, total=False): class VisaAcceptChargeback(TypedDict, total=False): + """The parameters for accepting the chargeback. + + Required if and only if `action` is `accept_chargeback`. + """ + pass class VisaAcceptUserSubmission(TypedDict, total=False): + """The parameters for accepting the user submission. + + Required if and only if `action` is `accept_user_submission`. + """ + pass class VisaDeclineUserPrearbitration(TypedDict, total=False): + """The parameters for declining the prearbitration. + + Required if and only if `action` is `decline_user_prearbitration`. + """ + pass class VisaReceiveMerchantPrearbitration(TypedDict, total=False): + """The parameters for receiving the prearbitration. + + Required if and only if `action` is `receive_merchant_prearbitration`. + """ + pass class VisaRepresent(TypedDict, total=False): + """The parameters for re-presenting the dispute. + + Required if and only if `action` is `represent`. + """ + pass class VisaRequestFurtherInformation(TypedDict, total=False): + """The parameters for requesting further information from the user. + + Required if and only if `action` is `request_further_information`. + """ + reason: Required[str] """The reason for requesting further information from the user.""" class VisaTimeOutChargeback(TypedDict, total=False): + """The parameters for timing out the chargeback. + + Required if and only if `action` is `time_out_chargeback`. + """ + pass class VisaTimeOutMerchantPrearbitration(TypedDict, total=False): + """The parameters for timing out the merchant prearbitration. + + Required if and only if `action` is `time_out_merchant_prearbitration`. + """ + pass class VisaTimeOutRepresentment(TypedDict, total=False): + """The parameters for timing out the re-presentment. + + Required if and only if `action` is `time_out_representment`. + """ + pass class VisaTimeOutUserPrearbitration(TypedDict, total=False): + """The parameters for timing out the user prearbitration. + + Required if and only if `action` is `time_out_user_prearbitration`. + """ + pass class Visa(TypedDict, total=False): + """The Visa-specific parameters for the taking action on the dispute. + + Required if and only if `network` is `visa`. + """ + action: Required[ Literal[ "accept_chargeback", diff --git a/src/increase/types/simulations/digital_wallet_token_request_create_response.py b/src/increase/types/simulations/digital_wallet_token_request_create_response.py index 29df122fe..bd2fa140c 100644 --- a/src/increase/types/simulations/digital_wallet_token_request_create_response.py +++ b/src/increase/types/simulations/digital_wallet_token_request_create_response.py @@ -9,6 +9,8 @@ class DigitalWalletTokenRequestCreateResponse(BaseModel): + """The results of a Digital Wallet Token simulation.""" + decline_reason: Optional[ Literal["card_not_active", "no_verification_method", "webhook_timed_out", "webhook_declined"] ] = None diff --git a/src/increase/types/simulations/inbound_ach_transfer_create_params.py b/src/increase/types/simulations/inbound_ach_transfer_create_params.py index f269429a4..616dfa2a7 100644 --- a/src/increase/types/simulations/inbound_ach_transfer_create_params.py +++ b/src/increase/types/simulations/inbound_ach_transfer_create_params.py @@ -98,11 +98,15 @@ class AddendaFreeformEntry(TypedDict, total=False): class AddendaFreeform(TypedDict, total=False): + """Unstructured `payment_related_information` passed through with the transfer.""" + entries: Required[Iterable[AddendaFreeformEntry]] """Each entry represents an addendum sent with the transfer.""" class Addenda(TypedDict, total=False): + """Additional information to include in the transfer.""" + category: Required[Literal["freeform"]] """The type of addenda to simulate being sent with the transfer. diff --git a/src/increase/types/simulations/real_time_payments_transfer_complete_params.py b/src/increase/types/simulations/real_time_payments_transfer_complete_params.py index 1bbadeeb6..f96f2fd3b 100644 --- a/src/increase/types/simulations/real_time_payments_transfer_complete_params.py +++ b/src/increase/types/simulations/real_time_payments_transfer_complete_params.py @@ -13,6 +13,8 @@ class RealTimePaymentsTransferCompleteParams(TypedDict, total=False): class Rejection(TypedDict, total=False): + """If set, the simulation will reject the transfer.""" + reject_reason_code: Required[ Literal[ "account_closed", diff --git a/src/increase/types/transaction.py b/src/increase/types/transaction.py index 5a6922690..6dcd5e495 100644 --- a/src/increase/types/transaction.py +++ b/src/increase/types/transaction.py @@ -94,6 +94,11 @@ class SourceAccountRevenuePayment(BaseModel): + """An Account Revenue Payment object. + + This field will be present in the JSON response if and only if `category` is equal to `account_revenue_payment`. An Account Revenue Payment represents a payment made to an account from the bank. Account revenue is a type of non-interest income. + """ + accrued_on_account_id: str """The account on which the account revenue was accrued.""" @@ -117,6 +122,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceAccountTransferIntention(BaseModel): + """An Account Transfer Intention object. + + This field will be present in the JSON response if and only if `category` is equal to `account_transfer_intention`. Two Account Transfer Intentions are created from each Account Transfer. One decrements the source account, and the other increments the destination account. + """ + amount: int """The pending amount in the minor unit of the transaction's currency. @@ -157,6 +167,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceACHTransferIntention(BaseModel): + """An ACH Transfer Intention object. + + This field will be present in the JSON response if and only if `category` is equal to `ach_transfer_intention`. An ACH Transfer Intention is created from an ACH Transfer. It reflects the intention to move money into or out of an Increase account via the ACH network. + """ + account_number: str """The account number for the destination account.""" @@ -192,6 +207,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceACHTransferRejection(BaseModel): + """An ACH Transfer Rejection object. + + This field will be present in the JSON response if and only if `category` is equal to `ach_transfer_rejection`. An ACH Transfer Rejection is created when an ACH Transfer is rejected by Increase. It offsets the ACH Transfer Intention. These rejections are rare. + """ + transfer_id: str """The identifier of the ACH Transfer that led to this Transaction.""" @@ -209,6 +229,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceACHTransferReturn(BaseModel): + """An ACH Transfer Return object. + + This field will be present in the JSON response if and only if `category` is equal to `ach_transfer_return`. An ACH Transfer Return is created when an ACH Transfer is returned by the receiving bank. It offsets the ACH Transfer Intention. ACH Transfer Returns usually occur within the first two business days after the transfer is initiated, but can occur much later. + """ + created_at: datetime """ The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which @@ -471,6 +496,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceCardDisputeAcceptance(BaseModel): + """A Legacy Card Dispute Acceptance object. + + This field will be present in the JSON response if and only if `category` is equal to `card_dispute_acceptance`. Contains the details of a successful Card Dispute. + """ + accepted_at: datetime """ The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which @@ -497,6 +527,10 @@ def __getattr__(self, attr: str) -> object: ... class SourceCardDisputeFinancialVisa(BaseModel): + """ + Information for events related to card dispute for card payments processed over Visa's network. This field will be present in the JSON response if and only if `network` is equal to `visa`. + """ + event_type: Literal[ "chargeback_submitted", "merchant_prearbitration_decline_submitted", @@ -522,6 +556,11 @@ class SourceCardDisputeFinancialVisa(BaseModel): class SourceCardDisputeFinancial(BaseModel): + """A Card Dispute Financial object. + + This field will be present in the JSON response if and only if `category` is equal to `card_dispute_financial`. Financial event related to a Card Dispute. + """ + amount: int """The amount of the financial event.""" @@ -559,6 +598,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceCardDisputeLoss(BaseModel): + """A Legacy Card Dispute Loss object. + + This field will be present in the JSON response if and only if `category` is equal to `card_dispute_loss`. Contains the details of a lost Card Dispute. + """ + explanation: str """Why the Card Dispute was lost.""" @@ -588,6 +632,8 @@ def __getattr__(self, attr: str) -> object: ... class SourceCardFinancialAdditionalAmountsClinic(BaseModel): + """The part of this transaction amount that was for clinic-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -603,6 +649,8 @@ class SourceCardFinancialAdditionalAmountsClinic(BaseModel): class SourceCardFinancialAdditionalAmountsDental(BaseModel): + """The part of this transaction amount that was for dental-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -618,6 +666,8 @@ class SourceCardFinancialAdditionalAmountsDental(BaseModel): class SourceCardFinancialAdditionalAmountsOriginal(BaseModel): + """The original pre-authorized amount.""" + amount: int """The amount in minor units of the `currency` field. @@ -633,6 +683,8 @@ class SourceCardFinancialAdditionalAmountsOriginal(BaseModel): class SourceCardFinancialAdditionalAmountsPrescription(BaseModel): + """The part of this transaction amount that was for healthcare prescriptions.""" + amount: int """The amount in minor units of the `currency` field. @@ -648,6 +700,8 @@ class SourceCardFinancialAdditionalAmountsPrescription(BaseModel): class SourceCardFinancialAdditionalAmountsSurcharge(BaseModel): + """The surcharge amount charged for this transaction by the merchant.""" + amount: int """The amount in minor units of the `currency` field. @@ -663,6 +717,10 @@ class SourceCardFinancialAdditionalAmountsSurcharge(BaseModel): class SourceCardFinancialAdditionalAmountsTotalCumulative(BaseModel): + """ + The total amount of a series of incremental authorizations, optionally provided. + """ + amount: int """The amount in minor units of the `currency` field. @@ -678,6 +736,8 @@ class SourceCardFinancialAdditionalAmountsTotalCumulative(BaseModel): class SourceCardFinancialAdditionalAmountsTotalHealthcare(BaseModel): + """The total amount of healthcare-related additional amounts.""" + amount: int """The amount in minor units of the `currency` field. @@ -693,6 +753,8 @@ class SourceCardFinancialAdditionalAmountsTotalHealthcare(BaseModel): class SourceCardFinancialAdditionalAmountsTransit(BaseModel): + """The part of this transaction amount that was for transit-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -708,6 +770,8 @@ class SourceCardFinancialAdditionalAmountsTransit(BaseModel): class SourceCardFinancialAdditionalAmountsUnknown(BaseModel): + """An unknown additional amount.""" + amount: int """The amount in minor units of the `currency` field. @@ -723,6 +787,8 @@ class SourceCardFinancialAdditionalAmountsUnknown(BaseModel): class SourceCardFinancialAdditionalAmountsVision(BaseModel): + """The part of this transaction amount that was for vision-related services.""" + amount: int """The amount in minor units of the `currency` field. @@ -738,6 +804,10 @@ class SourceCardFinancialAdditionalAmountsVision(BaseModel): class SourceCardFinancialAdditionalAmounts(BaseModel): + """ + Additional amounts associated with the card authorization, such as ATM surcharges fees. These are usually a subset of the `amount` field and are used to provide more detailed information about the transaction. + """ + clinic: Optional[SourceCardFinancialAdditionalAmountsClinic] = None """The part of this transaction amount that was for clinic-related services.""" @@ -772,10 +842,14 @@ class SourceCardFinancialAdditionalAmounts(BaseModel): class SourceCardFinancialNetworkDetailsPulse(BaseModel): + """Fields specific to the `pulse` network.""" + pass class SourceCardFinancialNetworkDetailsVisa(BaseModel): + """Fields specific to the `visa` network.""" + electronic_commerce_indicator: Optional[ Literal[ "mail_phone_order", @@ -894,6 +968,8 @@ class SourceCardFinancialNetworkDetailsVisa(BaseModel): class SourceCardFinancialNetworkDetails(BaseModel): + """Fields specific to the `network`.""" + category: Literal["visa", "pulse"] """The payment network used to process this card authorization. @@ -909,6 +985,8 @@ class SourceCardFinancialNetworkDetails(BaseModel): class SourceCardFinancialNetworkIdentifiers(BaseModel): + """Network-specific identifiers for a specific request or transaction.""" + authorization_identification_response: Optional[str] = None """ The randomly generated 6-character Authorization Identification Response code @@ -936,6 +1014,10 @@ class SourceCardFinancialNetworkIdentifiers(BaseModel): class SourceCardFinancialVerificationCardVerificationCode(BaseModel): + """ + Fields related to verification of the Card Verification Code, a 3-digit code on the back of the card. + """ + result: Literal["not_checked", "match", "no_match"] """The result of verifying the Card Verification Code. @@ -947,6 +1029,10 @@ class SourceCardFinancialVerificationCardVerificationCode(BaseModel): class SourceCardFinancialVerificationCardholderAddress(BaseModel): + """ + Cardholder address provided in the authorization request and the address on file we verified it against. + """ + actual_line1: Optional[str] = None """Line 1 of the address on file for the cardholder.""" @@ -986,6 +1072,8 @@ class SourceCardFinancialVerificationCardholderAddress(BaseModel): class SourceCardFinancialVerification(BaseModel): + """Fields related to verification of cardholder-provided values.""" + card_verification_code: SourceCardFinancialVerificationCardVerificationCode """ Fields related to verification of the Card Verification Code, a 3-digit code on @@ -1000,6 +1088,11 @@ class SourceCardFinancialVerification(BaseModel): class SourceCardFinancial(BaseModel): + """A Card Financial object. + + This field will be present in the JSON response if and only if `category` is equal to `card_financial`. Card Financials are temporary holds placed on a customers funds with the intent to later clear a transaction. + """ + id: str """The Card Financial identifier.""" @@ -1190,6 +1283,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceCardPushTransferAcceptance(BaseModel): + """A Card Push Transfer Acceptance object. + + This field will be present in the JSON response if and only if `category` is equal to `card_push_transfer_acceptance`. A Card Push Transfer Acceptance is created when an Outbound Card Push Transfer sent from Increase is accepted by the receiving bank. + """ + settlement_amount: int """The transfer amount in USD cents.""" @@ -1210,6 +1308,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceCardRefundCashback(BaseModel): + """Cashback debited for this transaction, if eligible. + + Cashback is paid out in aggregate, monthly. + """ + amount: str """The cashback amount given as a string containing a decimal number. @@ -1225,6 +1328,8 @@ class SourceCardRefundCashback(BaseModel): class SourceCardRefundInterchange(BaseModel): + """Interchange assessed as a part of this transaciton.""" + amount: str """ The interchange amount given as a string containing a decimal number in major @@ -1246,6 +1351,8 @@ class SourceCardRefundInterchange(BaseModel): class SourceCardRefundNetworkIdentifiers(BaseModel): + """Network-specific identifiers for this refund.""" + acquirer_business_id: str """ A network assigned business ID that identifies the acquirer that processed this @@ -1269,6 +1376,8 @@ class SourceCardRefundNetworkIdentifiers(BaseModel): class SourceCardRefundPurchaseDetailsCarRental(BaseModel): + """Fields specific to car rentals.""" + car_class_code: Optional[str] = None """Code indicating the vehicle's class.""" @@ -1356,6 +1465,8 @@ class SourceCardRefundPurchaseDetailsCarRental(BaseModel): class SourceCardRefundPurchaseDetailsLodging(BaseModel): + """Fields specific to lodging.""" + check_in_date: Optional[date] = None """Date the customer checked in.""" @@ -1502,6 +1613,8 @@ class SourceCardRefundPurchaseDetailsTravelAncillaryService(BaseModel): class SourceCardRefundPurchaseDetailsTravelAncillary(BaseModel): + """Ancillary purchases in addition to the airfare.""" + connected_ticket_document_number: Optional[str] = None """ If this purchase has a connection or relationship to another purchase, such as a @@ -1563,6 +1676,8 @@ class SourceCardRefundPurchaseDetailsTravelTripLeg(BaseModel): class SourceCardRefundPurchaseDetailsTravel(BaseModel): + """Fields specific to travel.""" + ancillary: Optional[SourceCardRefundPurchaseDetailsTravelAncillary] = None """Ancillary purchases in addition to the airfare.""" @@ -1629,6 +1744,10 @@ class SourceCardRefundPurchaseDetailsTravel(BaseModel): class SourceCardRefundPurchaseDetails(BaseModel): + """ + Additional details about the card purchase, such as tax and industry-specific fields. + """ + car_rental: Optional[SourceCardRefundPurchaseDetailsCarRental] = None """Fields specific to car rentals.""" @@ -1676,6 +1795,11 @@ class SourceCardRefundPurchaseDetails(BaseModel): class SourceCardRefund(BaseModel): + """A Card Refund object. + + This field will be present in the JSON response if and only if `category` is equal to `card_refund`. Card Refunds move money back to the cardholder. While they are usually connected to a Card Settlement an acquirer can also refund money directly to a card without relation to a transaction. + """ + id: str """The Card Refund identifier.""" @@ -1770,6 +1894,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceCardRevenuePayment(BaseModel): + """A Card Revenue Payment object. + + This field will be present in the JSON response if and only if `category` is equal to `card_revenue_payment`. Card Revenue Payments reflect earnings from fees on card transactions. + """ + amount: int """The amount in the minor unit of the transaction's currency. @@ -1807,6 +1936,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceCardSettlementCashback(BaseModel): + """Cashback earned on this transaction, if eligible. + + Cashback is paid out in aggregate, monthly. + """ + amount: str """The cashback amount given as a string containing a decimal number. @@ -1822,6 +1956,8 @@ class SourceCardSettlementCashback(BaseModel): class SourceCardSettlementInterchange(BaseModel): + """Interchange assessed as a part of this transaction.""" + amount: str """ The interchange amount given as a string containing a decimal number in major @@ -1843,6 +1979,8 @@ class SourceCardSettlementInterchange(BaseModel): class SourceCardSettlementNetworkIdentifiers(BaseModel): + """Network-specific identifiers for this refund.""" + acquirer_business_id: str """ A network assigned business ID that identifies the acquirer that processed this @@ -1866,6 +2004,8 @@ class SourceCardSettlementNetworkIdentifiers(BaseModel): class SourceCardSettlementPurchaseDetailsCarRental(BaseModel): + """Fields specific to car rentals.""" + car_class_code: Optional[str] = None """Code indicating the vehicle's class.""" @@ -1953,6 +2093,8 @@ class SourceCardSettlementPurchaseDetailsCarRental(BaseModel): class SourceCardSettlementPurchaseDetailsLodging(BaseModel): + """Fields specific to lodging.""" + check_in_date: Optional[date] = None """Date the customer checked in.""" @@ -2099,6 +2241,8 @@ class SourceCardSettlementPurchaseDetailsTravelAncillaryService(BaseModel): class SourceCardSettlementPurchaseDetailsTravelAncillary(BaseModel): + """Ancillary purchases in addition to the airfare.""" + connected_ticket_document_number: Optional[str] = None """ If this purchase has a connection or relationship to another purchase, such as a @@ -2160,6 +2304,8 @@ class SourceCardSettlementPurchaseDetailsTravelTripLeg(BaseModel): class SourceCardSettlementPurchaseDetailsTravel(BaseModel): + """Fields specific to travel.""" + ancillary: Optional[SourceCardSettlementPurchaseDetailsTravelAncillary] = None """Ancillary purchases in addition to the airfare.""" @@ -2226,6 +2372,10 @@ class SourceCardSettlementPurchaseDetailsTravel(BaseModel): class SourceCardSettlementPurchaseDetails(BaseModel): + """ + Additional details about the card purchase, such as tax and industry-specific fields. + """ + car_rental: Optional[SourceCardSettlementPurchaseDetailsCarRental] = None """Fields specific to car rentals.""" @@ -2273,6 +2423,11 @@ class SourceCardSettlementPurchaseDetails(BaseModel): class SourceCardSettlementSurcharge(BaseModel): + """Surcharge amount details, if applicable. + + The amount is positive if the surcharge is added to to the overall transaction amount (surcharge), and negative if the surcharge is deducted from the overall transaction amount (discount). + """ + amount: int """ The surcharge amount in the minor unit of the transaction's settlement currency. @@ -2286,6 +2441,11 @@ class SourceCardSettlementSurcharge(BaseModel): class SourceCardSettlement(BaseModel): + """A Card Settlement object. + + This field will be present in the JSON response if and only if `category` is equal to `card_settlement`. Card Settlements are card transactions that have cleared and settled. While a settlement is usually preceded by an authorization, an acquirer can also directly clear a transaction without first authorizing it. + """ + id: str """The Card Settlement identifier.""" @@ -2404,6 +2564,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceCashbackPayment(BaseModel): + """A Cashback Payment object. + + This field will be present in the JSON response if and only if `category` is equal to `cashback_payment`. A Cashback Payment represents the cashback paid to a cardholder for a given period. Cashback is usually paid monthly for the prior month's transactions. + """ + accrued_on_card_id: Optional[str] = None """The card on which the cashback was accrued.""" @@ -2441,6 +2606,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceCheckDepositAcceptance(BaseModel): + """A Check Deposit Acceptance object. + + This field will be present in the JSON response if and only if `category` is equal to `check_deposit_acceptance`. A Check Deposit Acceptance is created when a Check Deposit is processed and its details confirmed. Check Deposits may be returned by the receiving bank, which will appear as a Check Deposit Return. + """ + account_number: str """The account number printed on the check. @@ -2497,6 +2667,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceCheckDepositReturn(BaseModel): + """A Check Deposit Return object. + + This field will be present in the JSON response if and only if `category` is equal to `check_deposit_return`. A Check Deposit Return is created when a Check Deposit is returned by the bank holding the account it was drawn against. Check Deposits may be returned for a variety of reasons, including insufficient funds or a mismatched account number. Usually, checks are returned within the first 7 days after the deposit is made. + """ + amount: int """The returned amount in USD cents.""" @@ -2612,6 +2787,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceCheckTransferDeposit(BaseModel): + """A Check Transfer Deposit object. + + This field will be present in the JSON response if and only if `category` is equal to `check_transfer_deposit`. An Inbound Check is a check drawn on an Increase account that has been deposited by an external bank account. These types of checks are not pre-registered. + """ + back_image_file_id: Optional[str] = None """ The identifier of the API File object containing an image of the back of the @@ -2666,6 +2846,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceFednowTransferAcknowledgement(BaseModel): + """A FedNow Transfer Acknowledgement object. + + This field will be present in the JSON response if and only if `category` is equal to `fednow_transfer_acknowledgement`. A FedNow Transfer Acknowledgement is created when a FedNow Transfer sent from Increase is acknowledged by the receiving bank. + """ + transfer_id: str """The identifier of the FedNow Transfer that led to this Transaction.""" @@ -2683,6 +2868,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceFeePayment(BaseModel): + """A Fee Payment object. + + This field will be present in the JSON response if and only if `category` is equal to `fee_payment`. A Fee Payment represents a payment made to Increase. + """ + amount: int """The amount in the minor unit of the transaction's currency. @@ -2722,11 +2912,15 @@ class SourceInboundACHTransferAddendaFreeformEntry(BaseModel): class SourceInboundACHTransferAddendaFreeform(BaseModel): + """Unstructured `payment_related_information` passed through by the originator.""" + entries: List[SourceInboundACHTransferAddendaFreeformEntry] """Each entry represents an addendum received from the originator.""" class SourceInboundACHTransferAddenda(BaseModel): + """Additional information sent from the originator.""" + category: Literal["freeform"] """The type of addendum. @@ -2738,6 +2932,11 @@ class SourceInboundACHTransferAddenda(BaseModel): class SourceInboundACHTransfer(BaseModel): + """An Inbound ACH Transfer Intention object. + + This field will be present in the JSON response if and only if `category` is equal to `inbound_ach_transfer`. An Inbound ACH Transfer Intention is created when an ACH transfer is initiated at another bank and received by Increase. + """ + addenda: Optional[SourceInboundACHTransferAddenda] = None """Additional information sent from the originator.""" @@ -2798,6 +2997,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceInboundACHTransferReturnIntention(BaseModel): + """An Inbound ACH Transfer Return Intention object. + + This field will be present in the JSON response if and only if `category` is equal to `inbound_ach_transfer_return_intention`. An Inbound ACH Transfer Return Intention is created when an ACH transfer is initiated at another bank and returned by Increase. + """ + inbound_ach_transfer_id: str """The ID of the Inbound ACH Transfer that is being returned.""" @@ -2815,6 +3019,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceInboundCheckAdjustment(BaseModel): + """An Inbound Check Adjustment object. + + This field will be present in the JSON response if and only if `category` is equal to `inbound_check_adjustment`. An Inbound Check Adjustment is created when Increase receives an adjustment for a check or return deposited through Check21. + """ + adjusted_transaction_id: str """The ID of the transaction that was adjusted.""" @@ -2850,6 +3059,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceInboundCheckDepositReturnIntention(BaseModel): + """An Inbound Check Deposit Return Intention object. + + This field will be present in the JSON response if and only if `category` is equal to `inbound_check_deposit_return_intention`. An Inbound Check Deposit Return Intention is created when Increase receives an Inbound Check and the User requests that it be returned. + """ + inbound_check_deposit_id: str """The ID of the Inbound Check Deposit that is being returned.""" @@ -2870,6 +3084,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceInboundFednowTransferConfirmation(BaseModel): + """An Inbound FedNow Transfer Confirmation object. + + This field will be present in the JSON response if and only if `category` is equal to `inbound_fednow_transfer_confirmation`. An Inbound FedNow Transfer Confirmation is created when a FedNow transfer is initiated at another bank and received by Increase. + """ + transfer_id: str """The identifier of the FedNow Transfer that led to this Transaction.""" @@ -2887,6 +3106,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceInboundRealTimePaymentsTransferConfirmation(BaseModel): + """An Inbound Real-Time Payments Transfer Confirmation object. + + This field will be present in the JSON response if and only if `category` is equal to `inbound_real_time_payments_transfer_confirmation`. An Inbound Real-Time Payments Transfer Confirmation is created when a Real-Time Payments transfer is initiated at another bank and received by Increase. + """ + amount: int """The amount in the minor unit of the transfer's currency. @@ -2936,6 +3160,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceInboundWireReversal(BaseModel): + """An Inbound Wire Reversal object. + + This field will be present in the JSON response if and only if `category` is equal to `inbound_wire_reversal`. An Inbound Wire Reversal represents a reversal of a wire transfer that was initiated via Increase. The other bank is sending the money back. This most often happens when the original destination account details were incorrect. + """ + amount: int """The amount that was reversed in USD cents.""" @@ -3005,6 +3234,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceInboundWireTransfer(BaseModel): + """An Inbound Wire Transfer Intention object. + + This field will be present in the JSON response if and only if `category` is equal to `inbound_wire_transfer`. An Inbound Wire Transfer Intention is created when a wire transfer is initiated at another bank and received by Increase. + """ + amount: int """The amount in USD cents.""" @@ -3081,6 +3315,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceInboundWireTransferReversal(BaseModel): + """An Inbound Wire Transfer Reversal Intention object. + + This field will be present in the JSON response if and only if `category` is equal to `inbound_wire_transfer_reversal`. An Inbound Wire Transfer Reversal Intention is created when Increase has received a wire and the User requests that it be reversed. + """ + inbound_wire_transfer_id: str """The ID of the Inbound Wire Transfer that is being reversed.""" @@ -3098,6 +3337,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceInterestPayment(BaseModel): + """An Interest Payment object. + + This field will be present in the JSON response if and only if `category` is equal to `interest_payment`. An Interest Payment represents a payment of interest on an account. Interest is usually paid monthly. + """ + accrued_on_account_id: str """The account on which the interest was accrued.""" @@ -3135,6 +3379,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceInternalSource(BaseModel): + """An Internal Source object. + + This field will be present in the JSON response if and only if `category` is equal to `internal_source`. A transaction between the user and Increase. See the `reason` attribute for more information. + """ + amount: int """The amount in the minor unit of the transaction's currency. @@ -3205,10 +3454,19 @@ def __getattr__(self, attr: str) -> object: ... class SourceOther(BaseModel): + """ + If the category of this Transaction source is equal to `other`, this field will contain an empty object, otherwise it will contain null. + """ + pass class SourceRealTimePaymentsTransferAcknowledgement(BaseModel): + """A Real-Time Payments Transfer Acknowledgement object. + + This field will be present in the JSON response if and only if `category` is equal to `real_time_payments_transfer_acknowledgement`. A Real-Time Payments Transfer Acknowledgement is created when a Real-Time Payments Transfer sent from Increase is acknowledged by the receiving bank. + """ + amount: int """The transfer amount in USD cents.""" @@ -3238,6 +3496,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceSampleFunds(BaseModel): + """A Sample Funds object. + + This field will be present in the JSON response if and only if `category` is equal to `sample_funds`. Sample funds for testing purposes. + """ + originator: str """Where the sample funds came from.""" @@ -3255,6 +3518,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceSwiftTransferIntention(BaseModel): + """A Swift Transfer Intention object. + + This field will be present in the JSON response if and only if `category` is equal to `swift_transfer_intention`. A Swift Transfer initiated via Increase. + """ + transfer_id: str """The identifier of the Swift Transfer that led to this Transaction.""" @@ -3272,6 +3540,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceSwiftTransferReturn(BaseModel): + """A Swift Transfer Return object. + + This field will be present in the JSON response if and only if `category` is equal to `swift_transfer_return`. A Swift Transfer Return is created when a Swift Transfer is returned by the receiving bank. + """ + transfer_id: str """The identifier of the Swift Transfer that led to this Transaction.""" @@ -3289,6 +3562,11 @@ def __getattr__(self, attr: str) -> object: ... class SourceWireTransferIntention(BaseModel): + """A Wire Transfer Intention object. + + This field will be present in the JSON response if and only if `category` is equal to `wire_transfer_intention`. A Wire Transfer initiated via Increase and sent to a different bank. + """ + account_number: str """The destination account number.""" @@ -3318,6 +3596,10 @@ def __getattr__(self, attr: str) -> object: ... class Source(BaseModel): + """ + This is an object giving more details on the network-level event that caused the Transaction. Note that for backwards compatibility reasons, additional undocumented keys may appear in this object. These should be treated as deprecated and will be removed in the future. + """ + account_revenue_payment: Optional[SourceAccountRevenuePayment] = None """An Account Revenue Payment object. @@ -3755,6 +4037,10 @@ def __getattr__(self, attr: str) -> object: ... class Transaction(BaseModel): + """ + Transactions are the immutable additions and removals of money from your bank account. They're the equivalent of line items on your bank statement. To learn more, see [Transactions and Transfers](/documentation/transactions-transfers). + """ + id: str """The Transaction identifier.""" diff --git a/src/increase/types/wire_drawdown_request.py b/src/increase/types/wire_drawdown_request.py index c6114d64d..e797756b6 100644 --- a/src/increase/types/wire_drawdown_request.py +++ b/src/increase/types/wire_drawdown_request.py @@ -10,6 +10,8 @@ class CreditorAddress(BaseModel): + """The creditor's address.""" + city: str """The city, district, town, or village of the address.""" @@ -34,6 +36,8 @@ class CreditorAddress(BaseModel): class DebtorAddress(BaseModel): + """The debtor's address.""" + city: str """The city, district, town, or village of the address.""" @@ -58,6 +62,10 @@ class DebtorAddress(BaseModel): class Submission(BaseModel): + """ + After the drawdown request is submitted to Fedwire, this will contain supplemental details. + """ + input_message_accountability_data: str """ The input message accountability data (IMAD) uniquely identifying the submission @@ -66,6 +74,11 @@ class Submission(BaseModel): class WireDrawdownRequest(BaseModel): + """Wire drawdown requests enable you to request that someone else send you a wire. + + Because there is nuance to making sure your counterparty's bank processes these correctly, we ask that you reach out to [support@increase.com](mailto:support@increase.com) to enable this feature so we can help you plan your integration. For more information, see our [Wire Drawdown Requests documentation](/documentation/wire-drawdown-requests). + """ + id: str """The Wire drawdown request identifier.""" diff --git a/src/increase/types/wire_drawdown_request_create_params.py b/src/increase/types/wire_drawdown_request_create_params.py index d7d44da47..aca2bee42 100644 --- a/src/increase/types/wire_drawdown_request_create_params.py +++ b/src/increase/types/wire_drawdown_request_create_params.py @@ -44,6 +44,8 @@ class WireDrawdownRequestCreateParams(TypedDict, total=False): class CreditorAddress(TypedDict, total=False): + """The creditor's address.""" + city: Required[str] """The city, district, town, or village of the address.""" @@ -68,6 +70,8 @@ class CreditorAddress(TypedDict, total=False): class DebtorAddress(TypedDict, total=False): + """The debtor's address.""" + city: Required[str] """The city, district, town, or village of the address.""" diff --git a/src/increase/types/wire_transfer.py b/src/increase/types/wire_transfer.py index 218fa97c9..3a1aa033f 100644 --- a/src/increase/types/wire_transfer.py +++ b/src/increase/types/wire_transfer.py @@ -31,6 +31,10 @@ class Approval(BaseModel): + """ + If your account requires approvals for transfers and the transfer was approved, this will contain details of the approval. + """ + approved_at: datetime.datetime """ The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which @@ -45,6 +49,10 @@ class Approval(BaseModel): class Cancellation(BaseModel): + """ + If your account requires approvals for transfers and the transfer was not approved, this will contain details of the cancellation. + """ + canceled_at: datetime.datetime """ The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which @@ -59,21 +67,29 @@ class Cancellation(BaseModel): class CreatedByAPIKey(BaseModel): + """If present, details about the API key that created the transfer.""" + description: Optional[str] = None """The description set for the API key when it was created.""" class CreatedByOAuthApplication(BaseModel): + """If present, details about the OAuth Application that created the transfer.""" + name: str """The name of the OAuth Application.""" class CreatedByUser(BaseModel): + """If present, details about the User that created the transfer.""" + email: str """The email address of the User.""" class CreatedBy(BaseModel): + """What object created the transfer, either via the API or the dashboard.""" + api_key: Optional[CreatedByAPIKey] = None """If present, details about the API key that created the transfer.""" @@ -95,6 +111,8 @@ class CreatedBy(BaseModel): class CreditorAddressUnstructured(BaseModel): + """Unstructured address lines.""" + line1: Optional[str] = None """The first line.""" @@ -106,11 +124,15 @@ class CreditorAddressUnstructured(BaseModel): class CreditorAddress(BaseModel): + """The person or business's address.""" + unstructured: Optional[CreditorAddressUnstructured] = None """Unstructured address lines.""" class Creditor(BaseModel): + """The person or business that is receiving the funds from the transfer.""" + address: Optional[CreditorAddress] = None """The person or business's address.""" @@ -119,6 +141,8 @@ class Creditor(BaseModel): class DebtorAddressUnstructured(BaseModel): + """Unstructured address lines.""" + line1: Optional[str] = None """The first line.""" @@ -130,11 +154,15 @@ class DebtorAddressUnstructured(BaseModel): class DebtorAddress(BaseModel): + """The person or business's address.""" + unstructured: Optional[DebtorAddressUnstructured] = None """Unstructured address lines.""" class Debtor(BaseModel): + """The person or business whose funds are being transferred.""" + address: Optional[DebtorAddress] = None """The person or business's address.""" @@ -143,6 +171,11 @@ class Debtor(BaseModel): class RemittanceTax(BaseModel): + """Internal Revenue Service (IRS) tax repayment information. + + Required if `category` is equal to `tax`. + """ + date: datetime.date """The month and year the tax payment is for, in YYYY-MM-DD format. @@ -160,11 +193,18 @@ class RemittanceTax(BaseModel): class RemittanceUnstructured(BaseModel): + """Unstructured remittance information. + + Required if `category` is equal to `unstructured`. + """ + message: str """The message to the beneficiary.""" class Remittance(BaseModel): + """Remittance information sent with the wire transfer.""" + category: Literal["unstructured", "tax"] """The type of remittance information being passed. @@ -188,6 +228,8 @@ class Remittance(BaseModel): class Reversal(BaseModel): + """If your transfer is reversed, this will contain details of the reversal.""" + amount: int """The amount that was reversed in USD cents.""" @@ -257,6 +299,10 @@ def __getattr__(self, attr: str) -> object: ... class Submission(BaseModel): + """ + After the transfer is submitted to Fedwire, this will contain supplemental details. + """ + input_message_accountability_data: str """The accountability data for the submission.""" @@ -265,6 +311,10 @@ class Submission(BaseModel): class WireTransfer(BaseModel): + """ + Wire transfers move funds between your Increase account and any other account accessible by Fedwire. + """ + id: str """The wire transfer's identifier.""" diff --git a/src/increase/types/wire_transfer_create_params.py b/src/increase/types/wire_transfer_create_params.py index 6786b5629..84bdd3abc 100644 --- a/src/increase/types/wire_transfer_create_params.py +++ b/src/increase/types/wire_transfer_create_params.py @@ -72,6 +72,8 @@ class WireTransferCreateParams(TypedDict, total=False): class CreditorAddressUnstructured(TypedDict, total=False): + """Unstructured address lines.""" + line1: Required[str] """The address line 1.""" @@ -83,11 +85,15 @@ class CreditorAddressUnstructured(TypedDict, total=False): class CreditorAddress(TypedDict, total=False): + """The person or business's address.""" + unstructured: Required[CreditorAddressUnstructured] """Unstructured address lines.""" class Creditor(TypedDict, total=False): + """The person or business that is receiving the funds from the transfer.""" + name: Required[str] """The person or business's name.""" @@ -96,6 +102,11 @@ class Creditor(TypedDict, total=False): class RemittanceTax(TypedDict, total=False): + """Internal Revenue Service (IRS) tax repayment information. + + Required if `category` is equal to `tax`. + """ + date: Required[Annotated[Union[str, datetime.date], PropertyInfo(format="iso8601")]] """The month and year the tax payment is for, in YYYY-MM-DD format. @@ -113,11 +124,18 @@ class RemittanceTax(TypedDict, total=False): class RemittanceUnstructured(TypedDict, total=False): + """Unstructured remittance information. + + Required if `category` is equal to `unstructured`. + """ + message: Required[str] """The information.""" class Remittance(TypedDict, total=False): + """Additional remittance information related to the wire transfer.""" + category: Required[Literal["unstructured", "tax"]] """The type of remittance information being passed. @@ -141,6 +159,8 @@ class Remittance(TypedDict, total=False): class DebtorAddressUnstructured(TypedDict, total=False): + """Unstructured address lines.""" + line1: Required[str] """The address line 1.""" @@ -152,11 +172,18 @@ class DebtorAddressUnstructured(TypedDict, total=False): class DebtorAddress(TypedDict, total=False): + """The person or business's address.""" + unstructured: Required[DebtorAddressUnstructured] """Unstructured address lines.""" class Debtor(TypedDict, total=False): + """The person or business whose funds are being transferred. + + This is only necessary if you're transferring from a commingled account. Otherwise, we'll use the associated entity's details. + """ + name: Required[str] """The person or business's name.""" From d38284a761a03235551b4cb032c1dd5adb5d733c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 8 Dec 2025 23:00:19 +0000 Subject: [PATCH 2/3] feat(api): api update --- .stats.yml | 4 ++-- src/increase/types/entity.py | 3 ++- src/increase/types/entity_create_params.py | 3 ++- src/increase/types/entity_update_params.py | 3 ++- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.stats.yml b/.stats.yml index f25fc9162..62bd5d7e3 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 229 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase%2Fincrease-db504b55f81ac4d64ccbfc4d2fecdd346b2a671da840afd3b47fd499ea52e640.yml -openapi_spec_hash: 06d1e20101565b4c8ba616cfa84fbfdd +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase%2Fincrease-56334e000721ba4ee20536271d3acf7231529d7b1f651729e2f4ebe75eb12048.yml +openapi_spec_hash: 45777c412bcbc1aead50c84f78695203 config_hash: b6f365add90e618b2174634df140826e diff --git a/src/increase/types/entity.py b/src/increase/types/entity.py index b63a9c032..bb1af1ee2 100644 --- a/src/increase/types/entity.py +++ b/src/increase/types/entity.py @@ -445,12 +445,13 @@ class ThirdPartyVerification(BaseModel): reference: str """The reference identifier for the third party verification.""" - vendor: Literal["alloy", "middesk", "oscilar"] + vendor: Literal["alloy", "middesk", "oscilar", "persona"] """The vendor that was used to perform the verification. - `alloy` - Alloy. See https://alloy.com for more information. - `middesk` - Middesk. See https://middesk.com for more information. - `oscilar` - Oscilar. See https://oscilar.com for more information. + - `persona` - Persona. See https://withpersona.com for more information. """ diff --git a/src/increase/types/entity_create_params.py b/src/increase/types/entity_create_params.py index 182479f22..f02ce2fdb 100644 --- a/src/increase/types/entity_create_params.py +++ b/src/increase/types/entity_create_params.py @@ -839,12 +839,13 @@ class ThirdPartyVerification(TypedDict, total=False): reference: Required[str] """The reference identifier for the third party verification.""" - vendor: Required[Literal["alloy", "middesk", "oscilar"]] + vendor: Required[Literal["alloy", "middesk", "oscilar", "persona"]] """The vendor that was used to perform the verification. - `alloy` - Alloy. See https://alloy.com for more information. - `middesk` - Middesk. See https://middesk.com for more information. - `oscilar` - Oscilar. See https://oscilar.com for more information. + - `persona` - Persona. See https://withpersona.com for more information. """ diff --git a/src/increase/types/entity_update_params.py b/src/increase/types/entity_update_params.py index 4da1dbf9b..a4a324c54 100644 --- a/src/increase/types/entity_update_params.py +++ b/src/increase/types/entity_update_params.py @@ -232,12 +232,13 @@ class ThirdPartyVerification(TypedDict, total=False): reference: Required[str] """The reference identifier for the third party verification.""" - vendor: Required[Literal["alloy", "middesk", "oscilar"]] + vendor: Required[Literal["alloy", "middesk", "oscilar", "persona"]] """The vendor that was used to perform the verification. - `alloy` - Alloy. See https://alloy.com for more information. - `middesk` - Middesk. See https://middesk.com for more information. - `oscilar` - Oscilar. See https://oscilar.com for more information. + - `persona` - Persona. See https://withpersona.com for more information. """ From fadb54fe3df42a23334a26f17a589b306acc1992 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 8 Dec 2025 23:00:43 +0000 Subject: [PATCH 3/3] release: 0.407.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 13 +++++++++++++ pyproject.toml | 2 +- src/increase/_version.py | 2 +- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 323261fc3..8e585de79 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.406.1" + ".": "0.407.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 51b0cd079..30c1b6181 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## 0.407.0 (2025-12-08) + +Full Changelog: [v0.406.1...v0.407.0](https://github.com/Increase/increase-python/compare/v0.406.1...v0.407.0) + +### Features + +* **api:** api update ([d38284a](https://github.com/Increase/increase-python/commit/d38284a761a03235551b4cb032c1dd5adb5d733c)) + + +### Chores + +* add missing docstrings ([e2fd2c9](https://github.com/Increase/increase-python/commit/e2fd2c91d9ac2705eff3f2cc2a8bf0164dd95744)) + ## 0.406.1 (2025-12-08) Full Changelog: [v0.406.0...v0.406.1](https://github.com/Increase/increase-python/compare/v0.406.0...v0.406.1) diff --git a/pyproject.toml b/pyproject.toml index 79fd56f26..e60dea4fd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "increase" -version = "0.406.1" +version = "0.407.0" description = "The official Python library for the increase API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/increase/_version.py b/src/increase/_version.py index 40bafa3e3..d67452072 100644 --- a/src/increase/_version.py +++ b/src/increase/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "increase" -__version__ = "0.406.1" # x-release-please-version +__version__ = "0.407.0" # x-release-please-version