Dashboard ↗

Invoice objects are very important in the payment process. You must create an invoice before you can accept a payment, but you can also use it to store many other pieces of information about a purchase.

For example:

  • Shipping information
  • Details and availability of the items to be purchased
  • Sales tax

See the guide page about Creating an invoice for a full description of how it fits into the payment flow.

Invoice object

List of fields

📘

While the invoice object may seem to contain many parameters, only a handful are useful to merchants. Other may be used under specific scenarios as ProcessOut is fully transparent with the data it gathers. The following list contains most parameters that may be useful to merchants

FieldTypeDescription
idstring
readonly
String value that uniquely identifies this invoice.
namestringName of the invoice (often an internal ID code from the merchant’s systems).
Maximum 80 characters long
amountstringAmount to be paid.
currencystringCurrency for payment of the invoice, in ISO 4217 format (for example, USD).
Must be a valid ISO 4217 currency code with 3 characters
initiation_typestringRepresent the initiation type of the transaction which can be Customer Initiated Transaction (cit) or Merchant Initiated Transaction (mit).
Allowed values are: cit or mit
payment_intentstringFor Merchant Initiated Transactions: the type of payment flow that generated the transaction.
Allowed values are: one-off, recurring, recurring-standing-order, recurring-subscription, installment, unscheduled, unscheduled-delayed-charge, unscheduled-resubmission, unscheduled-no-show or unscheduled-reauthorization.
metadataobjectMetadata related to the invoice, in the form of key-value pairs (string - string).
sca_exemption_reasonstringOptional reason for requesting SCA exemption (Note: This must also be supported by the PSP. Please contact us for more information.)
Allowed values are: low-value, trusted-beneficiary or transaction-risk-analysis
challenge_indicatorstringOptional challenge indicator field when requesting 3DS2 (Note: This must also be supported by the PSP. Please contact us for more information.)
Allowed values are: no-preference, no-challenge-requested, challenge-requested, challenge-requested-mandate, no-challenge-requested-tra-performed, no-challenge-requested-data-share-only, no-challenge-requested-sca-performed, no-challenge-requested-whitelist-exemption, challenge-requested-whitelist-prompt or cb-scoring
payment_typestringOptional information about the payment type
Allowed values are moto or ecommerce
sandboxboolean
readonly
Denotes whether or not this invoice was created in the sandbox testing environment.
statement_descriptorstringItem that will be listed for this purchase on the customer’s bank statement.
Maximum 22 characters long, should only contain letters, numbers, spaces, dots and forward slashes
statement_descriptor_phonestringSupport phone number for this purchase on the customer’s bank statement.
statement_descriptor_citystringCity shown for this purchase on the customer’s bank statement.
statement_descriptor_companystringYour company name to show on the customer’s bank statement.
statement_descriptor_urlstringSupport URL for this purchase on the customer’s bank statement.
project_id (Expandable)string
readonly
Project that the invoice belongs to.
customer_id (Expandable)stringCustomer linked to the invoice (generally the one making the purchase).
See Customers object
transaction_id (Expandable)string
readonly
Transaction generated when the invoice is authorized or captured.
See Transaction object
token_id (Expandable)stringToken that was used, or will be used, to capture the payment. If the invoice is linked to a customer (via the customer field) then this token must belong to them.
See Tokens object
details[]objectDetails of the items or products that are being purchased.
See Details object
riskobjectRisk assessment for the invoice.
See Risk object
deviceobjectInformation about the device (web, mobile, other) that was used to start the purchase.
See Device object
external_fraud_toolsobjectInformation to forward to external fraud tools.
See ExternalFraudTools object
shippingobjectShipping information for the invoice.
See Shipping object
return_urlstringFor APMs, this is the URL to return to the app after payment is accepted.
Must be a valid URL
cancel_urlstringFor APMs, this is the URL to return to the app after payment is canceled.
Must be a valid URL
webhook_urlstringCustom webhook URL for this purchase.
Must be a valid URL
incrementalstring
readonly
Denotes whether or not you can apply incremental authorizations to this invoice.
taxobjectTax information for the invoice.
See tax object
unsupported_feature_bypassobjectBypass payment provider unsupported features set in the transaction
created_atdatetime
readonly
Date and time of when the invoice was created.
expires_atdatetimeDate and time of when the invoice will expire, when it will not be possible to initiate a new transaction on it.
payment_methods[]objectPayment methods for Dynamic Checkout.
See Payment method object

Details object

