MENU
curl php python iOS java android .NET

Dokumentace GoPay REST API

API ENDPOINT

Testovací prostředí - https://gw.sandbox.gopay.com/api
Provozní prostředí - https://gate.gopay.cz/api

DOSTUPNÉ METODY

/oauth2/token
/payments/payment
/payments/payment/{id}
/payments/payment/{id}/refund
/payments/payment/{id}/create-recurrence
/payments/payment/{id}/void-recurrence
/payments/payment/{id}/void-authorization
/payments/payment/{id}/capture

PHP SDK

Python SDK

iOS SDK

JAVA SDK

Více informací o integraci těchto frameworků naleznete na našem githubu

ANDROID API

  • https://github.com/gopaycommunity/gopay-android-api
  • Požadavky : Android studio/Gradle
  • Instalace :
    git clone https://github.com/gopaycommunity/gopay-android-api.git
    cd gopay-android-api
    gradle clean build

  • Všechny artefakty se nacházejí v centrálním repozitáři maven jcenter

  • model classes, connector
    compile 'cz.gopay:androidapi:1.0.1'

  • webview (v případě, že budete chtít využívat naše webview, registrujte jeho aktivitu v manifestu vaší Android aplikace)
    compile 'cz.gopay:androidui:1.0.1'

.NET API

  • https://github.com/gopaycommunity/gopay-dotnet-api
  • Požadavky : .NET 4.0+
  • NuGet
    PM> Install-Package GOPAY.NET
  • Závislosti
    Newtonsoft.Json
    Restsharp
    Restsharp.Newtonsoft.Json
  • Namespace
    using GoPay.Common;
    using GoPay.Model;
    using GoPay.Payment;
    using GoPay.Model.Payments;
    using GoPay.EETProp;
    using GoPay.Account;

GoPay REST API je dostupné v testovacím prostředí na adrese https://gw.sandbox.gopay.com/api.

Provozní API se nachází na adrese https://gate.gopay.cz/api.

Pro veškerou příchozí i odchozí komunikaci s API je použito kódování UTF-8.

Detailní popis jednotlivých kroků nutných pro provedení standardní integrace naleznete v centru nápovědy.

OAuth

GoPay REST API používá pro autorizaci přístupu k API principu OAuth2.0, konkrétně metodu klientské autentizace viz http://tools.ietf.org/html/rfc6749#section-4.4

Přístupový token

Základním prvkem veškeré komunikace přes REST API je přístupový token, který je vytvořen na základě předávaných přístupových údajů ve formě <Client ID>:<Client Secret>. Token je předáván jako autorizační parametr v hlavičce HTTP dotazu prostřednictvím Authorization: Bearer <Access-Token>. Získaný přístupový token je předáván pro každý další požadavek na API.
Životnost tokenu je vždy omezena na 30 minut. Po jeho vypršení je nutné vytvořit nový přístupový token.

Request

POST /api/oauth2/token

Request

curl -v -N https://gw.sandbox.gopay.com/api/oauth2/token \
-X "POST" \
-H "Accept: application/json" \
-H "Content-Type: application/x-www-form-urlencoded" \
-u "<Client ID>:<Client Secret>" \
-d "grant_type=client_credentials&scope=payment-create"

<?php
$gopay = GoPay\payments([
    'goid' => '8123456789',
    'clientId' => '...',
    'clientSecret' => '...',
    'isProductionMode' => false,
    'scope' => GoPay\Definition\TokenScope::ALL,
    'language' => GoPay\Definition\Language::CZECH,
    'timeout' => 30
]);
// token získá SDK interně, není třeba volat žádnou metodu pro získání tokenu

import gopay

api = gopay.payments({
    'goid': '8302931681',
    'clientId': '1061399163',
    'clientSecret': 'stDTmVXF',
    'isProductionMode': False,
    'scope': gopay.TokenScope.ALL,
    'language': gopay.Language.CZECH,
    'timeout': 30
})
# token získá SDK interně, není třeba volat žádnou metodu pro získání tokenu

#import <GPAPI.h>
[[GPAPI sharedAPI] setClientID:@"..." clientSecret:@"..." productionMode:NO];
// token získá SDK interně, není třeba volat žádnou metodu pro získání tokenu
// vhodne volat napriklad v - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions v AppDelegate

IGPConnector connector = HttpClientGPConnector.build(<API_URL>);
connector.getAppToken(<CLIENT_ID>,<CLIENT_CREDENTIALS>); 
// API_URL pro testovací server - https://gw.sandbox.gopay.com/api
// API_URL pro provozní server - https://gate.gopay.cz/api

IGPConnector connector = GPAndroidConnector.build(<API_URL>);
connector.getAppToken(<CLIENT_ID>,<CLIENT_CREDENTIALS>);

var connector = new GPConnector(<API_URL>,<USER_ID>, <USER_SECRET>);
connector.GetAppToken();   

Hlavička požadavku

Název parametru Popis parametru Povinný
Accept application/json ANO
Content-Type application/x-www-form-urlencoded ANO
Authorization HTTP basic authentication pomocí níž předáváte <Client ID>:<Client Secret> ANO

Tělo požadavku

Název parametru Popis parametru Povinný
scope Definuje kategorii funkcionalit které může daná akce obsluhovat ANO
grant_type client_credentials ANO

Response

<?php
// informace o cacheování access tokenů:
// https://github.com/gopaycommunity/payments-sdk-php#cache-access-token

# informace o cacheování access tokenů:
# https://github.com/gopaycommunity/payments-sdk-php#cache-access-token

{
    "token_type":"bearer",
    "access_token":"AAAnu3YnAHRk298EsmyttFQMcbCcvmwTKK5hrJx2aGG8ZnFyBJhAvFWNmbWVSD7p",
    "expires_in":1800
}

Response

Název parametru Popis parametru Povinný
token_type bearer ANO
access_token Přístupový token ANO
expires_in Čas expirace tokenu v sekundách ANO

Založení platby

Před vyvoláním platební brány je nutné provést založení platby. Ve výsledku volání vám zopakujeme parametry platby spolu s parametrem gw_url, který použijete pro inicializaci inline nebo redirect platební brány.

Příjemce platby je identifikován goid v objektu target. Získáte jej při integraci platební brány pro identifikaci konkrétního prodejního místa, např. www.goshop.cz.

Platící strana je v rámci platby popsána objektem payer, který identifikuje platícího, a případně určuje množinu povolených platebních metod, včetně metody defaultní.

Standardní platba

Platba je určena pro úhradu objednávky platební kartou, bankovním převodem, GoPay účtem a jinými platebními metodami.

Podrobný popis kroků nutných pro provedení standardní platby naleznete v centru nápovědy.

Request

curl -v -N https://gw.sandbox.gopay.com/api/payments/payment \
-X "POST" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer xzZnu3YnAHRk298EsmyttFQMcbCcvmwTKK5hrJx2aGG8ZnFyBJhAvFWNmbWVSD7p" \
-d '{
    "payer": {
                "default_payment_instrument":"BANK_ACCOUNT",
                "allowed_payment_instruments":["BANK_ACCOUNT"],
                "default_swift":"FIOBCZPP",
                "allowed_swifts":["FIOBCZPP","BREXCZPP"],
                "contact":{"first_name":"Zbynek",
                           "last_name":"Zak",
                           "email":"test@test.cz",
                           "phone_number":"+420777456123",
                           "city":"C.Budejovice",
                           "street":"Plana 67",
                           "postal_code":"373 01",
                           "country_code":"CZE"
                          }
              },
    "target": {
                "type":"ACCOUNT",
                "goid":"8123456789"
              },
    "amount":"1000",
    "currency":"CZK",
    "order_number":"001",
    "order_description":"pojisteni01",
    "items":[{"name":"item01","amount":"500"},
             {"name":"item02","amount":"500"}
            ],
    "additional_params":[{"name":"invoicenumber",
                          "value":"2015001003"
                        }],
    "callback":{
                "return_url":"http://www.eshop.cz/return",
                "notification_url":"http://www.eshop.cz/notify"
              },
    "lang":"cs"
}'

<?php
use GoPay\Definition\Payment\Currency;
use GoPay\Definition\Payment\PaymentInstrument;
use GoPay\Definition\Payment\BankSwiftCode;

$response = $gopay->createPayment([
    'payer' => [
        'default_payment_instrument' => PaymentInstrument::BANK_ACCOUNT,
        'allowed_payment_instruments' => [PaymentInstrument::BANK_ACCOUNT],
        'default_swift' => BankSwiftCode::FIO_BANKA,
        'allowed_swifts' => [BankSwiftCode::FIO_BANKA, BankSwiftCode::MBANK],
        'contact' => [
            'first_name' => 'Zbynek',
            'last_name' => 'Zak',
            'email' => 'test@test.cz',
            'phone_number' => '+420777456123',
            'city' => 'C.Budejovice',
            'street' => 'Plana 67',
            'postal_code' => '373 01',
            'country_code' => 'CZE',
        ],
    ],
    'amount' => 1000,
    'currency' => Currency::CZECH_CROWNS,
    'order_number' => '001',
    'order_description' => 'pojisteni01',
    'items' => [
        ['name' => 'item01', 'amount' => 500],
        ['name' => 'item02', 'amount' => 500],
    ],
    'additional_params' => [
        array('name' => 'invoicenumber', 'value' => '2015001003')
    ],
    'callback' => [
        'return_url' => 'http://www.your-url.tld/return',
        'notification_url' => 'http://www.your-url.tld/notify'
    ]
]);

from gopay.enums import PaymentInstrument, BankSwiftCode, Currency

response = api.create_payment({
    'payer': {
        'default_payment_instrument': PaymentInstrument.BANK_ACCOUNT,
        'allowed_payment_instruments': [PaymentInstrument.BANK_ACCOUNT],
        'default_swift': BankSwiftCode.FIO_BANKA,
        'allowed_swifts': [BankSwiftCode.FIO_BANKA, BankSwiftCode.MBANK],
        'contact': {
            'first_name': 'Zbynek',
            'last_name': 'Zak',
            'email': 'test@test.cz',
            'phone_number': '+420777456123',
            'city': 'C.Budejovice',
            'street': 'Plana 67',
            'postal_code': '373 01',
            'country_code': 'CZE',
        },
    },
    'amount': 150,
    'currency': Currency.CZECH_CROWNS,
    'order_number': '001',
    'order_description': 'pojisteni01',
    'items': [
        {'name': 'item01', 'amount': 50},
        {'name': 'item02', 'amount': 100},
    ],
    'additional_params': [
        {'name': 'invoicenumber', 'value': '2015001003'}
    ],
    'callback': {
        'return_url': 'http://www.your-url.tld/return',
        'notification_url': 'http://www.your-url.tld/notify'
    }
})

GPPaymentRequest *payment = [[GPPaymentRequest alloc] init];
payment.amount = 20;
payment.currency = @"CZK";
payment.order_number = @"001";
payment.order_description = @"test";

GPPayer *payer = [[GPPayer alloc] init];
payer.allowed_payment_instruments = @[];
payer.default_payment_instrument = @"PAYMENT_CARD";
payer.contact.first_name = @"Zbynek";
payer.contact.last_name = @"Zak";
payer.contact.email = @"test@test.cz";
payer.contact.phone_number = @"+420777456123";
payer.contact.city = @"C.Budejovice";
payer.contact.street = @"Plana 67";
payer.contact.postal_code = @"370 01";
payer.contact.country_code = @"CZE";

payment.payer = payer;

GPTarget *target = [[GPTarget alloc] init];
target.type = PAY_TARGET_ACCOUNT;
target.goid = @"8035442195";

payment.target = target;

[GPAPI sharedAPI] createPayment:payment withHandleSuccess:^(GPPayment *payment) {

} failure:^(NSError *error) {

}];

BasePayment payment = PaymentFactory.createBasePaymentBuilder()
    .order(<ORDER_NUMBER>, <AMOUNT>, Currency.EUR, <DESCRIPTION>)
    .addItem(<ITEM_NAME>, <AMOUNT>, <FEE>, <COUNT>)
    .addAdditionalParameter(<Key>, <VALUE>)
    .withCallback(<RETURN_URL>, <NOTIFY_URL>)
    .payer(<Payer>)
    .inLang(Lang.EN)
    .toEshop(<GO_ID>)
    .build();
try {
    Payment result = connector.createPayment(payment);
} catch (GPClientException e) {
     for (ErrorElement err : e.getError().getErrorMessages()) {
        int code = err.getErrorCode();
        String message = err.getMessage();
        String field = err.getField();
    }
}

BasePayment payment = PaymentFactory.createBasePaymentBuilder()
    .order(<ORDER_NUMBER>, <AMOUNT>, Currency.EUR, <DESCRIPTION>)
    .addItem(<ITEM_NAME>, <AMOUNT>, <FEE>, <COUNT>)
    .addAdditionalParameter(<Key>, <VALUE>)
    .withCallback(<RETURN_URL>, <NOTIFY_URL>)
    .payer(<Payer>)
    .inLang(Lang.EN)
    .toEshop(<GO_ID>)
    .build();
try {
    Payment result = connector.createPayment(payment);
} catch (GPClientException e) {

}

var payment = new BasePayment()
    {
        Currency = <Currency>,
        Lang = "ENG",
        OrderNumber = "789456167879",
        Amount = 7500,
        Target = new Target()
        {
            GoId = <GOID>,
            Type = Target.TargetType.ACCOUNT
        },
        Callback = new Callback()
        {
            NotificationUrl = <NOTIFICATION_URL>,
            ReturnUrl = <RETURN_URL>
        },
        Payer = new Payer()
        {
            Contact = new PayerContact()
            {
                Email = "test@test.cz"
            },
            DefaultPaymentInstrument = PaymentInstrument.PAYMENT_CARD
        }
    };

try {
     var result = connector.CreatePayment(payment);
} catch (GPClientException e) {
//
}

Request

POST /api/payments/payment

Hlavička požadavku

Název parametru Popis parametru Povinný
Accept application/json ANO
Content-Type application/json ANO
Authorization Bearer <access-token> ANO

Tělo požadavku

Název parametru Popis parametru Povinný Datový typ
payer Objekt popisující plátce platby NE Objekt
target Objekt popisující příjemce platby ANO Objekt
amount Částka v haléřích ANO long > 0
currency Určuje měnu platby, formát měny odpovídá ISO 4217 ANO string
order_number Identifikace objednávky v rámci prodejního místa ANO string, pouze alfanumerické znaky (128 znaků)
order_description Popis objednávky NE string, pouze alfanumerické znaky (256 znaků)
items Detailně rozepsané jednotlivé položky objednávky ANO Objekt
callback Návratové URL a notifikační URL pro oznámení změny stavu platby ANO Objekt
additional_params Doplňkové parametry platby NE Pole objektů
lang Parametr definuje jazyk platby NE string, může nabývat hodnot viz lang

Response

<?php
if ($response->hasSucceed()) {
    $url = $response->json['gw_url'];
    echo $response;
}

if response.has_succeed():
    url = response.json['gw_url']
    print(response)
{
  "id":3000006529,
  "order_number":"001",
  "state":"CREATED",
  "amount":1000,"currency":"CZK",
  "payer":{
           "default_payment_instrument":"BANK_ACCOUNT",
           "allowed_payment_instruments":["BANK_ACCOUNT"],
           "default_swift":"FIOBCZPP",
           "contact":{"first_name":"Zbynek",
                      "last_name":"Zak",
                      "email":" test@test.cz ",
                      "phone_number":"+420777456123",
                      "city":"C.Budejovice",
                      "street":"Plana 67",
                      "postal_code":"37301",
                      "country_code":"CZE"
                    }
          },
  "target":{"type":"ACCOUNT",
            "goid":8123456789
          },
  "additional_params":[{"name":"invoicenumber",
                        "value":"2015001003"
                      }],
  "lang":"cs",
  "gw_url":" https://gw.sandbox.gopay.com/gw/v3/bCcvmwTKK5hrJx2aGG8ZnFyBJhAvF"
}  

Response

Název parametru Popis parametru Datový typ
id ID platby long
order_number ID objednávky string, pouze alfanumerické znaky (128 znaků)
state Stav platby string, může nabývat hodnot viz state
amount Částka v haléřích long > 0
currency Měna platby string, může nabývat hodnot viz currency
payer Objekt popisující plátce platby Objekt
target Objekt popisující příjemce platby Objekt
additional_params Doplňkové parametry platby Pole objektů
lang Parametr definuje jazyk platby string, může nabývat hodnot viz lang
gw_url URL pro inicializaci platební brány string

Předautorizovaná platba

Předautorizace umožní při platbě kartou zablokovat po dobu 4 dnů prostředky na účtu zákazníka. Blokované prostředky lze následně strnout pomocí API volání stržení předautorizované platby. Předautorizovanou platbu založíte nastavením parametru preauthorization na true .

Podrobný popis kroků nutných k provedení předautorizované platby naleznete v centru nápovědy.

Request

curl -v -N https://gw.sandbox.gopay.com/api/payments/payment \
-X "POST" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer xzZnu3YnAHRk298EsmyttFQMcbCcvmwTKK5hrJx2aGG8ZnFyBJhAvFWNmbWVSD7p" \
-d '{
    "payer": {
              "contact":{
                           "first_name":"Zbynek",
                           "last_name":"Zak",
                           "email":"test@test.cz",
                           "phone_number":"+420777456123",
                           "city":"C.Budejovice",
                           "street":"Plana 67",
                           "postal_code":"373 01",
                           "country_code":"CZE"
                          }
              },
    "target": {"type":"ACCOUNT",
               "goid":"8123456789"
              },
    "amount":"1000",
    "currency":"CZK",
    "order_number":"001",
    "order_description":"pojisteni01",
    "items":[{"name":"item01","amount":"500"},
             {"name":"item02","amount":"500"}],
    "preauthorization":"true",
    "additional_params":[{"name":"invoicenumber",
                          "value":"2015001003"
                        }],
    "callback":{
                "return_url":"http://www.eshop.cz/return",
                "notification_url":"http://www.eshop.cz/notify"
               }
}'

<?php
use GoPay\Definition\Payment\Currency;
use GoPay\Definition\Payment\PaymentInstrument;
use GoPay\Definition\Payment\BankSwiftCode;

