Nomupay gateway guide


Additional notes
NomuPay supports Non-Payment Authentication (NPA) which can be enabled via the npa_enabled gateway setting. When enabled, verify operations use a zero-amount authorization instead of the standard authorize-void flow.
NomuPay uses Bearer token authentication with an access token for secure communication. The access_token is used in the Authorization header for all API requests.

Adding Nomupay gateway

curl https://core.spreedly.com/v1/gateways.xml \
  -u 'C7cRfNJGODKh4Iu5Ox3PToKjniY:4UIuWybmdythfNGPqAqyQnYha6s451ri0fYAo4p3drZUi7q2Jf4b7HKg8etDtoKJ' \
  -H 'Content-Type: application/xml' \
  -d '<gateway>
  <gateway_type>nomu_pay</gateway_type>
  <entity_id>your_entity_id</entity_id>
  <access_token>your_access_token</access_token>
  <npa_enabled>false</npa_enabled>
</gateway>'
<gateway>
    <token>123456789098765432345678</token>
    <gateway_type>nomu_pay</gateway_type>
    <name>NomuPay</name>
    <entity_id>your_entity_id</entity_id>
    <characteristics>
        <supports_purchase type="boolean">true</supports_purchase>
        <supports_authorize type="boolean">true</supports_authorize>
        <supports_capture type="boolean">true</supports_capture>
        <supports_partial_capture type="boolean">true</supports_partial_capture>
        <supports_credit type="boolean">true</supports_credit>
        <supports_partial_credit type="boolean">false</supports_partial_credit>
        <supports_general_credit type="boolean">true</supports_general_credit>
        <supports_void type="boolean">true</supports_void>
        <supports_adjust type="boolean">false</supports_adjust>
        <supports_verify type="boolean">true</supports_verify>
        <supports_reference_purchase type="boolean">false</supports_reference_purchase>
        <supports_purchase_via_preauthorization type="boolean">false</supports_purchase_via_preauthorization>
        <supports_offsite_purchase type="boolean">false</supports_offsite_purchase>
        <supports_offsite_authorize type="boolean">false</supports_offsite_authorize>
        <supports_offsite_synchronous_purchase type="boolean">false</supports_offsite_synchronous_purchase>
        <supports_offsite_synchronous_authorize type="boolean">false</supports_offsite_synchronous_authorize>
        <supports_3dsecure_purchase type="boolean">false</supports_3dsecure_purchase>
        <supports_3dsecure_authorize type="boolean">false</supports_3dsecure_authorize>
        <supports_3dsecure_2_mpi_purchase type="boolean">true</supports_3dsecure_2_mpi_purchase>
        <supports_3dsecure_2_mpi_authorize type="boolean">true</supports_3dsecure_2_mpi_authorize>
        <supports_store type="boolean">true</supports_store>
        <supports_remove type="boolean">true</supports_remove>
        <supports_fraud_review type="boolean">false</supports_fraud_review>
        <supports_network_tokenization type="boolean">true</supports_network_tokenization>
        <supports_inquire_by_gateway_transaction_id type="boolean">false</supports_inquire_by_gateway_transaction_id>
        <supports_inquire_by_order_id type="boolean">false</supports_inquire_by_order_id>
        <supports_transaction_retry type="boolean">true</supports_transaction_retry>
        <supports_stored_stored_credentials type="boolean">false</supports_stored_stored_credentials>
        <supports_partial_refund type="boolean">true</supports_partial_refund>
        <supports_stored_credentials type="boolean">true</supports_stored_credentials>
    </characteristics>
    <credentials>
        <credential>
            <name>entity_id</name>
            <value>your_entity_id</value>
        </credential>
    </credentials>
    <gateway_settings>
        <npa_enabled type="boolean">true</npa_enabled>
    </gateway_settings>
    <gateway_specific_fields>
        <gateway_specific_field>merchant_transaction_id</gateway_specific_field>
        <gateway_specific_field>merchant_invoice_id</gateway_specific_field>
        <gateway_specific_field>merchant_customer_id</gateway_specific_field>
        <gateway_specific_field>create_registration</gateway_specific_field>
        <gateway_specific_field>recurring_type</gateway_specific_field>
        <gateway_specific_field>industry_practice</gateway_specific_field>
        <gateway_specific_field>expiry</gateway_specific_field>
        <gateway_specific_field>frequency</gateway_specific_field>
        <gateway_specific_field>number_of_installments</gateway_specific_field>
        <gateway_specific_field>merchant_memo</gateway_specific_field>
        <gateway_specific_field>promotion_code</gateway_specific_field>
        <gateway_specific_field>transaction_category</gateway_specific_field>
        <gateway_specific_field>tax_amount</gateway_specific_field>
        <gateway_specific_field>discount_amount</gateway_specific_field>
        <gateway_specific_field>locale</gateway_specific_field>
        <gateway_specific_field>merchant_name</gateway_specific_field>
        <gateway_specific_field>merchant_phone</gateway_specific_field>
        <gateway_specific_field>merchant_url</gateway_specific_field>
        <gateway_specific_field>shipping_cost</gateway_specific_field>
        <gateway_specific_field>test_mode</gateway_specific_field>
    </gateway_specific_fields>
    <payment_methods>
        <payment_method>credit_card</payment_method>
        <payment_method>third_party_token</payment_method>
        <payment_method>apple_pay</payment_method>
        <payment_method>google_pay</payment_method>
    </payment_methods>