FieldTypeDescription
idstring
readonly
String value that uniquely identifies this invoice detail.
namestringName of the item or product, which represents an item on a receipt.
Maximum 80 characters long
amountstringAmount charged for this item or product.
tax_amountstringAmount of taxes charged for this item or product.
typestringItem or product type. Set this to anything suitable.
Maximum 30 characters long
quantityintegerQuantity of the item or product. Default value is 1.
unitstringUnit of measure used for product quantity.
categorystringCategory of the item or product.
Can be food, entertainment, home, appliance, bidding, gift, technology, media, communication, health, sport, tickets, personal-service, professional-service, clothing, travel, transport or other.
referencestringReference of the item or product.
Maximum 255 characters long
descriptionstringDescription of the item or product.
Maximum 255 characters long
brandstringBrand of the item or product.
Maximum 80 characters long
modelstringModel of the item or product.
Maximum 80 characters long
discount_amountstringDiscount amount (when the discount is listed as a separate item on a receipt).
conditionstringCondition of the product.
Can be new, refurbished, used or other.
marketplace_merchantstringMarketplace merchant ID of the item or product.
marketplace_merchant_is_businessbooleanDenotes whether or not the marketplace merchant is a business.
marketplace_merchant_created_atdatetimeDate and time when the merchant was created.
visa_commodity_codestringVisa specific commodity code used for the item. Please refer to Visa for list of codes.

Risk object

FieldTypeDescription
scorestringScoring of the invoice. No validation done on this field because it is used to forward risk information to compatible payment providers.
Maximum 12 characters long
is_legitbooleanDenotes whether or not the invoice is legitimate.
skip_gateway_rulesbooleanFlag to skip payment gateway fraud engine rules. (This is only available on certain compatible gateways. Contact us for more information.)

Device object

FieldTypeDescription
idstringID of the device. This can be anything but would usually be a UUID generated by a third-party anti-fraud solution.
channelstringChannel used by the device.
Can be web, ios, android or other.
ip_addressstringIP address of the device.
Must be a valid IP address

ExternalFraudTools object

FieldTypeDescription
forterraw jsonInformation for the Forter fraud prevention service.
signifydraw jsonInformation for the Signifyd fraud prevention service.
ravelinraw jsonInformation for the Ravelin fraud prevention service.

Shipping object

FieldTypeDescription
amountstringAmount charged for shipping.
duty_amountstringAmount charged for import/export duties related to shipping.
methodstringDelivery method.
Can be web, collect-at-shop, relay, travel-station, home, shipping, locker or other.
providerstringDelivery provider.
Maximum 32 characters long
delaystringShipment delay.
Can be express, priority, standard or other.
address1stringFirst line of the delivery address.
Maximum 255 characters long
address2stringSecond line of the delivery address.
Maximum 255 characters long
statestringState or county of the delivery address.
Maximum 80 characters long
citystringCity of the delivery address.
Maximum 80 characters long
country_codestringCountry code (US, FR…) of the delivery address.
Must be a valid ISO 3166 country code with 2 characters
zipstringZIP code of the delivery address.
Maximum 16 characters long
from_zipstringZIP code of the address from which delivery is shipped.
Maximum 16 characters long
phoneobjectPhone number of the shipment recipient.
expects_shipping_atdatetimeExpected date of delivery.
relay_store_namestringName of the store that the order must be collected from.
Maximum 100 characters long

Phone object

FieldTypeDescription
numberstringPhone number without the dialing code.
Maximum 14 characters long
dialing_codestringInternational dialing code (Note: “+” will be treated as “00”)

Tax object

FieldTypeDescription
amountstringAmount is zero or a positive number representing the tax included in the amount.
ratestringRate is a percentage (0 to 100) representing the rate of tax included in the amount.

Unsupported feature bypass object

FieldTypeDescription
incremental_authorizationboolIgnore incremental authorization requests on PSP that doesn't support it

Payment method object

FieldTypeDescription
typestringType of payment method. Can be applepay, googlepay, apm,apm_customer_token, card or card_customer_token
flowstringOptional flow of the payment method. Can be express
displayobjectDisplay information of the payment method. See Display object
applepayobjectApple Pay payment method information. See Apple Pay object
googlepayobjectGoogle Pay payment method information. See Google Pay object
apmobjectAPM payment method information. See APM object
apm_customer_tokenobjectAPM's customer token payment method information. See APM customer token object
cardobjectCard payment method information. See Card object
card_customer_tokenobjectCard's customer token payment method information. See Card customer token object

Display object

