Make Payment - os-salahuddin/php8-cluster GitHub Wiki

Manual Payment

Get Merchant Info

This API provides the merchant information for manual payment

URL

[POST] http://127.0.0.1:8282/api/v1/private/transaction/manual-payment/merchant-info

Sample request

{
    "receiver_mobile_number" : "+88017xxxxxxxx",
}

Sample Request Format

Parameter Type Description Always Present
receiver_mobile_number string Mobile no of receiver Yes

Sample Response

{
    "code": 200,
    "messages": [],
    "data": {
        "merchant": {
            "name": "SHARE & TRIP",
            "mobile_number": "+88017xxxxxxxx",
            "avatar": "https://deshipay.s3.ap-southeast-1.amazonaws.com/deshipay/users/businesslogo/thumbnails/rUjgihCyqPeAVA4KBXmMAlTin1662557327.png",
            "qr_code": "MFY4ak83eTZFVE5IVkNQVnx8RHNUbFZJa1diVC9rMFI3UGYxWjRLVFl0d3A2RVpFQ1RVdkYrWkJ5WjVxVWc2R3VLWUNyR2IvcGpKSjZtU1NRblJ1KzZybHRIWklzMXdlT2xSWDlPTGs4aTc0ZUFzenllNmI0eUhka0RXaDZZTmhQVUllTmFFZDZEcWh0UnhlVTlBUlI1K2lYeVRWT3hSdUh5cXlxelh3UUdzSkUzenVPVkt4UzRUdVBvaWpNPQ=="
        }
    }
}

Sample Response Format

Parameter Type Description Always Present
code Int HTTP code (e.g., 200) Yes
messages Array Result messages Yes
data.merchant Object Merchant details Yes
data.merchant.name String Name of the merchant Yes
data.merchant.mobile_number String Mobile number of the merchant Yes
data.merchant.avatar String URL to the avatar image of the merchant Yes
data.merchant.qr_code String QR code string for the merchant Yes

Get Summary

This API provides the manual payment summary details

URL

[POST] http://127.0.0.1:8282/api/v1/private/transaction/manual-payment/summary

Sample request

{
    "receiver_mobile_number" : "+88017xxxxxxxx",
    "amount" : 10
}

Sample Request Format

Parameter Type Description Always Present
receiver_mobile_number string Mobile no of receiver Yes
amount Number amount Yes

Sample Response

{
    "code": 200,
    "messages": [],
    "data": {
        "summary": {
            "nature_of_transaction": "Transfer",
            "recipient": {
                "name": "SHARE & TRIP",
                "mobile_number": "+88017xxxxxxxx",
                "avatar": "https://deshipay.s3.ap-southeast-1.amazonaws.com/deshipay/users/businesslogo/thumbnails/rUjgihCyqPeAVA4KBXmMAlTin1662557327.png"
            },
            "card": null,
            "amount": "৳10.00",
            "charge": "৳0.00",
            "total_payable": "৳10.00",
            "remarks": ""
        }
    }
}
{
    "code": 422,
    "messages": [
        "Sorry! Insufficient balance."
    ],
    "data": null
}
{
    "code": 422,
    "messages": [
        "Sorry! Sender account is not approved"
    ],
    "data": null,
    "error_title": null
}

Sample Response Format

Parameter Type Description Always Present
code Int HTTP code (e.g., 200) Yes
messages Array Result messages (empty if no messages) Yes
data.summary Object Transaction summary Yes
data.summary.nature_of_transaction String Nature of the transaction (e.g., Transfer) Yes
data.summary.recipient Object Details of the recipient Yes
data.summary.recipient.name String Name of the recipient Yes
data.summary.recipient.mobile_number String Mobile number of the recipient Yes
data.summary.recipient.avatar String URL to the avatar image of the recipient Yes
data.summary.card Null Card details (always null in this response) Yes
data.summary.amount String Transaction amount (with currency symbol) Yes
data.summary.charge String Transaction charge (with currency symbol) Yes
data.summary.total_payable String Total amount payable (including charge) Yes
data.summary.remarks String Remarks related to the transaction (empty if none) Yes

Execute request

This API performs execution of Make Manual payment request

URL

[POST] http://127.0.0.1:8282/api/v1/private/transaction/request-money/execute

Sample request

{
    "receiver_mobile_number" : "+88017xxxxxxxx",
    "amount" : 10,
    "pin" : "1235"
}

Sample Request Format

Parameter Type Description Always Present
receiver_mobile_number string Mobile no of receiver Yes
amount Number amount Yes
pin String pin Yes

Sample request

