Initialize S2S Card Payment With Wallet
Initialize an S2S card payment that settles into a selected NGN wallet.
This endpoint follows the existing S2S card payment payload and adds wallet_code.
Endpoint
POST /api/s2s/v1/transaction/initialize/walletRequest Body
curl --request POST \
--url https://backendapi.sayswitchgroup.com/api/s2s/v1/transaction/initialize/wallet \
--header "Authorization: Bearer YOUR_SECRET_KEY" \
--header "Content-Type: application/json" \
--data '{
"amount": "10.00",
"card": "ENCRYPTED_CARD_HEX_STRING",
"currency": "NGN",
"email": "test@example.com",
"pin": "1234",
"reference": "WALLET_CARD_2026_0001",
"wallet_code": "NGN169XXXX"
}'Required Fields
| Field | Description |
|---|---|
email | Customer email address |
amount | Payment amount |
reference | Unique transaction reference |
card | Encrypted card payload generated with the S2S card encryption helper |
wallet_code | Target NGN wallet code |
Optional Fields
| Field | Description |
|---|---|
currency | Defaults to NGN |
pin | May be required depending on the card flow |
Card Encryption Helper
The card field must be the encrypted card payload generated using the S2S card encryption helper. Do not use a plain card object or mock string as the card value.
POST /api/s2s/v1/test/encryptionRequest Body
curl --request POST \
--url https://backendapi.sayswitchgroup.com/api/s2s/v1/test/encryption \
--header "Authorization: Bearer YOUR_SECRET_KEY" \
--header "Content-Type: application/json" \
--data '{
"reference": "WALLET_CARD_2026_0001",
"data": {
"number": "4005555555000009",
"expiryMonth": "05",
"expiryYear": "37",
"cvv": "000"
}
}'The same reference used for encryption must be used for transaction initialization because the reference is used to derive the encryption IV.
The encryption endpoint returns the hexadecimal card payload directly as a raw text response, not as JSON.