PNT APIs
Private Network Transactions (PNT) API Methods
Private Network Transactions (PNT) are a way for a partner to route a customer transaction to Green Dot in a way that bypasses the need to transmit this transaction over the typical Mastercard or Visa network rails.
Most of the checks and flows that are applicable to a regular transaction also apply to PNT transactions. These include balance check before authorizing a transaction, ability to reverse a transaction, instant debiting of funds from account, etc.
Green Dot currently supports these transactions for closed-loop accounts where funds can be added from any external bank account or debit card but can only be spent within the partner's ecosystem.
Pre-authorize a Closed Loop Transaction
This API serves as the authorization for a private network (closed loop) transaction.
Syntax
POST /programs/{programCode}/payments/authorize
Headers
Field | Type | Description |
---|---|---|
programCode | string (path) | The program code assigned to the partner that the customer will belong |
X-GD-RequestId | string (header) | Unique ID in GUID format used for identify the request |
Request
Request Body
Payload containing purchase details including merchant, POS and encrypted PAN information.
{
"messageType": "financialRequest (1200)",
"paymentInstumentIdentifier": "string",
"encryptedCardData": {
"version": "string",
"ephemeralPublicKey": "string",
"publicKeyHash": "string",
"data": "string"
},
"transactionIdentifier": "string",
"systemTraceNumber": "string",
"transactionCode": "purchase (00)",
"accountType": "current",
"posEntryMode": {
"cardInputCapability": "unknown",
"cardholderAuthenticationCapability": "noAuth",
"cardCaptureCapability": "none",
"operatingEnvironment": "noTerminal",
"cardholderPresence": "present",
"cardPresence": "notPresent",
"cardDataInputMode": "unspecified",
"cardholderAuthenticationMethod": "notAuth",
"cardholderAuthenticationEntity": "notAuth",
"cardDataOutputCapability": "unknown",
"terminalOutputCapability": "unknown",
"pinCaptureCapability": "noPin"
},
"transactionAmount": 0,
"transactionCurrency": "USD",
"transactionFeeAmount": 0,
"transmissionDateTime": "string",
"localDateTime": "string",
"settlementDateTime": "string",
"acquiringCountryCode": "840",
"cardSequenceNumber": "000",
"functionCode": "originalAuthAccurateAmt (100)",
"messageReasonCode": 0,
"merchant": {
"merchantId": "string",
"merchantName": "string",
"merchantIndustryCode": "string",
"merchantIndustryCategory": "string",
"merchantIndustryDescription": "string",
"addressLine1": "string",
"city": "string",
"postalCode": "string",
"stateProvReg": "string",
"country": "string"
},
"originalAmount": 0,
"acquirerId": "string",
"retrievalReferenceNumber": "string",
"terminalIdentifier": "string",
"originalTransactionForReveral": {
"messageType": "financialRequest (1200)",
"systemTraceNumber": "string",
"localDateTime": "string",
"acquirerId": "string"
},
"eCommerceIndicator": "notECommerceTx"
}
Request Parameters
Response
Response Body
{
"messageType": "financialRequestResponse (1210)",
"paymentInstrumentIdentifier": "string",
"transactionIdentifier": "string",
"systemTraceNumber": "string",
"retrievalReferenceNumber": "string",
"transactionAmount": 0,
"transactionCurrency": "string",
"approvalCode": "string",
"actionCode": "string",
"responseDetails": {
"code": 0,
"subCode": 0,
"description": "string",
"url": "string"
},
"additionalAmount": 0
}
Response Parameters
Field | Type | Required | Description |
---|---|---|---|
messageType | string | No | Response of the message type |
paymentInstrumentIdentifier | string | Yes | Response of the GUID returned by Green Dot representing the Payment Instrument |
transactionIdentifier | string | Yes | Response of the 15 character alphanumber identifier |
systemTraceNumber | string | Yes | Sequential Value from Terminal from 000001 - 999999 |
retrievalReferenceNumber | string | No | Response of the referral that must provide the RRN of the original transaction. 12 digit alphanumeric |
transactionAmount | number($double) | No | Response of the transaction amount in local currency. |
transactionCurrency | string | Yes | Response for transaction currency.
|
approvalCode | string | No | Contains the approval code if the tx is approved |
actionCode | string | Yes | Fixed length response code, ex. 000 - Approved, 002 - Partial Approve, 116 - Insufficient Funds |
responseDetails | container | No | Contains response details |
code | integer($int32) | No | Response code |
subCode | integer($int32) | No | Response sub code |
description | string | No | Response description |
url | string | No | Response url |
additionalAmount | number | No | Contains cash back, balance amounts, etc |
Response Codes
Code | Description |
---|---|
201 | Customer profile created successfully |
400 | When some customer parameter is missing or wrong, see response code reference (SubCode Schema) for all possible response subCodes and descriptions. |
401 | Unauthorized access, wrong token access or expired |
403 | Forbidden |
500 | Server Error |
503 | Service unavailable, try again later or contact IT support |
Get Status of a Closed Loop Transaction
This API gets the status of a private network (closed loop) transaction.
Syntax
GET /programs/{programCode}/payments/{paymentInstrumentIdentifier}/status/{retrievalReferenceNumber}
Headers
Field | Type | Description |
---|---|---|
X-GD-RequestId | string (header) | Unique ID in GUID format used for identify the request |
programCode | string (path) | The program code assigned to the partner that the customer will belong |
paymentInstrumentIdentifier | string (path) | PaymentInstrumentIdentifier of the payment device used for the transaction |
retrievalReferenceNumber | string (path) | retrievalReferenceNumber of the payment authorized in /payments/authorize API |
Response
Response Body
{
"messageType": "financialRequestResponse (1210)",
"paymentInstrumentIdentifier": "string",
"transactionIdentifier": "string",
"systemTraceNumber": "string",
"retrievalReferenceNumber": "string",
"transactionAmount": 0,
"transactionCurrency": "string",
"approvalCode": "string",
"actionCode": "string",
"responseDetails": {
"code": 0,
"subCode": 0,
"description": "string",
"url": "string"
},
"additionalAmount": 0
}
Response Parameters
Field | Type | Required | Description |
---|---|---|---|
messageType | string | No | Response of the message type |
paymentInstrumentIdentifier | string | Yes | Response of the GUID returned by Green Dot representing the Payment Instrument |
transactionIdentifier | string | Yes | Response of the 15 character alphanumber identifier |
systemTraceNumber | string | Yes | Sequential Value from Terminal from 000001 - 999999 |
retrievalReferenceNumber | string | No | Response of the referral that must provide the RRN of the original transaction. 12 digit alphanumeric |
transactionAmount | number($double) | No | Response of the transaction amount in local currency. |
transactionCurrency | string | Yes | Response for transaction currency.
|
approvalCode | string | No | Contains the approval code if the tx is approved |
actionCode | string | Yes | Fixed length response code, ex. 000 - Approved, 002 - Partial Approve, 116 - Insufficient Funds |
responseDetails | No | Contains response details | |
code | integer($int32) | No | Response code |
subCode | integer($int32) | No | Response sub code |
description | string | No | Response description |
url | string | No | Response url |
additionalAmount | number | No | Contains cash back, balance amounts, etc |
Response Codes
Code | Description |
---|---|
200 | Payment information returned successfully |
400 | When some payment's required parameter is missing or wrong, see response code reference (SubCode Schema) for all possible response subCodes and descriptions. |
401 | Unauthorized access, wrong token access or expired |
403 | Forbidden |
500 | Server Error |
503 | Service unavailable, try again later or contact IT support |
Updated about 24 hours ago