{
    "qr_text" : "WDRJVU8xd1RhMlhUdThMWnx8UitMbXlpWG1kcEUvV0Q5NUNjY3RmRU5YTkJpci84SGtURHpjVjVNVGVadEpNQ25EdmVXQUZwUjZOK3VGWkN5K1dQWWJETkdSN0lwc1BIUGx4UENGakdTSnpIUkFzS0EwblNWWU5yUk9hYzlhbHgrV25uTUtTcEcyTlVNdXg1akxkV3NJdTB4ZktxMjE3Tm4zSmI1ZmVtalZNNDM3NlV5VWZlbUI3Y0Rzamd3PQ==",
    "amount" : 50,
    "pin" : "Test QR"
}

Sample Request Format

Parameter Type Description Always Present
qr_text string QR Code Yes
amount Number Amount Yes
note string note for confirmation Yes

Sample Response

{
    "code": 200,
    "messages": [
        "Payment is successful"
    ],
    "data": {
        "summary": {
            "recipient": {
                "name": "SHARE & TRIP",
                "mobile_number": "+88017xxxxxxxx",
                "avatar": "https://deshipay.s3.ap-southeast-1.amazonaws.com/deshipay/users/businesslogo/thumbnails/rUjgihCyqPeAVA4KBXmMAlTin1662557327.png",
                "type": "merchant"
            },
            "invoice_id": "AZCTL8S942",
            "new_balance": "৳122,105.14",
            "date": "19 February, 2025",
            "time": "11:33 AM",
            "amount": "৳10.00",
            "fee": "৳0.00",
            "total_payable": "৳10.00",
            "remarks": ""
        }
    }
}
{
    "code": 422,
    "messages": [
        "Sorry! PIN does not match."
    ],
    "data": null,
    "error_title": "E_PIN_ERROR"
}
{
    "code": 422,
    "messages": [
        "Invalid QR Code. Please try again"
    ],
    "data": null
}

Sample Response Format

Parameter Type Description Always Present
code Int HTTP code (e.g., 200) Yes
messages Array Result messages (e.g., "Payment is successful") Yes
data.summary Object Transaction summary Yes
data.summary.recipient Object Details of the recipient Yes
data.summary.recipient.name String Name of the recipient Yes
data.summary.recipient.mobile_number String Mobile number of the recipient Yes
data.summary.recipient.avatar String URL to the avatar image of the recipient Yes
data.summary.recipient.type String Recipient type (e.g., "merchant") Yes
data.summary.invoice_id String Unique identifier for the invoice Yes
data.summary.new_balance String New account balance after the transaction Yes
data.summary.date String Transaction date (e.g., "19 February, 2025") Yes
data.summary.time String Transaction time (e.g., "11:33 AM") Yes
data.summary.amount String Transaction amount (with currency symbol) Yes
data.summary.fee String Transaction fee (with currency symbol) Yes
data.summary.total_payable String Total amount payable (including fee) Yes
data.summary.remarks String Remarks related to the transaction (empty if none) Yes

QR Payment

Get QR and Profile information

This API provides QR code and associated profile information

URL

[GET] http://127.0.0.1:8282/api/v1/private/user/profile-qr

Sample Response

{
    "code": 200,
    "messages": [],
    "data": {
        "name": "John Smith",
        "email": "[email protected]",
        "msisdn": "+88017xxxxxxxx",
        "mobile_no": "+88017xxxxxxxxx",
        "mobile_number": "+88017xxxxxx",
        "thumbnail": "https://deshipay.s3.ap-southeast-1.amazonaws.com/deshipay/users/photos/c4c9ea1d-3b4b-43de-81dd-c1258201336e-1722502562.jpg",
        "avatar": "https://deshipay.s3.ap-southeast-1.amazonaws.com/deshipay/users/photos/c4c9ea1d-3b4b-43de-81dd-c1258201336e-1722502562.jpg",
        "user_type": "consumer",
        "address": "Home / Holding: 115/24, Dhaka",
        "qr_code_text": "Q3BTNjlsZUI4T2RFb1B4SHx8cFdaQUFtblViNVZwU3VvRGN2SWcwVnJGWElPRGNtZnNKVVdiQXo2YU8yanJJbmNJRFdwd1BkS0pUR3J5WXdUV1FmY2ZQOVZBMXpKVlNSczV1QUtJRjZiT1RBcUZjSzNGUHlhczFRelorUDczY3dzaGljcktzU0hySk9hYkRnTnVwT05kZEMxMHBCWFNzb0xERUswRW45Vm1QaFFVc1ZQcC9JRjFvYXRYVzk4PQ=="
    }
}

Sample Response Format

