Skip to content

Logo

MuchBetter

Friction-Free Payments

Supports in this guide: Payments, Payouts

Provider website: muchbetter.com


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

  1. Choose account type
  2. Get your credentials (from MuchBetter)
  3. Connect in Dashboard
  4. Send an API request

Choose account type

MuchBetter has a single Provider account that covers both payments and payouts - but it supports two genuinely different rails, picked by the Method field at connection time:

  • Method: MuchBetter -> the MuchBetter eWallet itself, identified by the customer's phone number (USD/EUR/GBP/MXN/VND/MYR/IDR/THB/PLN/CAD)
  • Method: Interac -> Interac e-Transfer, Canada-only (CAD)

You can only pick one Method per connection - if you need both, connect two separate Provider accounts. If you're not sure which one to use, confirm with your Corefy account manager.


Prerequisites: get from MuchBetter

For Method: MuchBetter:

  • Account ID -> Corefy field account_id.
  • API Key -> Corefy field api_key.
  • Brand Name (optional) -> Corefy field brand_name.
  • Tracking Code (optional) -> Corefy field tracking_code.

For Method: Interac:

  • Account ID -> Corefy field account_id.
  • Secret Key -> Corefy field secret_key -> used to sign every request.
  • Token -> Corefy field token.

Payments processing - Method: MuchBetter (connect Provider account, create payment-invoice)

Connect Provider account in Corefy Dashboard

Step 1 - Open connection form

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

Step 2 - Fill in fields and select settings

  • Account ID
  • API Key
  • Brand Name (optional)
  • Tracking Code (optional)
  • Method -> MuchBetter
  • Test Mode -> (enable if you are using sandbox credentials)

Choose Currency / Features. USD, EUR, GBP, MXN, VND, MYR, IDR, THB, PLN, and CAD are confirmed; check with your Corefy account manager which are enabled for your account.

Success

You have connected MuchBetter Provider account!


First request to Corefy API (MIN)

What it does: creates a payment-invoice and charges the customer's MuchBetter wallet, identified by their phone number.

Payment - MIN

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "8e3dbbb0-17af-4c9a-bedb-93bdac6900a2",
      "service": "muchbetter_usd_invoice",
      "currency": "USD",
      "amount": 10,
      "fields": {
        "phone": "+15551234567"
      }
    }
  }
}

fields.phone is required - it's the customer's MuchBetter-registered phone number, not their card or bank details. customer isn't used on this flow at all.

Important

The response tells you whether that phone number is already registered with MuchBetter. If it isn't, the response also includes a signup URL - send the customer there first to create their MuchBetter account before the payment can complete.

This connector also supports EUR, GBP, MXN, VND, MYR, IDR, THB, PLN, and CAD (use muchbetter_<ccy>_invoice as the service code).


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

No Options or Constants are configured for this flow.


Payments processing - Method: Interac (connect Provider account, create payment-invoice)

Connect Provider account in Corefy Dashboard

Step 1 - Open connection form

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

Step 2 - Fill in fields and select settings

  • Account ID
  • Secret Key
  • Token
  • Method -> Interac
  • Test Mode -> (enable if you are using sandbox credentials)

Success

You have connected MuchBetter Provider account!


First request to Corefy API (MIN)

What it does: creates a payment-invoice and returns a link to Interac's own e-Transfer payment page.

Payment - MIN

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "8e3dbbb0-17af-4c9a-bedb-93bdac6900a2",
      "service": "interac_mb_cad_hpp",
      "currency": "CAD",
      "amount": 10
    }
  }
}

Payment - MAX

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "6795502c-e27d-4d07-85e0-93245aab9a3f",
      "service": "interac_mb_cad_hpp",
      "currency": "CAD",
      "amount": 10,
      "customer": {
        "reference_id": "cus_123",
        "name": "John Smith",
        "email": "johnsmith@gmail.com",
        "phone": "+15551234567",
        "date_of_birth": "1990-01-01",
        "address": {
          "full_address": "1 Main street",
          "city": "Toronto",
          "country": "CA",
          "post_code": "M5V 2T6"
        },
        "metadata": {
          "ip": "212.42.206.42",
          "ssn": "156.535.858-90"
        }
      }
    }
  }
}

