1. 6. Payment Providers (PSPs)
Mozarto - The Payments Orchestration Platform
  • 1. Introduction
  • 2. Quick Start
  • 3. Authentication
  • 4. Errors
  • 5. Redirect flow
    • Pay-In Flow
    • Pay-Out Flow
    • Webhook Setup
  • 6. Payment Providers (PSPs)
    • Overview
    • Brite
    • Cleo
    • Flexepin
    • ForumPay
    • Gigadat
    • Neosurf
    • Payone
    • Trust Payments
    • WorldPay
  • 7. Redirect Flow APIs
    • PayIn
      • Forumpay
      • Payone
    • PayOut
      • Forumpay
      • Payone
  • Schemas
    • TransactionData
  1. 6. Payment Providers (PSPs)

Gigadat

Gigadat#

Canadian payment network supporting bank e-transfers and ACH Pay-In/Pay-Out. All transactions are in CAD.
Operations: Pay-In ✓ | Pay-Out ✓ | Webhook ✓
Processing: Asynchronous - redirect user to hosted page; final status via webhook
Currency: CAD only
Fields marked with * are required.

Configuration (Mozarto back office)#

FieldDescription
accountName *Display name for this account
apiKey *Gigadat access token - used as Basic Auth username
secret *Gigadat security token - used as Basic Auth password
campaignId *Gigadat campaign ID
webhookUrlYour HTTPS endpoint for transaction status updates
isWebhookSecuredAdds Authorization header to outbound webhook calls

Pay-In#

POST /v1/api/mozarto/cashier

Request body#

FieldTypeDescription
pspType *stringAlways "GIGADAT"
type *stringAlways "PAYIN"
name *stringUser's full name (first and last)
email *stringUser's email address
phone *stringMobile number - 10 or 11 digits, no special characters (e.g. "5551234567")
baseamount *numberAmount with exactly 2 decimal places (e.g. 100.50)
userIp *stringEnd user's IP address
userIdstringYour internal user ID
brandIdstringBrand identifier
currencystringCurrency code - defaults to CAD
merchantReferencestringYour own reference for this transaction
addressobjectUser address { line1, line2, city, state, postalCode, country }
countryCodestringISO country code
kycVerifiedbooleanWhether user has passed KYC
userBalancenumberUser's current balance
baseamount must have exactly 2 decimal places. 100 or 100.5 will be rejected - use 100.00 or 100.50.

Example request#

{
  "pspType": "GIGADAT",
  "type": "PAYIN",
  "name": "John Doe",
  "email": "anna@example.com",
  "phone": "5551234567",
  "baseamount": 100.50,
  "userIp": "1.2.3.4"
}

Response#

{
  "status": "success",
  "message": "Gigadat CPI payment initiated successfully",
  "isSuccess": true,
  "data": {
    "transactionId": "64a1f2b3c4d5e6f7a8b9c0d1",
    "databaseTransactionId": "64a1f2b3c4d5e6f7a8b9c0d1",
    "method": "GET_REDIRECT",
    "webflowURL": "https://interac.express-connect.com/webflow?transaction=64a1f2b3c4d5e6f7a8b9c0d1&token=<payment-token>",
    "formSubmissionURL": null,
    "instructions": "Use direct redirect to webflowURL",
    "paymentToken": "<payment-token>",
    "transaction_status": "Pending",
    "amount": 10,
    "merchantReference": "",
    "data": {
      "gigadatTransactionId": "64a1f2b3c4d5e6f7a8b9c0d1"
    }
  }
}
Note: Gigadat uses data.webflowURL - not data.url as returned by other providers. Follow data.instructions - for GET_REDIRECT redirect the user directly to data.webflowURL.
FieldDescription
data.webflowURLHosted payment page URL - redirect the user here
data.transactionIdMozarto transaction ID - use for status queries and idempotency
data.methodRedirect method - always "GET_REDIRECT" for Pay-In
data.paymentTokenGigadat session JWT - embedded in webflowURL, do not expose to end users
data.instructionsHuman-readable redirect instruction from Gigadat
data.transaction_statusInitial status - always "Pending" on creation
data.data.gigadatTransactionIdGigadat internal transaction ID

Pay-Out#

Gigadat supports two payout methods: ETO (e-transfer) and ACH (bank transfer).
POST /v1/api/mozarto/cashier

Request body - common fields#

FieldTypeDescription
pspType *stringAlways "GIGADAT"
type *stringAlways "PAYOUT"
payoutType *string"ETO" or "ACH"
name *stringUser's full name
email *stringUser's email address
baseamount *numberAmount with exactly 2 decimal places (e.g. 50.00)
currency *stringAlways "CAD"