$response = $gopay->createPayment([
    'payer' => [
        'default_payment_instrument' => PaymentInstrument::BANK_ACCOUNT,
        'allowed_payment_instruments' => [PaymentInstrument::BANK_ACCOUNT],
        'default_swift' => BankSwiftCode::FIO_BANKA,
        'allowed_swifts' => [BankSwiftCode::FIO_BANKA, BankSwiftCode::MBANK],
        'contact' => [
            'first_name' => 'Zbynek',
            'last_name' => 'Zak',
            'email' => 'test@test.cz',
            'phone_number' => '+420777456123',
            'city' => 'C.Budejovice',
            'street' => 'Plana 67',
            'postal_code' => '373 01',
            'country_code' => 'CZE',
        ],
    ],
    'amount' => 1000,
    'currency' => Currency::CZECH_CROWNS,
    'order_number' => '001',
    'order_description' => 'pojisteni01',
    'items' => [
        ['name' => 'item01', 'amount' => 50],
        ['name' => 'item02', 'amount' => 100],
    ],
    'preauthorization' => true,
    'additional_params' => [
        array('name' => 'invoicenumber', 'value' => '2015001003')
    ],
    'callback' => [
        'return_url' => 'http://www.your-url.tld/return',
        'notification_url' => 'http://www.your-url.tld/notify'
    ]
]);

from gopay.enums import PaymentInstrument, BankSwiftCode, Currency

response = api.create_payment({
    'payer': {
        'default_payment_instrument': PaymentInstrument.BANK_ACCOUNT,
        'allowed_payment_instruments': [PaymentInstrument.BANK_ACCOUNT],
        'default_swift': BankSwiftCode.FIO_BANKA,
        'allowed_swifts': [BankSwiftCode.FIO_BANKA, BankSwiftCode.MBANK],
        'contact': {
            'first_name': 'Zbynek',
            'last_name': 'Zak',
            'email': 'test@test.cz',
            'phone_number': '+420777456123',
            'city': 'C.Budejovice',
            'street': 'Plana 67',
            'postal_code': '373 01',
            'country_code': 'CZE',
        },
    },
    'amount': 150,
    'currency': Currency.CZECH_CROWNS,
    'order_number': '001',
    'order_description': 'pojisteni01',
    'items': [
        {'name': 'item01', 'amount': 50},
        {'name': 'item02', 'amount': 100},
    ],
    'preauthorization': True,
    'additional_params': [
        {'name': 'invoicenumber', 'value': '2015001003'}
    ],
    'callback': {
        'return_url': 'http://www.your-url.tld/return',
        'notification_url': 'http://www.your-url.tld/notify'
    }
})

PPaymentRequest *payment = [[GPPaymentRequest alloc] init];
payment.amount = 20;
payment.currency = @"CZK";
payment.order_number = @"001";
payment.order_description = @"test";

GPPayer *payer = [[GPPayer alloc] init];
payer.allowed_payment_instruments = @[];
payer.default_payment_instrument = @"PAYMENT_CARD";
payer.contact.first_name = @"Zbynek";
payer.contact.last_name = @"Zak";
payer.contact.email = @"test@gtest.cz";
payer.contact.phone_number = @"+420777456123";
payer.contact.city = @"C.Budejovice";
payer.contact.street = @"Plana 67";
payer.contact.postal_code = @"370 01";
payer.contact.country_code = @"CZE";

payment.payer = payer;

GPTarget *target = [[GPTarget alloc] init];
target.type = PAY_TARGET_ACCOUNT;
target.goid = @"8035442195";

payment.target = target;

payment.preauthorization = true

[GPAPI sharedAPI] createPayment:payment withHandleSuccess:^(GPPayment *payment) {

} failure:^(NSError *error) {
}];

BasePayment payment = PaymentFactory.createBasePaymentBuilder()
    .order(<ORDER_NUMBER>, <AMOUNT>, <CURRENCY>, <DESCRIPTION>)
    .addItem(<ITEM_NAME>, <AMOUNT>, <FEE>, <COUNT>)
    .addAdditionalParameter(<Key>, <VALUE>)
    .withCallback(<RETURN_URL>, <NOTIFY_URL>)
    .payer(<Payer>)
    .inLang(Lang.EN)
    .toEshop(<GO_ID>)
    .preauthorize()
    .build();
try {
    Payment result = connector.createPayment(payment);
} catch (GPClientException e) {
     for (ErrorElement err : e.getError().getErrorMessages()) {
        int code = err.getErrorCode();
        String message = err.getMessage();
        String field = err.getField();
    }
}

Payment payment = PaymentFactory.createPaymentBuilder().preauthorize()...
try {
    connector.createPayment(payment);
} catch (GPClientException ex) {
    //
}

var payment = new BasePayment() 
    {
        PreAuthorize = true,
        ...
    };

try {
    connector.CreatePayment(payment);
} catch (GPClientException ex) {
//
}

Request

POST /api/payments/payment

Hlavička požadavku

Název parametru Popis parametru Povinný
Accept application/json ANO
Content-Type application/json ANO
Authorization Bearer <access-token> ANO

Tělo požadavku

Název parametru Popis parametru Povinný Datový typ
payer Objekt popisující plátce platby NE Objekt
target Objekt popisující příjemce platby ANO Objekt
amount Částka v haléřích ANO long > 0
currency Určuje měnu platby, formát měny odpovídá ISO 4217 ANO string, může nabývat hodnot viz currency
order_number Identifikace objednávky v rámci prodejního místa ANO string, pouze alfanumerické znaky (128 znaků)
order_description Popis objednávky NE string, pouze alfanumerické znaky (256 znaků)
items Detailně rozepsané jednotlivé položky objednávky ANO Pole objektů
preauthorization Aktivace předautorizované platby NE bool
additional_params Doplňkové parametry platby NE Pole objektů
callback Návratové URL a notifikační URL pro oznámení změny stavu platby ANO Objekt

Response

<?php
if ($response->hasSucceed()) {
    $url = $response->json['gw_url'];
    echo $response;
}

if response.has_succeed():
    url = response.json['gw_url']
    print(response)
{
  "id":3000006542,
  "order_number":"001",
  "state":"CREATED",
  "amount":1000,"currency":"CZK",
  "payer":{
           "contact":{"first_name":"Zbynek",
                      "last_name":"Zak",
                      "email":" test@test.cz ",
                      "phone_number":"+420777456123",
                      "city":"C.Budejovice",
                      "street":"Plana 67",
                      "postal_code":"37301",
                      "country_code":"CZE"
                    }
          },
  "target":{"type":"ACCOUNT",
            "goid":8123456789
          },
  "preauthorization":{"requested":true,
                      "state":"REQUESTED"
                    },
  "additional_params":[{"name":"invoicenumber",
                        "value":"2015001003"
                      }],
  "lang":"cs",
  "gw_url":" https://gw.sandbox.gopay.com/gw/v3/bCcvmwTKK5hrJx2aGG8ZnFyBJhAvF "
}

Response

Název parametru Popis parametru Datový typ
id ID platby long
order_number ID objednávky string, pouze alfanumerické znaky (128 znaků)
state Stav platby string, může nabývat hodnot viz state
amount Částka v haléřích long > 0
payer Objekt popisující plátce platby Objekt
target Objekt popisující příjemce platby Objekt
preauthorization Objekt popisující předautorizaci Objekt
additional_params Volitelné parametry platby Pole objektů
lang Jazyk platby string, může nabývat hodnot viz lang
gw_url URL pro inicializaci platební brány string

Opakovaná platba

Opakovaná platba je funkcionalita, která umožňuje přijímat platby kartou od zákazníka na pravidelné bázi. Založení opakované platby je rozšířeno o parametr recurrence. Po úspěšném založení inicializační platby jsou platby prováděny automatizovaně, např. s denní periodou DAY nebo na vyžádání ON_DEMAND.

Podrobný popis kroků nutných k provedení opakované platby naleznete v centru nápovědy.

V případě platby na vyžádání je následná platba provedena API voláním opakování platby

Request

curl -v -N https://gw.sandbox.gopay.com/api/payments/payment \
-X "POST" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer xzZnu3YnAHRk298EsmyttFQMcbCcvmwTKK5hrJx2aGG8ZnFyBJhAvFWNmbWVSD7p" \
-d '{
      "payer": {
        "contact":{"first_name":"Zbynek",
                   "last_name":"Zak",
                   "email":"test@test.cz",
                   "phone_number":"+420777456123",
                   "city":"C.Budejovice",
                   "street":"Plana 67",
                   "postal_code":"373 01",
                   "country_code":"CZE"
                  }
      },
      "target":{"type":"ACCOUNT",
                 "goid":"8123456789"
               },
      "amount":"1000",
      "currency":"CZK",
      "order_number":"001",
      "order_description":"pojisteni01",
      "items":[{"name":"item01","amount":"500"},
               {"name":"item02","amount":"500"}
              ],
      "recurrence":{"recurrence_cycle":"DAY",
                    "recurrence_period":"7",
                    "recurrence_date_to":"2015-12-31"},
      "additional_params":[{"name":"invoicenumber",
                            "value":"2015001003"
                          }],
      "callback":{
                  "return_url":"http://www.eshop.cz/return",
                  "notification_url":"http://www.eshop.cz/notify"
                 }
}'

<?php
use GoPay\Definition\Payment\Currency;
use GoPay\Definition\Payment\PaymentInstrument;
use GoPay\Definition\Payment\BankSwiftCode;
use GoPay\Definition\Payment\Recurrence;

$response = $gopay->createPayment([
    'payer' => [
        'default_payment_instrument' => PaymentInstrument::BANK_ACCOUNT,
        'allowed_payment_instruments' => [PaymentInstrument::BANK_ACCOUNT],
        'default_swift' => BankSwiftCode::FIO_BANKA,
        'allowed_swifts' => [BankSwiftCode::FIO_BANKA, BankSwiftCode::MBANK],
        'contact' => [
            'first_name' => 'Zbynek',
            'last_name' => 'Zak',
            'email' => 'test@test.cz',
            'phone_number' => '+420777456123',
            'city' => 'C.Budejovice',
            'street' => 'Plana 67',
            'postal_code' => '373 01',
            'country_code' => 'CZE',
        ],
    ],
    'amount' => 1000,
    'currency' => Currency::CZECH_CROWNS,
    'order_number' => '001',
    'order_description' => 'pojisteni01',
    'items' => [
        ['name' => 'item01', 'amount' => 50],
        ['name' => 'item02', 'amount' => 100],
    ],
    'recurrence' => [
        'recurrence_cycle' => Recurrence::DAILY,
        'recurrence_period' => "7",
        'recurrence_date_to' => '2015-12-31'
    ],
    'additional_params' => [
        array('name' => 'invoicenumber', 'value' => '2015001003')
    ],
    'callback' => [
        'return_url' => 'http://www.your-url.tld/return',
        'notification_url' => 'http://www.your-url.tld/notify'
    ]
]);

from gopay.enums import PaymentInstrument, BankSwiftCode, Currency, Recurrence

response = api.create_payment({
    'payer': {
        'default_payment_instrument': PaymentInstrument.BANK_ACCOUNT,
        'allowed_payment_instruments': [PaymentInstrument.BANK_ACCOUNT],
        'default_swift': BankSwiftCode.FIO_BANKA,
        'allowed_swifts': [BankSwiftCode.FIO_BANKA, BankSwiftCode.MBANK],
        'contact': {
            'first_name': 'Zbynek',
            'last_name': 'Zak',
            'email': 'test@test.cz',
            'phone_number': '+420777456123',
            'city': 'C.Budejovice',
            'street': 'Plana 67',
            'postal_code': '373 01',
            'country_code': 'CZE',
        },
    },
    'amount': 150,
    'currency': Currency.CZECH_CROWNS,
    'order_number': '001',
    'order_description': 'pojisteni01',
    'items': [
        {'name': 'item01', 'amount': 50},
        {'name': 'item02', 'amount': 100},
    ],
    'recurrence': {
        'recurrence_cycle': Recurrence.DAILY,
        'recurrence_period': "7",
        'recurrence_date_to': '2015-12-31'
    },
    'additional_params': [
        {'name': 'invoicenumber', 'value': '2015001003'}
    ],
    'callback': {
        'return_url': 'http://www.your-url.tld/return',
        'notification_url': 'http://www.your-url.tld/notify'
    }
})

GPPaymentRequest *payment = [[GPPaymentRequest alloc] init];
payment.amount = 20;
payment.currency = @"CZK";
payment.order_number = @"001";
payment.order_description = @"test";

GPPayer *payer = [[GPPayer alloc] init];
payer.allowed_payment_instruments = @[];
payer.default_payment_instrument = @"PAYMENT_CARD";
payer.contact.first_name = @"Zbynek";
payer.contact.last_name = @"Zak";
payer.contact.email = @"test@test.cz";
payer.contact.phone_number = @"+420777456123";
payer.contact.city = @"C.Budejovice";
payer.contact.street = @"Plana 67";
payer.contact.postal_code = @"370 01";
payer.contact.country_code = @"CZE";

payment.payer = payer;

GPTarget *target = [[GPTarget alloc] init];
target.type = PAY_TARGET_ACCOUNT;
target.goid = @"8035442195";

payment.target = target;

payment.recurrence = [[PaymentRecurrence alloc] init];
payment.recurrence.recurrence_cycle = RECCURENCE_CYCLE_DAY;
payment.recurrence.recurrence_period = 7;
payment.recurrence.recurrence_date_to = @"2015-12-31";

[GPAPI sharedAPI] createPayment:payment withHandleSuccess:^(GPPayment *payment) {

} failure:^(NSError *error) {

}];

BasePayment payment = PaymentFactory.createBasePaymentBuilder()
    .order(<ORDER_NUMBER>, <AMOUNT>, Currency.EUR, <DESCRIPTION>)
    .addItem(<ITEM_NAME>, <AMOUNT>, <FEE>, <COUNT>)
    .addAdditionalParameter(<Key>, <VALUE>)
    .withCallback(<RETURN_URL>, <NOTIFY_URL>)
    .payer(<Payer>)
    .inLang(Lang.EN)
    .toEshop(<GO_ID>)
    .build();

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2016);
calendar.set(Calendar.MONTH, 2);
calendar.set(Calendar.DAY_OF_MONTH, 1);
Recurrence r = Recurrence.build(calendar.getTime())
    .withTimeInterval(RecurrenceCycle.WEEK, 1)
    .inState(Recurrence.RecurrenceState.STARTED);

payment.setRecurrence(r);

try {
    connector.createPayment(payment);
} catch {GPClientException e) {
     for (ErrorElement err : e.getError().getErrorMessages()) {
        int code = err.getErrorCode();
        String message = err.getMessage();
        String field = err.getField();
    }
}

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2016);
calendar.set(Calendar.MONTH, 2);
calendar.set(Calendar.DAY_OF_MONTH, 1);
Recurrence r = Recurrence.build(calendar.getTime())
  .withTimeInterval(RecurrenceCycle.WEEK, 1)
  .inState(Recurrence.RecurrenceState.STARTED);
payment.setRecurrence(r);

try {
  connector.createPayment(payment);
} catch {GPClientException e) {
  //
}

var recurrence = new Recurrence() 
{
Cycle = RecurrenceCycle.DAY,
DateTo = new DateTime(2020, 12, 12),
Period = 5
};
var payment = new BasePayment();
payment.Recurrence = recurrence;

try {
  connector.CreatePayment(payment);
} catch {GPClientException e) {
//
}

Request

POST /api/payments/payment

Hlavička požadavku

Název parametru Popis parametru Povinný
Accept application/json ANO
Content-Type application/json ANO
Authorization Bearer <access-token> ANO

Tělo požadavku

Název parametru Popis parametru Povinný Datový typ
payer Objekt popisující plátce platby NE Objekt
target Objekt popisující příjemce platby ANO Objekt
amount Částka v haléřích ANO long > 0
currency Určuje měnu platby, formát měny odpovídá ISO 4217 ANO string, může nabývat hodnot viz currency
order_number Identifikace objednávky v rámci prodejního místa ANO string, pouze alfanumerické znaky (128 znaků)
order_description Popis objednávky NE string, pouze alfanumerické znaky (256 znaků)
items Detailně rozepsané jednotlivé položky objednávky ANO Pole objektů
recurrence Objekt popisující opakovanou platbu NE Objekt
additional_params Doplňkové parametry platby NE Pole objektů
callback Návratové URL a notifikační URL pro oznámení změny stavu platby ANO Objekt

Response

<?php
if ($response->hasSucceed()) {
    $url = $response->json['gw_url'];
    echo $response;
}

if response.has_succeed():
    url = response.json['gw_url']
    print(response)
{
  "id":3000006542,
  "order_number":"001",
  "state":"CREATED",
  "amount":1000,"currency":"CZK",
  "payer":{
           "contact":{"first_name":"Zbynek",
                      "last_name":"Zak",
                      "email":" test@test.cz",
                      "phone_number":"+420777456123",
                      "city":"C.Budejovice",
                      "street":"Plana 67",
                      "postal_code":"37301",
                      "country_code":"CZE"
                    }
          },
    "target":{"type":"ACCOUNT","goid":8123456789},
    "recurrence":{"recurrence_cycle":"DAY",
                  "recurrence_period":7,
                  "recurrence_date_to":"2015-12-31",
                  "recurrence_state":"REQUESTED"
                },
    "additional_params":[{"name":"invoicenumber",
                          "value":"2015001003"
                        }],
    "lang":"cs",
    "gw_url":" https://gw.sandbox.gopay.com/gw/v3/bCcvmwTKK5hrJx2aGG8ZnFyBJhAvF "
}

Response

Název parametru Popis parametru Datový typ
id ID platby long
order_number ID objednávky string, pouze alfanumerické znaky (128 znaků)
state Stav platby Objekt
amount Částka v haléřích long > 0
payer Objekt popisující plátce platby Objekt
target Objekt popisující příjemce platby Objekt
recurrence Objekt popisující opakovanou platbu Objekt
additional_params Volitelné parametry platby Pole objektů
lang Parametr popisující jazyk platby string, může nabývat hodnot viz lang
gw_url URL pro inicializaci platební brány string

Vyvolání platební brány

