Receiver functions
Receiver functions, available in the deliver and export elements, are invoked using the template syntax and operate on the contents contained within the {{#name}}
and {{/name}}
container tags. The list of available functions include:
and ^ (conditional rendering)
The section operator #
and the inverted section operator ^
can be used in conjunction to render a value if it is present and specify an alternative if the value is empty, false, or not present.
This can be useful for specifying a default like null
in cases where an empty value would otherwise render a blank field or an empty string.
//template
{
"order_id": 12309,
"card": "{{ credit_card_number }}",
"cvv": {{#credit_card_verification_value}}"{{credit_card_verification_value}}"{{/credit_card_verification_value}}{{^credit_card_verification_value}}null{{/credit_card_verification_value}}
}
//if credit_card_verification_value is non-empty, the output will be
{
"order_id": 12309,
"card": "4111111111111111",
"cvv": "123"
}
//if credit_card_verification_value is blank, the output will be:
{
"order_id": 12309,
"card": "4111111111111111",
"cvv": null
}
//template
{
"order_id": 12309,
"card": "{{ credit_card_number }}",
"cvv": {{#credit_card_verification_value}}"{{credit_card_verification_value}}"{{/credit_card_verification_value}}{{^credit_card_verification_value}}null{{/credit_card_verification_value}}
}
//if credit_card_verification_value is non-empty, the output will be:
<order_id>12309</order_id>
<card>4111111111111111</card>
<cvv>123</cvv>
//If credit_card_verification_value is blank, the output will be:
<order_id>12309</order_id>
<card>4111111111111111</card>
<cvv>null</cvv>
aes
Encrypt contents using the Advanced Encryption Standard (AES) symmetric encryption algorithm.
{{#aes}}key-length in bits,mode,initialization vector as unsigned byte array,encryption key{{/aes}}
The encryption mode can be one of cbc
, ccm
, cfb
, ctr
, ecb
, gcm
, ofb
, xts
.
Because the raw output is in binary form you will often use the aes function embedded within another encoding function, such as base64
, to produce web-safe output.
{{#base64}}{{#aes}}192,CBC,[23, 12, 1, 105, 1, 1, 11, 18, 9, 39, 191, 125, 20, 132, 2, 16],mysecretkeyXXXXXXXXXXXXX,{{ credit_card_number }}{{/aes}}{{/base64}}
EXGKeEUL3EyxlMNJcjNK3M4uONJ4VhRwY7Yg/hP4phI=
alpha3
Takes either the alpha2 country code or the full country string and returns the alpha3 country code.
`{{#alpha3}}{{credit_card_country}}{{/alpha3}}`
`USA`
apple_pay?
If the payment method is an Apple Pay payment method, evaluates to true
. You can use this to conditionally evaluate a section.
{{#apple_pay?}}I'm an Apple Pay payment method{{/apple_pay?}}
I'm an Apple Pay payment method
google_pay?
If the payment method is a Google Pay payment method, evaluates to true
. You can use this to conditionally evaluate a section.
{{#google_pay?}}I'm a Google Pay payment method{{/google_pay?}}
I'm a Google Pay payment method
bank_account?
If the payment method is a bank account payment method, evaluates to true
. You can use this to conditionally evaluate a section.
{{#bank_account?}}I'm a bank account payment method{{/bank_account?}}
I'm a bank acount payment method
base64
Base 64 encode contents.
A common use of base 64 encoding is in HTTP Basic authentication, which base 64 encodes user:password
credentials into the Authorization
header.
{{#base64}}contents to encode{{/base64}}
Authorization: Basic {{#base64}}{{ user }}:{{ password }}{{/base64}}
Authorization: Basic dXNlcjpQYSQkd2VyZA==
binary_security_token
For receivers that require an X.509
certificate (for example, Mastercard), binary_security_token
will insert the Base64-encoded certificate.
{{#binary_security_token}}{{#certificate}}your certificate token{{/certificate}}{{/binary_security_token}}
{{#binary_security_token}}{{#certificate}}M6A4yufjd04Ey4u6cCIzxdoUMz5{{/certificate}}{{/binary_security_token}}
bytes_hex
Takes a hex string and turns it into raw bytes. This function is rarely useful by itself, but can be helpful when paired with functions such as aes
.
{{#bytes_hex}}hexadecimal string to decode{{/bytes_hex}}
{{#bytes_hex}}61626378797a{{/bytes_hex}}
abcxyz
card_type_mapping
Output a custom card brand. You can always retrieve the type, or brand, of the payment method using the credit_card_type
variable which outputs one of the following values. To output a value different than the default, use the card_type_mapping
to translate it to the format you need.
{{#card_type_mapping}}brand:output,brand:output{{/card_type_mapping}}
Any card types whose value is not mapped in the function body will have the default credit_card_type
value used. E.g., if Diners Club card type is not specified the default diners_club
would be output.
{{#card_type_mapping}}visa:Visa,master:MasterCard,american_express:American Express{{/card_type_mapping}}
Visa
certificate
For receivers that have SOAP security requirements and need an X.509
certificate to generate a WS-Security Binary Security Token, certificate
will insert the PEM-encoded certificate from the certificate securely stored at Spreedly.
{{#certificate}}your certificate token{{/certificate}}
Requires an encryption certificate to be stored using the certificates API. Used in conjunction with binary_security_token
.
{{#certificate}}M6A4yufjd04Ey4u6cCIzxdoUMz5{{/certificate}}
-----BEGIN CERTIFICATE-----
MIIDMDCCAhgCCQCJjV5tUn0DNTANBgkqhkiG9w0BAQsFADBaMTMwMQYDVQQDDCpN
eUFwcCBYTUwgU2lnbmF0dXJlIFByb2R1Y3Rpb24gQ2VydGlmaWNhdGUxIzAhBgkq
hkiG9w0BCQEWFHNlY3VyaXR5QHlvdXJvcmcuY29tMB4XDTE5MDQwMjE4MjIzMFoX
DTIwMDQwMTE4MjIzMFowWjEzMDEGA1UEAwwqTXlBcHAgWE1MIFNpZ25hdHVyZSBQ
cm9kdWN0aW9uIENlcnRpZmljYXRlMSMwIQYJKoZIhvcNAQkBFhRzZWN1cml0eUB5
b3Vyb3JnLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMldbCSv
WjRO+jOB9pObeRzVU3QqpsRTH9Rw7n3LniuPbdbI98BvabGVzwWp+nCyRMu21aNk
CJfzUA8Ggubw4CIiSiM/isMXhdavtIrdnLrcVEY1mOMnMbP1rjiXsEhyDC/hmYc4
V9JyfMQoiSs8n8aAXZQE65TCO9BnIKpr+V4ew/gkeucpyLlPCd2DEZ+24aI3Lnli
Q/ABIdNSlQX44n56NX9lui4+nrsb8ImqWjE2YqB3vLh+IHjlcOViLiN7i7EeUTbi
0/6vxbdEiMLnr36eqHQpAAuvQCL7bTxH6hnKjZ/hdHy0Z59gHfmEbIqbjmHn1gT5
sPkhYpMb5JYiq38CAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAGNjf8tNsQ/mvQNk4
3b4knwlCIT6elhiofeKXoV9224C5ZcM1bw0hRfeEIXG5fs8ZEwlLGAS+bNgCctmW
NcuqxEreR4TiV07WT/18m1go+34IygGxlxgntLQOZQyX6mjVyZjgOjefweA8OFyG
s+xqgVuR9G7Zu8KFW0MaCj7QZBl1h4FfA3Hz25R1WC2qcbY04Db3EkLYPU4hBEzX
HXkAyW5LWRk4pzxew9CRQ+uHyumPyi2O6Yv9avI9QA5PkuRoH0xgQ87n3AXgQ08p
HDoiNxcDFhfL13lspowI40bsOWfGm2vvTrV42PvobHB2Hwb3a77mM2Z6bCvdN32R
jn30kQ==
-----END CERTIFICATE-----
credit_card?
If the payment method is a credit card payment method, evaluates to true
. You can use this to conditionally evaluate a section.
{{#credit_card?}}I'm a credit card payment method{{/credit_card?}}
I'm a credit card payment method
digest
Digests contents using the specified digest algorithm.
{{#digest}}digest-algorithm,contents to digest{{/digest}}
The digest algorithm can be one of sha512
or sha256
.
Because the raw output is in binary form you will often use the digest
function embedded within another encoding function, such as base64
, to produce web-safe output.
{{#base64}}{{#digest}}sha512,{{ credit_card_number }}{{/digest}}{{/base64}}
MkwVgWyhqy7FWHGIKn/jvUsUbD6BGaT...n6NvY=
format_date
Parse a date value to a specific string format.
{{#format_date}}format-specifier,date-field{{/format_date}}
The format specifier syntax is based on the posix date format. Common format syntax includes:
%Y
: 4-digit year. E.g., 2020%y
: 2-digit year. E.g., 20%m
: 2-digit month number (zero-padded). E.g., 04%-m
: month number (not padded). E.g., 4
{{#format_date}}%m%y,{{credit_card_expiration_date}}{{/format_date}}
0120
format_text
Parse text context to a specific format. Useful when right or left padding a value to a specific width, among other scenarios.
{{#format_text}}format-specifier,text to format{{/format_text}}
The format specifier is based on posix printf. Common format syntax includes:
%20.20s
: total length of 20, right justified w/ space fillers%-20.20s
: total length of 20, left justified w/ space fillers
"number": "{{#format_text}}%-20.20s,{{credit_card_number}}{{/format_text}}"
"number": "4111111111111111 "
gpg
For some SFTP endpoints (batch export), the receiver requires the uploaded file to be encrypted using GnuPG and their public key.
{{#gpg}}full pem,recipient identity,file template to encrypt{{/gpg}}
The gpg
function takes the public key in PEM form as the first argument, the target identity as the second (email address of the recipient), and the content to encrypt as the third. The third argument will be your entire templated export which can include other receiver functions are variables.
{{#gpg}}-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: IPWorks! OpenPGP v9.0
rsBNBFda3S0BCzCPTH1Td1PSUSMeaTDAagncwV18KrpuXSPXWjTgPy9SLHeoKQDt
lxWlIoisyxV1Ex2LQZnidINgNCFzMi26+SqYucm6OFv2bllr91tpk8I0+aeL/XBC
h5DUEbG9JAMyegMyzTz9PjRu4peXV/IUf2/uBJifZyv1bBaARCBXBaHvv+qfJbHx
88QNVo5J7KU8C7MD8hqLxwtqDjHgKtXHGbyscMzJn+ySTueemqhOBI3jst/z9uL2
OuSXeO0DudcLsmp6bVrh3SqpLKiZMbj2GsNcwVA/ikJiriaXOESv2RI/h1j5MjRs
sg9tyJYytuDsqz/rEOVDnqfP5/xpiTX223tjABEBAAHNJHNmaWxlMi1sYS10YXFj
LVBST0QgPG5hd2VzQHZpc2EuY29tPsLAdAQTAQIAHgUCV1oNLwMLAgIEFQoIAgUW
AQIDAAIeAQIXgAIbDwAKCRBPCXevH0QlBoxhB/4o7sG1TOZlxjv9fuK1/Bx9ZjPJ
6zCWGEAMV3li/jDmiNfJUaJOL5ZV8ffLRhgvS6bvKlpdMaRY8FXuJQThGe4T/BU4
HJIP8jPR+x4CHoUHNw1rOVitdkc9y/tWoF7aYAWqcqBBQwqjH9XbSC2XcYbULcl8
j8rVVTbXvJIdnx7u6v9OOeyc6XO7AupV7zjQHE6bdDPnmhyM9Yf+1OkDxuGNywsv
0WP8iB847/ZPmaENvOofIsrbncbztgZu1V2fOJM6JRp0EbctSxP44Mk1K8AKcmx2
MFqkPdKpeZh2bO269Td8fMy82gx6ltzMtms2NrRL3NOWj6suLke7s8K8++JC
=Zp6G
-----END PGP PUBLIC KEY BLOCK-----,recipient@example.com,{{#payment_methods}}{{credit_card_number}}{{/payment_methods}}{{/gpg}}
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1
hQEMA50hlo9S0ThAAQf+OF7KFqdmXbCnnJrZ7xWtI33mZ7a2jQcpOTavof8LbURm
nSl/HRa9T48ExxOYNBxfIXXUjHLk9FQIUU7nH/Gomz2gGVCFQ/8C1mn5Xbfo+WTF
370QShAiG7pJT9801L1/uIpSmMKjjlcwmS2V+WY4tEONCJeqE0yOMqqfc7Pvn0YG
-----END PGP MESSAGE-----
hex_bytes
Takes a byte string and turns it into a hex string.
{{#hex_bytes}}delimiter,byte string to encode{{/hex_bytes}}
{{#hex_bytes}}-,string to encode{{/hex_bytes}}
FE-4C-65-6A-0F-35-0F
hex_digest
Digests contents using the specified digest algorithm, printing out the hexadecimal encoding.
{{#hex_digest}}digest-algorithm,contents to digest{{/hex_digest}}
The digest algorithm can be one of sha512
or sha256
.
{{#hex_digest}}sha512,{{ credit_card_number }}{{/hex_digest}}
0e422979315a8b64fb9cbbafc6d2c3c0589ab8b58ede93e73b1acc5d027dffaf
hmac
Computes the HMAC of a given payload. The payload is returned as a hexadecimal string. The digest algorithm can be any of SHA1
, SHA256
, or SHA512
.
{{#hmac}}digest algorithm,secret key,payload whose digest is desired{{/hmac}}
{{#hmac}}SHA256,key,{{ credit_card_number }}{{/hmac}}
d7deb2f89396a762e0f485ff629bed80118728d1ef5d5744f870a99001a1437d
kount_khash
Generate a Kount KHash payment encoding for use with Kount fraud prevention service for credit cards.
{{#kount_khash}}{{ credit_card_number }}{{/kount_khash}}
411111WMS5YA6FUZA1KC
last
Get the last characters of a value.
This function cannot be used with the following variables credit_card_verification_value
, apple_pay_cryptogram
, and google_pay_cryptogram
.
The last function can be used for credit_card_number
and account_number
if the length passed is less than or equal to 4.
Using the last function inappropriately with one of the sensitive variables will result in an error with a key of “errors.receiver_last_function
” and a message of “Receiver transaction not attempted due to invalid use of last receiver function”
{{#last}}length,contents{{/last}}
{{#last}}4,{{ credit_card_number }}{{/last}}
1111
lowercase
Convert a given string to lowercase.
{{#lowercase}}LOWERCASE TEXT{{/lowercase}}
lowercase text
md5
Calculate the MD5 digest of the contents.
{{#md5}}value to digest{{/md5}}
{{#md5}}{{ credit_card_number }}:{{ secret }}{{/md5}}
c7de95291d0ebb132b7ec76eee4c3eb9
payment_method_metadata
payment_method_metadata
takes a single parameter, the key of the metadata field you’d like to render the value of. For example, if you have a payment method with a metadata field of item_id
and it has a value "1234", you’d use payment_method_metadata
with the parameter item_id
to render "1234".
{{#payment_method_metadata}}some_key{{/payment_method_metadata}}
the value of some_key
The
payment_method_metadata
receiver function only works on a single payment method, it does not work inside of the{{#payment_methods}}{{/payment_methods}}
tag or the export PMD endpoint.
payment_methods
Iterate over the list of submitted payment methods. For each payment method, the scope of the function body is re-bound to the payment method, meaning all receiver variables are available within this iterator.
The payment_methods receiver function is only available for the export PMD endpoint.
{{#payment_methods}}content to render for each payment method{{/payment_methods}}
{{#payment_methods}}{{credit_card_number}}
{{/payment_methods}}
4111111111111111
5555555555554444
replace
Replaces every instance of a given pattern with a new value in the content. Neither the pattern nor replacement can themselves contain commas.
{{#replace}}pattern,replacement,content{{/replace}}
{{#replace}}A,B,ABACABD{{/replace}}
BBBCBBD
rsa
Encrypts contents using RSA public key cryptography.
{{#rsa}}certificate-pem,padding-scheme,contents to encrypt{{/rsa}}
The certificate value must be in PEM format. The currently available padding schemes include: pkcs1
or oaep
.
Because the raw output is in binary form you will often use the rsa
function embedded within another encoding function, such as base64
, to produce web-safe output.
{{#base64}}{{#rsa}}-----BEGIN CERTIFICATE-----
MIIEyjCCA7KgAwIBAgIJAIWfA5mfOXNpMA0GCSqGSIb3DQEBBQUAMIGeMQswCQYD
VQQGEwJVUzEXMBUGA1UECBMOTm9ydGggQ2Fyb2xpbmExDzANBgNVBAcTBkR1cmhh
bTEXMBUGA1UEChMOU3ByZWVkbHksIEluYy4xIjAgBgNVBAMTGVNwcmVlZGx5IFRl
c3QgQ2VydGlmaWNhdGUxKDAmBgkqhkiG9w0BCQEWGWludGVncmF0aW9uc0BzcHJl
ZWRseS5jb20wHhcNMTUwMjExMTkxNTU4WhcNNDIwNjI5MTkxNTU4WjCBnjELMAkG
A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMQ8wDQYDVQQHEwZEdXJo
YW0xFzAVBgNVBAoTDlNwcmVlZGx5LCBJbmMuMSIwIAYDVQQDExlTcHJlZWRseSBU
ZXN0IENlcnRpZmljYXRlMSgwJgYJKoZIhvcNAQkBFhlpbnRlZ3JhdGlvbnNAc3By
ZWVkbHkuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApdxYbGMc
1A2ZBipEuxIZhhonLjhENg2foEk2w5dUjBzqbzzDeK8+zMCFCJOrq3jnjBSkgtPa
KRrCR/bXdyrvt+lmm+OVrgNyLQgInFR2frdYtlpWbuC8z5DqP3KOMhir3lpwpoBx
RM6JmK1uld03HAG4q67hYLjLDqlqXM87JnhnXytVvSUv7dDazcRXefrZox2xERVz
2F4e2QXQckvNDZEL44Hzp52F25SsECtVr+F11T5PrM5y5fyP4/QJzPAqj3dhXMKg
cVDb2Rv/el98s8p2wkrOCf/rVfj+xfREEYh2T3D9jyZZWcAjvs8e363QxhMtgOg1
/5/8mjfqYT7RUwIDAQABo4IBBzCCAQMwHQYDVR0OBBYEFAv+9ULX/Sv8z63mRs/w
rnOcMgbXMIHTBgNVHSMEgcswgciAFAv+9ULX/Sv8z63mRs/wrnOcMgbXoYGkpIGh
MIGeMQswCQYDVQQGEwJVUzEXMBUGA1UECBMOTm9ydGggQ2Fyb2xpbmExDzANBgNV
BAcTBkR1cmhhbTEXMBUGA1UEChMOU3ByZWVkbHksIEluYy4xIjAgBgNVBAMTGVNw
cmVlZGx5IFRlc3QgQ2VydGlmaWNhdGUxKDAmBgkqhkiG9w0BCQEWGWludGVncmF0
aW9uc0BzcHJlZWRseS5jb22CCQCFnwOZnzlzaTAMBgNVHRMEBTADAQH/MA0GCSqG
SIb3DQEBBQUAA4IBAQALuWTjcKmzgGZrYkHrstqIzt1jxMBSknFxn94hm7O1Ip97
2kWyTxrvhMiyJMYiwH2oyf1iD3zMh4/kLDXJrHNA00wK9ptVGu85cxH3VBJgvIY7
nykV5mDhGosxQlZvgrUDVe50+x4sgJP6zJpQepdYPW5qfyEp9HVkddNKhCEPIGW6
C3X41C4gyTACwZ1JVldC9rAZxs38e9TAD+Ogz5pxgHokhlUiypL+P3Lf6wHj3hzw
QbOiY+x+MEFVD55kKf7BB6CCJPaEN/yYovDqcpVCK9hnK04Iyw//+eCQry2U73Ns
ASkL7Z69EL+OabkrfQu4AM9eA+h1ZHwGXmFFL1Gn
-----END CERTIFICATE-----,oaep,{{ credit_card_number }}{{/rsa}}{{/base64}}
G9RUciV1y7JUGEJjwPqvRvn...GP5NK/OSSSoObfLQ==
rsa_sign
Signs (and base64 encodes) contents using the private key configured for the receiver. Requires a receiver pre-configured with an encryption certificate.
{{#rsa_sign}}digest-algorithm,contents to sign{{/rsa_sign}}
The digest algorithm can be one of sha512
or sha256
.
{{#rsa_sign}}sha512,{{ credit_card_number }}{{/rsa_sign}}
MkwVgWyhqy7FWHGIKn/jvUsUbD6BGaT...n6NvY=
tripe_des
Encrypt contents using the Triple DES (3DES) symmetric encryption algorithm.
{{#triple_des}}mode,initialization vector as byte array,encryption key,data{{/triple_des}}
The encryption mode can be one of CBC
, CFB
, OFB
, CTR
.
Because the raw output is in binary form you will often use the triple_des
function embedded within another encoding function, such as base64
, to produce web-safe output.
Note that 3DES encryption is not generally acceptable for use in a PCI-compliant context, as 3DES encryption can be broken in a trivial amount of time on normal desktop computers and cell phones. You should instead use alternative mechanisms, such as AES encryption, in most contexts.
{{#hex_bytes}}-,{{#triple_des}}CBC,[15, 66, 13, 102, 1, 1, 11, 18],testKeyXXXXXXXXXXXXXXXXX,1234123412341234{{/triple_des}}{{/hex_bytes}}
BB-99-AA-68-3A-49-92-B5-BE-D6-91-D7-B0-1B-78-22-07-9B-DA-04-54-46-1F-9D
truncate
Truncate a value to a given size.
This function cannot be used to truncate the following variables account_number
, credit_card_verification_value
, apple_pay_cryptogram
, or google_pay_cryptogram
.
The truncate function can be used for credit_card_number
if the length passed is less than or equal to 6.
Using the truncate function inappropriately with one of the sensitive variables will result in an error with a key of “errors.receiver_truncate_function” and a message of “Receiver transaction not attempted due to invalid use of truncate receiver function”
{{#truncate}}length,contents{{/truncate}}
{{#truncate}}6,{{ credit_card_number }}{{/truncate}}
411111
uppercase
Convert a string to uppercase.
{{#uppercase}}uppercase string{{/uppercase}}
UPPERCASE STRING
uri_encode
URI-encode a string.
{{#uri_encode}}http://example.com?testing=t{{/uri_encode}}
http%3A%2F%2Fexample.com%3Ftesting%3Dt
utc_timestamp
Inserts an ISO 8601 formatted timestamp at the time of export.
{{#utc_timestamp}}{{/utc_timestamp}}
2017-01-01T12:00:01Z
xml_dsig
Generate the WS-Security XML digital signature for a given SOAP message. Requires an encryption certificate with private key to be stored using the certificates API OR a PEM-encoded private key.
{{#xml_dsig}}your certificate token OR private key pem,full XML body{{/xml_dsig}}
The private key value must be a PEM formated RSA private key.
{{#xml_dsig}}M6A4yufjd04Ey4u6cCIzxdoUMz5,<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope>...</soapenv:Envelope>{{/xml_dsig}}
{{#xml_dsig}}-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAyV1sJK9aNE76M4H2k5t5HNVTdCqmxFMf1HDufcueK49t1sj3
wG9psZXPBan6cLJEy7bVo2QIl/NQDwaC5vDgIiJKIz+KwxeF1q+0it2cutxURjWY
4ycxs/WuOJewSHIML+GZhzhX0nJ8xCiJKzyfxoBdlATrlMI70Gcgqmv5Xh7D+CR6
5ynIuU8J3YMRn7bhojcueWJD8AEh01KVBfjifno1f2W6Lj6euxvwiapaMTZioHe8
uH4geOVw5WIuI3uLsR5RNuLT/q/Ft0SIwuevfp6odCkAC69AIvttPEfqGcqNn+F0
fLRnn2Ad+YRsipuOYefWBPmw+SFikxvkliKrfwIDAQABAoIBAQCAUYNPoVrHSKjS
V/hsub+lKyAiP+fD5gC7nTetfCsQMTdajviqbZUZ8JBbWKVaWY/TjXB4zY9YXVng
KVMTnd4GgnliGuTvS7cjRxazA2QUA8HEd/U0k85tkpryP1+72sl/XbE7ZSE533E4
g2hd4CUlFroLUFNbmacKOB2t3F6tpaXZD3TXGd2QIWEdRVbBHcbH5ZLhOVlvyJ5k
+gHXvpdVsZnmC8eZPPs/JL3B0SwJop8Ln+DKkg6P4s+oq9dkR0OwuhuE+iWV8evF
LFb0j87kJV8JsHMvk3qbbunWHisQr23U4Vl/k6rjkodryrzDrwQ3czzR3nlKN/Kl
VROR8TMBAoGBAOmi434+RbZQP9PdVEa+pEh2IA81L3og6+TqemL4sZtqlCEfrOZD
FsSH6CEU13SMn7l+riYCzBYSdvPDAynhJp+u0REUQFPJAMcgefxw2mfJwFrtn9Ap
JWaAPhcMeK8l/5rdZxnjECDRAkW+5SdtYj9x6rjgsmJ89DFdd5EW1JL/AoGBANyj
vpNSRBdy+lM62T0DiAJ6gc0HpYQpNzIydIT9bh8zkmwU5z0pVtczpmIzdK0lPlHO
ERWgBXXsfRfEupVoFND9H5A7tTMQtJF4rLg3gUpa2alTUXSWfm9uS7TWVRYR7hsV
/ui7oW3zIXdD8dRHozITSzM27gfiMy6Q3I/SIGeBAoGAf0lgObJBlq8n5wxpUtWg
eV3p338xa48uFZxtqygk0zCAnX89WoHokJAeto89RuEqUAwlYs4ZVFkg93MicRma
SlsayfxHg545z0LxUshFJVB0fNWDQQx5tNtfeH0x7vJ7zGqdNixP6CEW5Nq4y/87
DKfKoojAhwnenFp4vtI6ZA8CgYBqTvcvEo8+YSbd3Vf4fvAUiaRq/okwgY9Xv1nH
Djj2Dao6K2QzYuy1qew8GqDYID7Dua8fpUecRwMK5b4k6M5G1/9SRoKLBTyLbwKB
jDTed6GyZTO1IiHvXMxbaH38sUzxfgqhZm5khKYWSgWGC7JFGWi9V3UfFU0l3aR4
I317gQKBgQCxWrKZlfq/iWcvBqB8Ep4wiJPXZXjl/Dvic/2pCC69MMimtDTHQ8o8
gp7c3Fp+RDO8U5wgqq2amodR1RPbAdgG7rQvewnzPsaTIKSfOueY3LG4UR22tNvZ
LeaSV7WUssler/Ybk6Gj+psx8RXbL+ZcYPoeL7mb6kUoWFfzcmpIjA==
-----END RSA PRIVATE KEY-----,<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope>...</soapenv:Envelope>{{/xml_dsig}}
Updated 1 day ago