In order to support using different authorize.net credentials for different compacts, we need an API endpoint that takes in an loginId and transactionKey which will be used to process transactions for that compact within the application.
This ticket includes the following effort:
- Add api endpoint
POST /v1/compacts/{compact}/credentials/payment-processor which only compact admins can call to upload payment processing credentials using this request body:
{
"processor": "authorize.net", # The payment processor to use, only authorize.net is supported
"apiLoginId": "<api_login_id>", # required for authorize.net transactions
"transactionKey": "<transaction_key>", # required for authorize.net transactions
}
The credentials should be stored securely in secrets manager using KMS key for encryption, using the following namespace pattern:
/compact-connect/env/<env>/compact/<compact>/credentials/payment-processor