Added

November 9th 2026

Added

[Business documents]
You can now submit and track underwriting documents for your businesses.

  • Added POST /business/{business_token}/documents — upload documents for a business created with POST /business
  • Added GET /business/{business_token}/documents — list the documents on file, with each document's token, type, file name, size and upload time
  • POST /business now also accepts a documents array at creation time, and its response lists the stored documents
    Supported document_type values include kyb_report, articles_of_incorporation, certificate_of_good_standing, business_license, operating_agreement, ownership_structure, proof_of_address, bank_statement, tax_document, and other. Each document is Base64-encoded (max 4.5 MB decoded, 10 documents per request, 6 MB total per request), and every document is validated and virus-scanned before any is stored. The existing articles_of_incorporation field is kept for existing integrations — prefer a documents entry of that type.

Added

[Pay-in wire routing (intermediary banks)]
You can now look up how a payer's bank can route funds for a bank-funded pay-in.

  • Added GET /payin/{user_token}/{payin_token}/intermediaries
    Provide the SWIFT bic of the originating bank (and optionally a currency_code; the pay-in's source currency is the default) to get the standard settlement instructions published for that bank: the correspondent bank holding its account in that currency, account/routing identifiers, and any further intermediaries, per originating branch.

Added

[Midmarket exchange rates]
You can now read the reference FX rate MassPay prices from.

  • Added GET /rates/midmarket/{source_currency}/{destination_currency}
    Returns the midmarket (interbank) rate for the pair with no spread applied, with its rate_timestamp. Crypto asset symbols such as USDC are accepted alongside ISO 4217 codes. Note that transactions always execute at their own quoted rate — the catalog and transaction exchange_rate values apply your FX spread to this reference rate.

Added

[1099-MISC transmission]
The 1099-MISC flow now matches NEC and K end to end.

Added

[Tax form postal mailing]
You can now order postal mailing of a transmitted tax form.

  • Added POST /payout/{user_token}/tax/postal — works for 1099-K, 1099-NEC and 1099-MISC; the form is identified by its submission_id and the form type is detected automatically
    A $1.80 USD fee is charged per successful request, and mailing can be ordered multiple times for the same submission (e.g. re-prints). For forms not yet transmitted, set is_postal: true on the update endpoint instead.

Added

[Duplicate-email handling on user creation]
POST /payout/user now resolves conflicts when an email already belongs to a MassPay user with a different name.

  • Such a request is rejected with 400 (UserNameMismatchError, title User exist with other information) carrying a name_override_code and instructions
  • Resubmit the identical request with name_override_code to link a user_token for your account to that existing user anyway

Added

[Tax form downloads]
Tax form submission responses now return every stored document of a submission.

  • New files array with a presigned download url (valid for one hour) per document, each labeled with which copy it is: Copy B, Copy 2, Copy C, Copy 1, Draft, or Document
  • The inline Base64 document is the recipient Copy B once final copies are generated after transmit, and the draft before that

Added

[SecurityAnswer attribute]
Added SecurityAnswer as a user attribute type, for payout methods that require a security question and answer (e.g. some interac-style transfers).

Improved

[Deposit sender details]
The metadata object on pay-in deposits is now documented as the details MassPay captured about how the deposit arrived, rather than free-form attributes.

  • method names the rail (ach, wire, rtp)
  • Sender name, account, and routing as reported by the network
  • Wire deposits carry the references that travelled with the wire: imad, omad, sender_reference, beneficiary_reference, and originator_to_beneficiary lines
    See the new "Payin funded by an incoming wire" example on GET /payin/{user_token}/{payin_token}.

Improved

[Sent payouts in user history]
GET /payout/user/{user_token}/transactions now documents that payout entries cover both payouts paid to the user and payouts the user sent: an entry for a sent payout names the payee in user_token and the sender in sender_user_token.

Improved

[Account statement formats]
GET /payout/account/statement now accepts a format query parameter: PDF (default, certified) or CSV.

Improved

[Tax forms and interviews]

  • 1099-NEC, 1099-MISC and 1099-K now accept tax year 2026
  • 1099-MISC submissions gained an optional email_address to send the form link to, full per-box IRS documentation with amount limits, and clearer validation notes (e.g. withholding of 40%+ of the amount boxes is rejected). Recipient details now come from the user's MassPay profile
  • The W-8BEN-E interview now supports chapter_4_certification (the Part IV–XXVIII facts matching the selected chapter_4_status), disregarded_entity_branch, limitation_on_benefits (+ limitation_on_benefits_other_detail), and validates the GIIN format
  • W-9 submissions require a US address; for a U.S. person with only a foreign address (e.g. a citizen abroad), use the hosted tax interview link, which accepts one — the hosted form pre-fills the user's stored address
  • W-8 country fields are documented as IRS country codes (e.g. UK, SP, GM), which can differ from ISO codes

Changed

[1099-MISC submission request and response]
Breaking for existing 1099-MISC integrations:

  • The optional address field was removed from the 1099-MISC request — the recipient's address now always comes from the user's MassPay profile (1099-NEC and 1099-K keep address support)
  • The submission response was reworked: record_id was removed; the response now carries submission_id (UUID), a status enum (Created, Pending, Validated, Error), form_type, tax_year, submitted_at, federal_return and state_returns statuses, and pdf_content with the draft PDF