FieldTypeDescription
namestringName of the payment method
logoobjectLogo urls of the payment method
brand_colorobjectHexadecimal color codes of the payment method

Apple Pay object

These attributes are documented in the Apple Pay website

FieldTypeDescription
merchant_idstringMerchant identifier
country_codestringMerchant country code
Must be a valid ISO 3166 country code with 2 characters
supported_networks[]stringCard networks supported. e.g. american express. These values need to be mapped to the corresponding Apple Pay values
merchant_capabilities[]stringPayment processing capabilities. Can be supports3DS, supportsCredit, supportsDebit and supportsEMV. These values need to be mapped to the corresponding Apple Pay values

Google Pay object

These attributes are documented in the Google Pay website

FieldTypeDescription
allowed_auth_methods[]stringCard transaction authentication methods. Can be PAN_ONLYand/or CRYPTOGRAM_3DS
allowed_card_networks[]stringCard networks supported
allow_prepaid_cardsbooleanWhether prepaid cards are supported
allow_credit_cardsbooleanWhether credit card are supported
gatewaystringGateway identifier issued by Google. Always processout
gateway_merchant_idstringGateway account identifier. Always the ProcessOut project identifier
country_codestringCountry where the transaction is processed. Required for transactions in European Economic Area (EEA).
Must be a valid ISO 3166 country code with 2 characters

APM object

FieldTypeDescription
gateway_configuration_idstringGateway configuration that the payment method is linked to. Relevant to the native flow
gateway_namestringGateway configuration's gateway name
gateway_logo_urlstringGateway configuration's gateway logo url
redirect_urlstringOptional url used to redirect the customer to a third-party payment provider website to complete their payment. Relevant to the redirect flow
saving_allowedbooleanWhether the customer can be asked if they wish to save the payment method for future use

APM customer token object

FieldTypeDescription
customer_token_idstringThe customer's token that the alternative payment method is linked to
gateway_configuration_idstringGateway configuration that the payment method is linked to. Relevant to the native flow
gateway_namestringGateway configuration's gateway name
gateway_logo_urlstringGateway configuration's gateway logo url
redirect_urlstringOptional url used to redirect the customer to a third-party payment provider website to complete their payment. Relevant to the redirect flow

Card object

FieldTypeDescription
billing_addressobjectBilling address options
cvc_requiredbooleanCVC is required at card tokenization
cardholder_name_requiredbooleanCardholder's name is required at card tokenization
scheme_selection_allowedbooleanWhether the customer will be asked to select a scheme if the card co-scheme is available
saving_allowedbooleanWhether the customer can be asked if they wish to save the card for future use

Card customer token object

FieldTypeDescription
customer_token_idstringThe customer's token that the card is linked to

JSON object

