3 base_url
=https
://api.entropay.com
/api
/v2
4 curlopts
=(-sS -H "Content-Type: application/json" -H "Accept-Encoding: gzip, deflate" --compressed -H "User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.114 Safari/537.36 Vivaldi/1.9.818.50")
13 while getopts "hu:p:NXClm" OPT
38 echo "Usage: entropay -u USER -p PASS [-N] [-X] [-C] [-m]
41 -X show expiration date
43 -l show transaction activity (log)
58 curl
"${curlopts[@]}" $base_url/authentication
/jwt \
59 -d "{\"username\":\"$user\",\"password\":\"$pass\",\"referrerId\":null,\"referrerType\":null}"
68 curlopts
+=(-H "Authorization: Bearer $token")
72 jq
-r "$1" <<<"$content"
78 tsStart
=`printf '%(%s)T' 0`
79 datetimeformat
='%(%FT%T.000Z)T'
80 dayStart
=`printf "$datetimeformat" $tsStart`
81 dayEnd
=`printf "$datetimeformat" $tsEnd`
83 curl
"${curlopts[@]}" -X POST
"$base_url/account/transaction_activity?start=0&max=99" -d "{\"dayStart\":\"$dayStart\",\"dayEnd\":\"$dayEnd\"}" |\
87 "TYPE " + .transactionType,
89 (.additionalInfo[] | select(.key=="MERCHANT_NAME" or .key=="CARD_FRIENDLY_NAME") | .key + " " + .value),
91 (.movements[] | ("PARTICIPANT " + .amount + " " + .participant.type + " " + .participant.name))
93 ("AMOUNT " + .amount + " " + .charge?)
97 while read -r key data
113 move
[$CARD_FRIENDLY_NAME]=$data
116 echo "$TYPE $STATE -- ${DATE:0:10} ${DATE:11:8}"
117 if [ -n "$MERCHANT_NAME" ]
119 echo " Merchant: $MERCHANT_NAME"
121 for ptcp
in "${!move[@]}"
124 amount
=${money//[!0-9.-]/}
125 currency
=${money//[0-9.-]/}
126 LANG
=C
printf " %-4s %+10.2f %s\n" "$currency" "$amount" "$ptcp"
135 curl
"${curlopts[@]}" "$base_url/cards/virtual/search?start=0&max=99&availableBalance=true" -d '{"deleted":false}'
139 n_cards
=`JQ '.entries | length'`
141 while [ $n -lt $n_cards ]
143 cardName
=`JQ ".entries[$n].displayName"`
144 balanceActual
=`JQ ".entries[$n].actualBalance"`
145 balanceAvailable
=`JQ ".entries[$n].availableBalance"`
146 [ $showCardNumber ] && cardNumber
=`JQ ".entries[$n].cardNumber"` || cardNumber
=''
147 holder
=`JQ ".entries[$n].nameOnCard"`
148 [ $showExpirationDate ] && expire
=`JQ ".entries[$n].expiryMonth"`/`JQ ".entries[$n].expiryYear"` || expire
=''
151 cvv
=`curl "${curlopts[@]}" "$base_url/cards/virtual/$(JQ ".entries[$n].id")/cvv" | jq -r .cvv`
156 if [ ! $machineParseable ]
158 balanceActual
=${balanceActual/USD/$}
159 balanceAvailable
=${balanceAvailable/USD/$}
162 if [ "$balanceActual" = "$balanceAvailable" ]
164 balance
="$balanceActual"
166 balance
="$balanceActual ($balanceAvailable)"
169 if [ $machineParseable ]
171 echo "$cardNumber;$balanceActual;$balanceAvailable;$expire;$cvv;$holder;$cardName"
173 if [ $showCardNumber$showExpirationDate$showCvvCode ]
177 echo " ${cardNumber:+${cardNumber:0:4}-${cardNumber:4:4}-${cardNumber:8:4}-${cardNumber:12} }${expire:+[$expire] }${cvv:+CVV:$cvv}"
180 echo "$cardName $balance"