Pro vyvolání platební brány je možné použít HTML formulář, který pomocí javascriptu provede inicializaci platební brány.

Inline varianta

Formulář pro vyvolání inline platební brány

<form action="https://gw.sandbox.gopay.com/gw/v3/dfgvmwTKK5hrJx2aGG8ZnFyBJhAvF" method="post" id="gopay-payment-button">
  <button name="pay" type="submit">Zaplatit</button>
  <script type="text/javascript" src="https://gw.sandbox.gopay.com/gp-gw/js/embed.js"></script>
</form>

<form action="https://gw.sandbox.gopay.com/gw/v3/dfgvmwTKK5hrJx2aGG8ZnFyBJhAvF" method="post" id="gopay-payment-button">
  <button name="pay" type="submit">Zaplatit</button>
  <script type="text/javascript" src="https://gw.sandbox.gopay.com/gp-gw/js/embed.js"></script>
</form>

<form action="https://gw.sandbox.gopay.com/gw/v3/dfgvmwTKK5hrJx2aGG8ZnFyBJhAvF" method="post" id="gopay-payment-button">
  <button name="pay" type="submit">Zaplatit</button>
  <script type="text/javascript" src="https://gw.sandbox.gopay.com/gp-gw/js/embed.js"></script>
</form>

#import <GPAPIWebView.h>

GPAPIWebView *webView = [[GPAPIWebView alloc] init];
webView.openInSafariUrls = [[GPAPI sharedAPI] bankURLs];
webView.url = payment.gw_url; // z vytvorene platby ziskame url brany, kterou otevreme v GPAPIWebView

webView.webViewDidDone = ^(long long paymentID) {
[self dismissViewControllerAnimated:YES completion:nil];
};

webView.webViewCanceled = ^{
[self dismissViewControllerAnimated:YES completion:nil];
};

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:webView];
navController.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentViewController:navController animated:YES completion:nil]; // otevreme GPAPIWebView jako modal view

<form action="https://gw.sandbox.gopay.com/gw/v3/dfgvmwTKK5hrJx2aGG8ZnFyBJhAvF" method="post" id="gopay-payment-button">
  <button name="pay" type="submit">Zaplatit</button>
  <script type="text/javascript" src="https://gw.sandbox.gopay.com/gp-gw/js/embed.js"></script>
</form>

<form action="https://gw.sandbox.gopay.com/gw/v3/dfgvmwTKK5hrJx2aGG8ZnFyBJhAvF" method="post" id="gopay-payment-button">
  <button name="pay" type="submit">Zaplatit</button>
  <script type="text/javascript" src="https://gw.sandbox.gopay.com/gp-gw/js/embed.js"></script>
</form>

<form action="https://gw.sandbox.gopay.com/gw/v3/dfgvmwTKK5hrJx2aGG8ZnFyBJhAvF" method="post" id="gopay-payment-button">
  <button name="pay" type="submit">Zaplatit</button>
  <script type="text/javascript" src="https://gw.sandbox.gopay.com/gp-gw/js/embed.js"></script>
</form>

Inline platební brána je vyvolána přímo nad portálem obchodníka, nedochází tedy k přesměrování.

URL (action) formuláře nastavte dle gw_url z vytvoření platby.

Parametr formuláře Popis Povinný
action gw_url založené platby ANO
method HTTP metoda ANO
id id formuláře ANO

Redirect varianta

Formulář pro přesměrování na Redirect platební bránu

<form action="https://gw.sandbox.gopay.com/gw/v3/dfgvmwTKK5hrJx2aGG8ZnFyBJhAvF" method="post">
  <button name="pay" type="submit">Zaplatit</button>
</form>

<form action="https://gw.sandbox.gopay.com/gw/v3/dfgvmwTKK5hrJx2aGG8ZnFyBJhAvF" method="post">
  <button name="pay" type="submit">Zaplatit</button>
</form>

<form action="https://gw.sandbox.gopay.com/gw/v3/dfgvmwTKK5hrJx2aGG8ZnFyBJhAvF" method="post">
  <button name="pay" type="submit">Zaplatit</button>
</form>

#import <GPAPIWebView.h>

GPAPIWebView *webView = [[GPAPIWebView alloc] init];
webView.openInSafariUrls = [[GPAPI sharedAPI] bankURLs];
webView.url = payment.gw_url; // z vytvorene platby ziskame url brany, kterou otevreme v GPAPIWebView

webView.webViewDidDone = ^(long long paymentID) {
[self dismissViewControllerAnimated:YES completion:nil];
};

webView.webViewCanceled = ^{
[self dismissViewControllerAnimated:YES completion:nil];
};

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:webView];
navController.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentViewController:navController animated:YES completion:nil]; // otevreme GPAPIWebView jako modal view

<form action="https://gw.sandbox.gopay.com/gw/v3/dfgvmwTKK5hrJx2aGG8ZnFyBJhAvF" method="post">
  <button name="pay" type="submit">Zaplatit</button>
</form>

<form action="https://gw.sandbox.gopay.com/gw/v3/dfgvmwTKK5hrJx2aGG8ZnFyBJhAvF" method="post">
  <button name="pay" type="submit">Zaplatit</button>
</form>

<form action="https://gw.sandbox.gopay.com/gw/v3/dfgvmwTKK5hrJx2aGG8ZnFyBJhAvF" method="post">
  <button name="pay" type="submit">Zaplatit</button>
</form>

Platební bránu lze provozovat i ve variantě s přesměrováním. Lze použít formulář viz níže nebo provést přesměrování na URL předané při vytvoření platby gw_url.

Parametr formuláře Popis Povinný
action gw_url založené platby ANO
method HTTP metoda ANO

Další platební operace

Stav platby

Funkcionalita stav platby umožní prodejnímu místu zjistit jaký je aktuální stav dříve vytvořené platby. Standardně je stav platby dotazován po doručení notifikace o změně stavu platby.

Podrobnější informace k dotazu na stav platby naleznete v našem centru nápovědy.

Request

curl -v -N https://gw.sandbox.gopay.com/api/payments/payment/3000006529 \
-X "GET" \
-H "Accept: application/json" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969"

<?php
$response = $gopay->getStatus(3000006529);

response = api.get_status(3000006529)

[[GPAPI sharedAPI] getPaymentWithID:paymentID withHandleSuccess:^(GPPayment *payment) {    
NSLog(@"payment state: %@", [payment userReadableState]);
} failure:^(NSError *error) {  
    NSLog(@"error: %@", error);
}];

try {
    Payment payment = connector.paymentStatus(<PAYMENT_ID>);
} catch (GPClientException e) {
     for (ErrorElement err : e.getError().getErrorMessages()) {
        int code = err.getErrorCode();
        String message = err.getMessage();
        String field = err.getField();
    }            
}

try {
    Payment payment = connector.paymentStatus(<PAYMENT_ID>);
} catch (GPClientException e) {
  //
}

try {
  var payment = connector.PaymentStatus(<PAYMENT_ID>);
} catch (GPClientException e) {
//
}

Request

GET /api/payments/payment/{id}

Hlavička požadavku

Název parametru Popis parametru Povinný
Accept application/json ANO
Content-Type application/x-www-form-urlencoded ANO
Authorization Bearer <access-token> ANO

Response.

<?php
if ($response->hasSucceed()) {
    echo $response;
}

if response.has_succeed():
    print(response)
{
  "id":3000006529,
  "order_number":"001",
  "state":"PAID",
  "sub_state":"_3002",
  "amount":1000,
  "currency":"CZK",
  "payment_instrument":"BANK_ACCOUNT",
  "payer":{
           "default_payment_instrument":"BANK_ACCOUNT",
           "allowed_payment_instruments":["BANK_ACCOUNT"],
           "default_swift":"FIOBCZPP",
           "bank_account":{
                      "prefix":"670100",
                      "account_number":"7654322",
                      "bank_code":"0100",
                      "account_name":"JAN NOVAK"
                      },
           "contact":{"first_name":"Zbynek",
                      "last_name":"Zak",
                      "email":" test@test.cz ",
                      "phone_number":"+420777456123",
                      "city":"C.Budejovice",
                      "street":"Plana 67",
                      "postal_code":"37301",
                      "country_code":"CZE"
                     }
          },
  "target":{"type":"ACCOUNT",
            "goid":8123456789
          },
  "additional_params":[{"name":"invoicenumber",
                        "value":"2015001003"
                      }],
  "lang":"cs",
  "gw_url":" https://gw.sandbox.gopay.com/gw/v3/bCcvmwTKK5hrJx2aGG8ZnFyBJhAvF"
}  

Response

Název parametru Popis parametru Datový typ
id ID platby long
order_number Identifikace objednávky v rámci prodejního místa string, pouze alfanumerické znaky (128 znaků)
state Stav platby string, nabývající hodnot viz state
sub_state Podstav platby string, nabývající hodnot viz sub_state
amount Částka v haléřích long > 0
currency Měna platby string, nabývající hodnot viz currency
payment_instrument Kód zvolené platební metody string, nabývající hodnot viz payment_instrument
payer Objekt popisující plátce platby Objekt
target Objekt popisující příjemce platby Objekt
recurrence Objekt popisující opakovanou platbu Objekt
additional_params Volitelné parametry platby Pole objektů
lang Jazyk platby string, nabývající hodnot viz lang
gw_url URL pro inicializaci platební brány string

Refundace platby (storno)

Refundace platby umožňuje navrácení finančních prostředků za již provedenou platbu zpět zákazníkovi.

Refundace lze provádět dvěma způsoby. Plná refundace platby umožňuje na základě parametru amount vrácení celé částky, zatímco částečná refundace specifikuje částku pro vrácení.

Doplňující informace k refundaci plateb naleznete v našem centru nápovědy.

Request

curl -v -N https://gw.sandbox.gopay.com/api/payments/payment/3000006620/refund \
-X "POST" \
-H "Accept: application/json" \
-H "Content-Type:application/x-www-form-urlencoded" \
-H "Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969" \
-d "amount=1000"

<?php
$response = $gopay->refundPayment(3000006620, 1000);

response = api.refund_payment(3000006620, 1000)

[[GPAPI sharedAPI] refundPaymentWithID:3000006620 amount:10000 withHandleSuccess:^(GPAPIResult result) {
} failure:^(NSError *error) {

}];

try {
    PaymentResult result = connector.refundPayment(<PAYMENT_ID>, <AMOUNT>);
} catch (GPClientException e) {
     for (ErrorElement err : e.getError().getErrorMessages()) {
        int code = err.getErrorCode();
        String message = err.getMessage();
        String field = err.getField();
    }              
}

try {
    PaymentResult result = connector.refundPayment(<PAYMENT_ID>, <AMOUNT>);
} catch (GPClientException e) {
    //
}

try {
    var result = connector.RefundPayment(<PAYMENT_ID>, <AMOUNT>);
} catch (GPClientException e) {
//
}

Request

POST /api/payments/payment/{id}/refund

Hlavička požadavku

Název parametru Popis parametru Povinný
Accept application/json ANO
Content-Type application/x-www-form-urlencoded ANO
Authorization Bearer <access-token> ANO

Tělo požadavku

Název parametru Popis parametru Povinný Datový typ
amount Refundovaná částka ANO long > 0

Response

<?php
if ($response->hasSucceed()) {
    echo $response;
}

if response.has_succeed():
    print(response)
{
 "id":3000006620,
 "result":"FINISHED"
}

Response

Název parametru Popis parametru Datový typ
id ID platby long
result Stav požadavku Objekt

Opakování platby (na vyžádání)

Pomocí požadavku je možné opakovat platbu na základě dříve založené opakované platby v režimu ON_DEMAND. Opakováním v tomto režimu je založena následná platba v libovolné částce. O provedení platby je prodejní místo informováno formou notifikace o změně stavu platby.

Podrobné informace k provádění opakovaných plateb naleznete v našem centru nápovědy.

Request

curl -v -N https://gw.sandbox.gopay.com/api/payments/payment/3000006542/create-recurrence \
-X "POST" \
-H "Accept: application/json" \
-H "Content-Type:application/json" \
-H "Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969" \
-d'{
    "amount":"500",
    "currency":"CZK",
    "order_number":"002",
    "order_description":"pojisteni02",
    "items":[{"name":"item01","amount":"500"}],
    "additional_params":[{
                          "name":"invoicenumber",
                          "value":"2015001004"
                        }]
}'

<?php
$response = $gopay->createRecurrence(
    3000006542,
    [
        'amount' => '500',
        'currency' => 'CZK',
        'order_number' => '002',
        'order_description' => 'pojisteni02',
        'items' => [
            ['name' => 'item01', 'amount' => '500']
        ],
        'additional_params' => [
            ['name' => 'invoicenumber', 'value' => '2015001004']
        ]
    ]
);

response = api.create_recurrence(
    3000006542,
    {
        'amount': '500',
        'currency': 'CZK',
        'order_number': '002',
        'order_description': 'pojisteni02',
        'items': {
            {'name': 'item01', 'amount': '500'}
        },
        'additional_params': {
            {'name': 'invoicenumber', 'value': '2015001004'}
        }
    }
)

GPCreateNextPayment *createNextPayment = [[GPCreateNextPayment alloc] init];
createNextPayment.amount = 500;
createNextPayment.currency = @"CZK";
createNextPayment.order_number = @"002";
createNextPayment.order_description = @"pojisteni02";
createNextPayment.items = @[[[GPItem alloc] initWithName:@"item01" amount:500]];

[[GPAPI sharedAPI] createRecurrence:createNextPayment forPaymentWithID:3000006542 withHandleSuccess:^(GPPayment *payment) {

} failure:^(NSError *error) {

}]; 

try {
  NextPaymentBuilder builder = PaymentFactory.createNextPaymentBuilder();
  ...
  PaymentResult recurrentPayment = connector.createRecurrentPayment(<ID>, builder.build());
} catch (GPClientException ex) {
  //
}

try {
  NextPaymentBuilder builder = PaymentFactory.createNextPaymentBuilder();
  ...
  PaymentResult recurrentPayment = connector.createRecurrentPayment(<ID>, builder.build());
} catch (GPClientException ex) {
  //
}

var nextPayment = new NextPayment()
  {
    Amount = <Amount>,
    Currency = <Currency>,
    OrderNumber = <OrderNumber>,
    OrderDescription = <OrderDescription>
  };
try
  {
    connector.CreateRecurrentPayment(<IdOfPaidOnDemandPayment>, nextPayment)
  }
    catch (GPClientExcepetion exception)
  {
    //
  }

Request

POST /api/payments/payment/{id}/create-recurrence

Hlavička požadavku

Název parametru Popis parametru Povinný
Accept application/json ANO
Content-Type application/json ANO
Authorization Bearer <access-token> ANO

Tělo požadavku

Název parametru Popis parametru Povinný Datový typ
amount Částka ANO long > 0
currency Určuje měnu platby, formát měny odpovídá ISO 4217 ANO string, nabývající hodnot viz currency
order_number ID objednávky Identifikace objednávky v rámci prodejního místa string, pouze alfanumerické znaky (128 znaků)
order_description Popis objednávky ANO string, pouze alfanumerické znaky (256 znaků)
items Detailně rozepsané jednotlivé položky objednávky ANO Objekt
additional_params Doplňkové parametry platby NE Objekt

Response

<?php
if ($response->hasSucceed()) {
    echo $response;
}

if response.has_succeed():
    print(response)
{
 "id":3000006621,
 "parent_id":3000006542,
 "order_number":"002",
 "state":"CREATED",
 "amount":1000,
 "currency":"CZK",
 "payment_instrument":"PAYMENT_CARD",
 "payer": {
           "contact":{"first_name":"Zbynek",
                      "last_name":"Zak",
                      "email":" test@test.cz",
                      "phone_number":"+420777456123",
                      "city":"C.Budejovice",
                      "street":"Plana 67",
                      "postal_code":"37301",
                      "country_code":"CZE"
            }
  },
 "target":{"type":"ACCOUNT",
           "goid":8123456789
          },
 "additional_params":[{"name":"invoicenumber","value":"2015001004"}],
 "lang":"cs",
 "gw_url":"https://gw.sandbox.gopay.com/gw/v3/bCcvmwTKK5hrJx2aGG8ZnFyBJhAvF"
}

Response

Název parametru Popis parametru Datový typ
id ID platby long
parent_id ID zakládající platby long
order_number ID objednávky string, pouze alfanumerické znaky (128 znaků)
state Stav platby Objekt
amount Částka v haléřích long > 0
currency Určuje měnu platby, formát měny odpovídá ISO 4217 string, nabývající hodnot viz currency
payment_instrument Kód zvolené platební metody string, nabývající hodnot viz payment_instrument
payer Objekt popisující plátce platby Objekt
target Objekt popisující příjemce platby Objekt
additional_params Volitelné parametry platby Pole objektů
lang Jazyk platby string, nabývající hodnot viz lang
gw_url URL pro inicializaci platební brány string

Zrušení opakování platby

Umožňuje zrušit opakování dříve vytvořené platby. Uživatel má stejnou možnost v přihlášeném GoPay účtu.

Podrobné informace k provádění opakovaných plateb naleznete v našem centru nápovědy.

Request

curl -v -N https://gw.sandbox.gopay.com/api/payments/payment/3000006542/void-recurrence \
-X "POST" \
-H "Accept: application/json" \
-H "Content-Type:application/x-www-form-urlencoded" \
-H "Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969"

<?php
$response = $gopay->voidRecurrence(3000006542);

response = api.void_recurrence(3000006529)

[[GPAPI sharedAPI] voidRecurrenceForPaymentWithID:3000139597 withHandleSuccess:^(GPAPIResult result) {

} failure:^(NSError *error) {

}];

try {
    PaymentResult voidRecurrency = connector.voidRecurrency(<ID>);
} catch (GPClientException ex) {
      for (ErrorElement err : e.getError().getErrorMessages()) {
        int code = err.getErrorCode();
        String message = err.getMessage();
        String field = err.getField();
    }           
}

try {
    PaymentResult voidRecurrency = connector.voidRecurrency(<ID>);
} catch (GPClientException ex) {
    //
}

try {
    var voidRecurrency = connector.VoidRecurrency(<ID>);
} catch (GPClientException ex) {
//
}

Request

POST /api/payments/payment/{id}/void-recurrence

