Skip to content

Logo

Transact365

Think Local, Go Global

Supports in this guide: Payments | Payouts

Provider website: t365.io


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

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

Choose account type

Transact365 can be connected in different ways (depending on your needs):

  • If you do redirect payments (PayID, Open Banking, Interac, Mobile money, Bank transfer - customer is redirected to a hosted payment page) -> choose Provider account
  • If you do payouts -> choose Provider account

Both flows use the same Provider account: one connection serves payment and payout routes.

If you are not sure which one to use, confirm with your Corefy account manager.


Prerequisites: get from Transact365

Get the following values for your Transact365 project/account:

  • API Key -> Corefy field api_key -> example: f4c1b9d27ae8461c9b3e5d70a18c2f64 -> sent as the apikey header on every request to Transact365 -> where to find: Transact365 backoffice / issued by Transact365 manager
  • Secret Key -> Corefy field secret_key -> example: s3cr3tK3yT365 -> the secret Transact365 uses to sign callbacks; Corefy validates every incoming callback against it -> where to find: Transact365 backoffice / issued by Transact365 manager
  • MID ID (optional) -> Corefy field mid_id -> example: 3783 -> the merchant/terminal identifier Transact365 issued for this connection; it is sent as midId in every payment and payout request. Leave it empty to use the MID ID configured on the route -> where to find: Transact365 backoffice / issued by Transact365 manager
  • API URL (optional) -> Corefy field api_url -> example: https://api.t365.io -> overrides the default endpoint if Transact365 issued you a dedicated one; leave it empty to use https://api.t365.io -> where to find: Transact365 backoffice / issued by Transact365 manager

One more connection field, External ID (external_id), is not issued by Transact365 - you choose the value yourself. It is described in the connection steps below and in "Additional info".

The same values are used for payments and payouts.


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

Connect Provider account in Corefy Dashboard

Step 1 - Open connection form

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

Step 2 - Fill in fields and select settings

  • API Key -> api_key
  • Secret Key -> secret_key
  • Test Mode -> (enable if you are using sandbox credentials)
  • MID ID -> mid_id (optional, leave empty to use the MID ID of the route)
  • External ID -> external_id (optional, any unique value of your choice; needed only when you connect several accounts with the same API Key and Secret Key - see "Additional info". It cannot be changed after the connection is created)
  • API URL -> api_url (optional, leave empty to use the default endpoint)

Choose Currency and Features. You can set these parameters according to available currencies and features for your Transact365 account, but it is necessary to check details of the connection with your Corefy account manager.

Success

You have connected Transact365 Provider account!


First request to Corefy API (MIN)

What it does: creates a payment-invoice. The customer is redirected to the Transact365 hosted payment page.

Payment - MIN

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "service": "pay_id_aud_hpp",
      "currency": "AUD",
      "amount": 10,
      "customer": {
        "email": "johndoe@email.com"
      }
    }
  }
}

customer [email] is mandatory on the Transact365 side, so send it in every request. The payer IP address and the country are added by Corefy automatically: the country is derived from the currency (AUD -> AU, GBP -> GB, CAD -> CA, MAD -> MA, EGP -> EG), so only these five currencies can be processed.

Other payment services use exactly the same request shape, only the service and currency values change: openbanking_gbp_hpp (Open Banking, GBP), interac_cad_hpp (Interac, CAD), mobile_money_mad_hpp / mobile_money_egp_hpp (Mobile money, MAD / EGP) and bank_transfer_mad_hpp / bank_transfer_egp_hpp (Bank transfer, MAD / EGP).

Payment - MAX

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "1f2aa3ca-abd8-4741-980d-4017ed30cb8c",
      "service": "pay_id_aud_hpp",
      "currency": "AUD",
      "amount": 10.04,
      "customer": {
        "reference_id": "85af8385-d00e-4f58-ab1f-3a527fdf2d3b",
        "name": "John Doe",
        "email": "johndoe@email.com",
        "phone": "+610000000000",
        "metadata": {
          "ip": "203.0.113.10"
        }
      },
      "test_mode": false
    }
  }
}

Apart from customer [email], all customer data is optional and is sent to Transact365 only when present: customer [name] is split into the first and the last name of the payer, customer [phone] is sent as the payer mobile number, and customer [metadata] [ip] overrides the payer IP address that Corefy detects itself.


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

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

Connect Provider account in Corefy Dashboard

Payouts use the same Provider account as payments. If you already connected one, no separate connection is required.

Step 1 - Open connection form

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

Step 2 - Fill in fields (provider -> Corefy)

  • API Key -> api_key
  • Secret Key -> secret_key
  • Test Mode -> (enable if you are using sandbox credentials)
  • MID ID -> mid_id (optional, leave empty to use the MID ID of the route)
  • External ID -> external_id (optional, any unique value of your choice; needed only when you connect several accounts with the same API Key and Secret Key - see "Additional info". It cannot be changed after the connection is created)
  • API URL -> api_url (optional, leave empty to use the default endpoint)

