Skip to content

Logo

SPAYZ.io

Integrated software for the business space - local payment methods across South Korea, Vietnam, Thailand, Malaysia and Indonesia.

Supports in this guide: Payments, Payouts

Provider website: spayz.io


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

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

Choose account type

  • Merchant account -> use for Payments
  • Provider account -> use for Payouts

Both account types use the same three credential fields.


Prerequisites: get from SPAYZ.io

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

  • Merchant ID -> Corefy field mid.
  • API key -> Corefy field api_key.
  • Callback public key -> Corefy field callback_public_key -> used to verify the authenticity of payout callbacks SPAYZ.io sends back to Corefy.

KRW, VND, THB, MYR, IDR.


Payments processing (connect Merchant account, create payment-invoice)

Connect Merchant account in Corefy Dashboard

Step 1 - Open connection form

Open SPAYZ.io in the provider directory and press Connect at SPAYZ.io Provider Overview page in the New connection section, choosing the Merchant account option.

Step 2 - Fill in fields and select settings

  • Merchant ID
  • API key
  • Callback public key
  • Currency / Features -> choose values available for your account (KRW, VND, THB, MYR, IDR)

Success

You have connected SPAYZ.io Merchant account!


First request to Corefy API (MIN)

What it does: creates a payment-invoice; depending on the service, the customer is either redirected to a SPAYZ.io-hosted page (HPP, e.g. bank_transfer_krw_hpp, fpx_myr_hpp, dana_idr_hpp) or shown bank/QR requisites directly without a redirect (invoice services, e.g. bank_transfer_krw_invoice, promptpay_qr_thb_invoice).

Payment - MIN

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "726c5cd5-2145-4d31-9bc7-d15dc0681d69",
      "service": "bank_transfer_krw_hpp",
      "currency": "KRW",
      "amount": 10000,
      "customer": {
        "reference_id": "36ce2130-b8b8-49e7-86db-72c745472044",
        "name": "John Doe",
        "email": "johndoe@email.com",
        "metadata": {
          "ip": "127.0.0.1"
        }
      }
    }
  }
}

Important

  • customer.name, customer.metadata.ip are required for every Payment service.
  • customer.email is additionally required for HPP (redirect) services - not required for invoice (QR/bank-details) services.
  • IDR amounts must be whole numbers - a decimal amount is rejected before it's sent to SPAYZ.io, for HPP-type IDR services.

Payment - MAX

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "91f56672-6764-4aae-9761-1da464336ad8",
      "service": "bank_transfer_krw_hpp",
      "currency": "KRW",
      "amount": 10000,
      "customer": {
        "reference_id": "36ce2130-b8b8-49e7-86db-72c745472044",
        "name": "John Doe",
        "email": "johndoe@email.com",
        "phone": "380654321234",
        "metadata": {
          "ip": "127.0.0.1"
        }
      }
    }
  }
}

Important

No Options or Constants are configured for this connector - if a customer field is missing where required, the request is rejected rather than falling back to a placeholder value.


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


Refunds

SPAYZ.io does not support refunds.


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

Connect Provider account in Corefy Dashboard

Step 1 - Open connection form

Open SPAYZ.io in the provider directory and press Connect at SPAYZ.io Provider Overview page in the New connection section, choosing the Provider account option.

Step 2 - Fill in fields and select settings

  • Merchant ID
  • API key
  • Callback public key

Success

You have connected SPAYZ.io Provider account!


First request to Corefy API (MIN)

What it does: creates a payout-invoice sent to the local bank transfer method matching the payout's currency.

Payout - MIN

POST /api/payout-invoices

{
  "data": {
    "type": "payout-invoice",
    "attributes": {
      "reference_id": "a8361481-9f0e-4cb2-bdb4-a97d4e70e473",
      "service": "bank_transfer_krw",
      "currency": "KRW",
      "amount": 10000,
      "customer": {
        "reference_id": "36ce2130-b8b8-49e7-86db-72c745472044"
      },
      "metadata": {
        "ip": "127.0.0.1"
      },
      "fields": {
        "beneficiary_name": "John",
        "beneficiary_lastname": "Wick",
        "bank_code": "10099",
        "account_name": "John Wick",
        "account_number": "12345678901234567890"
      }
    }
  }
}

Important

fields.beneficiary_name, fields.beneficiary_lastname, fields.bank_code, fields.account_name, and fields.account_number are passed through to SPAYZ.io for every payout; none are substituted with a placeholder if missing.

Payout - MAX

POST /api/payout-invoices

{
  "data": {
    "type": "payout-invoice",
    "attributes": {
      "reference_id": "a8361481-9f0e-4cb2-bdb4-a97d4e70e473",
      "service": "bank_transfer_krw",
      "currency": "KRW",
      "amount": 10000,
      "customer": {
        "reference_id": "36ce2130-b8b8-49e7-86db-72c745472044"
      },
      "metadata": {
        "ip": "127.0.0.1"
      },
      "fields": {
        "beneficiary_name": "John",
        "beneficiary_lastname": "Wick",
        "beneficiary_email": "johnwick@gmail.com",
        "beneficiary_phone": "380654321234",
        "bank_code": "10099",
        "account_name": "John Wick",
        "account_number": "12345678901234567890"
      }
    }
  }
}


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


Additional info

Payment services by country/currency

Country Currency Local methods
South Korea KRW Bank transfer (P2P) - HPP and invoice variants
Vietnam VND Online banking, bank transfer (P2P)
Thailand THB PromptPay QR - HPP and invoice variants
Malaysia MYR FPX, Online banking, DuitNow, Touch'n'Go
Indonesia IDR QRIS, Dana, OVO

Payouts are available as local bank transfers in all five countries/currencies above (service bank_transfer_<currency>).

  1. Active reconciliation is available on both Payments and Payouts.
  2. No recurring - this connector does not support saving/charging a token through Corefy.
  3. No Options or Constants are configured for this connector on either flow.
  4. A Merchant account is bound to a single local method and currency, as reported by your SPAYZ.io merchant ID itself - only the one matching payment route becomes available after connecting.

FAQ / Troubleshooting

  • Invalid credentials / auth error -> verify the Merchant ID and API key
  • Payment rejected for missing customer fields -> customer.name and customer.metadata.ip are required for all services; customer.email is additionally required for HPP (redirect) services
  • IDR payment rejected for invalid amount -> IDR HPP services require whole-number amounts (no cents)
  • Payout callback signature invalid -> verify the Callback public key matches what SPAYZ.io issued for this account
  • Refund fails -> SPAYZ.io does not support refunds through Corefy

Question

Still looking for help connecting your SPAYZ.io account? Please contact our support team!