Parameter Type Description Always Present
code Int HTTP code (e.g., 200) Yes
messages Array Result messages (empty if no messages) Yes
data.params Array List of input parameters Yes
data.params[].key String Key of the parameter Yes
data.params[].type String Type of the input (e.g., "numeric", "alphanumeric") Yes
data.params[].input Bool Whether the field is an input field (true/false) Yes
data.params[].label String Label for the parameter Yes
data.params[].value String Default value of the parameter Yes
data.params[].required Bool Whether the field is required (true/false) Yes
data.params[].field_type String Type of the input field (e.g., "numeric", "textarea") Yes
data.params[].placeholder String Placeholder text for the input field No
data.params[].is_read_only Bool Whether the field is read-only (true/false) Yes
data.receiver Object Receiver details Yes
data.receiver.name String Name of the receiver Yes
data.receiver.msisdn String Mobile number of the receiver Yes
data.receiver.thumbnail String URL to the thumbnail image of the receiver Yes
data.receiver.user_type String Type of the receiver (e.g., "consumer") Yes

Get Summary

This API provides the Summary Information for QR Payment

URL

[POST] http://127.0.0.1:8282/api/v1/private/transaction/qr-payment/summary

Sample request

{
    "qr_text" : "WDRJVU8xd1RhMlhUdThMWnx8UitMbXlpWG1kcEUvV0Q5NUNjY3RmRU5YTkJpci84SGtURHpjVjVNVGVadEpNQ25EdmVXQUZwUjZOK3VGWkN5K1dQWWJETkdSN0lwc1BIUGx4UENGakdTSnpIUkFzS0EwblNWWU5yUk9hYzlhbHgrV25uTUtTcEcyTlVNdXg1akxkV3NJdTB4ZktxMjE3Tm4zSmI1ZmVtalZNNDM3NlV5VWZlbUI3Y0Rzamd3PQ=="
}

Sample Request Format

Parameter Type Description Always Present
qr_text string QR Code Yes

Sample Response

{
    "code": 200,
    "messages": [],
    "data": {
        "params": [
            {
                "key": "amount",
                "type": "numeric",
                "input": true,
                "label": "Amount",
                "value": "0.0",
                "required": true,
                "field_type": "numeric",
                "placeholder": null,
                "is_read_only": false
            },
            {
                "key": "note",
                "type": "alphanumeric",
                "input": true,
                "label": "Write a note (optional)",
                "value": "",
                "required": false,
                "field_type": "textarea",
                "placeholder": "",
                "is_read_only": false
            }
        ],
        "receiver": {
            "name": "John Smith",
            "msisdn": "+88017xxxxxxxx",
            "thumbnail": "https://deshipay.s3.ap-southeast-1.amazonaws.com/deshipay/users/photos/Iyn3RFQ6tuQstqSN1kJbW1SEC1637652142.png",
            "user_type": "consumer"
        }
    }
}

Sample Response Format

Parameter Type Description Always Present
code Int HTTP code (e.g., 200) Yes
messages Array Result messages (empty if no messages) Yes
data.params Array List of input parameters Yes
data.params[].key String Key of the parameter Yes
data.params[].type String Type of the input (e.g., "numeric", "alphanumeric") Yes
data.params[].input Bool Whether the field is an input field (true/false) Yes
data.params[].label String Label for the parameter Yes
data.params[].value String Default value of the parameter Yes
data.params[].required Bool Whether the field is required (true/false) Yes
data.params[].field_type String Type of the input field (e.g., "numeric", "textarea") Yes
data.params[].placeholder String Placeholder text for the input field No
data.params[].is_read_only Bool Whether the field is read-only (true/false) Yes
data.receiver Object Receiver details Yes
data.receiver.name String Name of the receiver Yes
data.receiver.msisdn String Mobile number of the receiver Yes
data.receiver.thumbnail String URL to the thumbnail image of the receiver Yes
data.receiver.user_type String Type of the receiver (e.g., "consumer") Yes

Payment Confirmation

This API is used to confirm the payment for QR Payment

URL

[GET] http://127.0.0.1:8282/api/v1/private/transaction/qr-payment/confirmation

Sample request

{
    "qr_text" : "WDRJVU8xd1RhMlhUdThMWnx8UitMbXlpWG1kcEUvV0Q5NUNjY3RmRU5YTkJpci84SGtURHpjVjVNVGVadEpNQ25EdmVXQUZwUjZOK3VGWkN5K1dQWWJETkdSN0lwc1BIUGx4UENGakdTSnpIUkFzS0EwblNWWU5yUk9hYzlhbHgrV25uTUtTcEcyTlVNdXg1akxkV3NJdTB4ZktxMjE3Tm4zSmI1ZmVtalZNNDM3NlV5VWZlbUI3Y0Rzamd3PQ==",
    "amount" : 10,
    "note" : "Test QR"
}

