Quick start
Integrate by creating a server-to-server request, storing the GlobePay365 transaction identifier, and listening for asynchronous webhook updates.
Authentication
Use a credential model appropriate for your production environment. A typical pattern is an API key or merchant identifier combined with a request signature.
Authorization: Bearer YOUR_API_KEYContent-Type: application/json
X-Merchant-Id: merchant_12345
X-Timestamp: 1723819210
X-Signature: <generated-signature>Create payment
/v1/payments{
"amount": "100.00",
"currency": "MYR",
"payment_method": "bank_transfer",
"merchant_reference": "ORDER-1028",
"return_url": "https://merchant.example/return",
"callback_url": "https://merchant.example/webhooks/payment"
}| Field | Type | Description |
|---|---|---|
| amount | string | Transaction amount in the requested currency format. |
| currency | string | Currency code supported by your real production configuration. |
| merchant_reference | string | Your unique order or payment reference. |
| callback_url | string | Server endpoint for asynchronous status updates. |
Query payment
/v1/payments/{transaction_id}{
"transaction_id": "GP365-20260817-001928",
"merchant_reference": "ORDER-1028",
"status": "success",
"amount": "100.00",
"currency": "MYR"
}Create payout
/v1/payouts{
"amount": "250.00",
"currency": "MYR",
"merchant_reference": "WD-88321",
"beneficiary": {
"name": "Example Beneficiary",
"bank_code": "EXAMPLE_BANK",
"account_number": "1234567890"
},
"callback_url": "https://merchant.example/webhooks/payout"
}Webhooks
Webhooks should be authenticated, idempotent and safe to retry. Store the transaction identifier and your merchant reference so repeated callbacks do not create duplicated downstream actions.
Your callback URL{
"event": "payment.updated",
"transaction_id": "GP365-20260817-001928",
"merchant_reference": "ORDER-1028",
"status": "success",
"signature": "..."
}API security
- Keep API secrets server-side; never expose them in client JavaScript.
- Use HTTPS for every API and webhook request.
- Validate timestamps and signatures if they are part of your approved signing scheme.
- Allow-list callback destinations or source IPs only if this matches your actual infrastructure.
- Rotate credentials and preserve audit logs according to your internal security policy.
Error handling
Example response{
"success": false,
"error": {
"code": "INVALID_REQUEST",
"message": "A required field is missing."
}
}Production error codes should be documented with whether each error is retryable, which fields are affected, and whether support intervention is required.