</gateway>

Parameters

NameDescription
entity_id (Required)Your NomuPay entity identifier (merchant entity ID)
access_token (Required)Your NomuPay access token is used for Bearer token authentication
npa_enabled (Optional)Set to true to enable Non-Payment Authentication for verify operations (default: false). When enabled, verify uses a zero-amount authorization instead of authorize-void flow.

Gateway Specific Fields

<gateway_specific_fields>
  <nomu_pay>
    <merchant_transaction_id>1234</merchant_transaction_id>
    <merchant_invoice_id>invoice_1234</merchant_invoice_id>
    <merchant_customer_id>customer_123</merchant_customer_id>
    <create_registration>true</create_registration>
    <recurring_type>STANDING_ORDER</recurring_type>
    <industry_practice>INCREMENTAL_AUTH</industry_practice>
    <expiry>yyyy-mm-dd</expiry>
    <frequency>0001</frequency>
    <number_of_installments>12</number_of_installments>
    <merchant_memo>merchant_memo</merchant_memo>
    <promotion_code>promotion_code_123</promotion_code>
    <transaction_category>EC</transaction_category>
    <tax_amount>12.5</tax_amount>
    <discount_amount>23.0</discount_amount>
    <locale>de-AT</locale>
    <merchant_name>xyz</merchant_name>
    <merchant_phone>1234</merchant_phone>
    <merchant_url>merchant_url</merchant_url>
    <shipping_cost>12</shipping_cost>
    <test_mode>INTERNAL</test_mode>
  </nomu_pay>
</gateway_specific_fields>

Parameter Details

Field Name

Description

merchant_transaction_id

Merchant-provided reference number, should be unique for your transactions.

merchant_invoice_id

Merchant-provided invoice number, should be unique for your transactions, if not passed it will be mapped with order_id

merchant_customer_id

An identifier for this customer. Typically this is the ID that identifies the shopper in the shop's system.

merchant_memo

Merchant-provided additional information. The information provided is not transaction processing relevant. It will appear in reporting only.

promotion_code

Discount code applied at the Order level. There will be 1 Promotion Code per order.

transaction_category

The category of the transaction, possible values are :

EC - eCommerce
MO - Mail order
TO - Telephone order
PO - pos
PM - mpos
MOTO - Mail order Telephone order

tax_amount

Indicates the tax amount of the payment request.

discount_amount

invoice level discount amount

locale

Sets the language/country. Examples : "de-AT", "en-US". etc

shipping_cost

The total amount of the shipping costs.

create_registration

If true, the payment details will be stored with the request. As part of the response, you will receive the parameter registration.id which you can use to reference the registration for later payments.

recurring_type

Indicates the type of a recurring MIT agreement. values - STANDING_ORDER | SUBSCRIPTION

industry_practice

The MIT types defined under this category are performed to fulfill a business practice as a follow-up to an original cardholder-merchant interaction that could not be completed with one single transaction.

INCREMENTAL_AUTH
RESUBMISSION
REAUTHORIZATION
DELAYED_CHARGES
NO_SHOW

frequency

Indicates the minimum number of days between authorizations.

number_of_installments

Indicates the maximum number of authorizations permitted for installment payments.

merchant_name

normally make up the first line of the card holder statement.

merchant_phone

Merchant contact number

merchant_url

test_mode

It is important to note that there are two test modes available to cause requests to be sent to Nomupay simulator or to the acquirers/APM/partner own test platform, as required:

  • testMode=EXTERNAL causes test transactions to be forwarded to the processor's test system for 'end-to-end' testing
  • testMode=INTERNAL causes transactions to be sent to our simulators

Gateway Specific Response Fields

<gateway_specific_response_fields>
  <nomu_pay>
    <ndc>122.334</ndc>
    <build_number>13543erdf54</build_number>
    <result_code>000.000.000</result_code>
    <registration_id>123456789i8uygfe23456</registration_id>
    <result_details>
      <AuthCode>1232</AuthCode>
    </result_details>
    <parameter_errors>parameter_errors</parameter_errors>
  </nomu_pay>
</gateway_specific_response_fields>

Parameter Details

FieldDescription
ndcAn internal unique identifier for the request in Nomupay.
build_numberfor Nomupay support purposes.
result_codeResult code from NomuPay (e.g., '000.000.000' for success).See the result codes for more detailed information.
registration_idRegistration ID for stored payment methods
result_detailsAdditional result details from the gateway
parameter_errorsParameter validation errors, if any

Stored Credentials

For NomuPay, sending stored credential fields can be done using Spreedly’s first class support. For any Authorize or Purchase request, you need to include two fields which tell Spreedly a little bit more about the nature of the transaction:

  • stored_credential_initiator
  • stored_credential_reason_type