PNT API Methods

Private Network Transactions (PNT) API Methods

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

FieldTypeEnum ValuesRequiredDescription
messageTypestringNoRequest Message Type
paymentInstumentIdentifierstringNoGUID returned by Green Dot representing the Payment Instrument
encryptedCardDatacontainerNoContainer for encrypted data
versionstringNoVersion of encryption algorithm used
ephemeralPublicKeystringNoEphemeral public key
publicKeyHashstringNoPublic key hash
datastringNoEncrypted data payload
transactionIdentifierstringNo15 character alphanumber identifier
systemTraceNumberstringYesSequential Value from Terminal from 000001 - 999999
transactionCodestring (enum)[ 0 - purchase , 1 - atmWithdrawal, 2 - debitAdjustment, 20 - refund, 22 - creditAdustment ]NoTransaction code - debits goods and services
accountTypestring (enum)[ checking, savings ]NoType of account

Default value: checking
posEntryModecontainerNoPOS Data
cardInputCapabilitystring (enum)[0 - unknown, 1 - manual, 2 - magStripe, 3 - barCode, 4 - ocr, 5 - contactChip, 6 - keyEntry, 7 - contactlessEmv, 8 - contactlessMagStripe ]NoContains a code indicating the primary means of getting the card information into the terminal.
cardholderAuthenticationCapabilitystring
(enum)
[ 0 - noAuth, 1 - pin, 2 - eSign, 3 - biometrics, 4 - biographic, 5 - manualSign, 6 - otherManual, 10 - mPosPin ]NoContains a code indicating the primary means of verifying the cardholder at this terminal.
cardCaptureCapabilitystring (enum)[ 0 - none, 1 - capture ]NoContains a code indicating whether the terminal has the ability to capture a card.
operatingEnvironmentstring (enum)[ 0 - noTerminal, 1 - onCardAcceptorAttended, 2 - onCardAcceptorUnAttended, 3 - offCardAcceptorAttended, 4 - offCardAcceptorUnAttended, 5 - onCardholderUnAttended, 6 - offCardholderUnAttended, Z - transit ]NoContains a code indicating whether the terminal is attended by the card acceptor and its location.
cardholderPresencestring (enum)[0 - present, 1 - notPresentUnspecified, 2 - notPresentMailOrder, 3 - notPresentTelephone, 4 - notPresentStandingAuth, 5 - electronicOrder, S - installmentPayment ]NoContains a code indicating whether the cardholder is present at the point of service and if not, why not.
cardPresencestring (enum)[ 0 - notPresent, 1 - present ]NoContains a code indicating whether the card is present at the point of service.
cardDataInputModestring (enum)[0 - unspecified, 1 - manual, 2 - magStripe, 3 - barCode, 4 - ocr, 5 - contactChip, 6 - keyEntered, 7 - completeMagStripe, 8 - eCommerce, 9 - contactlessEmv, A - contactlessMagStripe, B - voicePan ]NoContains a code indicating the method used to input the information from the card to the terminal.
cardholderAuthenticationMethodstring (enum)[0 - notAuth, 1 - pin, 2 - eSign, 3 - biometrics, 4 - biographic, 5 - manualSign, 6 - otherManual (ex. Driver's License), 8 - eCommerceMobile ]NoContains a code indicating the method for verifying the cardholder identity.
cardholderAuthenticationEntitystring (enum)[0 - notAuth, 1 - chip, 2 - cad, 3 - authorizingAgent, 4 - merchant, 5 - other ]NoContains a code indicating the entity verifying the cardholder identity.
cardDataOutputCapabilitystring (enum)[ 0 -unknown, 1 - none, 2 - magStripeWrite, 3 - chip ]NoContains a code indicating the ability of the terminal to update the card.
terminalOutputCapabilitystring (enum)[0 unknown, 1 - none, 2 - print, 3 - display, 4 - printAndDisplay ]NoContains a code indicating the ability of the terminal to print or display messages.
pinCaptureCapabilitystring (enum)[ 0 -noPin, 1 - pinCapabilityUnknown, 3 - threeChar, 4 - fourChar, 5 - fiveChar, 6 - sixChar, 7 - sevenChar, 8 - eightChar, 9 - nineChar, A - tenChar, B - elevenChar, C - twelveChar, S - verify ]NoContains a code indicating the length of PIN that the terminal is capable of capturing.
transactionAmountnumber ($double)NoTransaction amount in local currency.
transactionCurrencystringYesUse USD for all transactions.

Default value: USD
transmissionDateTimestringYesDateTime at which the transaction was initiated (in GMT). Format: YYMMDDhhmmss.
localDateTimestringYesDateTime at which customer initiated transaction in timezone of customer. Format: YYMMDDhhmmss.
settlementDateTimestringYesSettlement dateTime that partner adheres to. Format: YYMMDDhhmmss.
acquiringCountryCodestringNoAcquiring Country code.

Default value: 840
cardSequenceNumberstringNo3-digit sequence number defaulted to 000.

Default value: 000
functionCodestring (enum)NoIndicating the specific purpose of the message like Recurring Payment, Financial Message, Full Reversal, Partial Reversal
messageReasonCodenumberNo4-digit number
merchantcontainerNoCard acceptor
merchantIdstringNo15 character alphanumeric string
merchantNamestringNoName of the merchant
merchantIndustryCodestring (enum)Category of Merchant like
5812: Eating Places and Restaurants
5462: Bakers
5499: Misc food store
5813: Drinking Places
5814: Fast food Restraurants
NoCard acceptor business code
merchantIndustryCategorystringNoMCC value examples 5812: Eating Places and Restaurants 5462: Bakers 5499: Misc food store 5813: Drinking Places 5814: Fast food Restraurants
merchantIndustryDescriptionstringNoDescription of the card acceptor industry
addressLine1stringNoAddress 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 ().
citystringNoCity 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 ().
postalCodestringNoPostal code of the card acceptor as know to the cardholder
This is in fixed format as shown below:
Postal code (ANS 10)
stateProvRegstringNo
countrystringNoCountry name of the card acceptor as known to the cardholder
originalAmountnumberNoMandatory for reversals
acquirerIdstringYesCode assigned by the authorizing institution
retrievalReferenceNumberstringYesReferal must provide the RRN of the original transaction. 12 digit alphanumeric
terminalIdentifierstringYes8 character alphanumeric code to uniquely identify a terminal
originalTransactionForReferralcontainerNoOriginal transaction
messageTypestringNoType of message sent
systemTraceNumberstringYesSequential Value from Terminal from 000001 - 999999
localDateTimestringYesDateTime at which customer initiated transaction in timezone of customer. Format: YYMMDDhhmmss.
acquirerIdstringYesCode assigned by the authorizing institution
eCommerceIndicatorstring (enum)[ 0 - Not an electronic commerce transaction
1 - Single mail/telephone order transaction
2 - Recurring mail/telephone order transaction
3 - Mail/telephone order installment payment
4 - Unknown mail/telephone order transaction
5 - Secure electronic transaction with cardholder certificate
6 - Secure electronic transaction without cardholder certificate
7 - Channel-encrypted electronic commerce transaction
8 - Non-secure electronic commerce transaction
9 - Non-authenticated security transaction that does not comply with secure electronic
transaction and the merchant supports secure electronic transaction
A - Electronic transaction with digital signature]
NoA 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

FieldTypeRequiredDescription
messageTypestringNoResponse of the message type
paymentInstrumentIdentifierstringYesResponse of the GUID returned by Green Dot representing the Payment Instrument
transactionIdentifierstringYesResponse of the 15 character alphanumber identifier
systemTraceNumberstringYesSequential Value from Terminal from 000001 - 999999
retrievalReferenceNumberstringNoResponse of the referral that must provide the RRN of the original transaction. 12 digit alphanumeric
transactionAmountnumber($double)NoResponse of the transaction amount in local currency.
transactionCurrencystringYesResponse for transaction currency.

Default value: USD
approvalCodestringNoContains the approval code if the tx is approved
actionCodestringYesFixed length response code, ex. 000 - Approved, 002 - Partial Approve, 116 - Insufficient Funds
responseDetailscontainerNoContains response details
codeinteger($int32)NoResponse code
subCodeinteger($int32)NoResponse sub code
descriptionstringNoResponse description
urlstringNoResponse url
additionalAmountnumberNoContains 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 serves as the authorization for 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

FieldTypeRequiredDescription
messageTypestringNoResponse of the message type
paymentInstrumentIdentifierstringYesResponse of the GUID returned by Green Dot representing the Payment Instrument
transactionIdentifierstringYesResponse of the 15 character alphanumber identifier
systemTraceNumberstringYesSequential Value from Terminal from 000001 - 999999
retrievalReferenceNumberstringNoResponse of the referral that must provide the RRN of the original transaction. 12 digit alphanumeric
transactionAmountnumber($double)NoResponse of the transaction amount in local currency.
transactionCurrencystringYesResponse for transaction currency.

Default value: USD
approvalCodestringNoContains the approval code if the tx is approved
actionCodestringYesFixed length response code, ex. 000 - Approved, 002 - Partial Approve, 116 - Insufficient Funds
responseDetailsNoContains response details
codeinteger($int32)NoResponse code
subCodeinteger($int32)NoResponse sub code
descriptionstringNoResponse description
urlstringNoResponse url
additionalAmountnumberNoContains 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