Sample Request Format

Parameter Type Description Always Present
qr_text string QR Code Yes
amount Number Amount Yes
note string note for confirmation Yes

Sample Response

{
    "code": 200,
    "messages": [],
    "data": {
        "summary": {
            "nature_of_transaction": "Transfer",
            "recipient": {
                "name": "John Smith",
                "mobile_number": "+880171xxxxxxxx",
                "avatar": "https://deshipay.s3.ap-southeast-1.amazonaws.com/deshipay/users/photos/thumbnails/laLXlucvdKqUSdkP7sBaS63e41637652156.png"
            },
            "card": null,
            "amount": "৳10",
            "charge": "৳5",
            "total_payable": "৳15",
            "remarks": ""
        }
    }
}
{
    "code": 422,
    "messages": [
        "Transaction amount is below than minimum transaction amount limit."
    ],
    "data": null
}

Sample Response Format

Parameter Type Description Always Present
code Int HTTP code (e.g., 200) Yes
messages Array Result messages (empty if no messages) Yes
data.summary Object Summary of the transaction Yes
data.summary.nature_of_transaction String Nature of the transaction (e.g., "Transfer") Yes
data.summary.recipient Object Recipient details Yes
data.summary.recipient.name String Name of the recipient Yes
data.summary.recipient.mobile_number String Mobile number of the recipient Yes
data.summary.recipient.avatar String URL to the avatar image of the recipient Yes
data.summary.card Object Card details (null if not applicable) No
data.summary.amount String Transaction amount Yes
data.summary.charge String Transaction charge Yes
data.summary.total_payable String Total amount payable including charges Yes
data.summary.remarks String Additional remarks (empty if not provided) No

Execute request

This API performs execution of the QR payment

URL

[GET] http://127.0.0.1:8282/api/v1/private/transaction/qr-payment/confirmation

Sample request

{
    "qr_text" : "WDRJVU8xd1RhMlhUdThMWnx8UitMbXlpWG1kcEUvV0Q5NUNjY3RmRU5YTkJpci84SGtURHpjVjVNVGVadEpNQ25EdmVXQUZwUjZOK3VGWkN5K1dQWWJETkdSN0lwc1BIUGx4UENGakdTSnpIUkFzS0EwblNWWU5yUk9hYzlhbHgrV25uTUtTcEcyTlVNdXg1akxkV3NJdTB4ZktxMjE3Tm4zSmI1ZmVtalZNNDM3NlV5VWZlbUI3Y0Rzamd3PQ==",
    "amount" : 10,
    "pin" : "1235",
    "note" : "Test execute"
}

Sample Request Format

Parameter Type Description Always Present
qr_text string QR Code Yes
amount Number Amount Yes
pin string pin Yes
note string any note provided No

Sample Response

{
    "code": 200,
    "messages": [
        "Send money is successful."
    ],
    "data": {
        "summary": {
            "recipient": {
                "name": "John Smith",
                "mobile_number": "+88017xxxxxxxx",
                "avatar": "https://deshipay.s3.ap-southeast-1.amazonaws.com/deshipay/users/photos/thumbnails/laLXlucvdKqUSdkP7sBaS63e41637652156.png",
                "type": "consumer"
            },
            "invoice_id": "BZCTN2X942",
            "date": "19 February, 2025",
            "time": "01:27 PM",
            "total_payable": "৳15",
            "new_balance": "৳122,090.14",
            "fee": "৳5",
            "amount": "৳10",
            "remarks": ""
        }
    }
}
{
    "code": 422,
    "messages": [
        "The pin must be 4 digits.",
        "Sorry! PIN does not match."
    ],
    "data": null,
    "error_title": "E_PIN_ERROR"
}

Sample Response Format

Parameter Type Description Always Present
code Int HTTP code (e.g., 200) Yes
messages Array Result messages (empty if no messages) Yes
data.summary Object Summary of the transaction Yes
data.summary.recipient Object Recipient details Yes
data.summary.recipient.name String Name of the recipient Yes
data.summary.recipient.mobile_number String Mobile number of the recipient Yes
data.summary.recipient.avatar String URL to the avatar image of the recipient Yes
data.summary.recipient.type String Type of the recipient (e.g., "consumer") Yes
data.summary.invoice_id String Invoice ID Yes
data.summary.date String Date of the transaction Yes
data.summary.time String Time of the transaction Yes
data.summary.total_payable String Total amount payable Yes
data.summary.new_balance String New balance after transaction Yes
data.summary.fee String Transaction fee Yes
data.summary.amount String Transaction amount Yes
data.summary.remarks String remarks (empty if not provided) No