latestOpenAPI 3.0.32026-08-20146131.7 MB
672b1916ba61
Payments
Collect recurring payment
Manually collects a due active SDP-custody recurring payment by submitting the Solana subscriptions collection transaction, creating a linked payment transfer, recording the collection attempt, and advancing the next due time.
post/v1/payments/recurring-payments/{id}/collect
Path parameters
idstring required
SDP recurring payment record ID.
Example:prp_example
SDP recurring payment record ID.
Headers
x-project-idstring
Selects the active project for this request. Required for session/dashboard callers. Ignored when authenticating with an API key, whose scope is fixed to the key's project.
Example:prj_example
Selects the active project for this request. Required for session/dashboard callers. Ignored when authenticating with an API key, whose scope is fixed to the key's project.
Response
Recurring payment collected
Example response
{
"data": {
"recurringPayment": {
"id": "prp_example",
"organizationId": "org_example",
"projectId": "prj_example",
"sourceWalletId": "privy_wallet_123",
"sourceAddress": "So11111111111111111111111111111111111111112",
"counterpartyId": "cp_example",
"counterpartyAccountId": "cpa_example",
"destinationAddress": "So11111111111111111111111111111111111111112",
"destinationTokenAccount": "So11111111111111111111111111111111111111112",
"amount": "100.00",
"periodHours": 720,
"firstCollectionAt": "2025-01-01T00:00:00.000Z",
"nextCollectionDueAt": "2025-01-01T00:00:00.000Z",
"planPda": "So11111111111111111111111111111111111111112",
"subscriptionPda": "So11111111111111111111111111111111111111112",
"subscriptionAuthorityAddress": "So11111111111111111111111111111111111111112",
"status": "active",
"createdAt": "2025-01-01T00:00:00.000Z",
"updatedAt": "2025-01-01T00:00:00.000Z"
},
"collectionAttempt": {
"id": "psca_example",
"organizationId": "org_example",
"projectId": "prj_example",
"transferId": "xfr_example",
"amount": "100.00",
"dueAt": "2025-01-01T00:00:00.000Z",
"attemptedAt": "2025-01-01T00:00:00.000Z",
"status": "pending",
"createdAt": "2025-01-01T00:00:00.000Z",
"updatedAt": "2025-01-01T00:00:00.000Z"
},
"transfer": {
"id": "xfr_example",
"organizationId": "org_example",
"walletId": "privy_wallet_123",
"projectId": "prj_example",
"type": "transfer",
"direction": "outbound",
"status": "confirmed",
"signature": "sig_example",
"serializedTx": "base64_tx_example",
"slot": 123456,
"blockTime": "2025-01-01T00:00:00.000Z",
"fee": 5000,
"error": "Signature failed",
"initiatedBy": {
"type": "api_key"
},
"source": "So11111111111111111111111111111111111111112",
"destination": "So11111111111111111111111111111111111111112",
"rampsMemo": {
"invoice": "INV-123",
"po": "PO-9"
},
"amount": "100.00",
"provider": "moonpay",
"counterpartyId": "counterparty_example",
"counterpartyDisplayName": "Acme Studio",
"providerReference": "ramp_quote_example",
"deliveryMode": "session_widget",
"fiatCurrency": "USD",
"fiatAmount": "100.00",
"risk": {
"provider": "trm",
"score": "0.12",
"level": "low",
"evaluatedAt": "2025-01-01T00:00:00.000Z"
},
"moneygram": {
"transactionId": "mgi_tx_example",
"referenceNumber": "12345678",
"payoutAmount": 25,
"payoutStatus": "completed",
"cryptoTransferId": "xfr_moneygram_crypto_leg_example",
"solanaTxSignature": "sig_moneygram_usdc_transfer_example",
"lastWidgetError": "Transaction cancelled by user"
},
"createdAt": "2025-01-01T00:00:00.000Z",
"updatedAt": "2025-01-02T00:00:00.000Z"
}
},
"meta": {
"requestId": "req_example",
"timestamp": "2025-01-01T00:00:00.000Z"
}
}