Hlavička požadavku

Název parametru Popis parametru Povinný
Accept application/json ANO
Content-Type application/x-www-form-urlencoded ANO
Authorization Bearer <access-token> ANO

Response

<?php
if ($response->hasSucceed()) {
    echo $response;
}

if response.has_succeed():
    print(response)
{
 "id":3000006542,
 "result":"FINISHED"
}

Response

Název parametru Popis parametru Datový typ
id ID platby long
result Objekt popisující stav požadavku Objekt

Zrušení předautorizace platby

Provede zrušení předautorizaci dříve vytvořené platby.

Podrobné informace k předautorizovaným platbám naleznete v centru nápovědy.

Request

curl -v -N https://gw.sandbox.gopay.com/api/payments/payment/3000006542/void-authorization \
-X "POST" \
-H "Accept: application/json" \
-H "Content-Type:application/x-www-form-urlencoded" \
-H "Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969"

<?php
$response = $gopay->voidAuthorization(3000006542);

response = api.void_authorization(3000006542)

[[GPAPI sharedAPI] voidAuthorizationForPaymentWithID:3000006542 withHandleSuccess:^(GPAPIResult result) {

} failure:^(NSError *error) {

}];

try {
    PaymentResult voidAuthorization = connector.voidAuthorization(<ID>);
} catch (GPClientException ex) {
     for (ErrorElement err : e.getError().getErrorMessages()) {
        int code = err.getErrorCode();
        String message = err.getMessage();
        String field = err.getField();
    }           
}

try {
    PaymentResult voidAuthorization = connector.voidAuthorization(<ID>);
} catch (GPClientException ex) {
    //
}

try {
    var result = connector.VoidAuthorization(<ID>);
} catch (GPClientException ex) {
//
}

Request

POST /api/payments/payment/{id}/void-authorization

Hlavička požadavku

Název parametru Popis parametru Povinný
Accept application/json ANO
Content-Type application/x-www-form-urlencoded ANO
Authorization Bearer <access-token> ANO

Response

<?php
if ($response->hasSucceed()) {
    echo $response;
}

if response.has_succeed():
    print(response)
{
 "id":3000006542,
 "result":"FINISHED"
}

Response

Název parametru Popis parametru Datový typ
id ID platby long
result Objekt popisující stav požadavku long

Stržení předautorizované platby

Pomocí volání je možné strhnout předautorizaci finančních prostředků dříve vytvořené předautorizované platby.

Podrobné informace k předautorizovaným platbám naleznete v centru nápovědy.

Request

curl -v -N https://gw.sandbox.gopay.com/api/payments/payment/3000006542/capture \
-X "POST" \
-H "Accept: application/json" \
-H "Content-Type:application/x-www-form-urlencoded" \
-H "Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969"

<?php
$response = $gopay->captureAuthorization(3000006542);

response = api.capture_authorization(3000006542)

[[GPAPI sharedAPI] capturePaymentWithID:3000006542 withHandleSuccess:^(GPAPIResult result) {

} failure:^(NSError *error) {

}];

try {
    PaymentResult capture = connector.capturePayment(<ID>);
} catch (GPClientException ex) {
    //
}

try {
    PaymentResult capture = connector.capturePayment(<ID>);
} catch (GPClientException ex) {
    //
}

try {
    var capture = connector.CapturePayment(<ID>);
} catch (GPClientException ex) {
//
}    

Request

POST /api/payments/payment/{id}/capture

Hlavička požadavku

Název parametru Popis parametru Povinný
Accept application/json ANO
Content-Type application/x-www-form-urlencoded ANO
Authorization Bearer <access-token> ANO

Response

<?php
if ($response->hasSucceed()) {
    echo $response;
}

if response.has_succeed():
    print(response)
{ 
 "id":3000006542,
 "result":"FINISHED"
}

Response

Název parametru Popis parametru Datový typ
id ID platby long
result Objekt popisující stav požadavku Objekt

Získání seznamu povolených platebních metod

Metoda vrarcí JSON strukturu všech povolených platebních metod na eshopovém profilu. V URL požadavku je nutné předat GoID dotazovaného eshopu a kód měny.

Request

curl -v -N https://gw.sandbox.gopay.com/api/eshops/eshop/8123456789/payment-instruments/CZK \
-X "GET" \
-H "Accept: application/json" \
-H "Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969"

REQUEST

GET /api/eshops/eshop/{GoID}/payment-instruments/{currency}

HLAVIČKA POŽADAVKU

Název parametru Popis parametru Povinný
Accept application/json ANO
Authorization Bearer ANO

Response

{
"groups":{
    "card-payment":{
        "label":{
            "cs":"Platební karta"}
        },
    "bank-transfer":{
        "label":{
            "cs":"Rychlý bankovní převod"}
        },
    "wallet":{
        "label":{
            "cs":"Elektronické peněženky"}
        },
    "others":{
        "label":{
            "cs":"Ostatní"}
        }
    },
"enabledPaymentInstruments":[{
    "paymentInstrument":"PAYMENT_CARD",
        "label":{
            "cs":"Platební karta"
        },
        "image":{
            "normal":"https://gate.gopay.cz/images/checkout/payment_card.png",
            "large":"https://gate.gopay.cz/images/checkout/payment_card@2x.png"},
        "group":"card-payment",
        "enabledSwifts":null
        },
    {"paymentInstrument":"BANK_ACCOUNT",
        "label":{
            "cs":"Rychlý bankovní převod"},
        "image":{
            "normal":"https://gate.gopay.cz/images/checkout/bank_account.png",
            "large":"https://gate.gopay.cz/images/checkout/bank_account@2x.png"},
        "group":"bank-transfer",
        "enabledSwifts":[{
            "swift":"GIBACZPX",
                "label":{"cs":"Platba 24"},
                "image":{
                    "normal":"https://gate.gopay.cz/images/checkout/GIBACZPX.png",
                    "large":"https://gate.gopay.cz/images/checkout/GIBACZPX@2x.png"},
                "isOnline":true},
    ...]},
]}

RESPONSE

Název parametru Popis parametru
groups Definice skupin platebních metod
enabledPaymentInstruments Objekt obsahující platební metody povolené na eshopovém profilu

Generování výpisu obchodního účtu

Funkcionalita umožňuje generovat výpisy z GoPay obchodního účtu pro konkrétní e-shop a měnu. Metoda vrací obsah souboru použitého formátu výpisu. Podrobný popis jednotlivých typů souborů generovaných výpisů naleznete v centru nápovědy.

Request

curl -v -N https://gw.sandbox.gopay.com/api/accounts/account-statement \
-X "POST" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer kRwD4pd8I+YYK0SOb7g+khEfxZmc8m/fX91zbsv2Pc/h3LjqeAN7lHe9R2qnw2YcurQNAXi0KCRJlME71OR1sm1YgVMSRf71ty5ASpU05+U=" \
-d '{
"date_from":"2016-07-08",
"date_to":"2016-08-08",
"goid":"8123456789",
"currency":"CZK",
"format":"CSV_A"
}'

REQUEST

POST /api/accounts/account-statement

HLAVIČKA POŽADAVKU

Název parametru Popis parametru Povinný
Accept application/json ANO
Content-Type application/json ANO
Authorization Bearer <access-token> ANO

Tělo požadavku

Název parametru Popis parametru Povinný Datový typ
date_from Počáteční datum výpisu ANO string yyyy-mm-dd
date_to Koncové datum výpisu ANO string yyyy-mm-dd
goid Jedinečný identifikátor e-shopu v systému platební brány ANO long
currency Určuje měnu platby, formát měny odpovídá ISO 4217 ANO string
format Určuje formát souboru generovaného výpisu ANO string

RESPONSE

Odpověď typu application/octet-stream

Elektronická evidence tržeb (EET)

Pokud využíváte variantu B pro funkcionalitu elektronické evidence tržeb (EET), viz popis varianty uvedený v centru nápovědy, skrze platební bránu GoPay, je pro správnou funkcionalitu nutné na platební bránu odesílat specifické požadavky pracující s EET parametry popisované níže.

Pokud v GoPay obchodním účtu nastavíte EET variantu B a neprovedete změnu integrace (viz specifické požadavky níže), nebude možné od data aktivace (v nastavení provozovny) vytvářet platby.

Standardní platba

Požadavek založení platby vychází ze standardního požadavku, který je rozšířený o objekt eet.

Request

curl -v -N https://gw.sandbox.gopay.com/api/payments/payment \
-X "POST" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer xzZnu3YnAHRk298EsmyttFQMcbCcvmwTKK5hrJx2aGG8ZnFyBJhAvFWNmbWVSD7p" \
-d '{
    "payer": {
                "default_payment_instrument":"BANK_ACCOUNT",
                "allowed_payment_instruments":["BANK_ACCOUNT"],
                "default_swift":"FIOBCZPP",
                "allowed_swifts":["FIOBCZPP","BREXCZPP"],
                "contact":{"first_name":"Zbynek",
                           "last_name":"Zak",
                           "email":"test@test.cz",
                           "phone_number":"+420777456123",
                           "city":"C.Budejovice",
                           "street":"Plana 67",
                           "postal_code":"373 01",
                           "country_code":"CZE"
                        }
                  },
    "target": {
                "type":"ACCOUNT",
                "goid":"8123456789"
              },
    "amount":"139951",
    "currency":"CZK",
    "order_number":"001",
    "order_description":"obuv",
    "items": [{
                "type":"ITEM", 
                "name":"obuv",
                "product_url":"https://www.eshop.cz/boty/lodicky", 
                "ean":1234567890123,
                "amount":119990,
                "count":1,
                "vat_rate":21
                }, 
            {
                "type":"ITEM", 
                "name":"oprava podpatku",
                "product_url":"https://www.eshop.cz/boty/opravy", 
                "ean":1234567890189,
                "amount":19961,
                "count":1,
                "vat_rate":15
                }],
    "eet":{
                "celk_trzba":139951,
                "zakl_dan1":99160,
                "dan1":20830,
                "zakl_dan2":17358,
                "dan2":2603,
                "mena":"CZK"
            },
    "additional_params":[{"name":"invoicenumber",
                        "value": "2015001003"
                        }],
    "callback":{
                "return_url":"https://www.eshop.cz/return",
                "notification_url":"https://www.eshop.cz/notify"
              },
    "lang":"cs"
}'

<?php
use GoPay\Definition\Language;
use GoPay\Definition\Payment\Currency;
use GoPay\Definition\Payment\PaymentInstrument;
use GoPay\Definition\Payment\BankSwiftCode;
use GoPay\Definition\Payment\VatRate;
use GoPay\Definition\Payment\PaymentItemType;

$response = $gopay->createPayment([
    'payer' => [
            'default_payment_instrument' => PaymentInstrument::BANK_ACCOUNT,
            'allowed_payment_instruments' => [PaymentInstrument::BANK_ACCOUNT],
            'default_swift' => BankSwiftCode::FIO_BANKA,
            'allowed_swifts' => [BankSwiftCode::FIO_BANKA, BankSwiftCode::MBANK],
            'contact' => ['first_name' => 'Zbynek',
                    'last_name' => 'Zak',
                    'email' => 'test@test.cz',
                    'phone_number' => '+420777456123',
                    'city' => 'C.Budejovice',
                    'street' => 'Plana 67',
                    'postal_code' => '373 01',
                    'country_code' => 'CZE'
            ]
    ],
    'amount' => 139951,
    'currency' => Currency::CZECH_CROWNS,
    'order_number' => '001',
    'order_description' => 'obuv',
    'items' => [[
            'type' => 'ITEM',
            'name' => 'obuv',
            'product_url' => 'https://www.eshop.cz/boty/lodicky',
            'ean' => 1234567890123,
            'amount' => 119990,
            'count' => 1,
            'vat_rate' => VatRate::RATE_4
    ],
            [
            'type' => PaymentItemType::ITEM,
            'name' => 'oprava podpatku',
            'product_url' => 'https://www.eshop.cz/boty/opravy',
            'ean' => 1234567890189,
            'amount' => 19961,
            'count' => 1,
            'vat_rate' => VatRate::RATE_3
            ]],
    'eet' => [
            'celk_trzba' => 139951,
            'zakl_dan1' => 99160,
            'dan1' => 20830,
            'zakl_dan2' => 17358,
            'dan2' => 2603,
            'mena' => Currency::CZECH_CROWNS
    ],
    'additional_params' => [['name' => 'invoicenumber',
            'value' => '2015001003'
    ]],
    'callback' => [
            'return_url' => 'https://www.eshop.cz/return',
            'notification_url' => 'https://www.eshop.cz/notify'
    ],
    'lang' => Language::CZECH
]);

Request

POST /api/payments/payment

Hlavička požadavku

Název parametru Popis parametru Povinný
Accept application/json ANO
Content-Type application/json ANO
Authorization Bearer <access-token> ANO

Tělo požadavku

Název parametru Popis parametru Povinný Datový typ
payer Objekt popisující plátce platby NE Objekt
target Objekt popisující příjemce platby ANO Objekt
amount Částka v haléřích ANO long > 0
currency Určuje měnu platby, formát měny odpovídá ISO 4217 ANO string
order_number Identifikace objednávky v rámci prodejního místa ANO string, pouze alfanumerické znaky (128 znaků)
order_description Popis objednávky NE string, pouze alfanumerické znaky (256 znaků)
items Detailně rozepsané jednotlivé položky objednávky ANO Objekt
eet Parametry pro elektronickou evidenci tržeb ANO Objekt
callback Návratové URL a notifikační URL pro oznámení změny stavu platby ANO Objekt
additional_params Doplňkové parametry platby NE Pole objektů
lang Parametr definuje jazyk platby NE string, může nabývat hodnot viz lang

Response

{
  "id":3000006529,
  "order_number":"001",
  "state":"CREATED",
  "amount":139951,"currency":"CZK",
  "payer":{
           "default_payment_instrument":"BANK_ACCOUNT",
           "allowed_payment_instruments":["BANK_ACCOUNT"],
           "default_swift":"FIOBCZPP",
           "contact":{"first_name":"Zbynek",
                      "last_name":"Zak",
                      "email":" test@test.cz ",
                      "phone_number":"+420777456123",
                      "city":"C.Budejovice",
                      "street":"Plana 67",
                      "postal_code":"37301",
                      "country_code":"CZE"
                    }
          },
  "target":{"type":"ACCOUNT",
            "goid":8123456789
          },
  "additional_params":[{"name":"invoicenumber",
                        "value":"2015001003"
                      }],
  "lang":"cs",
  "gw_url":" https://gw.sandbox.gopay.com/gw/v3/bCcvmwTKK5hrJx2aGG8ZnFyBJhAvF"
}

Response

Název parametru Popis parametru Datový typ
id ID platby long
order_number ID objednávky string, pouze alfanumerické znaky (128 znaků)
state Stav platby string, může nabývat hodnot viz state
amount Částka v haléřích long > 0
currency Měna platby string, může nabývat hodnot viz currency
payer Objekt popisující plátce platby Objekt
target Objekt popisující příjemce platby Objekt
additional_params Doplňkové parametry platby Pole objektů
lang Parametr definuje jazyk platby string, může nabývat hodnot viz lang
gw_url URL pro inicializaci platební brány string

Opakovaná platba

Požadavek založení opakované platby vychází ze standardního požadavku, který je rozšírený o objekt eet.

Podrobný popis kroků nutných k provedení opakované platby naleznete v centru nápovědy.

V případě platby na vyžádání je následná platba provedena API voláním opakování platby.

Request

curl -v -N https://gw.sandbox.gopay.com/api/payments/payment \
-X "POST" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer xzZnu3YnAHRk298EsmyttFQMcbCcvmwTKK5hrJx2aGG8ZnFyBJhAvFWNmbWVSD7p" \
-d '{
      "payer": {
        "contact":{"first_name":"Zbynek",
                   "last_name":"Zak",
                   "email":"test@test.cz",
                   "phone_number":"+420777456123",
                   "city":"C.Budejovice",
                   "street":"Plana 67",
                   "postal_code":"373 01",
                   "country_code":"CZE"
                  }
      },
      "target":{"type":"ACCOUNT",
                 "goid":"8123456789"
               },
      "amount":"139951",
      "currency":"CZK",
      "order_number":"001",
      "order_description":"obuv",
                "items": [{
                "type":"ITEM", 
                "name":"obuv",
                "product_url":"https://www.eshop.cz/boty/lodicky", 
                "ean":1234567890123,
                "amount":119990,
                "count":1,
                "vat_rate":21
                }, 
                {
                "type":"ITEM", 
                "name":"oprava podpatku",
                "product_url":"https://www.eshop.cz/boty/opravy", 
                "ean":1234567890189,
                "amount":19961,
                "count":1,
                "vat_rate":15
                }],
      "eet":{
                "celk_trzba":139951,
                "zakl_dan1":99160,
                "dan1":20830,
                "zakl_dan2":17358,
                "dan2":2603,
                "mena":"CZK"
            },
      "recurrence":{"recurrence_cycle":"DAY",
                    "recurrence_period":"7",
                    "recurrence_date_to":"2015-12-31"},
      "additional_params":[{"name":"invoicenumber",
                            "value":"2015001003"
                          }],
      "callback":{
                  "return_url":"http://www.eshop.cz/return",
                  "notification_url":"http://www.eshop.cz/notify"
                 }
}'

<?php
use GoPay\Definition\Language;
use GoPay\Definition\Payment\Currency;
use GoPay\Definition\Payment\VatRate;
use GoPay\Definition\Payment\PaymentItemType;