customer is entirely optional - anything you don't send falls back to the Constants below (or is simply left out of the request to MuchBetter).


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


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. Available only for this Interac service (interac_mb_cad_hpp).

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)

  • FIRST_NAME -> customer.name (first part)
  • LAST_NAME -> customer.name (second part)
  • PHONE -> customer.phone
  • EMAIL -> customer.email
  • CLIENT_ID -> customer.reference_id
  • ADDRESS -> customer.address.full_address
  • CITY -> customer.address.city
  • COUNTRY -> customer.address.country
  • ZIP -> customer.address.post_code
  • BIRTHDAY -> customer.date_of_birth
  • IP -> customer.metadata.ip
  • SSN -> customer.metadata.ssn

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

Connect Provider account in Corefy Dashboard

Uses the same Provider account connection as Payments above (Method: MuchBetter) - one connection covers both directions, there's nothing extra to fill in for payouts specifically.


First request to Corefy API (MIN)

What it does: creates a payout-invoice and sends funds to the recipient's MuchBetter wallet.

Payout - MIN

POST /api/payout-invoices

{
  "data": {
    "type": "payout-invoice",
    "attributes": {
      "reference_id": "0dde9e79-2c64-4703-adaf-93d710633401",
      "service": "muchbetter_usd",
      "currency": "USD",
      "amount": 10,
      "fields": {
        "phone": "+15551234567"
      }
    }
  }
}

fields.phone is required - the recipient's MuchBetter-registered phone number. This connector also supports EUR, GBP, MXN, VND, MYR, IDR, THB, PLN, and CAD (use muchbetter_<ccy> as the service code).


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

No Options or Constants are configured for this flow.


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

Connect Provider account in Corefy Dashboard

Uses the same Provider account connection as Payments above (Method: Interac) - one connection covers both directions, there's nothing extra to fill in for payouts specifically.


First request to Corefy API (MIN)

What it does: creates a payout-invoice and sends funds via Interac e-Transfer to the recipient's email.

Payout - MIN

POST /api/payout-invoices

{
  "data": {
    "type": "payout-invoice",
    "attributes": {
      "reference_id": "3c6d2f8e-8a2a-4e7a-9b1a-2f6a7b9c0d1e",
      "service": "interac_cad",
      "currency": "CAD",
      "amount": 10,
      "customer": {
        "reference_id": "cus_123",
        "name": "John Smith",
        "email": "johnsmith@gmail.com"
      }
    }
  }
}

Payout - MAX

POST /api/payout-invoices

{
  "data": {
    "type": "payout-invoice",
    "attributes": {
      "reference_id": "7976b4ce-fadd-4585-baa0-6b02c65351dc",
      "service": "interac_cad",
      "currency": "CAD",
      "amount": 10,
      "customer": {
        "reference_id": "cus_123",
        "name": "John Smith",
        "email": "johnsmith@gmail.com",
        "phone": "+15551234567",
        "date_of_birth": "1990-01-01",
        "address": {
          "full_address": "1 Main street",
          "city": "Toronto",
          "country": "CA",
          "post_code": "M5V 2T6"
        },
        "metadata": {
          "ip": "212.42.206.42",
          "question": "What is your pet's name?",
          "answer": "Rex"
        }
      }
    }
  }
}

customer.email is the Interac e-Transfer deposit address the funds are sent to - if you don't have it, you can send it as fields.account_number instead. customer.metadata.question/customer.metadata.answer set the security question the recipient must answer to claim an e-Transfer that isn't auto-deposited - check with Interac/your account manager whether your account needs this.


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


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. Available only for this Interac service (interac_cad).

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)

  • FIRST_NAME -> customer.name (first part)
  • LAST_NAME -> customer.name (second part)
  • PHONE -> customer.phone
  • CLIENT_ID -> customer.reference_id
  • ADDRESS -> customer.address.full_address
  • CITY -> customer.address.city
  • COUNTRY -> customer.address.country
  • ZIP -> customer.address.post_code
  • BIRTHDAY -> customer.date_of_birth
  • IP -> customer.metadata.ip
  • QUESTION -> customer.metadata.question
  • ANSWER -> customer.metadata.answer

Additional info

  1. Callback routing is automatic - Corefy generates the callback URL per transaction, for both Methods, nothing to configure in MuchBetter's own back-office.
  2. Method is fixed per connection. Once a Provider account is connected with a given Method (MuchBetter or Interac), it can't be switched later - connect a second Provider account if you need the other rail too.

FAQ / Troubleshooting

  • Invalid credentials / auth error -> verify credentials for the selected environment and Method
  • MuchBetter wallet payment/payout rejected -> confirm the phone number sent in fields.phone is registered with MuchBetter (or direct the customer to the signup URL from the response first)
  • Currency or service is not supported -> confirm allowed currencies/features in your MuchBetter account and in Corefy
  • Not sure which Method to use? -> ask your Corefy account manager

Question

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