Payment Authorization
Overview
A payment authorization results in a hold on funds on future payment. Authorizations are for payment methods with credit card type only.
Prerequisite Resources
There are multiple prerequisite resources depending on the call method that must be created before requesting a payment authorization.
Object | Definition |
---|---|
Account | Salesforce standard Account object. |
Chargent Order | Chargent Orders are central objects to payments lifecycle management. |
Payment Method | Payment Methods are instruments that may be used to make or take payment. |
Payment Gateway | Payment Gateways track all the configuration settings that Chargent will use to proccess the payments and send requests to the gateway. |
Create Methods
There are multiple methods available using input data to create a payment authorization. A payment gateway must exist for all create payment authorization methods.
Prerequisites | Input | Output |
---|---|---|
Chargent Order, Payment Method (Assigned) | chargentOrderID | Chargent Transaction |
Chargent Order | chargentOrderID, paymentGatewayId | Payment Method Tokenization, Chargent Transaction |
Chargent Order, Payment Method | chargentOrderID, paymentMethodId, paymentGatewayId | Chargent Transaction |
Chargent Order, Payment Method | chargentOrderID, paymentMethodId | Chargent Transaction |
Account | accountId, paymentGatewayId | Chargent Order, Payment Method Tokenization, Chargent Transaction |
Account, Payment Method | accountId, paymentMethodId, paymentGatewayId | Chargent Order, Chargent Transaction |
Transaction Fields
Learn more about Chargent Transaction Fields.
Create Payment Authorization
Resource URL
HTTP Request | URL |
---|---|
POST | /services/apexrest/ChargentBase/payments/authorizations |
chargentOrderId
Request
JSON Example
{
"amount": 200.00, // optional
"chargentOrderId": "{{orderId}}"
}
Response
JSON Example
{
"paymentMethod": {
"tokens": [
{
"token": "{{token}}",
"id": "{{tokenId}}",
"gatewayId": "{{gatewayId}}"
}
],
"status": "Created",
"id": "{{paymentMethodId}}"
},
"logs": [
{
"interactionStatus": "APPROVED",
"id": "{{logId}}",
"gatewayResultCode": "100",
"gatewayId": "{{gatewayId}}",
"createdDate": "2023-12-06T20:26:54.000Z"
}
],
"gatewayResponse": {
"gatewayResultCodeDescription": "ACCEPT",
"gatewayResultCode": "100",
"gatewayMessage": "ACCEPT",
"gatewayDate": "2023-12-06T20:26:54.248Z",
"gatewayAvsCode": "X",
"gatewayAuthorizationCode": "{{authCode}}"
},
"paymentAuthorization": {
"status": "Approved",
"requestDate": "2023-12-06T20:26:54.248Z",
"paymentAuthorizationNumber": "{{authCode}}",
"id": "{{transactionId}}",
"effectiveDate": "2023-12-06T20:26:54.248Z",
"chargentOrderId": "{{orderId}}",
"amount": 200.0
}
}
chargentOrderId, paymentGatewayId
Request
JSON Example
{
"amount": 300.00, // optional
"chargentOrderId": "{{orderId}}",
"paymentGatewayId": "{{gatewayId}}",
"paymentMethod": {
"address": { // optional
"city": "San Francisco",
"companyName": "AppFrontier",
"country": "USA",
"postalcode": "94105",
"state": "California",
"street": "415 Mission Street"
},
"cardPaymentMethod": {
"cardHolderFirstName": "Chargent",
"cardHolderLastName": "Authorization Test",
"cardNumber": "{{cardNumber}}",
"cardType": "{{cardType}}",
"cvv": "{{cvv}}",
"expiryMonth": "{{expiryMonth}}",
"expiryYear": "{{expiryYear}}"
}
},
"email": "{{$randomEmail}}", // optional
"phone": "{{$randomPhoneNumber}}" // optional
}
Response
JSON Example
{
"paymentMethod": {
"tokens": [
{
"token": "{{token}}",
"id": "{{tokenId}}",
"gatewayId": "{{gatewayId}}"
}
],
"status": "Created",
"id": "{{paymentMethodId}}"
},
"logs": [
{
"interactionStatus": "APPROVED",
"id": "{{logId}}",
"gatewayResultCode": "100",
"gatewayId": "{{gatewayId}}",
"createdDate": "2023-12-06T20:33:57.000Z"
}
],
"gatewayResponse": {
"gatewayToken": "{{token}}",
"gatewayResultCodeDescription": "ACCEPT",
"gatewayResultCode": "100",
"gatewayMessage": "ACCEPT",
"gatewayDate": "2023-12-06T20:33:58.007Z",
"gatewayAvsCode": "X",
"gatewayAuthorizationCode": "{{authCode}}"
},
"paymentAuthorization": {
"status": "Approved",
"requestDate": "2023-12-06T20:33:58.007Z",
"paymentAuthorizationNumber": "{{authCode}}",
"id": "{{transactionId}}",
"effectiveDate": "2023-12-06T20:33:58.007Z",
"chargentOrderId": "{{chargentOrderId}}",
"amount": 300.0
}
}
chargentOrderId, paymentMethodId, paymentGatewayId
Request
JSON Example
{
"amount": 400.00, // optional
"chargentOrderId": "{{orderId}}",
"paymentMethod": {
"id": "{{paymentMethodId}}"
},
"paymentGatewayId": "{{gatewayId}}"
}
Response
JSON Example
{
"paymentMethod": {
"tokens": [
{
"token": "{{token}}",
"id": "{{tokenId}}",
"gatewayId": "{{gatewayId}}"
}
],
"status": "Applied",
"id": "{{paymentMethodId}}"
},
"logs": [
{
"interactionStatus": "APPROVED",
"id": "{{logId}}",
"gatewayResultCode": "200",
"gatewayId": "{{gatewayId}}",
"createdDate": "2023-12-06T21:24:26.000Z"
}
],
"gatewayResponse": {
"gatewayToken": "{{token}}",
"gatewayResultCodeDescription": "",
"gatewayResultCode": "200",
"gatewayMessage": "",
"gatewayDate": "2023-12-06T21:24:26.391Z",
"gatewayAuthorizationCode": ""
},
"paymentAuthorization": {
"status": "Approved",
"requestDate": "2023-12-06T21:24:26.391Z",
"paymentAuthorizationNumber": "",
"id": "{{transactionId}}",
"effectiveDate": "2023-12-06T21:24:26.391Z",
"chargentOrderId": "{{chargentOrderId}}",
"amount": 400.0
}
}
chargentOrderId, paymentMethodId
Request
JSON Example
{
"amount": 500.00, // optional
"chargentOrderId": "{{orderId}}",
"paymentMethod": {
"id": "{{paymentMethodId}}"
}
}
Response
JSON Example
{
"paymentMethod": {
"tokens": [
{
"token": "{{token}}",
"id": "{{tokenId}}",
"gatewayId": "{{gatewayId}}"
}
],
"status": "Applied",
"id": "{{paymentMethodId}}"
},
"logs": [
{
"interactionStatus": "APPROVED",
"id": "{{logId}}",
"gatewayResultCode": "200",
"gatewayId": "{{gatewayId}}",
"createdDate": "2023-12-06T21:28:15.000Z"
}
],
"gatewayResponse": {
"gatewayToken": "{{tokenId}}",
"gatewayResultCodeDescription": "",
"gatewayResultCode": "200",
"gatewayMessage": "",
"gatewayDate": "2023-12-06T21:28:15.389Z",
"gatewayAuthorizationCode": ""
},
"paymentAuthorization": {
"status": "Approved",
"requestDate": "2023-12-06T21:28:15.389Z",
"paymentAuthorizationNumber": "",
"id": "{{transactionId}}",
"effectiveDate": "2023-12-06T21:28:15.389Z",
"chargentOrderId": "{{orderId}}",
"amount": 500.0
}
}
accountId, paymentGatewayId
Request
JSON Example
{
"accountId": "{{accountId}}",
"amount": 600.00,
"comments": "Authorization for $600.00",
"paymentGatewayId": "{{gatewayId}}",
"paymentMethod": {
"address": { // optional
"city": "San Francisco",
"companyName": "AppFrontier",
"country": "USA",
"postalcode": "94105",
"state": "California",
"street": "415 Mission Street"
},
"cardPaymentMethod": {
"cardHolderFirstName": "Chargent",
"cardHolderLastName": "Authorization Test",
"cardNumber": "{{cardNumber}}",
"cardType": "{{cardType}}",
"cvv": "{{cvv}}",
"expiryMonth": "{{expiryMonth}}",
"expiryYear": "{{expiryYear}}"
}
},
"email": "{{$randomEmail}}", // optional
"phone": "{{$randomPhoneNumber}}" // optional
}
Response
JSON Example
{
"paymentMethod": {
"tokens": [
{
"token": "{{token}}",
"id": "{{tokenId}}",
"gatewayId": "{{gatewayId}}"
}
],
"status": "Created",
"id": "{{paymentMethodId}}",
"accountId": "{{accountId}}"
},
"logs": [
{
"interactionStatus": "APPROVED",
"id": "{{logId}}",
"gatewayResultCode": "200",
"gatewayId": "{{gatewayId}}",
"createdDate": "2023-12-07T01:38:28.000Z"
}
],
"gatewayResponse": {
"gatewayToken": "{{token}}",
"gatewayResultCodeDescription": "",
"gatewayResultCode": "200",
"gatewayMessage": "",
"gatewayDate": "2023-12-07T01:38:28.294Z",
"gatewayAuthorizationCode": ""
},
"paymentAuthorization": {
"status": "Approved",
"requestDate": "2023-12-07T01:38:28.294Z",
"paymentAuthorizationNumber": "",
"id": "{{transactionId}}",
"effectiveDate": "2023-12-07T01:38:28.294Z",
"chargentOrderId": "{{orderId}}",
"amount": 600.0,
"accountId": "{{accountId}}"
}
}
accountId, paymentMethodId, paymentGatewayId
Request
JSON Example
{
"accountId": "{{accountId}}",
"amount": 700.00,
"comments": "Authorization for $700.00.",
"paymentMethod": {
"id": "{{paymentMethodId}}"
},
"paymentGatewayId": "{{gatewayId}}"
}
Response
JSON Example
{
"paymentMethod": {
"tokens": [
{
"token": "{{token}}",
"id": "{{tokenId}}",
"gatewayId": "{{gatewayId}}"
}
],
"status": "Applied",
"id": "{{paymentMethodId}}",
"accountId": "{{accountId}}"
},
"logs": [
{
"interactionStatus": "APPROVED",
"id": "{{logId}}",
"gatewayResultCode": "200",
"gatewayId": "{{gatewayId}}",
"createdDate": "2023-12-07T01:33:08.000Z"
}
],
"gatewayResponse": {
"gatewayToken": "{{token}}",
"gatewayResultCodeDescription": "",
"gatewayResultCode": "200",
"gatewayMessage": "",
"gatewayDate": "2023-12-07T01:33:09.160Z",
"gatewayAuthorizationCode": ""
},
"paymentAuthorization": {
"status": "Approved",
"requestDate": "2023-12-07T01:33:09.160Z",
"paymentAuthorizationNumber": "",
"id": "{{transactionId}}",
"effectiveDate": "2023-12-07T01:33:09.160Z",
"chargentOrderId": "{{orderId}}",
"amount": 700.0,
"accountId": "{{accountId}}"
}
}
JSForce Example
Node.js Example
function createAuthorization(conn, chargentOrderId, paymentMethodId, gatewayId) {
const relativeUrl = "/services/apexrest/ChargentBase/payments/authorizations"
var authorization = {
amount: "400.00",
chargentOrderId: chargentOrderId,
paymentMethod: {
"id": paymentMethodId
},
paymentGatewayId: gatewayId
}
return new Promise((resolve, reject) => {
conn.request({
method: 'POST',
url: relativeUrl,
body: JSON.stringify(authorization),
headers: { 'Content-Type': 'application/json' }
}, function(error, result) {
if (error) {
reject(error)
} else {
resolve(result)
}
})
})
}
module.exports = createAuthorization
Learn More
Learn more about Payment Authorizations.