{
    "invoice": {
        "id": "iv_MyNUnrEwNf7mrXZO1x6x8eeCoTWC8OQG",
        "project_id": "proj_IFCgGTmyClrgTOzsschN1y7GJttHVQ7S",
        "subscription_id": null,
        "customer_id": "cust_MFW0Z4jtoXLfADjPKlVRl5LxWkCTUgRw",
        "token_id": null,
        "details": [
            {
                "id": "iv_det_M2LqRkMXxkTSu4CWTMY0X4QKrzz2Urbu",
                "name": "iPhone 14 Pro",
                "type": "Smartphone",
                "amount": "1000",
                "quantity": 1,
                "reference": "12221341242",
                "description": "iPhone 11 Pro 256Gb Red blablabla",
                "brand": "Apple",
                "model": "14 Pro",
                "discount_amount": "0",
                "condition": "new",
                "marketplace_merchant": null,
                "marketplace_merchant_is_business": null,
                "marketplace_merchant_created_at": null,
                "category": "technology",
                "metadata": {}
            }
        ],
        "transaction_id": "tr_Cln3zmZ31m5Crcgz5sfggomIiMm3Mmbm",
        "name": "Amazing Product",
        "order_id": "123456",
        "amount": "29",
        "currency": "EUR",
        "metadata": {
            "fruit": "banana"
        },
        "gateway_data": {},
        "exemption_reason_3ds2": "",
        "challenge_indicator": "",
        "sca_exemption_reason": "",
        "statement_descriptor": "My Company",
        "merchant_initiator_type": null,
        "initiation_type": "MIT",
        "payment_intent": "recurring",
        "require_backend_capture": null,
        "card_verification": null,
        "return_url": "https://mycompany.com/return-url",
        "cancel_url": null,
        "webhook_url": "https://mycompany.com/webhook",
        "sandbox": true,
        "url": "https://checkout.processout.com/test-proj_IFCgGTmyClrgTOzsschN1y7GJttHVQ7S/iv_MyNUnrEwNf7mrXZO1x6x8eeCoTWC8OQG",
        "created_at": "2023-04-21T17:57:22.807583563Z",
        "expires_at": null,
        "risk": {
            "score": "100",
            "is_legit": true,
            "skip_gateway_rules": false
        },
        "device": {
            "id": "112233445566",
            "channel": "ios",
            "ip_address": "1.1.1.1"
        },
        "shipping": {
            "amount": "12",
            "method": "home",
            "provider": "DHL",
            "delay": "express",
            "address1": "133 Rue Lamarck",
            "address2": "CEDEX 1",
            "city": "Paris",
            "state": "Ile De France",
            "country_code": "FR",
            "zip": "75018",
            "phone": {
            		"number": "684758495",
            		"dialing_code": "0033"
        		},
            "expects_shipping_at": "2023-04-21T17:52:47.828402061Z",
            "relay_store_name": "none"
        },
        "incremental": false,
        "tax": {
            "rate": "1",
            "amount": "10"
        },
        "payment_type": null,
        "payment_methods": [
            {
                "type": "applepay",
                "flow": "express",
                "applepay": {
                    "merchant_id": "merchant.mycompany.processout.com",
                    "country_code": "GB",
                    "supported_networks": [
                        "american express",
                        "visa"
                    ],
                    "merchant_capabilities": [
                        "supports3DS",
                        "supportsCredit",
                        "supportsDebit",
                        "supportsEMV"
                    ]
                }
            },
            {
                "type": "googlepay",
                "flow": "express",
                "googlepay": {
                    "allowed_auth_methods": [
                        "PAN_ONLY",
                        "CRYPTOGRAM_3DS"
                    ],
                    "allowed_card_networks": [
                        "AMEX",
                        "DISCOVER",
                        "JCB",
                        "MASTERCARD",
                        "VISA"
                    ],
                    "allow_prepaid_cards": true,
                    "allow_credit_cards": true,
                    "gateway": "processout",
                    "gateway_merchant_id": "proj_IFCgGTmyClrgTOzsschN1y7GJttHVQ7S",
                  	"country_code": "GB"
                }
            },
            {
                "type": "apm",
                "display": {
                    "name": "Everypay",
                    "logo": {
                        "light_url": {
                            "vector": "https://js.processout.com/images/payment-methods/square/everypay.svg",
                            "raster": "https://js.processout.com/images/payment-methods/square/[email protected]"
                        },
                        "dark_url": {
                            "vector": "https://js.processout.com/images/payment-methods/square/everypay.svg",
                            "raster": "https://js.processout.com/images/payment-methods/square/[email protected]"
                        }
                    },
                    "brand_color": {
                        "light": "0x000000FF",
                        "dark": "0xFFFFFFFF"
                    }
                },
                "apm": {
                    "gateway_configuration_id": "gway_conf_yt57esj68rj0ic4egt8bkjp4iin0dwpm.everypay",
                    "redirect_url": "https://checkout.processout.com/proj_IFCgGTmyClrgTOzsschN1y7GJttHVQ7S/iv_MyNUnrEwNf7mrXZO1x6x8eeCoTWC8OQG/redirect/gway_conf_yt57esj68rj0ic4egt8bkjp4iin0dwpm.everypay",
                  	"saving_allowed": true
                }
            },
            {
                "type": "card",
                "display": {
                    "name": "Card",
                    "logo": {
                        "light_url": {
                            "vector": "https://js.processout.com/images/payment-methods/square/card.svg",
                            "raster": "https://js.processout.com/images/payment-methods/square/[email protected]"
                        },
                        "dark_url": {
                            "vector": "https://js.processout.com/images/payment-methods/square/card.svg",
                            "raster": "https://js.processout.com/images/payment-methods/square/[email protected]"
                        }
                    },
                    "brand_color": {
                        "light": "0x000000FF",
                        "dark": "0xFFFFFFFF"
                    }
                },
                "card": {
                    "cvc_required": true,
                    "cardholder_name_required": true,
                    "scheme_selection_allowed": true,
                    "billing_address": {
                        "collection_mode": "full",
                        "restrict_to_country_codes": [
                            "GB"
                        ]
                    },
                    "saving_allowed": false
                }
            }
        ]
    },
    "success": true
}