Success

You have connected Transact365 Provider account!


First request to Corefy API (MIN)

What it does: creates a payout-invoice.

Payout - MIN

POST /api/payout-invoices

{
  "data": {
    "type": "payout-invoice",
    "attributes": {
      "service": "bank_transfer_egp",
      "currency": "EGP",
      "amount": 10,
      "customer": {
        "email": "johndoe@email.com"
      },
      "fields": {
        "account_number": "0123456789012345",
        "beneficiary_name": "John",
        "beneficiary_lastname": "Doe"
      }
    }
  }
}

customer [email] and the payer IP address are mandatory on the Transact365 side. The IP address is taken from customer [metadata] [ip] of the request, or from the IP constant of the route (see "Constants") - set at least one of them, otherwise Transact365 rejects the payout.

The payout destination goes to fields (or to customer, depending on the method). Each payout service expects its own set of values:

Service Method Where the destination data is taken from
bank_transfer_mad, bank_transfer_egp Bank transfer fields [account_number], fields [beneficiary_name], fields [beneficiary_lastname], fields [beneficiary_phone], fields [beneficiary_document_id], fields [bank_code]
mobile_money_mad, mobile_money_egp Mobile money fields [account_name], fields [phone], fields [account_number], fields [bank_code], fields [reference]
interac_cad Interac customer [name], customer [reference_id], description, metadata [securityQuestion], metadata [securityAnswer]
pay_id_aud PayID customer [email], customer [name]

If none of the values of the chosen method is present in the request, Corefy does not call Transact365 at all and fails the payout with Missing payout requisites. Values that are missing but not mandatory for the beneficiary are requested by Transact365 from the customer in a web form.

Payout - MAX

POST /api/payout-invoices

{
  "data": {
    "type": "payout-invoice",
    "attributes": {
      "reference_id": "3b1c9d52-0f41-47a0-9a1e-6c2f8b5d7e10",
      "service": "bank_transfer_egp",
      "currency": "EGP",
      "amount": 10,
      "description": "Payout for order 123456",
      "customer": {
        "reference_id": "85af8385-d00e-4f58-ab1f-3a527fdf2d3b",
        "name": "John Doe",
        "email": "johndoe@email.com",
        "metadata": {
          "ip": "203.0.113.10"
        }
      },
      "fields": {
        "account_number": "0123456789012345",
        "beneficiary_name": "John",
        "beneficiary_lastname": "Doe",
        "beneficiary_phone": "+201000000000",
        "beneficiary_document_id": "29001011234567",
        "bank_code": "CIB"
      },
      "test_mode": false
    }
  }
}


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.

If a field is missing in the API request, Corefy can take the value from the configured Constants.

After the successful connection, fill in constants for necessary routes in editing menu.

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)

  • IP -> customer.metadata.ip

Note

Constants are available for payout routes only. Payment routes have no constants - pass the customer data in the request.


Additional info

  1. Callback routing is handled automatically - Corefy generates the callback URL and sends it to Transact365 with every payment and payout request, so nothing has to be set up in the Transact365 backoffice.

  2. Every incoming callback is validated against the hash parameter, which Transact365 calculates from the amount, currency, operation id, order id and status of the operation using your Secret Key. A wrong or rotated Secret Key makes all callbacks fail validation.

  3. Payment and payout statuses are additionally pulled from Transact365 by reconciliation, so an operation is finalised even if a callback is not delivered.

  4. MID ID is taken from the connection first, and only if it is empty - from the route. Fill it in when Transact365 issued a separate MID ID for this account.

  5. External ID makes the connection unique. By default Corefy builds it from your API Key, so a second connection with the same API Key and Secret Key is rejected as a duplicate. If Transact365 issued you one pair of keys for several MID IDs, set a different External ID in every such connection - then each MID ID gets its own connection. The value is not updatable: to change it, create a new connection.

  6. Only the currencies with a known country are processed: AUD (AU), GBP (GB), CAD (CA), MAD (MA) and EGP (EG).


FAQ / Troubleshooting

  • Invalid credentials / auth error -> verify the API Key issued for the selected environment; on connection Corefy sends a test status request to Transact365 and expects the Invalid Deposit ID answer
  • Credentials are already used by another connection -> set a unique External ID in the new connection (see "Additional info")
  • Callback signature errors -> check that the Secret Key in Corefy matches the one issued by Transact365, and that the key was not rotated on the Transact365 side
  • Currency or service is not supported -> only AUD, GBP, CAD, MAD and EGP can be processed; confirm allowed currencies and features in your Transact365 account and in Corefy
  • Payout fails with Missing payout requisites -> provide the destination data of the chosen payout method in fields (or in customer, for Interac and PayID)
  • Payment or payout is rejected by the provider -> check that customer [email] is present and that the payer IP address is available (request or IP constant)
  • Not sure which account type to use? -> ask your Corefy account manager

Question

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