Skip to content

Logo

MassPay

Global payouts are complicated. We make them simple.

Supports in this guide: Payouts

Provider website: masspay.io


What you need to do for start processing transactions (brief summary)

  1. Get your credentials (from MassPay)
  2. Connect in Dashboard
  3. Send an API request

Prerequisites: get from MassPay

Contact your MassPay account manager to get your account verified and receive the following credentials.

  • API Key -> Corefy field api_key.
  • Webhook Secret -> Corefy field webhook_secret.

Note

Behind the scenes, Corefy automatically registers the recipient as a MassPay user, looks up the best available payout route, and submits their payout details before sending the payout itself - this all happens as part of a single payout-invoice request, nothing extra to call.


Payouts processing (connect Provider account, create payout-invoice)

Connect Provider account in Corefy Dashboard

Step 1 - Open connection form

Open MassPay in the provider directory and press Connect at MassPay Provider Overview page in the New connection section.

Step 2 - Fill in fields and select settings

  • API Key
  • Webhook Secret
  • Test Mode -> (enable if you are using sandbox credentials)

Success

You have connected MassPay Provider account!


First request to Corefy API (MIN)

What it does: creates a payout-invoice and sends funds via card, ACH, or Interac, depending on what's enabled for your account. Required fields vary by method - the Dashboard shows the exact field list once a method is selected.

Payout - MIN

POST /api/payout-invoices

{
  "data": {
    "type": "payout-invoice",
    "attributes": {
      "reference_id": "6f7a8b91-2c3d-4e5f-8a67-8b9c0d1e2f3a",
      "service": "payment_card_usd",
      "currency": "USD",
      "amount": 100,
      "customer": {
        "reference_id": "cus_123",
        "name": "John Smith",
        "email": "johnsmith@gmail.com",
        "date_of_birth": "1990-05-20",
        "address": {
          "country": "US",
          "city": "New York"
        }
      },
      "fields": {
        "card_number": "4111111111111111",
        "document_id": "123456789",
        "beneficiary_postcode": "10001"
      }
    }
  }
}

This connector also supports ach_usd (fields account_number, routing_number, account_type, beneficiary_document_id) and interac_cad (field account_number, the recipient's own email address).

Payout - MAX

POST /api/payout-invoices

{
  "data": {
    "type": "payout-invoice",
    "attributes": {
      "reference_id": "7a8b9c02-3d4e-4f6a-8b78-9c0d1e2f3a4b",
      "service": "payment_card_usd",
      "currency": "USD",
      "amount": 100,
      "customer": {
        "reference_id": "cus_123",
        "name": "John Smith",
        "email": "johnsmith@gmail.com",
        "phone": "+15551234567",
        "date_of_birth": "1990-05-20",
        "address": {
          "country": "US",
          "region": "NY",
          "city": "New York",
          "full_address": "1 Main street",
          "post_code": "10001"
        }
      },
      "fields": {
        "card_number": "4111111111111111",
        "document_id": "123456789",
        "beneficiary_postcode": "10001"
      }
    }
  }
}

customer.address.country is converted automatically to the 3-letter code MassPay expects. customer details are also used to register/update the recipient as a MassPay user - see the Options and Constants below.


Extended request (MAX)

Why add extra fields (typical reasons): - Provide additional customer details for compliance/reconciliation - Positively influence conversion rate - Include optional fields required by your specific flow


Options

  • update_user -> optional, boolean - if the recipient is already registered with MassPay, updates their stored details (name, address, date of birth) with the current request's data instead of reusing what was stored previously.
  • format_values_by_validation_rules -> optional, boolean - for fields with a fixed set of allowed values (like account_type), automatically corrects the casing/spelling to MassPay's exact expected value (e.g. checking -> Checking) instead of rejecting a near-match.

Constants (fallback fields)

Constants are static values that Corefy can send to the provider instead of dynamic data from your API request, when those fields are missing in the request.

Priority (predictable rule): 1. If a value is present in the request -> Corefy uses the request value 2. Else if the constant is set -> Corefy uses the constant 3. Else -> provider may reject the request or apply its defaults (depends on provider)

Currently available constants (constant -> Corefy API field)

  • country -> customer.address.country
  • region -> customer.address.region
  • city -> customer.address.city
  • address -> customer.address.full_address
  • post_code -> customer.address.post_code
  • date_of_birth -> customer.date_of_birth

Additional info

  1. Callback routing is automatic - Corefy generates the callback/return URLs per transaction, nothing to configure in MassPay's own back-office.
  2. Active reconciliation is available - Payouts support an active status request, in addition to the asynchronous callback.
  3. Payments are not supported - this connector is Payouts only.

FAQ / Troubleshooting

  • Invalid credentials / auth error -> verify API Key/Webhook Secret for the selected environment
  • Payout fails with an invalid value for a dropdown-style field -> enable format_values_by_validation_rules so near-matching values are corrected automatically instead of rejected
  • Recipient details seem outdated -> enable update_user so Corefy refreshes the recipient's stored details on every payout
  • Currency or service is not supported -> confirm allowed currencies/methods in your MassPay account and in Corefy

Question

Still looking for help connecting your MassPay account? Please contact our support team!