$response = $gopay->createPayment([
    'payer' => [
            'contact' => ['first_name' => 'Zbynek',
                    'last_name' => 'Zak',
                    'email' => 'test@test.cz',
                    'phone_number' => '+420777456123',
                    'city' => 'C.Budejovice',
                    'street' => 'Plana 67',
                    'postal_code' => '373 01',
                    'country_code' => 'CZE'
            ]
    ],
    'amount' => 139951,
    'currency' => Currency::CZECH_CROWNS,
    'order_number' => '001',
    'order_description' => 'obuv',
    'items' => [[
            'type' => 'ITEM',
            'name' => 'obuv',
            'product_url' => 'https=>//www.eshop.cz/boty/lodicky',
            'ean' => 1234567890123,
            'amount' => 119990,
            'count' => 1,
            'vat_rate' => VatRate::RATE_4
    ],
            [
            'type' => PaymentItemType::ITEM,
            'name' => 'oprava podpatku',
            'product_url' => 'https=>//www.eshop.cz/boty/opravy',
            'ean' => 1234567890189,
            'amount' => 19961,
            'count' => 1,
            'vat_rate' => VatRate::RATE_3
            ]],
    'eet' => [
            'celk_trzba' => 139951,
            'zakl_dan1' => 99160,
            'dan1' => 20830,
            'zakl_dan2' => 17358,
            'dan2' => 2603,
            'mena' => Currency::CZECH_CROWNS
    ],
    'recurrence' => ['recurrence_cycle' => 'DAY',
            'recurrence_period' => '7',
            'recurrence_date_to' => '2020-12-31'],
    'additional_params' => [['name' => 'invoicenumber',
            'value' => '2015001003'
    ]],
    'callback' => [
            'return_url' => 'http://www.eshop.cz/return',
            'notification_url' => 'http://www.eshop.cz/notify'
    ]
]);

Request

POST /api/payments/payment

Hlavička požadavku

Název parametru Popis parametru Povinný
Accept application/json ANO
Content-Type application/json ANO
Authorization Bearer <access-token> ANO

Tělo požadavku

Název parametru Popis parametru Povinný Datový typ
payer Objekt popisující plátce platby NE Objekt
target Objekt popisující příjemce platby ANO Objekt
amount Částka v haléřích ANO long > 0
currency Určuje měnu platby, formát měny odpovídá ISO 4217 ANO string, může nabývat hodnot viz currency
order_number Identifikace objednávky v rámci prodejního místa ANO string, pouze alfanumerické znaky (128 znaků)
order_description Popis objednávky NE string, pouze alfanumerické znaky (256 znaků)
items Detailně rozepsané jednotlivé položky objednávky ANO Pole objektů
eet Parametry pro elektronickou evidenci tržeb ANO Objekt
recurrence Objekt popisující opakovanou platbu NE Objekt
additional_params Doplňkové parametry platby NE Pole objektů
callback Návratové URL a notifikační URL pro oznámení změny stavu platby ANO Objekt

Response

{
  "id":3000006542,
  "order_number":"001",
  "state":"CREATED",
  "amount":139951,"currency":"CZK",
  "payer":{
           "contact":{"first_name":"Zbynek",
                      "last_name":"Zak",
                      "email":" test@test.cz",
                      "phone_number":"+420777456123",
                      "city":"C.Budejovice",
                      "street":"Plana 67",
                      "postal_code":"37301",
                      "country_code":"CZE"
                    }
          },
    "target":{"type":"ACCOUNT",
              "goid":8123456789},
    "recurrence":{"recurrence_cycle":"DAY",
                  "recurrence_period":7,
                  "recurrence_date_to":"2020-12-31",
                  "recurrence_state":"REQUESTED"
                },
    "additional_params":[{"name":"invoicenumber",
                          "value":"2015001003"
                        }],
    "lang":"cs",
    "gw_url":" https://gw.sandbox.gopay.com/gw/v3/bCcvmwTKK5hrJx2aGG8ZnFyBJhAvF "
}

Response

Název parametru Popis parametru Datový typ
id ID platby long
order_number ID objednávky string, pouze alfanumerické znaky (128 znaků)
state Stav platby Objekt
amount Částka v haléřích long > 0
payer Objekt popisující plátce platby Objekt
target Objekt popisující příjemce platby Objekt
recurrence Objekt popisující opakovanou platbu Objekt
additional_params Volitelné parametry platby Pole objektů
lang Parametr popisující jazyk platby string, může nabývat hodnot viz lang
gw_url URL pro inicializaci platební brány string

Opakování platby na vyžádání

Pomocí požadavku je možné opakovat platbu na základě dříve založené opakované platby v režimu ON_DEMAND. Opakováním v tomto režimu je založena následná platba v libovolné částce. O provedení platby je prodejní místo informováno formou notifikace o změně stavu platby.

Podrobné informace k provádění opakovaných plateb naleznete v našem centru nápovědy.

Volání se od standardního požadavku liší objektem eet.

Request

curl -v -N https://gw.sandbox.gopay.com/api/payments/payment/3000006542/create-recurrence \
-X "POST" \
-H "Accept: application/json" \
-H "Content-Type:application/json" \
-H "Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969" \
-d '{
    "amount":"119990",
    "currency":"CZK",
    "order_number":"Nakup",
    "order_description":"2016-0001254",
    "items":[
    {
        "type":"ITEM", 
        "name":"lodicky",
        "product_url":"https://www.eshop.cz/boty//lodicky", 
        "ean":1234567890123,
        "amount":119990,
        "count":1,
        "vat_rate":21
    }],
    "eet":{
        "celk_trzba":119990,
        "zakl_dan1":99160,
        "dan1":20830,
        "mena":"CZK"
    },
    "additional_params":[{
        "name":"invoicenumber",
        "value":"2016001004"
    }]
}'

<?php
    use GoPay\Definition\Language;
    use GoPay\Definition\Payment\Currency;
    use GoPay\Definition\Payment\VatRate;
    use GoPay\Definition\Payment\PaymentItemType;

    $response = $gopay->createRecurrence(3000006620, [
    'amount' => '119990',
    'currency' => Currency::CZECH_CROWNS,
    'order_number' => 'Nakup',
    'order_description' => '2016-0001254',
    'items' => [
            [
                    'type' => PaymentItemType::ITEM,
                    'name' => 'lodicky',
                    'product_url' => 'https://www.eshop.cz/boty//lodicky',
                    'ean' => 1234567890123,
                    'amount' => 119990,
                    'count' => 1,
                    'vat_rate' => VatRate::RATE_4
            ]],
    'eet' => [
            'celk_trzba' => 119990,
            'zakl_dan1' => 99160,
            'dan1' => 20830,
            'mena' => Currency::CZECH_CROWNS
    ],
    'additional_params' => [[
            'name' => 'invoicenumber',
            'value' => '2016001004'
    ]]
]);

Request

POST /api/payments/payment/{id}/create-recurrence

Hlavička požadavku

Název parametru Popis parametru Povinný
Accept application/json ANO
Content-Type application/json ANO
Authorization Bearer <access-token> ANO

Tělo požadavku

Název parametru Popis parametru Povinný Datový typ
amount Částka ANO long > 0
currency Určuje měnu platby, formát měny odpovídá ISO 4217 ANO string, nabývající hodnot viz currency
order_number ID objednávky Identifikace objednávky v rámci prodejního místa string, pouze alfanumerické znaky (128 znaků)
order_description Popis objednávky ANO string, pouze alfanumerické znaky (256 znaků)
items Detailně rozepsané jednotlivé položky objednávky ANO Objekt
eet Parametry pro elektronickou evidenci tržeb ANO Objekt
additional_params Doplňkové parametry platby NE Objekt

Response

{
 "id":3000006621,
 "parent_id":3000006542,
 "order_number":"002",
 "state":"CREATED",
 "amount":119990,
 "currency":"CZK",
 "payment_instrument":"PAYMENT_CARD",
 "payer": {
           "contact":{"first_name":"Zbynek",
                      "last_name":"Zak",
                      "email":" test@test.cz",
                      "phone_number":"+420777456123",
                      "city":"C.Budejovice",
                      "street":"Plana 67",
                      "postal_code":"37301",
                      "country_code":"CZE"
            }
  },
 "target":{"type":"ACCOUNT",
           "goid":8123456789
          },
 "additional_params":[{"name":"invoicenumber","value":"2016001004"}],
 "lang":"cs",
 "gw_url":"https://gw.sandbox.gopay.com/gw/v3/bCcvmwTKK5hrJx2aGG8ZnFyBJhAvF"
}

Response

Název parametru Popis parametru Datový typ
id ID platby long
parent_id ID zakládající platby long
order_number ID objednávky string, pouze alfanumerické znaky (128 znaků)
state Stav platby Objekt
amount Částka v haléřích long > 0
currency Určuje měnu platby, formát měny odpovídá ISO 4217 string, nabývající hodnot viz currency
payment_instrument Kód zvolené platební metody string, nabývající hodnot viz payment_instrument
payer Objekt popisující plátce platby Objekt
target Objekt popisující příjemce platby Objekt
additional_params Volitelné parametry platby Pole objektů
lang Jazyk platby string, nabývající hodnot viz lang
gw_url URL pro inicializaci platební brány string

Stav platby

Funkcionalita stav platby umožní prodejnímu místu zjistit jaký je aktuální stav dříve vytvořené platby. Standardně je stav platby dotazován po doručení notifikace o změně stavu platby.

Podrobnější informace k dotazu na stav platby naleznete v našem centru nápovědy.

Pro potřeby EET obsahuje odpověď požadavku dotazu na stav platby objekt eet_code.

Obsahem objektu eet_code jsou údaje Fiskální identifikační kód (FIK), Bezpečnostní kód poplatníka (BKP) a Podpisový kód poplatníka (PKP).

Request

curl -v -N https://gw.sandbox.gopay.com/api/payments/payment/3000006529 \
-X "GET" \
-H "Accept: application/json" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969"

Request

GET /api/payments/payment/{id}

Hlavička požadavku

Název parametru Popis parametru Povinný
Accept application/json ANO
Content-Type application/x-www-form-urlencoded ANO
Authorization Bearer <access-token> ANO

Response.

{
  "id":3000006529,
  "order_number":"001",
  "state":"PAID",
  "sub_state":"_3002",
  "amount":139951,
  "currency":"CZK",
  "payment_instrument":"BANK_ACCOUNT",
  "payer":{
           "default_payment_instrument":"BANK_ACCOUNT",
           "allowed_payment_instruments":["BANK_ACCOUNT"],
           "default_swift":"FIOBCZPP",
           "bank_account":{
                      "prefix":"670100",
                      "account_number":"7654322",
                      "bank_code":"0100",
                      "account_name":"JAN NOVAK"
                      },
           "contact":{"first_name":"Zbynek",
                      "last_name":"Zak",
                      "email":" test@test.cz ",
                      "phone_number":"+420777456123",
                      "city":"C.Budejovice",
                      "street":"Plana 67",
                      "postal_code":"37301",
                      "country_code":"CZE"
                     }
          },
  "target":{"type":"ACCOUNT",
            "goid":8123456789
          },
  "additional_params":[{"name":"invoicenumber",
                        "value":"2015001003"
                      }],
  "eet_code":{
        "fik":"28da0811-e050-46c7-a62c-aa456d1f07ef-ff",
        "bkp":"5d874afc-251f8661-ff0e0b13-c7cd8793-6bf0386a",
        "pkp":"Ca8sTbURReQjjgcy/znXBKjPOnZof3AxWK5WySpyMrUXF0o7cz1BP6a....."
     },
  "lang":"cs",
  "gw_url":" https://gw.sandbox.gopay.com/gw/v3/bCcvmwTKK5hrJx2aGG8ZnFyBJhAvF"
}  

Response

Název parametru Popis parametru Datový typ
id ID platby long
order_number Identifikace objednávky v rámci prodejního místa string, pouze alfanumerické znaky (128 znaků)
state Stav platby string, nabývající hodnot viz state
sub_state Podstav platby string, nabývající hodnot viz sub_state
amount Částka v haléřích long > 0
currency Měna platby string, nabývající hodnot viz currency
payment_instrument Kód zvolené platební metody string, nabývající hodnot viz payment_instrument
payer Objekt popisující plátce platby Objekt
target Objekt popisující příjemce platby Objekt
recurrence Objekt popisující opakovanou platbu Objekt
additional_params Volitelné parametry platby Pole objektů
eet_code EET kódy účtenky Objekt
lang Jazyk platby string, nabývající hodnot viz lang
gw_url URL pro inicializaci platební brány string

Refundace platby (storno)

Refundace platby umožňuje navrácení finančních prostředků za již provedenou platbu zpět zákazníkovi.

Požadavek provedení refundu pro elektronickou evidenci tržet (EET) se od standardního požadavku liší hodnotou parametru Content-Type v hlavičce požadavku.

V tělě požadavku je nutné předat objekt items a objekt eet.

Request

curl -v -N https://gw.sandbox.gopay.com/api/payments/payment/3000006620/refund \
-X "POST" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969" \
-d '{
    "amount":119990,
    "items":[
        {
            "type":"ITEM", 
            "name":"lodicky",
            "product_url":"https://www.eshop.cz/boty/damske/lodicky-cervene", 
            "ean":1234567890123,
            "amount":-119990,
            "count":1,
            "vat_rate":21
        }],
    "eet":{
            "celk_trzba":-119990,
            "zakl_dan1":-99160,
            "dan1":-20830,
            "mena":"CZK"
        }
    }'

<?php
    use GoPay\Definition\Payment\VatRate;
    use GoPay\Definition\Payment\PaymentItemType;

    $response = $gopay->refundPayment(3000006620, [
    'amount' => 119990,
    'items' => [
            [
                    'type' => PaymentItemType::ITEM,
                    'name' => 'lodicky',
                    'product_url' => 'https://www.eshop.cz/boty/damske/lodicky-cervene',
                    'ean' => 1234567890123,
                    'amount' => -119990,
                    'count' => 1,
                    'vat_rate' => VatRate::RATE_4
            ]],
    'eet' => [
            'celk_trzba' => -119990,
            'zakl_dan1' => -99160,
            'dan1' => -20830,
    ]
]);

Request

POST /api/payments/payment/{id}/refund

Hlavička požadavku

Název parametru Popis parametru Povinný
Accept application/json ANO
Content-Type application/json ANO
Authorization Bearer <access-token> ANO

Tělo požadavku

Název parametru Popis parametru Povinný Datový typ
amount Refundovaná částka ANO long > 0
items Detailně rozepsané jednotlivé položky objednávky ANO Objekt
eet Parametry pro elektronickou evidenci tržeb ANO Objekt

Response

{
 "id":3000006620,
 "result":"FINISHED"
}

Response

Název parametru Popis parametru Datový typ
id ID platby long
result Stav požadavku Objekt

EET účtenky platby

Funkcionalita vrátí seznam účtenek pro danou platbu. Vrací účtenku, která se vytvořila při uhrazení platby, případně i účtenku vytvořenou při provedení refundace platby.

Request

curl -v -N https://gw.sandbox.gopay.com/api/payments/payment/3048468774/eet-receipts \
-X "GET" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer 1437hmoAEdbMRcfdQeXz052Dt9MRKzcsC/+zVwfZIUVUZ3Ki+Xcf+EER9JfQ3uFKq50WLkEjBR"

Request

GET /api/payments/payment/{id}/eet-receipts

Hlavička požadavku

Název parametru Popis parametru Povinný
Accept application/json ANO
Content-Type application/json ANO
Authorization Bearer <access-token> ANO

Response

[{
  "celk_trzba":139951,
  "zakl_dan1":99160,
  "dan1":20830,
  "zakl_dan2":17358,
  "dan2":2603,
  "payment_id":3048468774,
  "state":"DELIVERED",
  "date_last_attempt":"2017-03-03T15:21:00.450+0100",
  "date_next_attempt":"2017-03-03T15:21:00.226+0100",
  "eet_mode":"EET",
  "uuid_zprava":"e382c8e5-195f-4b30-b6f4-eef15899240f",
  "date_odesl":"2017-03-03T15:21:00.241+0100",
  "dic_popl":"CZ1212121218",
  "id_provoz":11,
  "id_pokl":"1",
  "dat_trzby":"2017-03-03T15:21:00.162+0100",
  "porad_cis":"3048468774",
  "fik":"5f4286a4-ab97-496f-b860-cd8542911449-ff",
  "bkp":"713FB9FD-8EC9D865-4F6E5A49-68992939-408F9E59",
  "pkp":"Kzvh4JmZszaytn1XPy1wTKpJ2eqtxyQsHRlULOgKbJBPrXVeNw18uwzA1/JxViPEFKdGBRsImKH5Y4V07ZrekVs5HZGK11h+mww4P6q2KtA79/CO9S7NnBr44vwesK5PXX6gcSq4p0ptk6H5uTpmsyCxQjVesNXI1m5zduxQ93SoaZ/3kMBbhUaaqekMvxKpsxgtlbm8h8J6Fh+jvkF2NyPkEfgTyI/s9OuEq6JQ8rvTcTpz3phNXX+Cvb3oJpSNk8mtn3/uo6a/hmgdpG+W3f8pwUFZ1hQ0A5+/jyrv+pURS67l3Mh+ElUVLBEE2/Iai/jqxjklGeAa8hjQowsy3g=="
}]

Response

Název parametru Popis parametru Datový typ
dic_poverujiciho DIČ pověřujícího poplatníka varchar
celk_trzba Celková částka tržby long v centech
zakl_nepodl_dph Celková částka plnění osvobozených od DPH long v centech
zakl_dan1 Celkový základ daně se základní sazbou DPH long v centech
dan1 Celková DPH se základní sazbou long v centech
zakl_dan2 Celkový základ daně s první sníženou sazbou DPH long v centech
dan2 Celková DPH s první sníženou sazbou long v centech
zakl_dan3 Celkový základ daně s druhou sníženou sazbou DPH long v centech
dan3 Celková DPH s druhou sníženou sazbou long v centech
cest_sluz Celková částka v režimu DPH pro cestovní službu long v centech
pouzit_zboz1 Celková částka v režimu DPH pro prodej použitého zboží se základní sazbou long v centech
pouzit_zboz2 Celková částka v režimu DPH pro prodej použitého zboží s první sníženou sazbou long v centech
pouzit_zboz3 Celková částka v režimu DPH pro prodej použitého zboží s druhou sníženou sazbou long v centech
urceno_cerp_zuct Celková částka plateb určená k následnému čerpání nebo zúčtování long v centech
cerp_zuct Celková částka plateb, které jsou následným čerpáním nebo zúčtováním platby long v centech
payment_id ID platby long
state Stav doručení účtenky nabývá hodnot state
date_last_attempt Datum a čas posledního pokusu o evidenci yyyy-MM-dd’T'HH:mm:ss.SSSZ
date_next_attempt Datum a čas dalšího pokusu o evidenci yyyy-MM-dd’T'HH:mm:ss.SSSZ
eet_mode Varianta EET nabývá hodnot eet_mode
uuid_zprava UUID zprávy string
date_odesl Datum a čas odeslání EET účtenky yyyy-MM-dd’T'HH:mm:ss.SSSZ
dic_popl DIČ poplatníka varchar
id_provoz Označení provozovny integer
id_pokl Označení pokladního zařízení string
dat_trzby Datum a čas přijetí tržby yyyy-MM-dd’T'HH:mm:ss.SSSZ
porad_cis Pořadové číslo účtenky long
kod_chyby Chyba způsobená při komunikaci se službou EET integer
error_code Kód chyby EET integer
kody_varovani Kód varování EET string
fik Fiskální identifikační kód (FIK) varchar, 39 znaků
bkp Bezpečnostní kód poplatníka (BKP) varchar, 44 znaků
pkp Podpisový kód poplatníka (PKP) varchar, 344 znaků

