Recipe 2: P2P Wallet-to-Wallet Transfer
Required​
Complete Recipe 0: Account preflight + encryption first.
Session Token Context​
For p2p, mint session_token from the source PW wallet and encrypt it.
The session_token_enc must match the debit_party PW user.
Flow​
- Execute transaction directly with
transaction_type: "p2p" - Poll status with
transaction_id_enc
Note​
p2p does not require POST /institution/quote.
Quote is only required for inttransfer flows (see Recipe 3).
POST /institution/transaction body​
{
"session_token_enc": "<encrypted_base64>",
"transaction_id": "TXN-P2P-20260213-0001",
"transaction_date": "2026-02-13T18:25:00.000Z",
"amount": "25.00",
"sender_currency": "USD",
"sender_amount": "25.00",
"description": "P2P wallet transfer",
"transaction_type": "p2p",
"fees": [
{ "fee_type": "service_fee", "fee_amount": "0.00", "fee_currency": "USD" }
],
"debit_party": [
{ "key": "msisdn", "value": "15550001011" }
],
"credit_party": [
{ "key": "msisdn", "value": "15550001012" }
],
"sender_kyc": {
"full_name": "Casey Example",
"country": "US"
},
"recipient_kyc": {
"full_name": "Jordan Example",
"country": "US"
}
}
GET /institution/transaction request params​
{
"version": "2024-10-01",
"institution_name": "DemoBank",
"transaction_id_enc": "<encrypted_base64>"
}