feat(connector): GrabPay connector integration - #2063
Merged
Conversation
Auto-applied by CI: - cargo +nightly fmt --all - make -C sdk generate (if applicable) - make docs (if applicable) This commit was automatically generated by GitHub Actions.
Auto-applied by CI: - cargo +nightly fmt --all - make -C sdk generate (if applicable) - make docs (if applicable) This commit was automatically generated by GitHub Actions.
Auto-applied by CI: - cargo +nightly fmt --all - make -C sdk generate (if applicable) - make docs (if applicable) This commit was automatically generated by GitHub Actions.
Auto-applied by CI: - cargo +nightly fmt --all - make -C sdk generate (if applicable) - make docs (if applicable) This commit was automatically generated by GitHub Actions.
Auto-applied by CI: - cargo +nightly fmt --all - make -C sdk generate (if applicable) - make docs (if applicable) This commit was automatically generated by GitHub Actions.
Auto-applied by CI: - cargo +nightly fmt --all - make -C sdk generate (if applicable) - make docs (if applicable) This commit was automatically generated by GitHub Actions.
Auto-applied by CI: - cargo +nightly fmt --all - make -C sdk generate (if applicable) - make docs (if applicable) This commit was automatically generated by GitHub Actions.
Auto-applied by CI: - cargo +nightly fmt --all - make -C sdk generate (if applicable) - make docs (if applicable) This commit was automatically generated by GitHub Actions.
Auto-applied by CI: - cargo +nightly fmt --all - make -C sdk generate (if applicable) - make docs (if applicable) This commit was automatically generated by GitHub Actions.
Auto-applied by CI: - cargo +nightly fmt --all - make -C sdk generate (if applicable) - make docs (if applicable) This commit was automatically generated by GitHub Actions.
Auto-applied by CI: - cargo +nightly fmt --all - make -C sdk generate (if applicable) - make docs (if applicable) This commit was automatically generated by GitHub Actions.
Auto-applied by CI: - cargo +nightly fmt --all - make -C sdk generate (if applicable) - make docs (if applicable) This commit was automatically generated by GitHub Actions.
Auto-applied by CI: - cargo +nightly fmt --all - make -C sdk generate (if applicable) - make docs (if applicable) This commit was automatically generated by GitHub Actions.
Auto-applied by CI: - cargo +nightly fmt --all - make -C sdk generate (if applicable) - make docs (if applicable) This commit was automatically generated by GitHub Actions.
Auto-applied by CI: - cargo +nightly fmt --all - make -C sdk generate (if applicable) - make docs (if applicable) This commit was automatically generated by GitHub Actions.
Auto-applied by CI: - cargo +nightly fmt --all - make -C sdk generate (if applicable) - make docs (if applicable) This commit was automatically generated by GitHub Actions.
Auto-applied by CI: - cargo +nightly fmt --all - make -C sdk generate (if applicable) - make docs (if applicable) This commit was automatically generated by GitHub Actions.
Auto-applied by CI: - cargo +nightly fmt --all - make -C sdk generate (if applicable) - make docs (if applicable) This commit was automatically generated by GitHub Actions.
Auto-applied by CI: - cargo +nightly fmt --all - make -C sdk generate (if applicable) - make docs (if applicable) This commit was automatically generated by GitHub Actions.
Auto-applied by CI: - cargo +nightly fmt --all - make -C sdk generate (if applicable) - make docs (if applicable) This commit was automatically generated by GitHub Actions.
Auto-applied by CI: - cargo +nightly fmt --all - make -C sdk generate (if applicable) - make docs (if applicable) This commit was automatically generated by GitHub Actions.
Auto-applied by CI: - cargo +nightly fmt --all - make -C sdk generate (if applicable) - make docs (if applicable) This commit was automatically generated by GitHub Actions.
Auto-applied by CI: - cargo +nightly fmt --all - make -C sdk generate (if applicable) - make docs (if applicable) This commit was automatically generated by GitHub Actions.
Auto-applied by CI: - cargo +nightly fmt --all - make -C sdk generate (if applicable) - make docs (if applicable) This commit was automatically generated by GitHub Actions.
Auto-applied by CI: - cargo +nightly fmt --all - make -C sdk generate (if applicable) - make docs (if applicable) This commit was automatically generated by GitHub Actions.
Aishwariyaa-Anand
previously approved these changes
Aug 8, 2026
kanikac199
previously approved these changes
Aug 10, 2026
Aishwariyaa-Anand
previously approved these changes
Aug 10, 2026
Auto-applied by CI: - cargo +nightly fmt --all - make -C sdk generate (if applicable) - make docs (if applicable) This commit was automatically generated by GitHub Actions.
hyperswitch-bot
Bot
dismissed stale reviews from Aishwariyaa-Anand and kanikac199
via
August 10, 2026 12:57
aa26ff8
kanikac199
previously approved these changes
Aug 10, 2026
shuklatushar226
previously approved these changes
Aug 10, 2026
shuklatushar226
left a comment
Contributor
There was a problem hiding this comment.
check base url once
Aishwariyaa-Anand
previously approved these changes
Aug 10, 2026
JeevaRamu0104
requested changes
Aug 10, 2026
…status, specs, and redirect errors
peeyushshukla-juspay
dismissed stale reviews from Aishwariyaa-Anand, shuklatushar226, and kanikac199
via
August 11, 2026 07:12
55e3205
Auto-applied by CI: - cargo +nightly fmt --all - make -C sdk generate (if applicable) - make docs (if applicable) This commit was automatically generated by GitHub Actions.
JeevaRamu0104
approved these changes
Aug 11, 2026
Aishwariyaa-Anand
approved these changes
Aug 11, 2026
Aishwariyaa-Anand
enabled auto-merge
August 11, 2026 07:57
kanikac199
approved these changes
Aug 11, 2026
shuklatushar226
approved these changes
Aug 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds the GrabPay one-time-charge redirect wallet connector with Create Order, OAuth authorization, redirect verification, payment sync, refund, and refund sync support.
Flows Implemented
types.CompositePaymentService/Authorizetypes.CompositePaymentService/VerifyRedirectResponsetypes.CompositePaymentService/Gettypes.CompositePaymentService/Refundtypes.CompositeRefundService/Gettypes.EventService/HandleEventAdditional Changes
GRAB_PAYpayment method type, andgrabpayRedirectwallet data.Testing
1. Authorize - Redirect Pending
Response:
{ "authorizeResponse": { "connectorTransactionId": "<REDACTED_TRANSACTION_ID>", "status": "AUTHENTICATION_PENDING", "statusCode": 302, "redirectionData": { "uri": { "uri": "https://partner-api.grab.com/grabid/v1/oauth2/authorize?<REDACTED>" } }, "connectorFeatureData": { "value": "{\"state\":\"<REDACTED>\",\"nonce\":\"<REDACTED>\",\"code_verifier\":\"<REDACTED>\",\"redirect_uri\":\"https://example.com/payment/response\",\"partner_tx_id\":\"<REDACTED_TRANSACTION_ID>\",\"currency\":\"PHP\",\"request_code\":\"<REDACTED>\"}" } }, "createOrderResponse": { "connectorOrderId": "<REDACTED_REQUEST_CODE>", "status": "PENDING", "statusCode": 200 }, "compositeStatus": "COMPLETED" }2. Verify Redirect Response - Charge Success
Response:
{ "verifyRedirectResponse": { "rawConnectorResponse": { "value": "{\"code\":\"<REDACTED>\",\"state\":\"<REDACTED>\",\"error\":null}" }, "connectorFeatureData": { "value": "<REDACTED_CONNECTOR_FEATURE_DATA>" } }, "accessTokenResponse": { "accessToken": { "value": "<REDACTED_ACCESS_TOKEN>" }, "tokenType": "Bearer", "expiresInSeconds": "31535999", "status": "OPERATION_STATUS_SUCCESS", "statusCode": 200 }, "authorizeResponse": { "connectorTransactionId": "<REDACTED_CONNECTOR_TRANSACTION_ID>", "status": "CHARGED", "statusCode": 200, "connectorFeatureData": { "value": "{\"txID\":\"<REDACTED_CONNECTOR_TRANSACTION_ID>\",\"status\":\"success\",\"paymentMethod\":\"GPWALLET\",\"description\":\"\",\"reason\":\"\"}" } } }3. Payment Sync - Success
Response:
{ "getResponse": { "connectorTransactionId": "<REDACTED_CONNECTOR_TRANSACTION_ID>", "status": "CHARGED", "statusCode": 200, "amount": { "minorAmount": "1", "currency": "PHP" }, "connectorFeatureData": { "value": "{\"txID\":\"<REDACTED_CONNECTOR_TRANSACTION_ID>\",\"status\":\"success\",\"paymentMethod\":\"GPWALLET\",\"description\":\"\",\"txStatus\":\"success\",\"reason\":\"\"}" } } }4. Refund - Success
Response:
{ "refundResponse": { "connectorRefundId": "<REDACTED_REFUND_ID>", "status": "REFUND_SUCCESS", "statusCode": 200, "connectorTransactionId": "<REDACTED_TRANSACTION_ID>", "rawConnectorResponse": { "value": "{\"txID\":\"<REDACTED_CONNECTOR_REFUND_TRANSACTION_ID>\",\"status\":\"success\",\"paymentMethod\":\"GPWALLET\",\"description\":\"\",\"txStatus\":\"success\",\"reason\":\"\",\"echo\":null}" } } }5. Refund Sync - Success
Response:
{ "refundResponse": { "merchantRefundId": "<REDACTED_REFUND_ID>", "connectorRefundId": "<REDACTED_REFUND_ID>", "status": "REFUND_SUCCESS", "statusCode": 200, "connectorTransactionId": "<REDACTED_TRANSACTION_ID>", "rawConnectorResponse": { "value": "{\"txID\":\"<REDACTED_CONNECTOR_REFUND_TRANSACTION_ID>\",\"status\":\"success\",\"paymentMethod\":\"GPWALLET\",\"description\":\"\",\"txStatus\":\"success\",\"reason\":\"\",\"echo\":null}" } } }Validation
cargo fmt --checkcargo test -p connector-integration -- grabpaycargo check -p connector-integration -p composite-service -p grpc-server