List EET účtenek

Funkcionalita vrátí seznam všech účtenek za dané období pro konkrétní provozovnu. Maximální rozsah datumů je 30 dní.

Request

curl -v -N https://gw.sandbox.gopay.com/api/eet-receipts \
-X "POST" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer 1437hmoAEdbMRcfdQeXz052Dt9MRKzcsC/+zVwfZIUVUZ3Ki+Xcf+EER9JfQ3uFKq50WLkEjBR" \
-d '{
      "date_from": "2017-03-01",
      "date_to":"2017-03-06",
      "id_provozovny":"11"
    }'

Request

POST /api/eet-receipts

Hlavička požadavku

Název parametru Popis parametru Povinný
Accept application/json ANO
Content-Type application/json ANO
Authorization Bearer <access-token> ANO

Tělo požadavku

Název parametru Popis parametru Povinný Datový typ
date_from Počáteční datum ANO string yyyy-mm-dd
date_to Koncové datum ANO string yyyy-mm-dd
id_provozovny Označení provozovny ANO long

Response

[{
  "celk_trzba":-139951,
  "zakl_dan1":-99160,
  "dan1":-20830,
  "zakl_dan2":-17358,
  "dan2":-2603,
  "payment_id":3048468774,
  "state":"DELIVERED",
  "date_last_attempt":"2017-03-03T15:22:34.853+0100",
  "date_next_attempt":"2017-03-03T15:22:34.652+0100",
  "eet_mode":"EET",
  "uuid_zprava":"3592a5be-49f0-4c32-9634-fb4738657bb9",
  "date_odesl":"2017-03-03T15:22:34.669+0100",
  "dic_popl":"CZ1212121218",
  "id_provoz":11,
  "id_pokl":"1",
  "porad_cis":"3048468774-4000000573",
  "fik":"fb60760a-34e4-4cef-b93e-15dca3dfae14-ff",
  "bkp":"802476B0-C9E62225-98C83257-C8104A37-3D8C0AEA",
  "pkp":"hZTkX2DkwtPcIHdORO/gYAF6gE3uTf+YA1m/3SYCll4tQramRbCBqAQZoiUk0yNRXYulyS0G4nRlK4qcrFyOY1ptohNGe57oXzGTJuv7yE3c5c6S9UdwPqDjb3ZHxWjZLkSLMEu9LVdQp4R8b4vUikvC3ALN148a2140LmY8xXpEQDZkjDD6POrx1fybtUFo+VQYV+w3M3MpMjPKcDf4Zabq53r/UXVGOJBJQUrALAYRmylbKWZlk0gHV7cImXVnnXwUtSIU90kLu69EOAUIYgnILZqCACXQwUV5Uh+2roCqyojdoqh3ij7qTOd+KDHXXZH0sjTPQOR9ZVP9IUmifg=="},
  {
  "celk_trzba":139951,
  "zakl_dan1":99160,
  "dan1":20830,
  "zakl_dan2":17358,
  "dan2":2603,
  "payment_id":3048468774,
  "state":"DELIVERED",
  "date_last_attempt":"2017-03-03T15:21:00.450+0100",
  "date_next_attempt":"2017-03-03T15:21:00.226+0100",
  "eet_mode":"EET",
  "uuid_zprava":"e382c8e5-195f-4b30-b6f4-eef15899240f",
  "date_odesl":"2017-03-03T15:21:00.241+0100",
  "dic_popl":"CZ1212121218",
  "id_provoz":11,
  "id_pokl":"1",
  "dat_trzby":"2017-03-03T15:21:00.162+0100",
  "porad_cis":"3048468774",
  "fik":"5f4286a4-ab97-496f-b860-cd8542911449-ff",
  "bkp":"713FB9FD-8EC9D865-4F6E5A49-68992939-408F9E59",
  "pkp":"Kzvh4JmZszaytn1XPy1wTKpJ2eqtxyQsHRlULOgKbJBPrXVeNw18uwzA1/JxViPEFKdGBRsImKH5Y4V07ZrekVs5HZGK11h+mww4P6q2KtA79/CO9S7NnBr44vwesK5PXX6gcSq4p0ptk6H5uTpmsyCxQjVesNXI1m5zduxQ93SoaZ/3kMBbhUaaqekMvxKpsxgtlbm8h8J6Fh+jvkF2NyPkEfgTyI/s9OuEq6JQ8rvTcTpz3phNXX+Cvb3oJpSNk8mtn3/uo6a/hmgdpG+W3f8pwUFZ1hQ0A5+/jyrv+pURS67l3Mh+ElUVLBEE2/Iai/jqxjklGeAa8hjQowsy3g=="},
  {
  ...
  }] 

Response

Název parametru Popis parametru Datový typ
dic_poverujiciho DIČ pověřujícího poplatníka varchar
celk_trzba Celková částka tržby long v centech
zakl_nepodl_dph Celková částka plnění osvobozených od DPH long v centech
zakl_dan1 Celkový základ daně se základní sazbou DPH long v centech
dan1 Celková DPH se základní sazbou long v centech
zakl_dan2 Celkový základ daně s první sníženou sazbou DPH long v centech
dan2 Celková DPH s první sníženou sazbou long v centech
zakl_dan3 Celkový základ daně s druhou sníženou sazbou DPH long v centech
dan3 Celková DPH s druhou sníženou sazbou long v centech
cest_sluz Celková částka v režimu DPH pro cestovní službu long v centech
pouzit_zboz1 Celková částka v režimu DPH pro prodej použitého zboží se základní sazbou long v centech
pouzit_zboz2 Celková částka v režimu DPH pro prodej použitého zboží s první sníženou sazbou long v centech
pouzit_zboz3 Celková částka v režimu DPH pro prodej použitého zboží s druhou sníženou sazbou long v centech
urceno_cerp_zuct Celková částka plateb určená k následnému čerpání nebo zúčtování long v centech
cerp_zuct Celková částka plateb, které jsou následným čerpáním nebo zúčtováním platby long v centech
payment_id ID platby long
state Stav doručení účtenky nabývá hodnot state
date_last_attempt Datum a čas posledního pokusu o evidenci yyyy-MM-dd’T'HH:mm:ss.SSSZ
date_next_attempt Datum a čas dalšího pokusu o evidenci yyyy-MM-dd’T'HH:mm:ss.SSSZ
eet_mode Varianta EET nabývá hodnot eet_mode
uuid_zprava UUID zprávy string
date_odesl Datum a čas odeslání EET účtenky yyyy-MM-dd’T'HH:mm:ss.SSSZ
dic_popl DIČ poplatníka varchar
id_provoz Označení provozovny integer
id_pokl Označení pokladního zařízení string
dat_trzby Datum a čas přijetí tržby yyyy-MM-dd’T'HH:mm:ss.SSSZ
porad_cis Pořadové číslo účtenky long
kod_chyby Chyba způsobená při komunikaci se službou EET integer
error_code Kód chyby EET integer
kody_varovani Kód varování EET string
fik Fiskální identifikační kód (FIK) varchar, 39 znaků
bkp Bezpečnostní kód poplatníka (BKP) varchar, 44 znaků
pkp Podpisový kód poplatníka (PKP) varchar, 344 znaků

Rozšířené možnosti superCASH

Rozšířené možnosti platební metody superCASH umožňují vytvořit hromadně skupinu (batch) kupónů pro získání platebních údajů, včetně čárových kódů. Zákazník tak nepřichází do styku s platební bránou GoPay. Potřebné údaje pro platbu offline platební metodou superCASH je možné zákazníkovi zobrazit předem např. na fakturu za objednávku na e-shopu.

Vytvoření superCASH batche

Volání vytvoří skupinu (batch) superCASH kupónů. Po vytvoření všech kuponů bude zavolána URL uvedená v parametru “batch_completed_notification_url”. Parametry kupónů definuje objekt “defaults”, případně pole kupónů v objektu “coupons”.

Request

curl -v -N https://gw.sandbox.gopay.com/api/supercash/coupon/batch \
-X "POST" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer cwY6kMhLcXGVWTOR3qIV92uonFcKtdLm0sJQurAOLORcPHw9PV3AoBQWumnJJq4pmCIU1xC1ZNxDgdzMrJuD3PMgk1pSv1Qf0cu/ILubBgY=" \
-d '{
    "go_id":8123456789,
    "batch_completed_notification_url":"http://http-notify.cz/supercash",
    "defaults":{
        "sub_type":"POSTPAID",
        "amounts":[300,400,500,600,700,800,900,1000],
        "order_description":"supercash batch test"
    },
    "coupons":[
        {
            "buyer_email":"zakaznik1@example.com",
            "custom_id":"ID-123457",
            "buyer_phone":"+420777666111",
            "amounts":[100]
        },
        {
            "buyer_email":"zakaznik2@example.com",
            "custom_id":"ID-123458",
            "buyer_phone":"+420777666222",
            "amounts":[200]
        },
        {
            "buyer_email":"zakaznik3@example.com",
            "custom_id":"ID-123459",
            "buyer_phone":"+420777666333"
        }
    ]
}'

def _create_supercash_batch(self):
    base_batch = {
        'batch_completed_notification_url' : 'http://www.notify.cz/super',
        'defaults' : {
            'sub_type' : SupercashSubType.SUB_TYPE_POSTPAID,
            'amounts' : [300, 400, 500, 600, 700, 800, 900, 1000],
            'order_description' : 'supercash_coupon_batch_test',
        },
        'coupons' : [
            {
                'buyer_email' : 'zakaznik1@example.com',
                'custom_id' : 'ID-123457',
                'buyer_phone' : '+420777666111',
                'amounts' : [100],
            },
            {
                'buyer_email' : 'zakaznik2@example.com',
                'custom_id' : 'ID-123458',
                'buyer_phone' : '+420777666222',
                'amounts' : [200],
            },
            {
                'buyer_email' : 'zakaznik3@example.com',
                'custom_id' : 'ID-123459',
                'buyer_phone' : '+420777666333',
                'amounts' : [300],
            },
        ],
    }
    }

SupercashRequestBuilder batchItemBuilder = new SupercashRequestBuilder();

SupercashRequestBuilder batchRequestBuilder = new SupercashRequestBuilder();

SupercashBatchRequest batchRequest = batchRequestBuilder
        <GOID>
        <NOTIFY_URL>
        .withDefaults(batchItemBuilder
                .subType(SubType.POSTPAID)
                .withAmounts(Arrays.asList(300L, 400L, 500L, 600L, 700L, 800L, 900L, 1000L))
                .orderDescription("Supercash Coupon Batch Test")
                .buildBatchItem()
        )
        .addCoupon(batchItemBuilder
                .reset()
                .withBuyerEmail("zakaznik1@example.com")
                .customId("ID-123457")
                .withBuyerPhone("+420777666111")
                .withAmounts(Arrays.asList(100L))
                .buildBatchItem()
        )
        .addCoupon(batchItemBuilder
                .reset()
                .withBuyerEmail("zakaznik2@example.com")
                .customId("ID-123458")
                .withBuyerPhone("+420777666222")
                .withAmounts(Arrays.asList(200L))
                .buildBatchItem()
        )
        .addCoupon(batchItemBuilder
                .reset()
                .withBuyerEmail("zakaznik3@example.com")
                .customId("ID-123459")
                .withBuyerPhone("+420777666333")
                .withAmounts(Arrays.asList(300L))
                .buildBatchItem()
        )
        .buildBatchRequest();

SupercashBatchResult batchResult = null;

try {
    batchResult = connector
            .getAppToken(CLIENT_ID, CLIENT_SECRET, OAuth.SCOPE_PAYMENT_ALL)
            .createSupercashCouponBatch(batchRequest);

} catch (GPClientException e) {
    //
}

SupercashBatchRequest batchRequest = new SupercashBatchRequest()
{
    GoId = GOID,
    BatchNotificationUrl = "http://www.notify.cz/super",
    Defaults = new SupercashBatchItem()
    {
        SubType = SubType.POSTPAID,
        Amounts = new List<long> { 300, 400, 500, 600, 700, 800, 900, 1000 },
        OrderDescription = "Supercash Coupon Batch Test"
    },
    Coupons = new List<SupercashBatchItem> {
        new SupercashBatchItem()
        {
            BuyerEmail = "zakaznik1@example.com",
            CustomId = "ID-123457",
            BuyerPhone = "+420777666111",
            Amounts = new List<long> { 100 }
        },
        new SupercashBatchItem()
        {
            BuyerEmail = "zakaznik2@example.com",
            CustomId = "ID-123458",
            BuyerPhone = "+420777666222",
            Amounts = new List<long> { 200 }
        },
        new SupercashBatchItem()
        {
            BuyerEmail = "zakaznik3@example.com",
            CustomId = "ID-123459",
            BuyerPhone = "+420777666333",
            Amounts = new List<long> { 300 }
        }
    }
};

try
{
    SupercashBatchResult result = connector.GetAppToken().CreateSupercashCouponBatch(batchRequest);
    Console.WriteLine(result.ToString());
}
catch (GPClientException ex)
{
    //
}  

Request

POST /api/supercash/coupon/batch

Hlavička požadavku

Název parametru Popis parametru Povinný
Accept application/json ANO
Content-Type application/json ANO
Authorization Bearer <access-token> ANO

Tělo požadavku

Název parametru Popis parametru Povinný Datový typ
go_id Jedinečný identifikátor eshopu v systému platební brány ANO long
batch_completed_notification_url URL adresa pro odeslání asynchronní notifikace v případě změny stavu skupiny (včetně protokolu) ANO string
defaults Výchozí hodnoty superCASH kupónů ANO Objekt
coupons Specifické parametry jednotlivých kupónů ANO Objekt

Response

{"batch_request_id":951806260} 

Response

Název parametru Popis parametru Datový typ
batch_request_id ID vytvořené skupiny kupónů long

Vytvoření superCASH kupónu

Volání vytvoří superCASH kupón. Po vytvoření kupónu bude zavolána URL uvedená v parametru “notification_url”.

Request

curl -v -N https://gw.sandbox.gopay.com/api/supercash/coupon \
-X "POST" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer eMk5PlDzC9wjGle/1F1sfOI7MvOoFZoFjVVzWMiBTD0KoiT2HgyW9z9wfIBaZg1eDzN21tbf11oABJmgbliXd4d+ZlqVlOoY78kdhGR0tEE=" \
-d '{
    "go_id":8123456789,
    "sub_type":"POSTPAID",
    "custom_id":"ID-123457",
    "order_number":"1",
    "amount":100,
    "order_description":"supercash test",
    "buyer_email":"zakaznik@example.com",
    "buyer_phone":"+420777666111",
    "date_valid_to":"2018-12-31",
    "notification_url":"http://http-notify.cz/supercash"
}'

def test_create_supercash_coupon(self):
    base_coupon = {
        'sub_type' : SupercashSubType.SUB_TYPE_POSTPAID,
        'custom_id' : 'ID-123457',
        'amount' : 100,
        'order_number' : '1',
        'order_description' : 'supercash_coupon_test',
        'buyer_email' : 'zakaznik@example.com',
        'buyer_phone' : '+420777123456',
        'date_valid_to' : '2018-12-31',
        'notification_url' : 'http://www.example-notify.cz/supercash',
    }

SupercashRequestBuilder couponRequestBuilder = new SupercashRequestBuilder();

SupercashCouponRequest couponRequest = couponRequestBuilder
        <GOID>
        .subType(SubType.POSTPAID)
        .withAmount(100L)
        .customId("ID-123457")
        .orderNumber("1")
        .orderDescription("Supercash Coupon Test")
        .withBuyerEmail("zakaznik@example.com")
        .withBuyerPhone("+420777123456")
        .validTo(new Date(2018, 12, 31))
        <NOTIFY_URL>
        .buildCouponRequest();

SupercashCoupon coupon = null;

try {
    coupon = connector
            .getAppToken(CLIENT_ID, CLIENT_SECRET, OAuth.SCOPE_PAYMENT_ALL)
            .createSupercashCoupon(couponRequest);

} catch (GPClientException e) {
    //
}

SupercashCouponRequest couponRequest = new SupercashCouponRequest()
{
    GoId = GOID,
    SubType = SubType.POSTPAID,
    CustomId = "ID-123457",
    Amount = 100,
    OrderNumber = "1",
    OrderDescription = "Supercash Coupon Test",
    BuyerEmail = "zakaznik@example.com",
    BuyerPhone = "+420777123456",
    DateValidTo = new DateTime(2018, 12, 31),
    NotificiationUrl = "http://www.example-notify.cz/supercash"
};

try
{
    SupercashCoupon result = connector.GetAppToken().CreateSupercashCoupon(couponRequest);

    Console.WriteLine("SC coupon id: {0}", result.SupercashCouponId);
    Console.WriteLine("SC custom id: {0}", result.CustomId);
    Console.WriteLine("SC coupon number: {0}", result.SupercashNumber);
}
catch (GPClientException ex)
{
   //
}   

Request

POST /api/supercash/coupon

Hlavička požadavku

Název parametru Popis parametru Povinný
Accept application/json ANO
Content-Type application/json ANO
Authorization Bearer <access-token> ANO

Tělo požadavku