ETO-specific fields#

FieldTypeDescription
mobile *stringUser's mobile number - 10 or 11 digits, no special characters

ACH-specific fields#

FieldTypeDescription
fi *stringFinancial Institution Number - exactly 3 digits
transit *stringTransit number - exactly 5 digits
acct *stringBank account number - 7 to 12 digits

Example - ETO payout#

{
  "pspType": "GIGADAT",
  "type": "PAYOUT",
  "payoutType": "ETO",
  "name": "John Doe",
  "email": "anna@example.com",
  "baseamount": 50.00,
  "currency": "CAD",
  "mobile": "5551234567"
}

Example - ACH payout#

{
  "pspType": "GIGADAT",
  "type": "PAYOUT",
  "payoutType": "ACH",
  "name": "John Doe",
  "email": "anna@example.com",
  "baseamount": 50.00,
  "currency": "CAD",
  "fi": "001",
  "transit": "12345",
  "acct": "1234567"
}

Response - ETO#

{
  "status": "success",
  "message": "Added to approvals table",
  "isSuccess": true,
  "data": {
    "transactionId": "64a1f2b3c4d5e6f7a8b9c0d1",
    "databaseTransactionId": "64a1f2b3c4d5e6f7a8b9c0d1",
    "payoutType": "ETO",
    "method": "AWAITING_APPROVAL",
    "webflowURL": "https://interac.express-connect.com/webflow?transaction=64a1f2b3c4d5e6f7a8b9c0d1&token=<payment-token>",
    "finalizationURL": "https://interac.express-connect.com/webflow/deposit?transaction=64a1f2b3c4d5e6f7a8b9c0d1&token=<payment-token>",
    "instructions": "Transaction created in Gigadat and added to approval queue. Finalization will occur after admin approval.",
    "paymentToken": "<payment-token>",
    "amount": 10,
    "merchantReference": "",
    "data": {
      "gigadatTransactionId": "64a1f2b3c4d5e6f7a8b9c0d1",
      "payoutType": "ETO"
    }
  }
}
Approval required: ETO payouts are not processed immediately. The method: "AWAITING_APPROVAL" indicates the payout is queued pending manual approval in the Mozarto back office. Show the user a "pending approval" message and wait for the webhook to deliver the final outcome.
FieldDescription
data.transactionIdMozarto transaction ID - use for status queries and idempotency
data.method"AWAITING_APPROVAL" - payout is queued for back office approval
data.webflowURLGigadat hosted flow URL - available after approval
data.finalizationURLFinalization URL used internally after admin approval
data.paymentTokenGigadat session JWT - do not expose to end users
data.instructionsHuman-readable status description
data.data.gigadatTransactionIdGigadat internal transaction ID

Response - ACH#

{
  "status": "success",
  "message": "Added to approvals table",
  "isSuccess": true,
  "data": {
    "transactionId": "64a1f2b3c4d5e6f7a8b9c0d1",
    "databaseTransactionId": "64a1f2b3c4d5e6f7a8b9c0d1",
    "payoutType": "ACH",
    "method": "AWAITING_APPROVAL",
    "webflowURL": "https://interac.express-connect.com/webflow?transaction=64a1f2b3c4d5e6f7a8b9c0d1&token=<payment-token>",
    "finalizationURL": "https://interac.express-connect.com/webflow/deposit?transaction=64a1f2b3c4d5e6f7a8b9c0d1&token=<payment-token>",
    "instructions": "Transaction created in Gigadat and added to approval queue. Finalization will occur after admin approval.",
    "paymentToken": "<payment-token>",
    "amount": 10,
    "merchantReference": "",
    "data": {
      "gigadatTransactionId": "64a1f2b3c4d5e6f7a8b9c0d1",
      "payoutType": "ACH"
    }
  }
}
Approval required: ACH payouts follow the same approval flow as ETO. The method: "AWAITING_APPROVAL" indicates the payout is queued pending manual approval in the Mozarto back office. Show the user a "pending approval" message and wait for the webhook to deliver the final outcome.
The response fields are identical to the ETO response above. The only difference is data.payoutType and data.data.payoutType will be "ACH".

Webhook#

Mozarto calls your webhookUrl when the transaction reaches a final state.
The method field will be GIGADAT_PAYIN or GIGADAT_PAYOUT.
Modified at 2026-05-08 07:49:22
Previous
ForumPay
Next
Neosurf
Built with