GoPay REST API
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.
Pro testovací účely je možné využít testovací scénář (obsahuje mj. testovací čísla platebních karet).
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
GitHub: https://github.com/gopaycommunity/gopay-php-api
Požadavky: PHP >= 8.1
Stažení Composeru: https://getcomposer.org
Instalace: composer require gopay/payments-sdk-php
https://github.com/gopaycommunity/gopay-python-api
Požadavky: Python >= 3.8.1
Instalace: pip install gopay
https://github.com/gopaycommunity/gopay-dotnet-api
Požadavky : .NET 4.0+
NuGet:
PM> Install-Package GOPAY.NET
dotnet-cli:
dotnet add package GoPay.NET
Závislosti:
Newtonsoft.Json
Restsharp
Restsharp.Newtonsoft.Json
Namespace:
using GoPay;
using GoPay.Common;
using GoPay.Model;
using GoPay.Payments;
using GoPay.Model.Payment;
using GoPay.Model.Payments;
using GoPay.EETProp;
using GoPay.Account;
https://github.com/gopaycommunity/gopay-java-api
Požadavky : Java 11
Instalace :
git clone https://github.com/gopaycommunity/gopay-java-api.git
cd gopay-java-api
mvn package
Všechny artefakty se nacházejí v centrálním repozitáři mavenu
http://mvnrepository.com/artifact/cz.gopay
Pokud Vám nevyhovuje HTTP Client, tak je možné z api použít další dva frameworky:
Resteasy
Apache CXF
Více informací o integraci těchto frameworků naleznete na našem githubu
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ě ClientID:ClientSecret
, zakódované v base64 a předané v hlavičce Authorization
.
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.
ⓘ Pokud ještě nemáte ClientID a ClientSecret, postupujte dle návodu.
Request headers
Vždy application/json
Vždy application/x-www-form-urlencoded
Basic HTTP autentizace viz výše
Request body
Rozsah práv tokenu
Vždy client_credentials
Responses
Body
Vždy bearer
Přístupový token
Obnovovací token - nepoužívá se
Životnost tokenu v sekundách
POST /api/oauth2/token HTTP/1.1
Accept: application/json
Content-Type: application/x-www-form-urlencoded
Authorization: Basic MTA2MTM5OTE2MzpzdERUbVZYRg==
scope=payment-create
&grant_type=client_credentials
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 "1061399163:stDTmVXF" \
-d "grant_type=client_credentials&scope=payment-create"
<?php
$gopay = GoPay\payments([
'goid' => '8123456789',
'clientId' => '1061399163',
'clientSecret' => 'stDTmVXF',
'gatewayUrl' => 'https://gw.sandbox.gopay.com/',
'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
var connector = new GPConnector(<API_URL>,<USER_ID>, <USER_SECRET>);
connector.GetAppToken();
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
{
"token_type":"bearer",
"access_token":"AAAnu3YnAHRk298EsmyttFQMcbCcvmwTKK5hrJx2aGG8ZnFyBJhAvFWNmbWVSD7p",
"expires_in":1800
}
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.
Pokud ještě nemáte GoID, postupujte dle návodu.
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í.
{id}
{id}
/refundPlatba 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.
Předáním parametrů preauthorization
a recurrence
je platba založena jako předautorizovaná, potažmo opakovaná.
ⓘ Při založení platby doporučujeme předávat objekt contact, který je součást objektu payer, a v něm veškeré údaje o klientovi. Předávání může vést k vyšší úspěšnosti plateb.
Request headers
Předává se string Bearer, za kterým následuje vytvořený přístupový token
Vždy application/json
Vždy application/json
Request body
Předává nastavení platebních metod pro danou platbu a údaje o plátci
Popisuje příjemce platby
Detailně rozepsané jednotlivé položky objednávky
Celková částka platby v háléřích/centech
Měna platby
Identifikace objednávky v rámci e-shopu, alfanumerické znaky
Popis objednávky, alfanumerické znaky
Jazyk na platební bráně
Návratová URL a notifikační URL pro oznámení změny stavu platby
Doplňkové parametry platby
Pokud se jedná o předautorizovanou platbu, je předáván s hodnotou true
Pokud se jedná o opakovanou platbu, je předáván objekt, popisující opakování platby
Responses
Body
ID platby
ID objednávky
Stav platby
Celková částka platby v háléřích/centech
Měna platby
Údaje o plátci a platebních metodách
Popisuje příjemce platby
Doplňkové parametry platby
Jazyk na platební bráně
Údaje o opakování platby, pokud je platba opakovaná
Údaje o předautorizaci, pokud je platba předautorizovaná
URL pro vyvolání platební brány
POST /api/payments/payment HTTP/1.1
Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969
Content-Type: application/json
Accept: application/json
{
"payer": {
"allowed_payment_instruments": [
"PAYMENT_CARD",
"BANK_ACCOUNT"
],
"default_payment_instrument": "PAYMENT_CARD",
"allowed_swifts": [
"FIOBCZPP",
"BREXCZPP"
],
"default_swift": "FIOBCZPP",
"contact": {
"first_name": "Zbyněk",
"last_name": "Žák",
"email": "test@test.cz",
"phone_number": "+420777456123",
"city": "České Budějovice",
"street": "Planá 67",
"postal_code": "37301",
"country_code": "CZE"
}
},
"target": {
"type": "ACCOUNT",
"goid": 8123456789
},
"items": [
{
"type": "DISCOUNT",
"name": "Obuv",
"amount": 119990,
"count": 1,
"vat_rate": "21",
"ean": 1234567890123,
"product_url": "https://www.eshop.cz/boty/lodicky"
}
],
"amount": 119990,
"currency": "CZK",
"order_number": "OBJ20200825",
"order_description": "Obuv",
"lang": "CS",
"callback": {
"return_url": "https://www.example.com/return",
"notification_url": "https://www.example.com/notify"
},
"additional_params": [
{
"name": "invoicenumber",
"value": "2015001003"
}
]
}
curl -X POST "https://gw.sandbox.gopay.com/api/payments/payment" \
-H "Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"payer": {
"allowed_payment_instruments": [
"PAYMENT_CARD",
"BANK_ACCOUNT"
],
"default_payment_instrument": "PAYMENT_CARD",
"allowed_swifts": [
"FIOBCZPP",
"BREXCZPP"
],
"default_swift": "FIOBCZPP",
"contact": {
"first_name": "Zbyněk",
"last_name": "Žák",
"email": "test@test.cz",
"phone_number": "+420777456123",
"city": "České Budějovice",
"street": "Planá 67",
"postal_code": "37301",
"country_code": "CZE"
}
},
"target": {
"type": "ACCOUNT",
"goid": 8123456789
},
"items": [
{
"type": "DISCOUNT",
"name": "Obuv",
"amount": 119990,
"count": 1,
"vat_rate": "21",
"ean": 1234567890123,
"product_url": "https://www.eshop.cz/boty/lodicky"
}
],
"amount": 119990,
"currency": "CZK",
"order_number": "OBJ20200825",
"order_description": "Obuv",
"lang": "CS",
"callback": {
"return_url": "https://www.example.com/return",
"notification_url": "https://www.example.com/notify"
},
"additional_params": [
{
"name": "invoicenumber",
"value": "2015001003"
}
]
}'
<?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
]);
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': 139951,
'currency': Currency.CZECH_CROWNS,
'order_number': '001',
'order_description': 'pojisteni01',
'items': [
{'name': 'item01', 'amount': 119990},
{'name': 'item02', 'amount': 19961},
],
'additional_params': [
{'name': 'invoicenumber', 'value': '2015001003'}
],
'callback': {
'return_url': 'http://www.your-url.tld/return',
'notification_url': 'http://www.your-url.tld/notify'
}
})
var payment = new BasePayment()
{
Currency = <Currency>,
Lang = "ENG",
OrderNumber = "789456167879",
Amount = 139951,
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) {
//
}
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();
}
}
{
"id": 3000006529,
"order_number": "OBJ20200825",
"state": "CREATED",
"amount": 139950,
"currency": "CZK",
"payer": {
"allowed_payment_instruments": [
"PAYMENT_CARD",
"BANK_ACCOUNT"
],
"default_payment_instrument": "PAYMENT_CARD",
"allowed_swifts": [
"FIOBCZPP",
"BREXCZPP"
],
"default_swift": "FIOBCZPP",
"contact": {
"first_name": "Zbyněk",
"last_name": "Žák",
"email": "test@test.cz",
"phone_number": "+420777456123",
"city": "České Budějovice",
"street": "Planá 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"
}
{id}
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.
V případě předautorizované a opakované platby obsahuje také odpověď informace o opakování platby či předautorizaci. Objekt payer může obsahovat údaje o platební kartě či bankovním účtu, pokud klient uhradil platbu jedním z těchto způsobů. Také může obsahovat náležitosti identifikační platby.
Podrobnější informace k dotazu na stav platby naleznete v našem centru nápovědy.
Path variables
ID dotazované platby
Request headers
Vždy application/json
Předává se string Bearer, za kterým následuje vytvořený přístupový token
Responses
Body
ID platby
ID objednávky
Stav platby
Podstav platby
Celková částka platby v háléřích/centech
Měna platby
Použitá platební metoda
Údaje o plátci a platebních metodách
Popisuje příjemce platby
Doplňkové parametry platby
Jazyk na platební bráně
Údaje o opakování platby, pokud je platba opakovaná
Údaje o předautorizaci, pokud je platba předautorizovaná
URL platební brány
GET /api/payments/payment/3000006529 HTTP/1.1
Accept: application/json
Content-Type: application/x-www-form-urlencoded
Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969
curl -X GET "/api/payments/payment/3000006529" \
-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)
try {
var payment = connector.PaymentStatus(<PAYMENT_ID>);
} catch (GPClientException e) {
//
}
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();
}
}
{
"id": 3000006529,
"order_number": "OBJ20200825",
"state": "PAID",
"amount": 139950,
"currency": "CZK",
"payment_instrument": "PAYMENT_CARD",
"payer": {
"allowed_payment_instruments": [
"PAYMENT_CARD",
"BANK_ACCOUNT"
],
"default_payment_instrument": "PAYMENT_CARD",
"allowed_swifts": [
"FIOBCZPP",
"BREXCZPP"
],
"default_swift": "FIOBCZPP",
"contact": {
"first_name": "Zbyněk",
"last_name": "Žák",
"email": "test@test.cz",
"phone_number": "+420777456123",
"city": "České Budějovice",
"street": "Planá 67",
"postal_code": "37301",
"country_code": "CZE"
},
"payment_card": {
"card_number": "444444******4448",
"card_expiration": "1909",
"card_brand": "VISA",
"card_issuer_country": "CZE",
"card_issuer_bank": "AIR BANK, A.S.",
"3ds_result": "Y/Y"
}
},
"target": {
"type": "ACCOUNT",
"goid": 8123456789
},
"additional_params": [
{
"name": "invoicenumber",
"value": "2015001003"
}
],
"lang": "CS",
"gw_url": " https://gw.sandbox.gopay.com/gw/v3/bCcvmwTKK5hrJx2aGG8ZnFyBJhAvF"
}
{id}
/refundRefundace 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.
Path variables
ID platby k refundaci
Request headers
Vždy application/json
Vždy application/x-www-form-urlencoded
Předává se string Bearer, za kterým následuje vytvořený přístupový token
Request body
Částka k navrácení
Responses
Body
ID platby
Výsledek operace
POST /api/payments/payment/3000006620/refund HTTP/1.1
Accept: application/json
Content-Type: application/x-www-form-urlencoded
Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969
amount=50000
curl -X POST "/api/payments/payment/3000006620/refund" \
-H "Accept: application/json" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969" \
-d 'amount=50000'
<?php
$response = $gopay->refundPayment(3000006620, 50000);
response = api.refund_payment(3000006620, 50000)
try {
var result = connector.RefundPayment(<PAYMENT_ID>, <AMOUNT>);
} catch (GPClientException e) {
//
}
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();
}
}
{
"id": 3000006620,
"result": "FINISHED"
}
{id}
/create-recurrence{id}
/void-recurrenceOpakovaná platba je funkcionalita, která umožňuje přijímat platby kartou od zákazníka na pravidelné bázi. 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
.
V případě platby na vyžádání (ON_DEMAND
) je následná platba provedena API voláním opakování platby
ⓘ Podrobný popis kroků nutných k provedení opakované platby naleznete v centru nápovědy.
Vytvoření opakované platby se řídí API voláním pro založení standardní platby, kde je potřeba povinně přidat objekt recurrence.
POST /api/payments/payment HTTP/1.1
Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969
Content-Type: application/json
Accept: application/json
{
"payer": {
"allowed_payment_instruments": [
"PAYMENT_CARD",
"APPLE_PAY"
],
"default_payment_instrument": "PAYMENT_CARD",
"contact": {
"first_name": "Zbyněk",
"last_name": "Žák",
"email": "test@test.cz",
"phone_number": "+420777456123",
"city": "České Budějovice",
"street": "Planá 67",
"postal_code": "37301",
"country_code": "CZE"
}
},
"target": {
"type": "ACCOUNT",
"goid": 8123456789
},
"items": [
{
"type": "DISCOUNT",
"name": "Obuv",
"amount": 119990,
"count": 2,
"vat_rate": "21",
"ean": 1234567890123,
"product_url": "https://www.eshop.cz/boty/lodicky"
}
],
"recurrence": {
"recurrence_cycle": "MONTH",
"recurrence_period": 1,
"recurrence_date_to": "2025-12-31",
},
"amount": 139950,
"currency": "CZK",
"order_number": "OBJ20200825",
"order_description": "Obuv",
"lang": "CS",
"callback": {
"return_url": "https://www.example.com/return",
"notification_url": "https://www.example.com/notify"
},
"additional_params": [
{
"name": "invoicenumber",
"value": "2015001003"
}
]
}
curl -X POST "https://gw.sandbox.gopay.com/api/payments/payment" \
-H "Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"payer": {
"allowed_payment_instruments": [
"PAYMENT_CARD",
"APPLE_PAY"
],
"default_payment_instrument": "PAYMENT_CARD",
"contact": {
"first_name": "Zbyněk",
"last_name": "Žák",
"email": "test@test.cz",
"phone_number": "+420777456123",
"city": "České Budějovice",
"street": "Planá 67",
"postal_code": "37301",
"country_code": "CZE"
}
},
"target": {
"type": "ACCOUNT",
"goid": 8123456789
},
"items": [
{
"type": "DISCOUNT",
"name": "Obuv",
"amount": 119990,
"count": 2,
"vat_rate": "21",
"ean": 1234567890123,
"product_url": "https://www.eshop.cz/boty/lodicky"
}
],
"recurrence": {
"recurrence_cycle": "MONTH",
"recurrence_period": 1,
"recurrence_date_to": "2025-12-31"
},
"amount": 139950,
"currency": "CZK",
"order_number": "OBJ20200825",
"order_description": "Obuv",
"lang": "CS",
"callback": {
"return_url": "https://www.example.com/return",
"notification_url": "https://www.example.com/notify"
},
"additional_params": [
{
"name": "invoicenumber",
"value": "2015001003"
}
]
}'
<?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' => [
'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' => 'objednavka01',
'items' => [
[
'type' => 'ITEM',
'name' => 'obuv',
'product_url' => 'https://www.eshop.cz/boty/lodicky',
'ean' => 1234567890123,
'amount' => 700,
'count' => 1,
'vat_rate' => VatRate::RATE_4
],
[
'type' => 'ITEM',
'name' => 'oprava podpatku',
'product_url' => 'https://www.eshop.cz/boty/opravy',
'ean' => 1234567890189,
'amount' => 300,
'count' => 1,
'vat_rate' => VatRate::RATE_3
],
],
'recurrence' => [
'recurrence_cycle' => Recurrence::DAILY,
'recurrence_period' => "7",
'recurrence_date_to' => '2025-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': {
'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'
}
})
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) {
//
}
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();
}
}
{
"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":"2025-12-31",
"recurrence_state":"REQUESTED"
},
"additional_params":[{"name":"invoicenumber",
"value":"2015001003"
}],
"lang":"cs",
"gw_url": "https://gw.sandbox.gopay.com/gw/v3/bCcvmwTKK5hrJx2aGG8ZnFyBJhAvF "
}
{id}
/create-recurrencePomocí požadavku je možné opakovat platbu na základě dříve založené opakované platby v režimu ON_DEMAND
(na vyžádání). 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.
Path variables
ID zakládající platby
Request headers
Vždy application/json
Vždy application/json
Předává se string Bearer, za kterým následuje vytvořený přístupový token
Request body
Částka platby v haléřích/centech
Měna platby
Identifikace objednávky v rámci e-shopu, alfanumerické znaky
Popis objednávky
Detailně rozepsané jednotlivé položky objednávky
Doplňkové parametry platby
Responses
Body
ID platby
ID zakládající platby
ID objednávky
Stav platby
Částka platby v haléřích/centech
Měna platby
Platební metoda
Údaje o plátci a platebních metodách
Popisuje příjemce platby
Doplňkové parametry platby
Jazyk na platební bráně
POST /api/payments/payment/3000006542/create-recurrence HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969
{
"amount": 119900,
"currency": "CZK",
"order_number": "OBJ20200825",
"order_description": "Pojistne",
"items": [
{
"type": "ITEM",
"name": "Pojisteni",
"amount": 119900,
"count": 1,
"vat_rate": "21",
"ean": 1234567890123,
"product_url": "https://www.eshop.cz/pojisteni"
}
],
"additional_params": [
{
"name": "invoicenumber",
"value": "2015001003"
}
]
}
curl -X POST "/api/payments/payment/3000006542/create-recurrence" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969" \
-d '{
"amount": 119900,
"currency": "CZK",
"order_number": "OBJ20200825",
"order_description": "Pojistne",
"items": [
{
"type": "ITEM",
"name": "Pojisteni",
"amount": 119900,
"count": 1,
"vat_rate": "21",
"ean": 1234567890123,
"product_url": "https://www.eshop.cz/pojisteni"
}
],
"additional_params": [
{
"name": "invoicenumber",
"value": "2015001003"
}
]
}'
<?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'}
}
}
)
var nextPayment = new NextPayment()
{
Amount = <Amount>,
Currency = <Currency>,
OrderNumber = <OrderNumber>,
OrderDescription = <OrderDescription>
};
try
{
connector.CreateRecurrentPayment(<IdOfPaidOnDemandPayment>, nextPayment)
}
catch (GPClientExcepetion exception)
{
//
}
try {
NextPaymentBuilder builder = PaymentFactory.createNextPaymentBuilder();
...
PaymentResult recurrentPayment = connector.createRecurrentPayment(<ID>, builder.build());
} catch (GPClientException ex) {
//
}
{
"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"
}
{id}
/void-recurrenceUmožň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.
ⓘ Doporučujeme se pokoušet alespoň o 3 pokusy stržení. Pokud žádný z pokusů o stržení následné opakované platby nebude úspěšný, opakování může být zrušeno.
Path variables
ID zakládající opakované platby
Request headers
Vždy application/json
Vždy application/x-www-form-urlencoded
Předává se string Bearer, za kterým následuje vytvořený přístupový token
Responses
Body
ID platby
Výsledek operace
POST /api/payments/payment/3000006542/void-recurrence HTTP/1.1
Accept: application/json
Content-Type: application/x-www-form-urlencoded
Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969
curl -X POST "/api/payments/payment/3000006542/void-recurrence" \
-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)
try {
var voidRecurrency = connector.VoidRecurrency(<ID>);
} catch (GPClientException ex) {
//
}
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();
}
}
{
"id": 3000006542,
"result": "ACCEPTED"
}
{id}
/capture{id}
/capture{id}
/void-authorizationPř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ě částečně strhnout, či strhnout v plné výši pomocí API volání.
Pro uvolnění blokovaných prostředků je nutné provést zrušení předautorizace platby.
Vytvoření předautorizované platby se řídí API voláním pro založení standardní platby, kde je potřeba povinně přidat parametr preauthorization
s hodnotou true
.
POST /api/payments/payment HTTP/1.1
Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969
Content-Type: application/json
Accept: application/json
{
"payer": {
"allowed_payment_instruments": [
"PAYMENT_CARD"
],
"default_payment_instrument": "PAYMENT_CARD",
"contact": {
"first_name": "Zbyněk",
"last_name": "Žák",
"email": "test@test.cz",
"phone_number": "+420777456123",
"city": "České Budějovice",
"street": "Planá 67",
"postal_code": "37301",
"country_code": "CZE"
}
},
"target": {
"type": "ACCOUNT",
"goid": 8123456789
},
"items": [
{
"type": "DISCOUNT",
"name": "Obuv",
"amount": 119990,
"count": 1,
"vat_rate": "21",
"ean": 1234567890123,
"product_url": "https://www.eshop.cz/boty/lodicky"
}
],
"preauthorization": true,
"amount": 119990,
"currency": "CZK",
"order_number": "OBJ20200825",
"order_description": "Obuv",
"lang": "CS",
"callback": {
"return_url": "https://www.example.com/return",
"notification_url": "https://www.example.com/notify"
},
"additional_params": [
{
"name": "invoicenumber",
"value": "2015001003"
}
]
}
curl -X POST "https://gw.sandbox.gopay.com/api/payments/payment" \
-H "Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"payer": {
"allowed_payment_instruments": [
"PAYMENT_CARD",
"BANK_ACCOUNT"
],
"default_payment_instrument": "PAYMENT_CARD",
"allowed_swifts": [
"FIOBCZPP",
"BREXCZPP"
],
"default_swift": "FIOBCZPP",
"contact": {
"first_name": "Zbyněk",
"last_name": "Žák",
"email": "test@test.cz",
"phone_number": "+420777456123",
"city": "České Budějovice",
"street": "Planá 67",
"postal_code": "37301",
"country_code": "CZE"
}
},
"target": {
"type": "ACCOUNT",
"goid": 8123456789
},
"items": [
{
"type": "DISCOUNT",
"name": "Obuv",
"amount": 119990,
"count": 1,
"vat_rate": "21",
"ean": 1234567890123,
"product_url": "https://www.eshop.cz/boty/lodicky"
}
],
"preauthorization": "true",
"amount": 119990,
"currency": "CZK",
"order_number": "OBJ20200825",
"order_description": "Obuv",
"lang": "CS",
"callback": {
"return_url": "https://www.example.com/return",
"notification_url": "https://www.example.com/notify"
},
"additional_params": [
{
"name": "invoicenumber",
"value": "2015001003"
}
]
}'
<?php
use GoPay\Definition\Payment\Currency;
use GoPay\Definition\Payment\PaymentInstrument;
use GoPay\Definition\Payment\BankSwiftCode;
$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' => 1000,
'currency' => Currency::CZECH_CROWNS,
'order_number' => '001',
'order_description' => 'objednavka01',
'items' => [
[
'type' => 'ITEM',
'name' => 'obuv',
'product_url' => 'https://www.eshop.cz/boty/lodicky',
'ean' => 1234567890123,
'amount' => 700,
'count' => 1,
'vat_rate' => VatRate::RATE_4
],
[
'type' => 'ITEM',
'name' => 'oprava podpatku',
'product_url' => 'https://www.eshop.cz/boty/opravy',
'ean' => 1234567890189,
'amount' => 300,
'count' => 1,
'vat_rate' => VatRate::RATE_3
],
],
'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': {
'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'
}
})
var payment = new BasePayment()
{
PreAuthorize = true,
...
};
try {
connector.CreatePayment(payment);
} catch (GPClientException ex) {
//
}
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();
}
}
{
"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 "
}
{id}
/capturePomocí 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.
Path variables
ID platby předautorizace
Request headers
Vždy application/json
Předává se string Bearer, za kterým následuje vytvořený přístupový token
Responses
Body
ID platby
Výsledek operace
POST /api/payments/payment/3000006542/capture HTTP/1.1
Accept: application/json
Content-Type: application/x-www-from-urlencoded
Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969
curl -X POST "/api/payments/payment/3000006542/capture" \
-H "Accept: application/json" \
-H "Content-Type: application/x-www-from-urlencoded" \
-H "Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969"
<?php
$response = $gopay->captureAuthorization(3000006542);
response = api.capture_authorization(3000006542)
try {
var capture = connector.CapturePayment(<ID>);
} catch (GPClientException ex) {
//
}
try {
PaymentResult capture = connector.capturePayment(<ID>);
} catch (GPClientException ex) {
//
}
{
"id": 3000006542,
"result": "FINISHED"
}
{id}
/capturePomocí volání je možné strhnout pouze určitou část předautorizace finančních prostředků dříve vytvořené předautorizované platby. Zbylé prostředky jsou zákazníkovi uvolněny zpět na platební kartu.
Požadovaná částka stržení nesmí být vyšší než původní částka předautorizované platby.
Podrobné informace k předautorizovaným platbám naleznete v centru nápovědy.
ⓘ Pro aktivaci funkce částečného stržení předautorizovaných plateb je nutné kontaktovat technickou podporu GoPay.
Path variables
ID platby předautorizace
Request headers
Vždy application/json
Vždy application/json
Předává se string Bearer, za kterým následuje vytvořený přístupový token
Request body
Celková částka v haléřích/centech
Detailně rozepsané jednotlivé položky platby
Responses
Body
ID platby
Výsledek operace
POST /api/payments/payment/3000006542/capture HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969
{
"amount": 119990,
"items": [
{
"type": "ITEM",
"name": "Obuv",
"amount": 119990,
"count": 1,
"vat_rate": "15",
"ean": 1234567890123,
"product_url": "https://www.eshop.cz/boty/lodicky"
}
]
}
curl -X POST "/api/payments/payment/3000006542/capture" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969" \
-d '{
"amount": 119990,
"items": [
{
"type": "ITEM",
"name": "Obuv",
"amount": 119990,
"count": 1,
"vat_rate": "15",
"ean": 1234567890123,
"product_url": "https://www.eshop.cz/boty/lodicky"
}
]
}'
...
response = api.capture_authorization_partial(3000006542,
{
"amount": 1500,
'items': [
{'name': 'item01', 'amount': 500},
{'name': 'item02', 'amount': 1000},
],
})
{
"id": 3000006542,
"result": "FINISHED"
}
{id}
/void-authorizationProvede uvolnění prostředků předautorizace dříve vytvořené předautorizované platby.
Podrobné informace k předautorizovaným platbám naleznete v centru nápovědy.
Path variables
ID platby předautorizace
Request headers
Vždy application/json
Vždy application/x-www-form-urlencoded
Předává se string Bearer, za kterým následuje vytvořený přístupový token
Responses
Body
ID platby
Výsledek operace
POST /api/payments/payment/3000006542/void-authorization HTTP/1.1
Accept: application/json
Content-Type: application/x-www-form-urlencoded
Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969
curl -X POST "/api/payments/payment/3000006542/void-authorization" \
-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)
try {
var result = connector.VoidAuthorization(<ID>);
} catch (GPClientException ex) {
//
}
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();
}
}
{
"id": 3000006542,
"result": "FINISHED"
}
S platebními metodami je možné provádět dodatečné operace, např. získat seznam aktuálně povolených platebních metod, které lze promítnout zákazníkům na e-shopu při výběru platební metody.
Doporučené způsoby rozdělení platebních metod v košíku vašeho e-shopu naleznete v našem centru nápovědy.
{goid}
/payment-instruments/{currency}
{goid}
/payment-instruments/{currency}
Metoda vrací 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.
Path variables
Request headers
Vždy application/json
Předává se string Bearer, za kterým následuje vytvořený přístupový token
Responses
Body
Popisy skupin platebních metod
Seznam povolených platebních metod pro danou měnu na e-shopu, jejich popisky a loga
GET /api/eshops/eshop/8123456789/payment-instruments/CZK HTTP/1.1
Accept: application/json
Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969
curl -X GET "/api/eshops/eshop/8123456789/payment-instruments/CZK" \
-H "Accept: application/json" \
-H "Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969"
// Předpokládáme, že v proměnné $goid máte uložené vaše GoID
use GoPay\Definition\Payment\Currency;
// API call pro získání platebních metod, druhý parametr je zvolená měna
$response = $gopay->getPaymentInstruments($goid, Currency::CZECH_CROWNS);
// Kontrola, zda bylo API volání úspěšné a získání těla API odpovědi
if ($response->hasSucceed()) {
$responseBody = $response->json;
// získání array s kódy platebních metod
$instruments = array_map(
fn ($el) => $el['paymentInstrument'],
$responseBody['enabledPaymentInstruments']
);
}
...
{
"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},
...]},
]}
Pro vyvolání platební brány je možné použít HTML formulář, který pomocí Javascriptu provede inicializaci platební brány.
Podrobný popis všech kroků nutných k vyvolání platební brány naleznete v našem centru nápovědy.
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.
ⓘ Pro využití inline platební brány na prodejních místech je nutné mít SSL certifikát (podpora HTTPS). Na prodejních místech, které SSL certifikát nemají, dojde standardně k vyvolání redirect varianty popisované níže.
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>
Platební bránu lze provozovat i ve variantě Redirect (s přesměrováním). Lze použít formulář, viz příklad, nebo provést přesměrování na URL (gw_url
) předané při vytvoření platby.
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>
Na obchodní účet jsou ve formě elektronických peněz připisovány platby přijaté od zákazníků. REST API GoPay umožňuje např. generovat výpisy pohybů z obchodního účtu spojeného s daným e-shopem.
Funkcionalita umožňuje generovat výpisy z GoPay obchodního účtu. 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 headers
Vždy application/json
Vždy application/json
Předává se string Bearer, za kterým následuje vytvořený přístupový token
Request body
Počáteční datum výpisu
Koncové datum výpisu
Jedinečný identifikátor e-shopu v systému platební brány
Měna účtu, ze kterého má být výpis vygenerován
Určuje formát souboru generovaného výpisu
Responses
Jako tělo odpovědi se vrací obsah výpisu jako application/octet-stream
POST /api/accounts/account-statement HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969
{
"date_from": "2020-07-08",
"date_to": "2020-08-08",
"goid": 8123456789,
"currency": "CZK",
"format": "CSV_A"
}
curl -X POST "/api/accounts/account-statement" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer AAArt6RuTM69kX6UUGZ6p9hyMPrTUVXmMDdkC4BNnQvQcbNyUTvQtCv45R969" \
-d '{
"date_from": "2020-07-08",
"date_to": "2020-08-08",
"goid": 8123456789,
"currency": "CZK",
"format": "CSV_A"
}'
Popisuje příjemce platby/e-shop
Vždy ACCOUNT
Jedinečný identifikátor eshopu v systému platební brány
Položka platby
Typ položky
Název položky, alfanumerické znaky
Celková částka položek v haléřích/centech
Počet položek
sazba DPH
EAN kód produktu
URL adresa produktu
Informace o zákazníkovi
Jméno zákazníka
Příjmené zákazníka
Validní e-mail zákazníka
Telefonní číslo zákazníka s předvolbou
Město zákazníka
Ulice zákazníka
Poštovní směrovací číslo zákazníka
Třípísmenný kód státu zákazníka podle standardu ISO 3166-1 alpha-3
Objekt popisující údaje o zákazníkovi a nastavení platebních metod pro danou platbu. Objekty payment_card
a bank_account
jsou vraceny v dotazu na stav platby, pokud klient touto metodou platbu zaplatil. Paramtery verify_pin
a allowed_card_token
jsou používány pouze u identifikační platby.
Parametr email
přímo v objektu payer
je vracen pouze u platební metody GOPAY
a jedná se o e-mail použité peněženky.
Seznam povolených platebních metod
["PAYMENT_CARD","BANK_ACCOUNT"]
Předzvolená platební metoda
Seznam povolených SWIFTů pro online bankovní převody
["FIOBCZPP","BREXCZPP"]
Předzvolený SWIFT
Údaje o klientovi
Údaje o protistrany u převodu
Údaje o platební kartě klienta
PIN pro účely identifikační platby, 4 číslice
Token pro účely identifikační platby
Email použité GoPay peněženky (pouze u platební metody GOPAY
)
Popisuje adresy, na které bude předáváno ID vytvořené platby - návratovou adresu pro klienta a notifikační URL.
URL pro návrat klienta z platební brány do e-shopu (včetně protokolu)
URL pro zasílání asynchronních HTTP notifikací
Objekt popisující údaje o platební kartě. Pouze pro čtení, vracen v dotazu na stav platby, pokud zákazník platil kartou. Parametry card_token
a 3ds_result
jsou předávány pouze u dotazu na stav identifikační platby
Vymaskované číslo karty
Datum expirace
Asociace platební karty
Země vydání platební karty
Vydavatelská banka
Token platební karty, pouze u identifikační platby
Výsledek 3D Secure autorizace, pouze u identifikační platby
Údaje o bankovním účtu plátce. Pouze pro čtení, vracen v dotazu na stav platby, pokud klient platil účtem. IBAN a SWIFT jsou předávány pouze u zahraničních účtů.
Předčíslí účtu
Číslo účtu v domestic formátu
Kód banky v domestic formátu
IBAN
SWIFT/BIC
Jméno majitele účtu
Dodatečné parametry platby
Název parametru
Hodnota parametru
Objekt popisující opakování platby. U opakované platby ON_DEMAND se nepředává parametr recurrence_period
. Parametr recurrence_state
je vracen v dotazu na stav platby.
Časový úsek opakování
Perioda opakování platby
Doba platnosti opakované platby (výlučně do) YYYY-MM-DD
Stav opakování platby
Objekt popisující předautorizaci platby
Zda byla předautorizace založena
Stav předautorizace platby
Obsahuje popisky skupiny platebních metod.
Popis platební metody
Název platební metody v češtině
Popisuje skupiny povolených platebních metod.
Popisuje platby kartou
Popisuje bankovní převody
Popisuje platby pomocí elektronických peněženek
Popisuje ostatní druhy plateb
Popisuje povolené swifty pro bankovní převody.
Ikony banky
URL velké ikony
URL menší ikony
Zda je pro tento SWIFT možný online bankovní převod
Popisek platební metody
Český popisek
SWIFT banky
Popisuje povolené platební metody.
Řada objektů popisující jednotlivé povolené SWIFTY (pouze pro bankovní převody)
Do které skupiny se platební metoda řadí
Ikony platební metody
URL velké ikony
URL malé ikony
Popisky platební metody
Český popisek
Označení platební metody v rámci API
Seznam dostupných měn
Česká Koruna
Euro
Polský złoty
Americký dolar
Britská libra
Maďarský forint
Rumunský nový lei
Bulharský lev
Chorvatská kuna
Seznam dostupných platebních metod
Platební karta
Bankovní převod
Google Pay
Apple Pay
GoPay účet
PayPal účet
mPlatba (mobilní platba)
Premium SMS
PaySafeCard kupón
Bitcoin peněženka
Click to Pay
Seznam dostupných SWIFT/BIC kódů.
Česká Spořitelna
Komerční Banka
ČSOB
Raiffeisenbank
UniCredit Bank
Moneta Money Bank
mBank
FIO Banka
AirBank
EQUA Bank
ING Bank
OberBank AG
Všeobecná Úvěrová Banka - pobočka Praha
Hello! Bank
CREDITAS
Max banka
J&T Banka
Ostatní banky - pouze pro čtení
Tatra Banka
Všeobecná Úverová Banka
UniCredit Bank SK
Slovenská Sporiteľňa
ČSOB Slovensko
Poštová Banka
OTP Banka
Prima Banka
Citibank Europe
FIO Banka SK
ING Wholesale Banking SK
mBank SK
J&T Banka SK
OberBank AG SK
Privatbanka
BKS Bank AG SK
Getin Bank
Nest Bank
Volkswagen Bank
Citi handlowy
Santander
Millenium Bank
Bank Ochrony Srodowiska
Pekao Bank
BNP Paribas
OWSZECHNA KASA OSZCZEDNOSCI BANK POLSK
Credit Agricole Banka Polska
Noble Bank
BPS/Bank Nowy BFG
mBank PL
ING Bank PL
Alior
IdeaBank
Pocztowy24
Plus Bank
Toyota Bank
Seznam možných stavů plateb
Platba vytvořena
Platba uhrazena
Platba zamítnuta
Platební metoda potvrzena
Platbě vypršela životnost
Platba předautorizována
Platba vrácena
Platba částečně vrácena
Seznam podstavů plateb
Čekáme na provedení online platby.
Čekáme na provedení offline platby.
Bankovní platba potvrzena avízem.
Bankovní platba potvrzena výpisem.
Bankovní platba nebyla potvrzena.
Schváleno s nulovou částkou
Zamítnutí platby v autorizačním centru banky zákazníka z důvodu dosažení limitů na platební kartě.
Zamítnutí platby v autorizačním centru banky zákazníka z důvodu problémů na straně vydavatele platební karty.
Zamítnutí platby v autorizačním centru banky zákazníka z důvodu problému na straně vydavatele platební karty.
Zamítnutí platby v autorizačním centru banky zákazníka z důvodu zablokované platební karty.
Zamítnutí platby v autorizačním centru banky zákazníka z důvodu nedostatku peněžních prostředků na platební kartě.
Zamítnutí platby v autorizačním centru banky zákazníka z důvodu expirované platební karty.
Zamítnutí platby v autorizačním centru banky zákazníka z důvodu zamítnutí CVV/CVC kódu.
Zamítnutí platby v systému 3D Secure banky zákazníka.
Zamítnutí platby v systému 3D Secure banky zákazníka.
Zamítnutí platby v systému 3D Secure banky zákazníka.
Zamítnutí platby v systému 3D Secure banky zákazníka.
Zamítnutí platby v systému 3D Secure banky zákazníka.
Zamítnutí platby v systému 3D Secure banky zákazníka.
Zamítnutí platby v systému 3D Secure banky zákazníka.
Zamítnutí platby v autorizačním centru banky zákazníka z důvodu problémů na platební kartě.
Zamítnutí platby v autorizačním centru banky zákazníka z důvodu problémů na platební kartě.
Zamítnutí platby v autorizačním centru banky zákazníka z důvodu problémů na účtu platební karty.
Zamítnutí platby v autorizačním centru banky zákazníka z důvodu problémů na účtu platební karty.
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.
Zamítnutí platby v autorizačním centru banky zákazníka z důvodu chybného zadání čísla platební karty.
Zamítnutí platby v autorizačním centru banky zákazníka, platba nebyla povolena na platební kartě zákazníka.
Neznámá konfigurace
Zamítnutí platby v autorizačním centru banky zákazníka z důvodu dosažení nastavených limitů na platební kartě.
Nastal technický problém spojený s autorizačním centrem banky zákazníka.
Platba nebyla provedena.
Platba nebyla provedena.
Platba nebyla provedena. Platební údaje nebyly zadány v časovém limitu na platební bráně.
Platba nebyla provedena. Konkrétní důvod zamítnutí je sdělen přímo zákazníkovi.
Platba nebyla provedena. Součet kreditovaných částek překročil uhrazenou částku.
Platba nebyla provedena. Uživatel není oprávněn k provedení operace.
Platba nebyla provedena. Částka k úhradě překročila autorizovanou částku.
Platba zatím nebyla provedena.
Platba nebyla provedena z důvodu opakovaného zadání platby.
Při platbě nastal technický problém na straně banky.
SMS se nepodařilo doručit.
Platební karta je vydaná v regionu, ve kterém nejsou podporovány platby kartou.
Držitel platební karty zrušil platbu.
Platba byla zamítnuta v autorizačním centru banky zákazníka z důvodu zablokované platební karty.
Duplicitni reversal transakce
Duplicitní transakce
Bankovní platba byla zamítnuta.
Platba zrušena uživatelem.
SMS byla odeslána. Zatím se ji nepodařilo doručit.
Platba byla přijata. Platba bude připsána po zpracování v síti Bitcoin.
Platba nebyla uhrazena v plné výši.
Platba byla provedena po splatnosti.
Zákazník neudělil souhlas s provedením PSD2 platby
Typy položek platby
Produkt/služba
Poštovné
Sleva
Rozsah práv tokenu
Umožňuje pouze zakládání plateb
Umožňuje provádět veškeré operace
Jazyk rozhraní platební brány
Čeština
Slovenština
Angličtina
Němčina
Ruština
Polština
Maďarština
Rumunština
Bulharština
Chorvatština
Italština
Francouzština
Španělština
Ukrajinština
Litevština
Lotyšština
Estonština
Slovinština
Portugalština
Popis výsledku operace
Požadavek přijat
Operace provedena
Operace skončila chybou
Cyklus opakovaných plateb
Denní perioda opakování
Týdenní perioda opakování
Měsíční perioda opakování
Opakovaná platba na vyžádání
Popisuje stav opakování platby
Opakovaní platby vytvořeno, čeká se na autorizaci iniciační platby
Opakování platby aktivní
Opakování platby zrušeno
Popisuje stav předautorizace platby.
Přeadutorizace založená
Předautorizováno
Předautorizace strhnuta
Předautorizace zrušena
Formát vygenerovaného výpisu
CSV typ A
CSV typ B
CSV typ C
CSV typ D
XLS typ A
XLS typ B
XLS typ C
ABO ediční formát (.gpc)
ABO vnitřní formát (.gpc)
Výsledek 3D Secure autorizace
Platební karta nepodporuje 3D Secure ověření
Plné 3D Secure ověření
Částečné 3D Secure ověření
3D Secure ověření nebylo provedeno
Číselník skupin platebních metod.
Platby kartou
Bankovní převody
Elektronické peněženky
Ostatní metody
Objekt popisující chybu
Rozsah chyby
Kterého parametru se chyba týká, pokud se nejedná o globální chybu
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.
Technický popis chyby
Číselné označení typu chyby
Kódové označení typu chyby
Popis rozsahu chyby
Chyba se týká konkrétního parametru
Globální chyba
Chybové kódy, popisující důvod výskytu chyby
Systémová chyba
Povinný
Neplatná hodnota
Již existuje
Nelze změnit
Nelze smazat
Nejednoznačné
Neplatný požadavek
Neoprávněný přístup
Způsob přidělení práv není podporován
Chybné přístupové údaje
Přístup přes PIN byl deaktivován
Platbu nelze vytvořit
Platbu nelze provést
Platba v chybném stavu
Platba nebyla nalezena
E-shop byl deaktivován
Příjemce platby nebyl nalezen
Příjemce nemůže přijmout platbu
Platbu nelze vrátit
Platbu nelze vrátit
Chybná částka
Nedostatek peněz na účtu
Provedení opakované platby selhalo
Provedení opakované platby není podporováno
Opakování platby zastaveno
Překročen časový limit počtu provedení opakované platby
Opakované platby nejsou povoleny
Stržení platby selhalo
Stržení platby již provedeno
Zrušení přeautorizace selhalo
Zrušení předautorizace provedeno
Součet částek položek objednávky items nesouhlasí s částkou platby
Účet nenalezen