Název parametru Popis parametru Povinný Datový typ
go_id Jedinečný identifikátor eshopu v systému platební brány ANO long
sub_type Typ superCASH kupónu ANO Nabývá hodnot, viz sub_type
custom_id Vlastní ID pro kupón NE string, pouze alfanumerické znaky (256 znaků)
amount Částka v haléřích ANO long > 0
order_number Identifikace objednávky v rámci prodejního místa NE string, pouze alfanumerické znaky (128 znaků)
order_description Popis objednávky NE string, pouze alfanumerické znaky (256 znaků)
buyer_email Validní e-mail zákazníka ANO string
buyer_phone Telefonní číslo zákazníka s předvolbou ANO string
date_valid_to Datum platnosti kupónu ANO string, yyyy-mm-dd
notification_url URL adresa pro odeslání asynchronní notifikace v případě změny stavu kupónu (včetně protokolu) ANO string

Response

{
    "supercash_coupon_id":100154021,
    "custom_id":"ID-123457",
    "barcode_image_url":"https://partner.sandbox.gopay.com/gp-gateways/supercash/generateImg.action?barCode=14969119252751496911925275149691",
    "supercash_number":"1496911925275",
    "barcode":"14969119252751496911925275149691",
    "date_created":"2017-06-08T10:52:05.224+0200",
    "date_valid_to":"2018-12-31",
    "payment_session_id_list":[3050854820]
}

Response

Název parametru Popis parametru Datový typ
supercash_coupon_id ID superCASH kupónu string
custom_id Vlastní ID pro kupón string
barcode_image_url Odkaz na JPG soubor s čárovým kódem superCASH string
supercash_number Číslo superCASH string
barcode Číslo čárového kódu superCASH string
date_created Datum vytvoření kupónu yyyy-MM-dd’T'HH:mm:ss.SSSZ
date_valid_to Datum platnosti kupónu string, yyyy-mm-dd
payment_session_id_list List ID plateb string

Stav vytvoření batche

Umožňuje zjistit stav vytvářeného superCASH batche.

Request

curl -v -N https://gw.sandbox.gopay.com/api/batch/951806260 \
-X "GET" \
-H "Accept: application/json" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer m/7OTknCbdIiHTNfFW6GWMyfL7XO40OfOKixtzUvkp+eLw9gWBl96+Lk4fPz7BrpFUGWvA3bi29Ywc8gC5tOONeUJQvXmruhjJQNw7QyeqQ=" \

def _get_supercash_coupon_batch_status(self):
    batch_id = 961667719

long batchId = 961667719;
SupercashBatchState batchState = null;

try {
    batchState = connector
            .getAppToken(CLIENT_ID, CLIENT_SECRET, OAuth.SCOPE_PAYMENT_ALL)
            .getSupercashCouponBatchStatus(batchId);

} catch (GPClientException e) {
    //
}

var batchId = 961667719;

try
{
    SupercashBatchState result = connector.GetAppToken().GetSupercashCouponBatchStatus(batchId);
    Console.WriteLine(result.ToString());
}
catch (GPClientException ex)
{
    //
}

Request

GET /api/batch/{id_batche}

Hlavička požadavku

Název parametru Popis parametru Povinný
Accept application/json ANO
Content-Type application/x-www-form-urlencoded ANO
Authorization Bearer <access-token> ANO

Response

{
    "state":"COMPLETED",
    "batch_completed":true,
    "items_finished":10,
    "items_count":10
}

Response

Název parametru Popis parametru Datový typ
state Stav dokončení batche string, může nabývat hodnot viz state
batch_completed Batch dokončen boolean
items_finished Počet dokončných kupónů long
items_count Celkový počet kupónů long

Detaily superCASH kupónů batche

Funkcionalita vypisuje detaily superCASH kupónů daného batche uvedeného jako GET parametr v URL požadavku.

Request

curl -v -N "https://gw.sandbox.gopay.com/api/supercash/coupon/find?batch_request_id=960614882&go_id=8123456789" \
-X "GET" \
-H "Accept: application/json" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer UQH6YC1vnL4byosE+tquq/OzQAvRvWfkTAT/70UzF8Gfl8zfWybisHZ+jkJ2/cGcyigfPGZrWcAjYypwNwoc7DLSgs8Qyhbf3RqpMhY+s2o=" \

def _get_suppercash_coupon_batch(self):
       batch_id = 961667719

long batchId = 961667719;

SupercashBatch supercashBatch = null;

try {
    supercashBatch = connector
            .getAppToken(CLIENT_ID, CLIENT_SECRET, OAuth.SCOPE_PAYMENT_ALL)
            .getSupercashCouponBatch(8712700986L, batchId);
} catch (GPClientException e) {
    //
}

var batchId = 961667719;

try
{
    SupercashBatch result = connector.GetAppToken().GetSupercashCouponBatch(batchId, GOID);
    Console.WriteLine(result.ToString());
}
catch (GPClientException ex)
{
    //
}

Request

GET /api/supercash/coupon/find?batch_request_id={id_batche}&go_id={goid_eshopu}

Hlavička požadavku

Název parametru Popis parametru Povinný
Accept application/json ANO
Content-Type application/x-www-form-urlencoded ANO
Authorization Bearer <access-token> ANO

Response

{
    "coupons":[{
        "supercash_coupon_id":100153130,
        "custom_id":"ID-123459",
        "barcode_image_url":"https://partner.sandbox.gopay.com/gp-gateways/supercash/generateImg.action?barCode=14950224806731495022480673149502",
        "supercash_number":"1495022480673",
        "barcode":"14950224806731495022480673149502",
        "date_created":"2017-05-17T14:01:20.364+0200",
        "date_valid_to":"2017-08-15",
        "payment_session_id_list":[3050400275]
        },
        {
        "supercash_coupon_id":100153141,
        "custom_id":"ID-123458",
        "barcode_image_url":"https://partner.sandbox.gopay.com/gp-gateways/supercash/generateImg.action?barCode=14950224823601495022482360149502",
        "supercash_number":"1495022482360",
        "barcode":"14950224823601495022482360149502",
        "date_created":"2017-05-17T14:01:22.310+0200",
        "date_valid_to":"2017-08-15",
        "payment_session_id_list":[3050400288]
        },
        ...
    ]
}

Response

Název parametru Popis parametru Datový typ
supercash_coupon_id ID superCASH kupónu string
custom_id Identifikace objednávky v rámci prodejního místa string
barcode_image_url Odkaz na JPG soubor s čárovým kódem superCASH string
supercash_number Číslo superCASH string
barcode Číslo čárového kódu superCASH string
date_created Datum vytvoření kupónu yyyy-MM-dd’T'HH:mm:ss.SSSZ
date_valid_to Datum platnosti kupónu string, yyyy-mm-dd
payment_session_id_list List ID plateb string

Detaily superCASH kupónů platby

Funkcionalita vypisuje detaily superCASH kupónů pro konkrétní ID platby uvedené jako GET parametr v URL požadavku.

Více ID plateb je v URL požadavku odděleno čárkou.

Request

curl -v -N "https://gw.sandbox.gopay.com/api/supercash/coupon/find?payment_session_id_list={3050400405,3050400392}&go_id=8123456789" \
-X "GET" \
-H "Accept: application/json" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer CuuEOc6RJ14G0cWuVgXVb5U5VcrW4h6/mmu9wjbKj4Kfhy/0VzhRb2rBOasX5QHFlBjPlHl8XH5Q10BPWa0MYyVQgXN4cC3M4jiU6e5yMzc=" \

def _find_supercash_coupons(self):
       payment_session_id = [3050857992, 3050858018]
       #payment_session_id = 3050857992

//      long paymentSessionIds = 3050857992L;
        Long[] paymentSessionIds = new Long[] { 3050857992L, 3050858018L };

        SupercashBatch supercashBatch = null;

        try {
            supercashBatch = connector
                    .getAppToken(CLIENT_ID, CLIENT_SECRET, OAuth.SCOPE_PAYMENT_ALL)
                    .findSupercashCoupons(8712700986L, paymentSessionIds);
        } catch (GPClientException e) {
            //
        }

    }

//long[] paymentSessionIds = new long[] { 3050857992, 3050858018 };
long paymentSessionIds = 3050857992;

try
{
    SupercashBatch result = connector.GetAppToken().FindSupercashCoupons(GOID, paymentSessionIds);
    Console.WriteLine(result.ToString());
}
catch (GPClientException ex)
{
    //
}

Request

GET /api/supercash/coupon/find?payment_session_id_list={id_platby}&go_id={goid_eshopu}

Hlavička požadavku

Název parametru Popis parametru Povinný
Accept application/json ANO
Content-Type application/x-www-form-urlencoded ANO
Authorization Bearer <access-token> ANO

Response

{
    "coupons":[{
        "supercash_coupon_id":100153229,
        "custom_id":"ID-123457",
        "barcode_image_url":"https://partner.sandbox.gopay.com/gp-gateways/supercash/generateImg.action?barCode=14950224995111495022499511149502",
        "supercash_number":"1495022499511",
        "barcode":"14950224995111495022499511149502",
        "date_created":"2017-05-17T14:01:39.462+0200",
        "date_valid_to":"2017-08-15",
        "payment_session_id_list":[3050400405]}
    ]
}
{
    "coupons":[{
        "supercash_coupon_id":100153218,
        "custom_id":"ID-123457",
        "barcode_image_url":"https://partner.sandbox.gopay.com/gp-gateways/supercash/generateImg.action?barCode=14950224973471495022497347149502",
        "supercash_number":"1495022497347",
        "barcode":"14950224973471495022497347149502",
        "date_created":"2017-05-17T14:01:37.297+0200",
        "date_valid_to":"2017-08-15",
        "payment_session_id_list":[3050400392]}
    ]
}

Response

Název parametru Popis parametru Datový typ
supercash_coupon_id ID superCASH kupónu string
custom_id Identifikace objednávky v rámci prodejního místa string
barcode_image_url Odkaz na JPG soubor s čárovým kódem superCASH string
supercash_number Číslo superCASH string
barcode Číslo čárového kódu superCASH string
date_created Datum vytvoření kupónu yyyy-MM-dd’T'HH:mm:ss.SSSZ
date_valid_to Datum platnosti kupónu string, yyyy-mm-dd
payment_session_id_list List ID plateb string

Detaily superCASH kupónu

Funkcionalita vypisuje detaily konkrétního superCASH kupónu.

Request

curl -v -N https://gw.sandbox.gopay.com/api/supercash/coupon/100153229 \
-X "GET" \
-H "Accept: application/json" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer Ufgxd1w6C4rvm/UD8PovgE4fV9phwJKTEbWFQeoWY69w9Ph7+qFCajyBxVz75k7/G6yGhQpwFmgPfB9cahnJR6wp8ja/mX8x/0wAlgbX1o8=" \

def _get_supercash_coupon(self):
        coupon_id = 100154175

long couponId = 100154175;

SupercashPayment supercashPayment = null;

try {
    supercashPayment = connector
            .getAppToken(CLIENT_ID, CLIENT_SECRET, OAuth.SCOPE_PAYMENT_ALL)
            .getSupercashCoupon(couponId);
} catch (GPClientException e) {
    //
}

long couponId = 100154175;

try
{
    SupercashPayment result = connector.GetAppToken().GetSupercashCoupon(couponId);
    Console.WriteLine(result.ToString());
}
catch (GPClientException ex)
{
    //
}

Request

GET /api/supercash/coupon/{id_kuponu}

Hlavička požadavku

Název parametru Popis parametru Povinný
Accept application/json ANO
Content-Type application/x-www-form-urlencoded ANO
Authorization Bearer <access-token> ANO

Response

{
    "coupons":[{
        "supercash_coupon_id":100153229,
        "custom_id":"ID-123457",
        "barcode_image_url":"https://partner.sandbox.gopay.com/gp-gateways/supercash/generateImg.action?barCode=14950224995111495022499511149502",
        "supercash_number":"1495022499511",
        "barcode":"14950224995111495022499511149502",
        "date_created":"2017-05-17T14:01:39.462+0200",
        "date_valid_to":"2017-08-15",
        "payment_session_id_list":[3050400405]}
    ]
}

Response

Název parametru Popis parametru Datový typ
supercash_coupon_id ID superCASH kupónu string
custom_id Identifikace objednávky v rámci prodejního místa string
barcode_image_url Odkaz na JPG soubor s čárovým kódem superCASH string
supercash_number Číslo superCASH string
barcode Číslo čárového kódu superCASH string
date_created Datum vytvoření kupónu yyyy-MM-dd’T'HH:mm:ss.SSSZ
date_valid_to Datum platnosti kupónu string, yyyy-mm-dd
payment_session_id_list List ID plateb string

Objekty

Popis jednotlivých objektů použitých při komunikaci s platební bránou

payer

Definice plátce platby

 {
   "allowed_payment_instruments":["PAYMENT_CARD", "BANK_ACCOUNT"],
   "default_payment_instrument":"BANK_ACCOUNT",
   "default_swift":"GIBACZPX",
   "allowed_swifts":["FIOBCZPP","BREXCZPP"],
   "bank_account":{},
   "contact": {}
 }
Název parametru Popis parametru Datový typ
allowed_payment_instruments Pole povolených platebních metod string, nabývající hodnot viz payment_instrument
default_payment_instrument Preferovaná platební metoda string, nabývající hodnot viz payment_instrument
default_swift Preferová banka pokud je default_payment_instrument nastaveno na BANK_ACCOUNT, nastaveno pomocí SWIFT kódu banky string, nabývající hodnot viz SWIFT
allowed_swifts Pole povolených kódů bank string, nabývající hodnot viz SWIFT
bank_account Údaje o bankovním účtu plátce Objekt
payment_card Údaje o použité platební kartě Objekt
contact Údaje o zákaníkovi Objekt

bank_account

Údaje o bankovním účtu plátce

{
    "prefix":"670100",
    "account_number":"7654322",
    "bank_code":"0100",
    "account_name":"JAN NOVAK"
}
Název parametru Popis parametru Datový typ
iban Kód IBAN bankovního účtu zákazníka string, 50 znaků
bic SWIFT kód banky zákazníka string, 11 znaků
prefix Předčíslí bankovního účtu zákazníka string, 64 znaků
account_number Číslo bankovního účtu zákazníka string, 128 znaků
bank_code Kód banky zákazníka string, 8 znaků
account_name Jméno majitele bankovního účtu string, 70 znaků

payment_card

Údaje o použité platební kartě

{
    "card_number":"444444******4448",
    "card_expiration":"1909",
    "card_brand":"VISA",
    "card_issuer_country":"CZE",
    "card_issuer_bank":"AIR BANK, A.S."
}
Název parametru Popis parametru Datový typ
card_number Vymaskované číslo platební karty string, 16 znaků
card_expiration Datum expirace string, 4 znaky
card_brand Typ platební karty string, 50 znaků
card_issuer_country Kód země vydavatelské banky string, 3 znaky
card_issuer_bank Vydavatelská banka string, 80 znaků

contact

Zákaznické informace

{
   "first_name":"Zbynek",
   "last_name":"Zak",
   "email":"test@test.cz",
   "phone_number":"+420777456123",
   "city":"C.Budejovice",
   "street":"Plana 67",
   "postal_code":"373 01",
   "country_code":"CZE"
}
Název parametru Popis parametru Datový typ
first_name Jméno zákazníka string, 256 znaků
last_name Příjmení zákazníka string, 256 znaků
email Validní e-mail zákazníka string, 128 znaků
phone_number Telefonní číslo zákazníka s předvolbou string, 128 znaků
city Město zákazníka string, 128 znaků
street Ulice zákazníka string, 128 znaků
postal_code Poštovní směrovací číslo zákazníka string, 16 znaků
country_code Kód státu zákazníka string ISO 3166-1 alpha-3

target

Identifikace příjemce platby

{
  "type":"ACCOUNT",
  "goid":"8123456789"
}
Název parametru Popis parametru Datový typ
type Popis příjemce platby string, nastaveno na ACCOUNT
goid Jedinečný identifikátor eshopu v systému platební brány long

items

Jednotlivé položky objednávky

[
    "type":"ITEM", 
    "name":"obuv",
    "product_url":"https://www.eshop.cz/boty/lodicky", 
    "ean":1234567890123,
    "amount":119990,
    "count":1,
    "vat_rate":21
]
Název parametru Popis parametru Datový typ
type Typ položky enum, nabývá hodnot viz type
product_url URL adresa produktu string
ean EAN kód produktu varchar, (13 znaků)
count Počet položek produktu long > 0
name Název produktu string, alfanumerické znaky (256 znaků)
amount Součet cen položek s DPH v haléřích long, kladná nebo záporná celá čísla
vat_rate Sazba daně, pro potřeby EET nabývá hodnot viz vat_rate

eet

Parametry pro elektronickou evidenci tržeb (EET)

[
    "celk_trzba":139950,
    "zakl_dan1":99165,
    "dan1":20825,
    "zakl_dan2":17357,
    "dan2":2604,
    "mena":"CZK"
]
Název parametru Popis parametru Datový typ
dic_poverujiciho DIČ pověřujícího poplatníka varchar
celk_trzba Celková částka tržby long v centech
zakl_nepodl_dph Celková částka plnění osvobozených od DPH long v centech
zakl_dan1 Celkový základ daně se základní sazbou DPH long v centech
dan1 Celková DPH se základní sazbou long v centech
zakl_dan2 Celkový základ daně s první sníženou sazbou DPH long v centech
dan2 Celková DPH s první sníženou sazbou long v centech
zakl_dan3 Celkový základ daně s druhou sníženou sazbou DPH long v centech
dan3 Celková DPH s druhou sníženou sazbou long v centech
cest_sluz Celková částka v režimu DPH pro cestovní službu long v centech
pouzit_zboz1 Celková částka v režimu DPH pro prodej použitého zboží se základní sazbou long v centech
pouzit_zboz2 Celková částka v režimu DPH pro prodej použitého zboží s první sníženou sazbou long v centech
pouzit_zboz3 Celková částka v režimu DPH pro prodej použitého zboží s druhou sníženou sazbou long v centech
urceno_cerp_zuct Celková částka plateb určená k následnému čerpání nebo zúčtování long v centech
cerp_zuct Celková částka plateb, které jsou následným čerpáním nebo zúčtováním platby long v centech
mena Měna, ve které jsou údaje předávány string

eet_code

EET kódy účtenky

