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

FieldTypeDescription
programCodestring (path)The program code assigned to the partner that the customer will belong
X-GD-RequestIdstring (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

Field

Type

Enum Values

Required

Description

messageType

string

No

Request Message Type

paymentInstumentIdentifier

string

No

GUID returned by Green Dot representing the Payment Instrument

encryptedCardData

container

No

Container for encrypted data

version

string

No

Version of encryption algorithm used

ephemeralPublicKey

string

No

Ephemeral public key

publicKeyHash

string

No

Public key hash

data

string

No

Encrypted data payload

transactionIdentifier

string

No

15 character alphanumber identifier

systemTraceNumber

string

Yes

Sequential Value from Terminal from 000001 - 999999

transactionCode

string (enum)

Private Network Transactions (PNT) API Methods

Private Network Transactions (PNT) are a w

No

Transaction code - debits goods and services

accountType

string (enum)

Private Network Tra

No

Type of account

  • *Default value:** checking

posEntryMode

container

No

POS Data

cardInputCapability

string (enum)

Private Network Transactions (PNT) API Methods

Private Network Transactions (PNT) are a way for a partner to route a customer transaction

No

Contains a code indicating the primary means of getting the card information into the terminal.

cardholderAuthenticationCapability

string
(enum)

Private Network Transactions (PNT) API Methods

Private Network Transactions (PNT) are a way for a partner to r

No

Contains a code indicating the primary means of verifying the cardholder at this terminal.

cardCaptureCapability

string (enum)

Private Network Transac

No

Contains a code indicating whether the terminal has the ability to capture a card.

operatingEnvironment

string (enum)

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 tra

No

Contains a code indicating whether the terminal is attended by the card acceptor and its location.

cardholderPresence

string (enum)

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 t

No

Contains a code indicating whether the cardholder is present at the point of service and if not, why not.

cardPresence

string (enum)

Private Network Transactions

No

Contains a code indicating whether the card is present at the point of service.

cardDataInputMode

string (enum)

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

No

Contains a code indicating the method used to input the information from the card to the terminal.

cardholderAuthenticationMethod

string (enum)

Private Network Transactions (PNT) API Methods

Private Network Transactions (PNT) are a way for a partner to route a customer transaction to

No

Contains a code indicating the method for verifying the cardholder identity.

cardholderAuthenticationEntity

string (enum)

Private Network Transactions (PNT) API Methods

Private Network Transactions (

No

Contains a code indicating the entity verifying the cardholder identity.

cardDataOutputCapability

string (enum)

Private Network Transactions (PNT) API Methods

Priv

No

Contains a code indicating the ability of the terminal to update the card.

terminalOutputCapability

string (enum)

Private Network Transactions (PNT) API Methods

Private Network T

No

Contains a code indicating the ability of the terminal to print or display messages.

pinCaptureCapability

string (enum)

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 transm

No

Contains a code indicating the length of PIN that the terminal is capable of capturing.

transactionAmount

number ($double)

No

Transaction amount in local currency.

transactionCurrency

string

Yes

Use USD for all transactions.

  • *Default value:** USD

transmissionDateTime

string

Yes

DateTime at which the transaction was initiated (in GMT). Format: YYMMDDhhmmss.

localDateTime

string

Yes

DateTime at which customer initiated transaction in timezone of customer. Format: YYMMDDhhmmss.

settlementDateTime

string

Yes

Settlement dateTime that partner adheres to. Format: YYMMDDhhmmss.

acquiringCountryCode

string

No

Acquiring Country code.

Default value: 840

cardSequenceNumber

string

No

3-digit sequence number defaulted to 000.

  • *Default value:** 000

functionCode

string (enum)

No

Indicating the specific purpose of the message like Recurring Payment, Financial Message, Full Reversal, Partial Reversal

messageReasonCode

number

No

4-digit number

merchant

container

No

Card acceptor

merchantId

string

No

15 character alphanumeric string

merchantName

string

No

Name of the merchant

merchantIndustryCode

string (enum)

Category of Merchant like
5812: Eating Places and Restaurants
5462: Bakers
5499: Misc food store
5813: Drinking Places
5814: Fast food Restraurants

No

Card acceptor business code

merchantIndustryCategory

string

No

MCC value examples 5812: Eating Places and Restaurants 5462: Bakers 5499: Misc food store 5813: Drinking Places 5814: Fast food Restraurants

merchantIndustryDescription

string

No

Description of the card acceptor industry

addressLine1

string

No

Address line 1 of the card acceptor
as known to the cardholder.

Variable length, separated from the remaining data elements and from each other by a backslash ().

city

string

No

City name of the card acceptor as known to the cardholder.

Variable length, separated from the remaining data elements and from each other by a backslash ().

postalCode

string

No

Postal code of the card acceptor as know to the cardholder
This is in fixed format as shown below:
Postal code (ANS 10)

stateProvReg

string

No

country

string

No

Country name of the card acceptor as known to the cardholder

originalAmount

number

No

Mandatory for reversals

acquirerId

string

Yes

Code assigned by the authorizing institution

retrievalReferenceNumber

string

Yes

Referal must provide the RRN of the original transaction. 12 digit alphanumeric

terminalIdentifier

string

Yes

8 character alphanumeric code to uniquely identify a terminal

originalTransactionForReferral

container

No

Original transaction

messageType

string

No

Type of message sent

systemTraceNumber

string

Yes

Sequential Value from Terminal from 000001 - 999999

localDateTime

string

Yes

DateTime at which customer initiated transaction in timezone of customer. Format: YYMMDDhhmmss.

acquirerId

string

Yes

Code assigned by the authorizing institution

eCommerceIndicator

string (enum)

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

No

A one-digit field that contains the e-commerce indicator.

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.

  • *Default value:** USD

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

CodeDescription
201Customer profile created successfully
400When some customer parameter is missing or wrong, see response code reference (SubCode Schema) for all possible response subCodes and descriptions.
401Unauthorized access, wrong token access or expired
403Forbidden
500Server Error
503Service 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

FieldTypeDescription
X-GD-RequestIdstring (header)Unique ID in GUID format used for identify the request
programCodestring (path)The program code assigned to the partner that the customer will belong
paymentInstrumentIdentifierstring (path)PaymentInstrumentIdentifier of the payment device used for the transaction
retrievalReferenceNumberstring (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.

  • *Default value:** USD

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

CodeDescription
200Payment information returned successfully
400When some payment's required parameter is missing or wrong, see response code reference (SubCode Schema) for all possible response subCodes and descriptions.
401Unauthorized access, wrong token access or expired
403Forbidden
500Server Error
503Service unavailable, try again later or contact IT support