{
    "fik":"28da0811-e050-46c7-a62c-aa456d1f07ef-ff",
    "bkp":"5d874afc-251f8661-ff0e0b13-c7cd8793-6bf0386a",
    "pkp":"Ca8sTbURReQjjgcy/znXBKjPOnZof3AxWK5WySpyMrUXF0o7cz1BP6a....."
}
Název parametru Popis parametru Datový typ
fik Fiskální identifikační kód (FIK) varchar, 39 znaků
bkp Bezpečnostní kód poplatníka (BKP) varchar, 44 znaků
pkp Podpisový kód poplatníka (PKP) varchar, 344 znaků

callback

Definice návratové a notifikační URL

{
   "return_url":"http://www.eshop.cz/return",
   "notification_url":"http://www.eshop.cz/notify"
}
Název parametru Popis parametru Datový typ
return_url URL adresa pro návrat na eshop (včetně protokolu) string
notification_url URL adresa pro odeslání asynchronní notifikace v případě změny stavu platby (včetně protokolu) string

additional_params

Dodatečné parametry platby

[
   {"name":"invoicenumber","value":"2015001003"},
   {"name":"...","value":"..."}
]
Název parametru Popis parametru Datový typ
name Název parametru string
value Hodnota volitelného parametru string

recurrence

Nastavení opakované platby

Opakování každý sedmý den

{
  "recurrence_cycle":"DAY",
  "recurrence_period":"7",
  "recurrence_date_to":"2015-12-31"
}

Opakování každý třetí den

{
  "recurrence_cycle":"DAY",
  "recurrence_period":"3",
  "recurrence_date_to":"2015-12-31"
}

Opakování každý druhý měsíc

{
  "recurrence_cycle":"MONTH",
  "recurrence_period":"2",
  "recurrence_date_to":"2015-12-31"
}
Název parametru Popis parametru Datový typ
recurrence_cycle Časový úsek opakování string, nabývá hodnot viz recurrence_cycle
recurrence_period Perioda opakování opakované platby long
recurrence_date_to Doba platnosti opakované platby string yyyy-mm-dd
recurrence_state Popis stavu opakované platby string, nabývá hodnot REQUESTED, STARTED, STOPPED

groups

Název každé skupiny odpovídá kódům skupin

Název parametru Popis parametru
label Objekt obsahující lokalizované názvy skupiny platebních metod
cs Český název skupiny platebních metod

group-codes

Názvy skupin platebních metod

"groups":{
    "card-payment":{
      "label":{
        "cs":"Platební karta"}
      },
    "bank-transfer":{
      "label":{
        "cs":"Rychlý bankovní převod"}
      },
    "wallet":{
      "label":{
        "cs":"Elektronické peněženky"}
      },
    "others":{
      "label":{
        "cs":"Ostatní"}
      }
    }
Název skupiny Popis skupiny
card-payment Platby kartou
bank-transfer Bankovní převody
wallet Platby prostřednictvím elektronických peněženek
others Ostatní platební metody

enabledPaymentInstruments

Název každého objektu odpovídá kódům platebních metod

  "enabledPaymentInstruments":[{
            "paymentInstrument":"PAYMENT_CARD",
                "label":{
                    "cs":"Platební karta"
                },
                "image":{
                    "normal":"https://gate.gopay.cz/images/checkout/payment_card.png",
                    "large":"https://gate.gopay.cz/images/checkout/payment_card@2x.png"},
                "group":"card-payment",
                "enabledSwifts":null
                },
            {"paymentInstrument":"BANK_ACCOUNT",
                "label":{
                    "cs":"Rychlý bankovní převod"},
                "image":{
                    "normal":"https://gate.gopay.cz/images/checkout/bank_account.png",
                    "large":"https://gate.gopay.cz/images/checkout/bank_account@2x.png"},
                "group":"bank-transfer",
                "enabledSwifts":[{
                    "swift":"GIBACZPX",
                        "label":{"cs":"Platba 24"},
                        "image":{
                            "normal":"https://gate.gopay.cz/images/checkout/GIBACZPX.png",
                            "large":"https://gate.gopay.cz/images/checkout/GIBACZPX@2x.png"},
                        "isOnline":true},
                ...
            }]
Název parametru Popis parametru
label Objekt obsahující lokalizované názvy platební metody
image Logo platební metody dostupné ve dvou formátech - normal, large
group Skupina, do které platební metoda náleží viz groups
enabledSwifts Jednotlivé podobjekty reprezentují banky povolené pro platební metodu. Předává se pouze v případě metody BANK_ACCOUNT

enabledSwifts

Název každého objektu odpovídá SWIFT kódům bank

"enabledSwifts":[{
    "swift":"GIBACZPX",
        "label":{
          "cs":"Platba 24"},
        "image":{
          "normal":"https://gate.gopay.cz/images/checkout/GIBACZPX.png",
          "large":"https://gate.gopay.cz/images/checkout/GIBACZPX@2x.png"},
        "isOnline":true},
    ...
    }]
Název parametru Popis parametru
label Objekt obsahující lokalizace názvu banky
image Logo banky dostupné ve dvou formátech - normal, large
isOnline Stav symbolizující zda banka podporuje online převod

defaults

Výchozí hodnoty superCASH kupónů

"defaults":{
    "sub_type":"POSTPAID",
    "amounts":[300,400,500,600,700,800,900,1000],
    "order_description":"supercash batch test"
}
Název parametru Popis parametru
sub_type Typ superCASH kupónu
custom_id Vlastní ID pro kupón
amounts Pole částek v haléřích
order_number Identifikace objednávky v rámci prodejního místa
order_description Popis objednávky
buyer_email Validní e-mail zákazníka
buyer_phone Telefonní číslo zákazníka s předvolbou
date_valid_to Datum platnosti kupónu
notification_url URL adresa pro odeslání asynchronní notifikace v případě změny stavu kupónu (včetně protokolu)

coupons

Specifické hodnoty superCASH kupónů

"coupons":[
                {
                    "buyer_email":"zakaznik1@example.com",
                    "custom_id":"ID-123457",
                    "buyer_phone":"+420777666111",
                    "amounts":[100]
                },
                {
                    "buyer_email":"zakaznik2@example.com",
                    "custom_id":"ID-123458",
                    "buyer_phone":"+420777666222",
                    "amounts":[200]
                },
                {
                    "buyer_email":"zakaznik3@example.com",
                    "custom_id":"ID-123459",
                    "buyer_phone":"+420777666333"
                }
            ]
Název parametru Popis parametru
sub_type Typ superCASH kupónu
custom_id Vlastní ID pro kupón
amounts Pole částek v haléřích
order_number Identifikace objednávky v rámci prodejního místa
order_description Popis objednávky
buyer_email Validní e-mail zákazníka
buyer_phone Telefonní číslo zákazníka s předvolbou
date_valid_to Datum platnosti kupónu
notification_url URL adresa pro odeslání asynchronní notifikace v případě změny stavu kupónu (včetně protokolu)

Číselníky

recurrence_cycle

Cyklus opakované platby

Hodnota parametru Popis
DAY Denní opakování
WEEK Týdenní opakování
MONTH Měsíční opakování
ON_DEMAND U opakovaných plateb na vyžádání

currency

Měna platby

Hodnota parametru Popis
CZK České koruny
EUR Eura
PLN Polský złoty
HUF Maďarský forint
GBP Britská libra
USD Americký dolar

scope

Parametr popisující množinu získaných práv

Hodnota Popis
payment-create Umožňuje pouze zakládání plateb
payment-all Umožňuje provádět veškeré operace nad platbami

result

Výsledek operace

Název parametru Popis parametru
ACCEPTED Požadavek přijat
FINISHED Operace provedena
FAILED Operace skončila chybou

Stavy plateb

Platba může nabývat následujících stavů

Název stavu Popis parametru stavu
CREATED Platba založena
PAYMENT_METHOD_CHOSEN Platební metoda vybrána
PAID Platba zaplacena
AUTHORIZED Platba předautorizována
CANCELED Platba zrušena
TIMEOUTED Vypršelá platnost platby
REFUNDED Platba refundována
PARTIALLY_REFUNDED Platba částečně refundována

Podstav plateb

Platba může nabývat následujících podstavů

Hodnota parametru Popis parametru podstavu
_101 Čekáme na provedení online platby.
_102 Čekáme na provedení offline platby.
_3001 Bankovní platba potvrzena avízem.
_3002 Bankovní platba potvrzena výpisem.
_3003 Bankovní platba nebyla potvrzena.
_5002 Zamítnutí platby v autorizačním centru banky zákazníka z důvodu dosažení limitů na platební kartě.
_5003 Zamítnutí platby v autorizačním centru banky zákazníka z důvodu problémů na straně vydavatele platební karty.
_5004 Zamítnutí platby v autorizačním centru banky zákazníka z důvodu problému na straně vydavatele platební karty.
_5005 Zamítnutí platby v autorizačním centru banky zákazníka z důvodu zablokované platební karty.
_5006 Zamítnutí platby v autorizačním centru banky zákazníka z důvodu nedostatku peněžních prostředků na platební kartě.
_5007 Zamítnutí platby v autorizačním centru banky zákazníka z důvodu expirované platební karty.
_5008 Zamítnutí platby v autorizačním centru banky zákazníka z důvodu zamítnutí CVV/CVC kódu.
_5009, _5015, _5017, _5018, _5019, _6502, _6504 Zamítnutí platby v systému 3D Secure banky zákazníka.
_5010, _5014 Zamítnutí platby v autorizačním centru banky zákazníka z důvodu problémů na platební kartě.
_5011, _5036 Zamítnutí platby v autorizačním centru banky zákazníka z důvodu problémů na účtu platební karty.
_5012 Zamítnutí platby v autorizačním centru banky zákazníka z důvodu technických problémů v autorizačním centru banky zákazníka.
_5013 Zamítnutí platby v autorizačním centru banky zákazníka z důvodu chybného zadání čísla platební karty.
_5016 Zamítnutí platby v autorizačním centru banky zákazníka, platba nebyla povolena na platební kartě zákazníka.
_5021 Zamítnutí platby v autorizačním centru banky zákazníka z důvodu dosažení nastavených limitů na platební kartě.
_5022 Nastal technický problém spojený s autorizačním centrem banky zákazníka.
_5023, _5038 Platba nebyla provedena.
_5024 Platba nebyla provedena. Platební údaje nebyly zadány v časovém limitu na platební bráně.
_5025 Platba nebyla provedena. Konkrétní důvod zamítnutí je sdělen přímo zákazníkovi.
_5026 Platba nebyla provedena. Součet kreditovaných částek překročil uhrazenou částku.
_5027 Platba nebyla provedena. Uživatel není oprávněn k provedení operace.
_5028 Platba nebyla provedena. Částka k úhradě překročila autorizovanou částku.
_5029 Platba zatím nebyla provedena.
_5030 Platba nebyla provedena z důvodu opakovaného zadání platby.
_5031 Při platbě nastal technický problém na straně banky.
_5033 SMS se nepodařilo doručit.
_5035 Platební karta je vydaná v regionu, ve kterém nejsou podporovány platby kartou.
_5037 Držitel platební karty zrušil platbu.
_5039 Platba byla zamítnuta v autorizačním centru banky zákazníka z důvodu zablokované platební karty.
_5042 Bankovní platba byla zamítnuta.
_5043 Platba zrušena uživatelem.
_5044 SMS byla odeslána. Zatím se ji nepodařilo doručit.
_5045 Platba byla přijata. Platba bude připsána po zpracování v síti Bitcoin.
_5046 Platba nebyla uhrazena v plné výši.
_5047 Platba byla provedena po splatnosti.

lang

Nastavení jazyka platební brány

Kód jazyka Jazyk
CS Čeština
EN Angličtina
SK Slovenština
DE Němčina
RU Ruština
PL Polština
HU Maďarština
FR Francouzština

payment_instrument

Kódy platebních metod

Kód platební metody Popis platební metody
PAYMENT_CARD Platební karty
BANK_ACCOUNT Bankovní převody
PRSMS Premium SMS
MPAYMENT Mplatba
PAYSAFECARD paysafecard
SUPERCASH superCASH
GOPAY GoPay účet
PAYPAL PayPal účet
BITCOIN Platba bitcoiny

SWIFT

Kódy jednotlivých bank

Kód banky Název banky
GIBACZPX Česká spořitelna
KOMBCZPP Komerční Banka
RZBCCZPP Raiffeisenbank
BREXCZPP mBank
FIOBCZPP FIO Banka
CEKOCZPP ČSOB
CEKOCZPP-ERA ERA
SUBASKBX Všeobecná úverová banka
TATRSKBX Tatra Banka
UNCRSKBX Unicredit Bank SK
GIBASKBX Slovenská spořitelna
POBNSKBA Poštová Banka
CEKOSKBX ČSOB SK
LUBASKBX Sberbank Slovensko
OTHERS Speciální swift bez předvýběru konkrétní banky
BREXPLPW mBank
CITIPLPX Citi Handlowy
BPKOPLPW-IKO IKO
BPKOPLPW-INTELIGO Inteligo
IVSEPLPP Plus Bank
BPHKPLPK BANK BPH S.A.
TOBAPLPW Toyota Bank
VOWAPLP1 Volkswagen Bank
GBWCPLPP SGB
POCZPLP4 Pocztowy bank
GOPZPLPW BGZ Bank
IEEAPLPA IDEA
POLUPLPR BPS
GBGCPLPK-GIO Getin Online
GBGCPLPK-BLIK Blik
GBGCPLPK-NOB Noble bank
BREXPLPW-OMB Orange
WBKPPLPP BZ WBK
RCBWPLPW RAIFFEISEN BANK POLSKA S.A.
BPKOPLPW POWSZECHNA KASA OSZCZEDNOSCI BANK POLSKI SA
ALBPPLPW Alior Bank
INGBPLPW ING Bank Śląski
PKOPPLPW PEKAO S.A
GBGCPLPK Getin Online
BIGBPLPW Bank Millennium
EBOSPLPW Bank Ochrony Środowiska
PPABPLPK BNP Paribas Polska
AGRIPLPR Credit Agricole
DEUTPLPX DEUTSCHE BANK POLSKA S.A.
DNBANOKK DnB Nord
NBPLPLPW E-SKOK
SOGEPLPW Eurobank
PBPBPLPW POLSKI BANK PRZEDSIEBIORCZOSCI SPOLKA AKCYJNA

format

Formát souboru generovaného výpisu

Hodnota parametru Popis
CSV_A CSV typ A
CSV_B CSV typ B
CSV_C CSV typ C
CSV_D CSV typ D
XLS_A XLS typ A
XLS_B XLS typ B
XLS_C XLS typ C
ABO_A ABO (.gpc)

type

Typ položky

Hodnota parametru Popis
ITEM Položka
DELIVERY Poštovné
DISCOUNT Sleva

vat_rate

Sazba daně pro potřeby EET

Hodnota parametru Popis
0 Nulová daňová sazba
10 Daňová sazba 10 %
15 Daňová sazba 15 %
21 Daňová sazba 21 %

state

Popis stavu EET účtenky

Hodnota parametru Popis
CREATED Vytvořena
DELIVERY_FAILED Doručení selhalo
DELIVERED Doručena

eet_mode

Varianta EET, viz popis variant

Hodnota parametru Popis
AUTO varianta A
EET varianta B

stav superCASH batche

Stav dokončení skupiny (batche) superCASH kupónů

Hodnota parametru Popis
CREATED Vytvořen
RUNNING Probíhá
QUEUED Čeká ve frontě
SCHEDULED Naplánován
COMPLETED Dokončen
STOPPED Zastaven
FAILED Selhal

sub_type

Typ superCASH kupónu

Hodnota parametru Popis
POSTPAID Kupón určený pro jednorázové uhrazení. Při vytvoření vzniká platba.
PREPAID Kupón určený pro vícenásobné uhrazení. Platba vzniká po první úhradě zákazníkem.

Chyby

HTTP result kódy

HTTP kód Význam kódu
200 Volání proběhlo úspěšně
403 Neautorizovaný přístup
409 Validační chyby
500 Volání skončilo chybou
404 Neexistující služba

Návratové chyby

Příklad chybové odpovědi - field specific

{"date_issued":1390336022001,
"errors":[
    {"scope":"F","field":"email","message":"E-mail jiz existuje.","error_code":112,"error_name":"NOT_UNIQUE"},
    {"scope":"F","field":"mobile_phone","message":"Mobilni telefon jiz existuje.","error_code":112,"error_name":"NOT_UNIQUE"}
]}

Příklad chybové odpovědi - global

{"scope":"G","field":null,"error_code":500,"error_name":null,"message":null,"description":null}

Detail chyby je popsán v body odpovědi jako application/json data následující struktury.

Parametr Popis parametru
date issued timestamp okamžiku chyby
errors list chybových zpráv

errors

Parametr Popis parametru
scope F - field specific, G - global
field Uvedeno pouze v případě validační chyby spojené s fieldem
message Lokalizovaný message. Lokalizace založená na Accept-Language v hlavičce. Deafultně je nastaveno na en-US, dále je možné použít českou lokalizaci pomocí hlavičky Accept-Language: cs.
description Technický popis chyby
error_code Číselné označení typu chyby
error_name Kódové označení typu chyby

Číselník chyb

Global

Kód popis
100 Systémová chyba
110 Povinný
111 Chybný formát
112 Již existuje
113 Nelze změnit
114 Nelze smazat
115 Nejednoznačné
116 Neplatný požadavek

Authentication, authorization

Kód popis
200 Neoprávněný přístup
201 Způsob přidělení práv není podporován
202 Chybné přístupové údaje
203 Přístup přes PIN byl deaktivován

Payment

Kód popis
350 Stržení platby selhalo
351 Stržení platby provedeno
352 Zrušení přeautorizace selhalo
353 Zrušení předautorizace provedeno
340 Provedení opakované platby selhalo
341 Provedení opakované platby není podporováno
342 Opakování platby zastaveno
343 Překročen časový limit počtu provedení opakované platby
330 Platbu nelze vrátit
331 Platbu nelze vrátit
332 Chybná částka
333 Nedostatek peněz na účtu
301 Platbu nelze vytvořit
302 Platbu nelze provést
303 Platba v chybném stavu
304 Platba nebyla nalezena